[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [ve-dev] is there an ECore model for the override files
|
Hi Chaur,
I believe the model is in the package
com.ibm.etools.emf.event although Rich Kulp knows more about this area
than me so he might want to jump in and correct me as I believe this is
a temporary place right now. For an element like Add there is a corresponding
Java class as it is a code generated EMF model, so you can create a workspace,
import org.eclipse.ve.swt and its required plugins and then just open the
type "Add" (or "AddImpl") for the class and then browse
it. In the package you will see a file event.mdl and this is a rose
model of the EMF schema.
The .override files are at the heart
of VE extensibility for a particular Java class. What occurs is that
an EMF JavaClass is built up for the class that contains its structure.
The primary source of this is reflection of the actual class from
JDT combined with BeanInfo Introspection, and each JavaBeans property ends
up as an EReference and the hierarchy of the actual Java class becomes
the EMF eSuperclass, etc... Decorators are held against elements
in the model that are used as factory lookup extension points. For
example ClassDescriptorDecorator is held against the JavaClass itself and
holds onto the name of the GEF EditPart names. BeanDecorator holds
onto the name of the adapter that mediates conversation to the target JVM.
These are described in the .override and the best way to learn the
syntax is just to look at the many examples that exist in org.eclipse.ve.jfc
or org.eclipse.ve.swt. There is no hard coding in the base VE code
so everything special that an AWT or Swing or SWT class does is soft coded
in either the BeanInfo or the .override. Some of the .overrides are
more complex than others because things like extra relationships that occur
in classes like javax.swing.JSplitPane or org.eclipse.swt.widgets.TabFolder
or org.eclipse.swt.widgets.Composite need extra relationships and EMF elements.
We are working hard to document the
extension mechanism for this as we get many requests for how to leverage
the .override files. Gili and I gave a tutorial at Eclipsecon on
this very subject where we have a small plugin that touches a number of
the usual extension points (property editors, GEF edit parts, custom code
generation) and this will be made available shortly in the next few days.
We are also working on another example that shows how to do GUI building
using classes that themselves aren't actually visual which is another popular
pattern of extension (it is the one used by Canoo for example who published
a very good whitepaper on the VE web site recently that is definitely worth
reading) and libraries such as JFace would also require this (for example
TextViewer doesn't inherit from Text but you still want to drop a TextViewer
onto an SWT Composite).
For the .override files we have also
toyed around with the idea of having some kind of fancy editor to hide
the complexity of the underlying XML structure, much the way the PDE has
a nice plugin.xml editor that gives you high level pages with lists and
wizards that mean you don't need to code in raw XML syntax. The amount
of work for us to build the editor however might be large so instead we're
trying to document the structure and also possibly think about better ways
to debug mistakes in the files which can be tricky to find just by trawling
through the ErrorLog - possibly a builder could validate some of the syntax
much the way the PDE builder can validate plugin.xml to see that it is
using valid extension points in a correct way over and above being correct
XML syntax.
Best regards and many thanks,
Joe Winchester
Please respond to ve-dev@xxxxxxxxxxx
Sent by:
ve-dev-admin@xxxxxxxxxxx
To:
ve-dev@xxxxxxxxxxx
cc:
Subject:
[ve-dev] is
there an ECore model for the override files
Is there an ECore model for
the .override files? It seems to me that there should be such a model to
govern the structure of an override file. Otherwise, how am I supposed
to know that there are XML elements such as <event:Add> and <event:AddMany>
to use in an override file? But when I open an override file, the “event”
XML namespace points to event.xmi, which doesn’t seem to exist anywhere.
Any idea?
Thanks,
Chaur
====================
Notice to Recipient: This e-mail is meant
for only the intended recipient of the transmission, and may be a communication
privileged by law. If you received this e-mail in error, any review, use,
dissemination, distribution, or copying of this e-mail is strictly prohibited.
Please notify us immediately of the error by return e-mail and please delete
this message from your system. Applicable legal notices regarding the e-mail
content, attachments, and web links are posted on Ellie Mae's website.
http://www.elliemae.com/legal.asp