[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Newsgroup Home]
|
[news.eclipse.modeling.gmf] Re: add .xpt template
|
Alex Shatalin a Ãcrit :
Hello Aurelien,
Will it be supported with the new version of GMF which use QvTo?
No, it's not planned.
if you have an example ant task to generate it...
Here it is (build.xml from org.eclipse.gmf.graphdef.editor plugin):
<project name="graphdef.editor" default="main"
xmlns:xpt="eclipse.org/gmf/2008/xpand">
<property name="graphdef.plugin"
value="platform:/resource/org.eclipse.gmf.graphdef.editor"/>
<property name="formtk.plugin"
value="platform:/resource/org.eclipse.gmf.formtk"/>
<target name="main">
<antcall target="generateSection">
<param name="section" value="Size"/>
</antcall>
<antcall target="generateSection">
<param name="section" value="Layout"/>
</antcall>
<antcall target="generateSection">
<param name="section" value="LayoutData"/>
</antcall>
<antcall target="generateSection">
<param name="section" value="Figure"/>
</antcall>
</target>
<target name="generateSection">
<xpt:template name="PropSheet::Main"
inputURI="${graphdef.plugin}/models/${section}Section.xmi#/"
templateroot="${graphdef.plugin}/templates-context,${graphdef.plugin}/templates-propsheet,${formtk.plugin}/templates-propsheet,${formtk.plugin}/templates-formpage,${formtk.plugin}/templates-context,${formtk.plugin}/templates-widget"
outfile="${basedir}/src-extra/org/eclipse/gmf/graphdef/editor/sheet/${section}Section.java"/>
</target>
</project>
I can generate all diagram code using an ant task? or is there
limitations? which?
No, it's not supported now. You can generate diagram code using UI
action only and you can generate additional classes using modified UI
action or using ant file.
calling a doGenerateJavaClass I suppose at first sight?
Right you can call doGenerateJavaClass() from GeNeratorExt class.
I tried this.
I created a custom popup menu which launch :
a CustomExecuteTemplatesAction extends ExecuteTemplatesAction, overriden
the createOperation Method by return CustomExecuteTemplatesOperation
CustomExecuteTemplatesOperation extends ExecuteTemplatesOperation,
overriden the createGenerator which return a CustomGenerator
CustomGenerator extends Generator, here I'm calling the dogenerateClass
I tried with argument :
doGenerateJavaClass(
myEmittersCustom.getPropertySourceEmitter()/*newXpandEmitter("xpt::propsheet::PropertySource::Class")*/,
"org.ow2.jasmine.design.model.jonas.diagram.sheet",
"PropertySourceExtended",
myDiagram);
}
This exception is thrown by Eclipse while generating :
Problems while generating code
Exception (No Definition xpt::propsheet::PropertySource::Class for
GenDiagram could be found!) while generating code
No Definition xpt::propsheet::PropertySource::Class for GenDiagram
could be found!
The stack trace in the log is:
!SUBENTRY 1 org.eclipse.gmf.common 4 0 2009-06-15 09:59:40.503
!MESSAGE Exception (No Definition xpt::propsheet::PropertySource::Class
for GenDiagram could be found!) while generating code
!STACK 0
org.eclipse.gmf.internal.xpand.expression.EvaluationException: No
Definition xpt::propsheet::PropertySource::Class for GenDiagram could be
found!
at org.eclipse.gmf.internal.xpand.XpandFacade.evaluate(XpandFacade.java:50)
at
org.eclipse.gmf.internal.common.codegen.XpandTextEmitter.generate(XpandTextEmitter.java:64)
at
org.eclipse.gmf.internal.common.codegen.GeneratorBase.doGenerateJavaClass(GeneratorBase.java:335)
at
org.ow2.jasmine.design.gmf.codegen.generator.popup.actions.CustomGenerator.generateCustomDialogCellEditorPropertySheet(CustomGenerator.java:83)
at
org.ow2.jasmine.design.gmf.codegen.generator.popup.actions.CustomGenerator.generatePropertySheetSections(CustomGenerator.java:57)
at org.eclipse.gmf.codegen.util.Generator.customRun(Generator.java:259)
at
org.eclipse.gmf.internal.common.codegen.GeneratorBase$1.run(GeneratorBase.java:474)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1782)
at
org.eclipse.gmf.internal.common.codegen.GeneratorBase.doRun(GeneratorBase.java:471)
at
org.eclipse.gmf.internal.common.codegen.GeneratorBase.run(GeneratorBase.java:90)
at
org.eclipse.gmf.internal.codegen.popup.actions.ExecuteTemplatesOperation.run(ExecuteTemplatesOperation.java:182)
at
org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
It may be other thing to do but what? Do I declare the path to the
template? isn't already declare in the XPandEmitter constructor?
-----------------
Alex Shatalin