blob: 53cee9de35f1b7101da2b304c56935f28516c78b [file] [log] [blame]
package edithelpers
import org.eclipse.gmf.codegen.gmfgen.GenDiagram
import org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode
import com.google.inject.Inject
import org.eclipse.gmf.codegen.gmfgen.ElementType
class plugin {
@Inject edithelper helper;
def main(GenDiagram it)'''
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin>
<extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypes">
«FOR f : topLevelNodes.filter(n | n.elementType != null)»«registerHelperAdvice(f)»«ENDFOR»
</extension>
<extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings">
<binding context="«editorGen.plugin.ID».TypeContext">
«FOR f : topLevelNodes.filter(n | n.elementType != null)»«registerHelperAdvice(f)»«registerHelperAdviceBinding(f)»«ENDFOR»
</binding>
</extension>
</plugin>
'''
def registerHelperAdvice(GenTopLevelNode it) '''
<metamodel nsURI="«modelFacet.metaClass.genPackage.getEcorePackage().nsURI»">
<adviceBinding
class="«helper.className(elementType)»"
id="«id(elementType)»"
inheritance="none"
typeId="«elementType.uniqueIdentifier»"/>
</metamodel>
'''
def id(ElementType it)'''«uniqueIdentifier»_ExternalAdvice'''
def registerHelperAdviceBinding(GenTopLevelNode it)'''
<advice ref="«id(elementType)»"/>
'''
}