General information about ArgoEclipse
- What is ArgoEclipse?
- Why do we need this?
- What adds Argoeclipe to Eclipse?
- What are the differences between ArgoUML
and ArgoEclipse?
- Rich Client Platform (RCP) vs
Plugin
The ArgoEclipse project provides integration between the Eclipse
IDE and the UML components of ArgoUML. Instead of a standalone
application, all ArgoUML functionality is available tightly integrated
with the IDE.
The project began as a 2006 Google Summer of Code project (from
May until August). The initial developers were Tom Morris (the mentor)
and Bogdan Ciprian Pistol (the student).
Top
ArgoEclipse aims to be a UML tool that interacts with the Eclipse
environment, this means that you will be able to generate skeleton
classes from UML diagrams and generate UML diagrams from eclipse
resources.
ArgoEclipse brings alongside ArgoUML functionality the
interaction with eclipse functionality that will ease the development of
programmers who use the Eclipse IDE.
Top
There are a lot of Eclipse places (extension points) where you
can find an ArgoEclipse implementation, these are the main extensions:
- You can access ArgoUML like perspective in Eclipse that will
bring up three ArgoUML specific views : Explorer, ToDo and Details
(there is also the diagram editor, but this can be found in any
perspective like any other editor);
- You can create new ArgoUML project files with a new wizard
from the File → New menu;
- The standard ArgoUML extensions: zargo, uml, xmi, xml, zip
are registered with the ArgoEclipse plugin;
- With File → Open or double clicking on any
file with a standard ArgoUML extension you can open those files in a
diagram editor;
- Only when the diagram editor is opened you have access to new
menus and toolbar items specific to ArgoUML;
- You have the possibility to export as XMI or export the
graphics from the current diagram editor from the File → Export
menu;
- The Save and Save As actions are implemented
and are working in the eclipse way;
- The Help for ArgoEclipse is available from Help →
Help Contents and browse to the ArgoUML topic;
- There is a prototype of Argo preference page in Window
→ Preferences and select ArgoEclipse;
Top
The main difference is that ArgoEclipse is hosted by Eclipse,
this means that the application framework is already there, we don't
need a JFrame to be a container, we don't need to worry about deploying
ArgoEclipse (Eclipse takes care of this), we already have a lot of
functionality already available in Eclipse that can be customized and
used.
But there are issues with ArgoEclipse, that's because Eclipse is
different from ArgoUML:
- Eclipse has multiple editors, ArgoUML only handles a single
model, so mapping a model with an editor we'll hold us from using
multiple editors with ArgoEclipse.
- ArgoUML uses Swing and Eclipse uses SWT (Standard Widget
Toolkit), there is the possibility to wrap Swing inside SWT, but with
limited functionality and with conflicts (eg. focus, event queues).
ArgoEclipse uses Swing for the diagram editor and the views, we
gradually replace Swing dialogs with SWT ones.
- Eclipse has a repository for storing files and folders that
is different from the filesystem, it can be mapped to the filesystem
but it's not necessary. ArgoUML uses java.io.File for Input/Output.
What will use ArgoEclipse? ArgoEclipse uses both the eclipse
repository and java.io.File. It would be nicer for ArgoEclipse and
future forks of ArgoUML if ArgoUML used java.io.InputStream and
java.io.OutputStream as parameters within the ArgoUML API.
- ArgoUML has a lot of dependency cycles, these cycles contain
a lot of Swing, so it's hard to change Swing into ArgoEclipse SWT,
this imply a lot of code changed.
- ArgoUML is built with the design of having opened at any time
a project, if no project is opened then it has a default project with
two empty diagrams. In Eclipse we don't need a default project, we
should map with the editor, so when the editor is closed there should
be no project opened.
Top
Eclipse is a framework, it can be used to create not only
plugins, but entire new applications, these applications benefit from
the plugin architecture of Eclipse, and can be combined with any other
plugin. ArgoEclipse is an eclipse plugin, so it's easy to make a RCP
application with it. The main difference between ArgoEclipse and an
ArgoUML RCP application is that the RCP application will be lighter and
will contain just a few core plugins from Eclipse. One issue might
arise, if ArgoEclipse depends on more Eclipse plugins, then the RCP will
have to incorporate those too.
Top