Tom Morris wrote:
In reference to ArgoUML Epsilon on the users list, Dimitrios Kolovos
<[EMAIL PROTECTED]> wrote:

 It didn't require changing the Java source files but is not a plugin
either. I've modified the argouml.ini to add another details tab through
which I've then able to access the RootPane and then used something as ugly
as

 BorderSplitPane root = (BorderSplitPane) getComponent(getRootPane(),new
int[]{1,0,0,4},0);
 root.add(titlePanel, BorderLayout.EAST);

 to add the "Wizards" panel on the right side

As I mentioned briefly, the argouml.ini file was removed between 0.24
and 0.26, although you can still add new details panes using
TabProps.addPanel.  However, depending on the internal component
hierarchy is unreliable and, of course, multiple modules attempting
conflicting modifications will cause problems (e.g. the dev module
which I think attempts to place itself in the same location).

Ultimately this should not be a problem as in future versions we will replace the panel with a menu so that wizard guards are not evaluated whenever the selection changes (as is the case now) but only when the (to-be-implemented) menu is about to show. (On a related question, is there a legitimate way to hook into the context (right-click) menu?)
 I've also had to use reflection to access the UmlPackage implementation:

The internal implementation of the Model subsystem is hidden
intentionally.  What do you need direct access to MDR for?  Any access
which is not done through the Model subsystem's API isn't going to be
portable to other implementations such as the eUML implementation
which is based on an entirely different repository (Eclipse's UML2
component).

EWL works both with MDR and EMF (the framework on which Eclipse UML2 is implemented) but with different "drivers" so that should not be a problem (e.g. in http://www.eclipse.org/gmt/epsilon/cinema/GMFWizards2.htm EWL is used in a the GMF-based UML2 editor). The plugin will just have to check if it is in an MDR environment or an EMF environment and load the appropriate driver.
 Finally, I had to modify the meta-inf/manifest.mf in argouml-mdr.jar to
prepend argoumlepsilon.jar (the implementation of EWL and the integration
classes) and antlr-2.7.5.jar (as ArgoUML ships with an older version of
Antlr than the one I need for EWL)

Depending on what you are trying to accomplish, you should be able to
do what you need using just the manifest in your own plugin jar.  I
suspect part of the reason you need to tweak this is that you broke
the encapsulation of the model-mdr implementation and if you fix that
you shouldn't need to modify the manifest either.  ArgoUML 0.26 will
ship with ANTLR 2.7.7, so if your dependency is 2.7.5 or greater, you
should be all set.

That should solve this problem too.
Tom

I'll have to look at a tutorial on how to create ArgoUML modules and get back with a better implementation. So far I've found http://argopno.tigris.org/documentation/tutoriel/new_module.html which should suffice - but if you could point me towards other resources that may help that would be great.

Cheers,
Dimitrios

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to