[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