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