How to hide EA properties dialog? - enterprise-architect

I am using EA Api's "EA_OnPostNewElement" to modify the dropped element from the Toolbox. As soon I drop the element from the toolbox to the diagram, EA properties diaglog is popped up. Even after using
Repository.SuppressEADialogs = true;
How to suppress the EA diaglog if any Element is dropped from the toolbox ?

The documentation says indeed to use Repository.SuppressEADialogs = true; to disable the standard properties dialog to show up.
If that doesn't work you should probably send in a bug report.
But you can also disable that from the general options by disabling the option Objects | Edit Object on New
Then use the event EA_OnContextItemDoubleClicked to show your own properties dialog and return true to let EA know that you have handled the double-click event so it doesn't show the default properties dialog anyway.

Related

How to change intermediate event type in EA

Is there a way how to change the event type for an existing intermediate event? When I do a mistake, I have to delete the event and create new event.
Yes, there is a way, however you can't use the docked properties window.
You have to open the properties dialog (select element and press Alt-Enter)

Override "Paste As" dialog

When I drag Class element onto my diagram there is a window fired "Paste Class1", where I can choose the drop type, such as "Link","Property","Instance (Object)" and so.
I need to change that behavior - when I drag from ProjectBrowser I need apply only drop type "Link" and hide any variants from end user. Is it possible to do that via addin or anything else ?
Sparx 13.5
No you can't change the behavior of that dialog.
What you can do in an add-in is overrule whatever the user chose after the fact, and make it into a link anyway. (e.g. deleting the instance from the model and set the elementID of the classifier in the DiagramObject instead)
There is also a checkbox option to only show this window when Ctrl-drag is used. That might help to avoid mishaps as well.

Change menus and menu items programmatically in Eclipse E4

I am having trouble removing existing menus from the model, in a running app.
For example:
MMenu menu = modelService.findElements(app, "idMenuFoo", MMenu.class,
Collections.<String>emptyList(), EModelService.IN_MAIN_MENU).get(0);
menu.setLabel("X");
menu.setVisible(false);
menu.setToBeRendered(false);
After this code gets executed:
The label has been changed to 'X'
But the menu entry is still visible/rendered
If I start the app without clearPersistedState, then restart it, the menu has disappeared. This leads me to be believe the the visibility and rendering attributes were set in the first place, but not applied to the model (unlike the label attribute).
How can I programmatically trigger a main menu bar "refresh" after such changes?
As a Greg in the comment above posted, there is an open bug filed to address this issue. An easy to implement a workaround involves manually refreshing the underlying SWT menu. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=365724#c9 for details. In a gist:
// retrieve the main menu, containing the top-level menu element that needs to be refreshed
MMenu mainMenu = ...
// org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRenderer
MenuManagerRender renderer = (MenuManagerRenderer)mainMenu.getRenderer();
renderer.getManager(mainMenu).update(true);

Customizing Element Properties Menu in Enterprise Architect

I have created a new stereotype based on "Requirement" and has exported it as profile. When I double click on an instantiation of that type, a menu appears that contains the default properties of the type "Requirement". It contains some tabs (e.g. the "Files" tab) that are useless to me.
Is there a way to eliminate this tabs?
How can I modify the default tabs of the properties dialog (open by double click on an element)?
A word of warning: be careful when stereotyping Requirements - the relationship between the element stereotype and the requirement types configured into the project (Settings - Project Types) is a bit murky.
That said, there is no way to modify EA's dialogs. What you can do is create your own property dialog and have EA open that when the user double-clicks the element.
In order to achieve this, you need to create an Add-In which catches the Context Item Event EA_OnContextItemDoubleClicked. In your event handler, return true to inform EA that you're handling the event (which prevents EA from opening the default property dialog), and open your own custom dialog.
The same event is fired when the user hits Enter with the element selected. The default property dialog can still be opened by pressing Alt-Enter.
As an alternative, you might want to look into the third-party extension eaForms, which allows you to create your own custom property dialogs without writing your own Add-In.

How to enable save action in Eclipse toolbar?

I am working under Eclipse plug-in development. I have implemented two view parts to view and change some objects. Each view part implements ISaveablePart to save modified objects and enable save button on toolbar.
The problem is: when I select my objects in Project Explorer, Save button isn't enabled, only Save All is enabled.
So I'd like to know is there any ability to enable Save button in this case?
You must first implement ISaveablePart, as you have mentioned above.
You have to fire an event (see IWorkbenchPartConstants.PROP_DIRTY), which will in turn ask your editor whether it's dirty (ISaveablePart#isDirty()). If the answer is true, then the save button will be enabled.
See FormEditor#editorDirtyStateChanged() for an example.