Bug 414114 - Add FXML to Java Translator
diff --git a/bundles/tooling/org.eclipse.fx.ide.fxgraph/src/org/eclipse/fx/ide/fxgraph/converter/FXMLSaxHandler.xtend b/bundles/tooling/org.eclipse.fx.ide.fxgraph/src/org/eclipse/fx/ide/fxgraph/converter/FXMLSaxHandler.xtend index eb38202..9e71fb2 100644 --- a/bundles/tooling/org.eclipse.fx.ide.fxgraph/src/org/eclipse/fx/ide/fxgraph/converter/FXMLSaxHandler.xtend +++ b/bundles/tooling/org.eclipse.fx.ide.fxgraph/src/org/eclipse/fx/ide/fxgraph/converter/FXMLSaxHandler.xtend
@@ -11,22 +11,33 @@ import javax.inject.Inject import org.eclipse.xtext.common.types.access.IJvmTypeProvider import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl +import javax.xml.parsers.SAXParserFactory class FXMLSaxHandler extends DefaultHandler { - Model model; + public Model model; Stack<Object> stack = new Stack; // @Inject // private IJvmTypeProvider.Factory jdtTypeProviderFactory; - private IJvmTypeProvider jdtTypeProvider; +// private IJvmTypeProvider jdtTypeProvider; + + private String packageName; + + new(String packageName) + { + this.packageName = packageName; + } override startDocument() throws SAXException { // jdtTypeProvider = jdtTypeProviderFactory.findOrCreateTypeProvider(new ResourceSetImpl) model = FXGraphFactory.eINSTANCE.createModel - val componentDef = FXGraphFactory.eINSTANCE.createComponentDefinition + val pack = FXGraphFactory.eINSTANCE.createPackageDeclaration + pack.setName(packageName) + model.setPackage(pack) + val componentDef = FXGraphFactory.eINSTANCE.createComponentDefinition model.componentDef = componentDef } @@ -50,6 +61,8 @@ // A property val e = stack.peek as Element val prop = FXGraphFactory.eINSTANCE.createProperty + val vProp = FXGraphFactory.eINSTANCE.createSimpleValueProperty + e.properties.add(prop) stack.push(prop) @@ -62,6 +75,10 @@ jvmType.simpleName = localName t.type = jvmType e.type = t + + if( model.componentDef.rootNode == null ) { + model.componentDef.rootNode = e + } stack.push(e) } @@ -70,9 +87,4 @@ override endElement(String uri, String localName, String qName) throws SAXException { stack.pop } - - def static void main(String[] args) { - val h = new FXMLSaxHandler() - - } } \ No newline at end of file
diff --git a/bundles/tooling/org.eclipse.fx.ide.fxml.compiler/src/org/eclipse/fx/ide/fxml/compiler/PrimitiveType.xtend b/bundles/tooling/org.eclipse.fx.ide.fxml.compiler/src/org/eclipse/fx/ide/fxml/compiler/PrimitiveType.xtend new file mode 100644 index 0000000..90e3cd9 --- /dev/null +++ b/bundles/tooling/org.eclipse.fx.ide.fxml.compiler/src/org/eclipse/fx/ide/fxml/compiler/PrimitiveType.xtend
@@ -0,0 +1,5 @@ +package org.eclipse.fx.ide.fxml.compiler + +enum PrimitiveType { + +} \ No newline at end of file
diff --git a/bundles/tooling/org.eclipse.fx.ide.fxml.compiler/src/org/eclipse/fx/ide/fxml/compiler/ReflectionHelper.xtend b/bundles/tooling/org.eclipse.fx.ide.fxml.compiler/src/org/eclipse/fx/ide/fxml/compiler/ReflectionHelper.xtend index a8d403f..a83ad4e 100644 --- a/bundles/tooling/org.eclipse.fx.ide.fxml.compiler/src/org/eclipse/fx/ide/fxml/compiler/ReflectionHelper.xtend +++ b/bundles/tooling/org.eclipse.fx.ide.fxml.compiler/src/org/eclipse/fx/ide/fxml/compiler/ReflectionHelper.xtend
@@ -27,4 +27,6 @@ return p.value; } + +// def static } \ No newline at end of file
diff --git a/bundles/tooling/org.eclipse.fx.ide.fxml.compiler/src/org/eclipse/fx/ide/fxml/compiler/TestLoading.xtend b/bundles/tooling/org.eclipse.fx.ide.fxml.compiler/src/org/eclipse/fx/ide/fxml/compiler/TestLoading.xtend new file mode 100644 index 0000000..4e17fbb --- /dev/null +++ b/bundles/tooling/org.eclipse.fx.ide.fxml.compiler/src/org/eclipse/fx/ide/fxml/compiler/TestLoading.xtend
@@ -0,0 +1,20 @@ +package org.eclipse.fx.ide.fxml.compiler + +import java.io.File +import javax.xml.parsers.SAXParserFactory +import org.eclipse.fx.ide.fxgraph.converter.FXMLSaxHandler +import org.eclipse.fx.ide.fxgraph.converter.FXGraphConverter + +class TestLoading { + def static void main(String[] args) { + val f = SAXParserFactory.newInstance + f.setNamespaceAware(true); + val p = f.newSAXParser + val h = new FXMLSaxHandler("test") + + p.parse(new File("/Users/tomschindl/git/efxclipse/bundles/tooling/org.eclipse.fx.ide.fxml.compiler/sample-src/sample/Sample.fxml"), h) + val c = new FXGraphConverter + c.generate(h.model); + } + +} \ No newline at end of file