[jboss-svn-commits] JBL Code SVN: r20848 - in labs/jbossrules/trunk/drools-guvnor: src/main/java/com/google/gwt and 13 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Jun 30 16:58:23 EDT 2008


Author: arhan
Date: 2008-06-30 16:58:23 -0400 (Mon, 30 Jun 2008)
New Revision: 20848

Added:
   labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/
   labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/
   labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/Generator.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/GeneratorContext.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/TreeLogger.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/UnableToCompleteException.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/
   labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/CompilationUnitProvider.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/HasMetaData.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JArrayType.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JClassType.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JConstructor.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JField.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JMethod.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JPackage.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JParameterizedType.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JPrimitiveType.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JType.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/NotFoundException.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/TypeOracle.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/rebind/
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/rebind/EditorLauncherGenerator.java
Modified:
   labs/jbossrules/trunk/drools-guvnor/build.properties
   labs/jbossrules/trunk/drools-guvnor/build.xml
   labs/jbossrules/trunk/drools-guvnor/pom.xml
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/Guvnor.gwt.xml
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/DefaultContentUploadEditor.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/DecisionTableXLSWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/GuidedDecisionTableWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/factmodel/FactModelWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/ModelAttachmentFileWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/ScenarioWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/DSLRuleEditor.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/DefaultRuleContentWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/EditorLauncher.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/RuleFlowUploadWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/RuleViewer.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulelist/AssetItemGrid.java
Log:
GSOC2008: making content editors pluggable:
- EditorLauncherGenerator is used to generate EditorLauncher
- all the content editors shold have a common interface to provide the metadata for EditorLauncher generation at the gwt-compile process
- gwt-user.jar is required
- in build.properties, gwt.platform property has to be set to the GWT platform version, i.e. linux, windows, mac
- in order to amend the dependency to gwt-dev-{platfor}.jar, the required classes are stubbed in Guvnor code base.

Modified: labs/jbossrules/trunk/drools-guvnor/build.properties
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/build.properties	2008-06-30 20:16:06 UTC (rev 20847)
+++ labs/jbossrules/trunk/drools-guvnor/build.properties	2008-06-30 20:58:23 UTC (rev 20848)
@@ -1,2 +1,4 @@
 #this is needed to point to your version of GWT
-gwt.home=/usr/local/share/java/gwt
\ No newline at end of file
+gwt.home=/home/ant/lib/gwt-linux-1.4.62
+gwt.platform=linux
+

Modified: labs/jbossrules/trunk/drools-guvnor/build.xml
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/build.xml	2008-06-30 20:16:06 UTC (rev 20847)
+++ labs/jbossrules/trunk/drools-guvnor/build.xml	2008-06-30 20:58:23 UTC (rev 20848)
@@ -17,7 +17,7 @@
 		<gwt:compile outDir="src/main/webapp" 
 			gwtHome="${gwt.home}"
 			classBase="org.drools.guvnor.Guvnor" 
-			sourceclasspath="src/main/java; ../drools-compiler/src/main/java; ../lib/gwtext-2.0.1.jar" 
+			sourceclasspath=" ${gwt.home}/gwt-dev-${gwt.platform}.jar; src/main/java; ../drools-compiler/src/main/java; ../lib/gwtext-2.0.1.jar; target/classes " 
 		/>
 	</target>
 

Modified: labs/jbossrules/trunk/drools-guvnor/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/pom.xml	2008-06-30 20:16:06 UTC (rev 20847)
+++ labs/jbossrules/trunk/drools-guvnor/pom.xml	2008-06-30 20:58:23 UTC (rev 20848)
@@ -87,6 +87,11 @@
       <artifactId>gwt-servlet</artifactId>
     </dependency>
     <dependency>
+      <groupId>com.google.gwt</groupId>
+      <artifactId>gwt-user</artifactId>
+      <version>1.4.62</version>
+    </dependency>
+    <dependency>
       <groupId>com.gwtext</groupId>
       <artifactId>gwtext</artifactId>
     </dependency>

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/Generator.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/Generator.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/Generator.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -0,0 +1,7 @@
+package com.google.gwt.core.ext;
+
+/**
+ *
+ */
+public class Generator {
+}

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/GeneratorContext.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/GeneratorContext.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/GeneratorContext.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -0,0 +1,15 @@
+package com.google.gwt.core.ext;
+
+import com.google.gwt.core.ext.typeinfo.TypeOracle;
+
+import java.io.PrintWriter;
+
+/**
+ *
+ */
+public interface GeneratorContext {
+
+    public TypeOracle getTypeOracle();
+
+    public PrintWriter tryCreate(TreeLogger logger, String packageName, String generatedClassName);
+}

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/TreeLogger.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/TreeLogger.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/TreeLogger.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -0,0 +1,7 @@
+package com.google.gwt.core.ext;
+
+/**
+ *
+ */
+public interface TreeLogger {
+}

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/UnableToCompleteException.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/UnableToCompleteException.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/UnableToCompleteException.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -0,0 +1,7 @@
+package com.google.gwt.core.ext;
+
+/**
+ *
+ */
+public class UnableToCompleteException extends Throwable {
+}

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/CompilationUnitProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/CompilationUnitProvider.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/CompilationUnitProvider.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -0,0 +1,29 @@
+package com.google.gwt.core.ext.typeinfo;
+
+import com.google.gwt.core.ext.UnableToCompleteException;
+
+import java.util.Comparator;
+
+/**
+ *
+ */
+public interface CompilationUnitProvider {
+
+  Comparator LOCATION_COMPARATOR = new Comparator() {
+    public int compare(Object o1, Object o2) {
+      String loc1 = ((CompilationUnitProvider) o1).getLocation();
+      String loc2 = ((CompilationUnitProvider) o2).getLocation();
+      return loc1.compareTo(loc2);
+    }
+  };
+
+  long getLastModified() throws UnableToCompleteException;
+
+  String getLocation();
+
+  String getPackageName();
+
+  char[] getSource() throws UnableToCompleteException;
+
+  boolean isTransient();
+}

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/HasMetaData.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/HasMetaData.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/HasMetaData.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -0,0 +1,21 @@
+package com.google.gwt.core.ext.typeinfo;
+
+/**
+ *
+ */
+public interface HasMetaData {
+  /**
+   * Adds additional metadata.
+   */
+  void addMetaData(String tagName, String[] values);
+
+  /**
+   * Gets each list of metadata for the specified tag name.
+   */
+  String[][] getMetaData(String tagName);
+
+  /**
+   * Gets the name of available metadata tags.
+   */
+  String[] getMetaDataTags();
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JArrayType.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JArrayType.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JArrayType.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -0,0 +1,8 @@
+package com.google.gwt.core.ext.typeinfo;
+
+/**
+ *
+ */
+public class JArrayType {
+
+}

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JClassType.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JClassType.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JClassType.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -0,0 +1,257 @@
+package com.google.gwt.core.ext.typeinfo;
+
+import com.google.gwt.core.ext.UnableToCompleteException;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Type representing a Java class or interface type.
+ */
+public class JClassType extends JType implements HasMetaData {
+
+    public JClassType(TypeOracle oracle, CompilationUnitProvider cup,
+                      JPackage declaringPackage, JClassType enclosingType, boolean isLocalType,
+                      String name, int declStart, int declEnd, int bodyStart, int bodyEnd,
+                      boolean isInterface) {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public void addImplementedInterface(JClassType intf) {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public void addMetaData(String tagName, String[] values) {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public void addModifierBits(int bits) {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JConstructor findConstructor(JType[] paramTypes) {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JField findField(String name) {throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JMethod findMethod(String name, JType[] paramTypes) {
+       throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JClassType findNestedType(String typeName) {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public int getBodyEnd() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public int getBodyStart() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public CompilationUnitProvider getCompilationUnit() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JConstructor getConstructor(JType[] paramTypes)
+            throws NotFoundException {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JConstructor[] getConstructors() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JClassType getEnclosingType() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JField getField(String name) {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JField[] getFields() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JClassType[] getImplementedInterfaces() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public String getJNISignature() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public String[][] getMetaData(String tagName) {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public String[] getMetaDataTags() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JMethod getMethod(String name, JType[] paramTypes)
+            throws NotFoundException {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JMethod[] getMethods() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public String getName() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JClassType getNestedType(String typeName) throws NotFoundException {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JClassType[] getNestedTypes() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public TypeOracle getOracle() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JMethod[] getOverloads(String name) {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JMethod[] getOverridableMethods() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JPackage getPackage() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public String getQualifiedSourceName() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public String getSimpleSourceName() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JClassType[] getSubtypes() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JClassType getSuperclass() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public String getTypeHash() throws UnableToCompleteException {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public boolean isAbstract() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JArrayType isArray() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public boolean isAssignableFrom(JClassType possibleSubtype) {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public boolean isAssignableTo(JClassType possibleSupertype) {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JClassType isClass() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public boolean isDefaultInstantiable() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JClassType isInterface() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public boolean isLocalType() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public boolean isMemberType() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JParameterizedType isParameterized() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public JPrimitiveType isPrimitive() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public boolean isPrivate() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public boolean isProtected() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public boolean isPublic() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public boolean isStatic() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public void setSuperclass(JClassType type) {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    public String toString() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    protected int getModifierBits() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    void addConstructor(JConstructor ctor) {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    void addField(JField field) {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    void addMethod(JMethod method) {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    void addNestedType(JClassType type) {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    JClassType findNestedTypeImpl(String[] typeName, int index) {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    void notifySuperTypes() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+    void removeFromSupertypes() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+
+
+    public String getParameterizedQualifiedSourceName() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+}

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JConstructor.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JConstructor.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JConstructor.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -0,0 +1,7 @@
+package com.google.gwt.core.ext.typeinfo;
+
+/**
+ *
+ */
+public class JConstructor {
+}

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JField.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JField.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JField.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -0,0 +1,7 @@
+package com.google.gwt.core.ext.typeinfo;
+
+/**
+ *
+ */
+public class JField {
+}

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JMethod.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JMethod.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JMethod.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -0,0 +1,7 @@
+package com.google.gwt.core.ext.typeinfo;
+
+/**
+ *
+ */
+public class JMethod {
+}

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JPackage.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JPackage.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JPackage.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -0,0 +1,11 @@
+package com.google.gwt.core.ext.typeinfo;
+
+/**
+ *
+ */
+public class JPackage {
+
+    public String getName() {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+}

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JParameterizedType.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JParameterizedType.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JParameterizedType.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -0,0 +1,7 @@
+package com.google.gwt.core.ext.typeinfo;
+
+/**
+ *
+ */
+public class JParameterizedType {
+}

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JPrimitiveType.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JPrimitiveType.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JPrimitiveType.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -0,0 +1,7 @@
+package com.google.gwt.core.ext.typeinfo;
+
+/**
+ *
+ */
+public class JPrimitiveType {
+}

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JType.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JType.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/JType.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -0,0 +1,10 @@
+package com.google.gwt.core.ext.typeinfo;
+
+/**
+ *
+ */
+public abstract class JType {
+    public JClassType isClassOrInterface() {
+       throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+}

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/NotFoundException.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/NotFoundException.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/NotFoundException.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -0,0 +1,7 @@
+package com.google.gwt.core.ext.typeinfo;
+
+/**
+ *
+ */
+public class NotFoundException extends Throwable{
+}

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/TypeOracle.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/TypeOracle.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/com/google/gwt/core/ext/typeinfo/TypeOracle.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -0,0 +1,10 @@
+package com.google.gwt.core.ext.typeinfo;
+
+/**
+ *
+ */
+public class TypeOracle {
+    public JClassType getType(String typeName) {
+        throw new RuntimeException("not to be used for JavaScript compilation");
+    }
+}

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/Guvnor.gwt.xml
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/Guvnor.gwt.xml	2008-06-30 20:16:06 UTC (rev 20847)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/Guvnor.gwt.xml	2008-06-30 20:58:23 UTC (rev 20848)
@@ -20,5 +20,8 @@
     <servlet path="/webdav" class="org.drools.guvnor.server.files.WebdavServlet"/>
     <servlet path="/api" class="org.drools.guvnor.server.files.RestAPIServlet"/>
 
+    <generate-with class="org.drools.guvnor.rebind.EditorLauncherGenerator">
+       <when-type-assignable class="org.drools.guvnor.client.ruleeditor.EditorLauncher"/>
+    </generate-with>
 
 </module>

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/DefaultContentUploadEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/DefaultContentUploadEditor.java	2008-06-30 20:16:06 UTC (rev 20847)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/DefaultContentUploadEditor.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -1,17 +1,15 @@
 package org.drools.guvnor.client.common;
 
+import com.google.gwt.user.client.ui.HTML;
 import org.drools.guvnor.client.packages.AssetAttachmentFileWidget;
 import org.drools.guvnor.client.rpc.RuleAsset;
+import org.drools.guvnor.client.ruleeditor.Editor;
 import org.drools.guvnor.client.ruleeditor.RuleViewer;
 
-import com.google.gwt.user.client.ui.HTML;
+public class DefaultContentUploadEditor extends AssetAttachmentFileWidget implements Editor {
 
-public class DefaultContentUploadEditor extends AssetAttachmentFileWidget {
-
-    public DefaultContentUploadEditor(
-            RuleAsset asset, RuleViewer viewer) {
-		super( asset,
-		viewer );
+    public DefaultContentUploadEditor(RuleAsset asset, RuleViewer viewer) {
+		super( asset, viewer );
 		super.addDescription(new HTML("<small><i>Upload new version...</i></small>"));
     }
 
@@ -23,4 +21,12 @@
     	return "decision-Table-upload";
     }
 
+
+    public String getWrapperClass() {
+        return null;
+    }
+
+    public String getAssetFormat() {
+        return null;
+    }
 }

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/DecisionTableXLSWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/DecisionTableXLSWidget.java	2008-06-30 20:16:06 UTC (rev 20847)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/DecisionTableXLSWidget.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -16,24 +16,21 @@
  */
 
 
-
+import com.google.gwt.user.client.ui.HTML;
 import org.drools.guvnor.client.packages.AssetAttachmentFileWidget;
 import org.drools.guvnor.client.rpc.RuleAsset;
+import org.drools.guvnor.client.ruleeditor.Editor;
 import org.drools.guvnor.client.ruleeditor.RuleViewer;
 
-import com.google.gwt.user.client.ui.HTML;
-
 /**
  * This widget deals with XLS files in "classic" decision tables.
  * 
  * @author Michael Neale
  */
-public class DecisionTableXLSWidget extends AssetAttachmentFileWidget {
+public class DecisionTableXLSWidget extends AssetAttachmentFileWidget implements Editor {
 
-    public DecisionTableXLSWidget(
-                                  RuleAsset asset, RuleViewer viewer) {
-        super( asset,
-               viewer );
+    public DecisionTableXLSWidget(RuleAsset asset, RuleViewer viewer) {
+        super( asset, viewer );
         super.addDescription(new HTML("<small><i>This is a decision table in a spreadsheet (XLS). Typically they contain many rules in one sheet.</i></small>"));
     }
 
@@ -44,7 +41,13 @@
     public String getOverallStyleName() {
         return "decision-Table-upload";
     }
-    
 
 
+    public String getWrapperClass() {
+        return null;
+    }
+
+    public String getAssetFormat() {
+        return null;
+    }
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/GuidedDecisionTableWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/GuidedDecisionTableWidget.java	2008-06-30 20:16:06 UTC (rev 20847)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/GuidedDecisionTableWidget.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -1,77 +1,46 @@
 package org.drools.guvnor.client.decisiontable;
 
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.drools.guvnor.client.common.FormStylePopup;
-import org.drools.guvnor.client.common.ImageButton;
-import org.drools.guvnor.client.common.PrettyFormLayout;
-import org.drools.guvnor.client.common.SmallLabel;
-import org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine;
-import org.drools.guvnor.client.modeldriven.brl.ISingleFieldConstraint;
-import org.drools.guvnor.client.modeldriven.dt.ActionCol;
-import org.drools.guvnor.client.modeldriven.dt.ActionInsertFactCol;
-import org.drools.guvnor.client.modeldriven.dt.ActionSetFieldCol;
-import org.drools.guvnor.client.modeldriven.dt.AttributeCol;
-import org.drools.guvnor.client.modeldriven.dt.ConditionCol;
-import org.drools.guvnor.client.modeldriven.dt.DTColumnConfig;
-import org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable;
-import org.drools.guvnor.client.modeldriven.ui.ActionValueEditor;
-import org.drools.guvnor.client.packages.SuggestionCompletionCache;
-import org.drools.guvnor.client.rpc.RuleAsset;
-import org.drools.guvnor.client.ruleeditor.SaveEventListener;
-
 import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.ui.Button;
-import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.HTML;
-import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.KeyboardListener;
-import com.google.gwt.user.client.ui.KeyboardListenerAdapter;
-import com.google.gwt.user.client.ui.ListBox;
-import com.google.gwt.user.client.ui.TextBox;
-import com.google.gwt.user.client.ui.VerticalPanel;
-import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.user.client.ui.*;
 import com.gwtext.client.core.EventObject;
 import com.gwtext.client.core.SortDir;
-import com.gwtext.client.data.ArrayReader;
-import com.gwtext.client.data.FieldDef;
-import com.gwtext.client.data.GroupingStore;
-import com.gwtext.client.data.MemoryProxy;
-import com.gwtext.client.data.Record;
-import com.gwtext.client.data.RecordDef;
-import com.gwtext.client.data.SortState;
-import com.gwtext.client.data.Store;
-import com.gwtext.client.data.StringFieldDef;
+import com.gwtext.client.data.*;
 import com.gwtext.client.widgets.Panel;
 import com.gwtext.client.widgets.Toolbar;
 import com.gwtext.client.widgets.ToolbarMenuButton;
 import com.gwtext.client.widgets.Window;
 import com.gwtext.client.widgets.form.FieldSet;
 import com.gwtext.client.widgets.form.FormPanel;
-import com.gwtext.client.widgets.grid.BaseColumnConfig;
-import com.gwtext.client.widgets.grid.CellMetadata;
-import com.gwtext.client.widgets.grid.ColumnConfig;
-import com.gwtext.client.widgets.grid.ColumnModel;
-import com.gwtext.client.widgets.grid.GridPanel;
-import com.gwtext.client.widgets.grid.GroupingView;
-import com.gwtext.client.widgets.grid.Renderer;
+import com.gwtext.client.widgets.grid.*;
 import com.gwtext.client.widgets.grid.event.GridCellListenerAdapter;
 import com.gwtext.client.widgets.grid.event.GridColumnListenerAdapter;
 import com.gwtext.client.widgets.menu.BaseItem;
 import com.gwtext.client.widgets.menu.Item;
 import com.gwtext.client.widgets.menu.Menu;
 import com.gwtext.client.widgets.menu.event.BaseItemListenerAdapter;
+import org.drools.guvnor.client.common.FormStylePopup;
+import org.drools.guvnor.client.common.ImageButton;
+import org.drools.guvnor.client.common.PrettyFormLayout;
+import org.drools.guvnor.client.common.SmallLabel;
+import org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.guvnor.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.guvnor.client.modeldriven.dt.*;
+import org.drools.guvnor.client.modeldriven.ui.ActionValueEditor;
+import org.drools.guvnor.client.packages.SuggestionCompletionCache;
+import org.drools.guvnor.client.rpc.RuleAsset;
+import org.drools.guvnor.client.ruleeditor.Editor;
+import org.drools.guvnor.client.ruleeditor.SaveEventListener;
 
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
 /**
  * This is the new guided decision table editor for the web.
  * @author Michael Neale
  */
-public class GuidedDecisionTableWidget extends Composite implements SaveEventListener {
+public class GuidedDecisionTableWidget extends Composite implements SaveEventListener, Editor {
 
     private GuidedDecisionTable dt;
 	private VerticalPanel layout;
@@ -914,4 +883,11 @@
 	}
 
 
+    public String getWrapperClass() {
+        return null;
+    }
+
+    public String getAssetFormat() {
+        return null;
+    }
 }

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/factmodel/FactModelWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/factmodel/FactModelWidget.java	2008-06-30 20:16:06 UTC (rev 20847)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/factmodel/FactModelWidget.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -1,38 +1,25 @@
 package org.drools.guvnor.client.factmodel;
 
-import java.util.ArrayList;
-
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.ui.*;
+import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
+import com.gwtext.client.widgets.form.FormPanel;
 import org.drools.guvnor.client.common.FormStylePopup;
 import org.drools.guvnor.client.common.ImageButton;
 import org.drools.guvnor.client.common.SmallLabel;
 import org.drools.guvnor.client.rpc.RuleAsset;
 import org.drools.guvnor.client.rpc.RuleContentText;
 import org.drools.guvnor.client.ruleeditor.DefaultRuleContentWidget;
+import org.drools.guvnor.client.ruleeditor.Editor;
 
-import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.Window;
-import com.google.gwt.user.client.ui.Button;
-import com.google.gwt.user.client.ui.ChangeListener;
-import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.FlexTable;
-import com.google.gwt.user.client.ui.HTML;
-import com.google.gwt.user.client.ui.HasHorizontalAlignment;
-import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.KeyboardListener;
-import com.google.gwt.user.client.ui.ListBox;
-import com.google.gwt.user.client.ui.TextBox;
-import com.google.gwt.user.client.ui.VerticalPanel;
-import com.google.gwt.user.client.ui.Widget;
-import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
-import com.gwtext.client.widgets.form.FormPanel;
+import java.util.ArrayList;
 
 /**
  * The editor for fact models (drl declared types).
  *
  * @author Michael Neale
  */
-public class FactModelWidget extends Composite {
+public class FactModelWidget extends Composite implements Editor {
 
 	private RuleAsset asset;
 	private VerticalPanel layout;
@@ -301,4 +288,11 @@
 	}
 
 
+    public String getWrapperClass() {
+        return null;
+    }
+
+    public String getAssetFormat() {
+        return null;
+    }
 }

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java	2008-06-30 20:16:06 UTC (rev 20847)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -16,43 +16,18 @@
  */
 
 
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.drools.guvnor.client.common.DirtyableComposite;
-import org.drools.guvnor.client.common.DirtyableFlexTable;
-import org.drools.guvnor.client.common.DirtyableHorizontalPane;
-import org.drools.guvnor.client.common.DirtyableVerticalPane;
-import org.drools.guvnor.client.common.ErrorPopup;
-import org.drools.guvnor.client.common.FormStylePopup;
-import org.drools.guvnor.client.common.ImageButton;
-import org.drools.guvnor.client.common.SmallLabel;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.ui.*;
+import org.drools.guvnor.client.common.*;
 import org.drools.guvnor.client.modeldriven.HumanReadable;
 import org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine;
-import org.drools.guvnor.client.modeldriven.brl.ActionInsertFact;
-import org.drools.guvnor.client.modeldriven.brl.ActionInsertLogicalFact;
-import org.drools.guvnor.client.modeldriven.brl.ActionRetractFact;
-import org.drools.guvnor.client.modeldriven.brl.ActionSetField;
-import org.drools.guvnor.client.modeldriven.brl.ActionUpdateField;
-import org.drools.guvnor.client.modeldriven.brl.CompositeFactPattern;
-import org.drools.guvnor.client.modeldriven.brl.DSLSentence;
-import org.drools.guvnor.client.modeldriven.brl.FactPattern;
-import org.drools.guvnor.client.modeldriven.brl.IAction;
-import org.drools.guvnor.client.modeldriven.brl.IPattern;
-import org.drools.guvnor.client.modeldriven.brl.RuleAttribute;
-import org.drools.guvnor.client.modeldriven.brl.RuleModel;
+import org.drools.guvnor.client.modeldriven.brl.*;
 import org.drools.guvnor.client.packages.SuggestionCompletionCache;
 import org.drools.guvnor.client.rpc.RuleAsset;
+import org.drools.guvnor.client.ruleeditor.Editor;
 
-import com.google.gwt.user.client.Window;
-import com.google.gwt.user.client.ui.ChangeListener;
-import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.HTML;
-import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.ListBox;
-import com.google.gwt.user.client.ui.Widget;
+import java.util.Iterator;
+import java.util.List;
 
 /**
  * This is the parent widget that contains the model based rule builder.
@@ -60,7 +35,7 @@
  * @author Michael Neale
  *
  */
-public class RuleModeller extends DirtyableComposite {
+public class RuleModeller extends DirtyableComposite implements Editor {
 
     private DirtyableFlexTable layout;
     private SuggestionCompletionEngine completions;
@@ -518,9 +493,7 @@
     /**
      * This adds the widget to the UI, also adding the remove icon.
      */
-    private Widget wrapLHSWidget(final RuleModel model,
-                              int i,
-                              Widget w) {
+    private Widget wrapLHSWidget(final RuleModel model, int i, Widget w) {
         DirtyableHorizontalPane horiz = new DirtyableHorizontalPane();
 
         Image remove = new ImageButton("images/delete_item_small.gif");
@@ -573,5 +546,11 @@
     }
 
 
+    public String getWrapperClass() {
+        return null;
+    }
 
+    public String getAssetFormat() {
+        return null;
+    }
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/ModelAttachmentFileWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/ModelAttachmentFileWidget.java	2008-06-30 20:16:06 UTC (rev 20847)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/ModelAttachmentFileWidget.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -16,8 +16,8 @@
  */
 
 
-
 import org.drools.guvnor.client.rpc.RuleAsset;
+import org.drools.guvnor.client.ruleeditor.Editor;
 import org.drools.guvnor.client.ruleeditor.RuleViewer;
 
 /**
@@ -28,7 +28,7 @@
  * @author Fernando Meyer
  */
 
-public class ModelAttachmentFileWidget extends AssetAttachmentFileWidget {
+public class ModelAttachmentFileWidget extends AssetAttachmentFileWidget implements Editor {
 
     
     public ModelAttachmentFileWidget(RuleAsset asset, RuleViewer viewer) {
@@ -43,7 +43,14 @@
     public String getOverallStyleName() {
         return "editable-Surface";
     }
-    
+
+    public String getWrapperClass() {
+        return null;
+    }
+
+    public String getAssetFormat() {
+        return null;
+    }
 }
 
 /*Composite {

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/ScenarioWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/ScenarioWidget.java	2008-06-30 20:16:06 UTC (rev 20847)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/ScenarioWidget.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -1,33 +1,13 @@
 package org.drools.guvnor.client.qa;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.drools.guvnor.client.common.DirtyableComposite;
-import org.drools.guvnor.client.common.DirtyableFlexTable;
-import org.drools.guvnor.client.common.ErrorPopup;
-import org.drools.guvnor.client.common.FormStylePopup;
-import org.drools.guvnor.client.common.GenericCallback;
-import org.drools.guvnor.client.common.ImageButton;
-import org.drools.guvnor.client.common.LoadingPopup;
-import org.drools.guvnor.client.common.SmallLabel;
-import org.drools.guvnor.client.common.ValueChanged;
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.DeferredCommand;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.ui.*;
+import org.drools.guvnor.client.common.*;
 import org.drools.guvnor.client.modeldriven.DropDownData;
 import org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine;
-import org.drools.guvnor.client.modeldriven.testing.ExecutionTrace;
-import org.drools.guvnor.client.modeldriven.testing.FactData;
-import org.drools.guvnor.client.modeldriven.testing.FieldData;
-import org.drools.guvnor.client.modeldriven.testing.Fixture;
-import org.drools.guvnor.client.modeldriven.testing.RetractFact;
-import org.drools.guvnor.client.modeldriven.testing.Scenario;
-import org.drools.guvnor.client.modeldriven.testing.VerifyFact;
-import org.drools.guvnor.client.modeldriven.testing.VerifyField;
-import org.drools.guvnor.client.modeldriven.testing.VerifyRuleFired;
+import org.drools.guvnor.client.modeldriven.testing.*;
 import org.drools.guvnor.client.modeldriven.ui.ActionValueEditor;
 import org.drools.guvnor.client.modeldriven.ui.ConstraintValueEditor;
 import org.drools.guvnor.client.packages.SuggestionCompletionCache;
@@ -35,30 +15,11 @@
 import org.drools.guvnor.client.rpc.RepositoryServiceFactory;
 import org.drools.guvnor.client.rpc.RuleAsset;
 import org.drools.guvnor.client.rpc.ScenarioRunResult;
+import org.drools.guvnor.client.ruleeditor.Editor;
 
-import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.DeferredCommand;
-import com.google.gwt.user.client.Window;
-import com.google.gwt.user.client.ui.Button;
-import com.google.gwt.user.client.ui.ChangeListener;
-import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.FlexTable;
-import com.google.gwt.user.client.ui.Grid;
-import com.google.gwt.user.client.ui.HTML;
-import com.google.gwt.user.client.ui.HasHorizontalAlignment;
-import com.google.gwt.user.client.ui.HasVerticalAlignment;
-import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.KeyboardListener;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.ListBox;
-import com.google.gwt.user.client.ui.ScrollPanel;
-import com.google.gwt.user.client.ui.TextBox;
-import com.google.gwt.user.client.ui.VerticalPanel;
-import com.google.gwt.user.client.ui.Widget;
+import java.util.*;
 
-public class ScenarioWidget extends Composite {
+public class ScenarioWidget extends Composite implements Editor {
 
 	private ListBox availableRules;
 	private SuggestionCompletionEngine sce;
@@ -577,9 +538,13 @@
 	}
 
 
+    public String getWrapperClass() {
+        return null;
+    }
 
-
-
+    public String getAssetFormat() {
+        return null;
+    }
 }
 
 

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/DSLRuleEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/DSLRuleEditor.java	2008-06-30 20:16:06 UTC (rev 20847)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/DSLRuleEditor.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -42,7 +42,7 @@
  * @author michael neale
  */
 
-public class DSLRuleEditor extends DirtyableComposite {
+public class DSLRuleEditor extends DirtyableComposite implements Editor{
 
     private TextArea      text;
     final private RuleContentText data;
@@ -165,4 +165,11 @@
         this.data.content = text.getText();
     }
 
+    public String getWrapperClass() {
+        return null;
+    }
+
+    public String getAssetFormat() {
+        return null;
+    }
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/DefaultRuleContentWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/DefaultRuleContentWidget.java	2008-06-30 20:16:06 UTC (rev 20847)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/DefaultRuleContentWidget.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -29,7 +29,7 @@
  * This is the default rule editor widget (just text editor based) - more to come later.
  * @author michael neale
  */
-public class DefaultRuleContentWidget extends DirtyableComposite {
+public class DefaultRuleContentWidget extends DirtyableComposite implements Editor {
 
     private TextArea              text;
     final private RuleContentText data;
@@ -88,4 +88,11 @@
         this.data.content = text.getText();
     }
 
+    public String getWrapperClass() {
+        return null;
+    }
+
+    public String getAssetFormat() {
+        return null;
+    }
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/EditorLauncher.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/EditorLauncher.java	2008-06-30 20:16:06 UTC (rev 20847)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/EditorLauncher.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -15,8 +15,6 @@
  * limitations under the License.
  */
 
-
-
 import java.util.HashMap;
 import java.util.Map;
 
@@ -45,17 +43,24 @@
  *
  * @author Michael Neale
  */
+
+public interface EditorLauncher {
+    public Widget getEditorViewer(RuleAsset asset, RuleViewer viewer);
+    public String getAssetFormatIcon(String format);
+}
+
+/*
 public class EditorLauncher {
 
 
     public static final Map TYPE_IMAGES = getTypeImages();
 
-    /**
+    */
+/**
      * This will return the appropriate viewer for the asset.
      *
-     * TODO: the method to be changed in order to make the editors pluggable
-     * TODO: look at http://gwtreflection.sourceforge.net/
      */
+/*
     public static Widget getEditorViewer(RuleAsset asset,
                                          RuleViewer viewer) {
         //depending on the format, load the appropriate editor
@@ -105,10 +110,12 @@
         return result;
     }
 
-    /**
+    */
+/**
      * Get the icon name (not the path), including the extension, for the appropriate
      * asset format.
      */
+/*
     public static String getAssetFormatIcon(String format) {
         String result = (String) TYPE_IMAGES.get( format );
         if (result == null) {
@@ -123,4 +130,4 @@
 
 
 
-}
\ No newline at end of file
+}*/

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/RuleFlowUploadWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/RuleFlowUploadWidget.java	2008-06-30 20:16:06 UTC (rev 20847)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/RuleFlowUploadWidget.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -27,7 +27,7 @@
  * 
  * @author Michael Neale
  */
-public class RuleFlowUploadWidget extends AssetAttachmentFileWidget {
+public class RuleFlowUploadWidget extends AssetAttachmentFileWidget implements Editor {
 
     public RuleFlowUploadWidget(
                                   RuleAsset asset, RuleViewer viewer) {
@@ -44,7 +44,12 @@
     public String getOverallStyleName() {
         return "decision-Table-upload";
     }
-    
 
+    public String getWrapperClass() {
+        return null;
+    }
 
+    public String getAssetFormat() {
+        return null;
+    }
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/RuleViewer.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/RuleViewer.java	2008-06-30 20:16:06 UTC (rev 20847)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/RuleViewer.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -16,31 +16,14 @@
  */
 
 
-
-import org.drools.guvnor.client.common.AssetFormats;
-import org.drools.guvnor.client.common.DirtyableComposite;
-import org.drools.guvnor.client.common.ErrorPopup;
-import org.drools.guvnor.client.common.FormStylePopup;
-import org.drools.guvnor.client.common.GenericCallback;
-import org.drools.guvnor.client.common.LoadingPopup;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.ui.*;
+import org.drools.guvnor.client.common.*;
 import org.drools.guvnor.client.packages.SuggestionCompletionCache;
 import org.drools.guvnor.client.rpc.RepositoryServiceFactory;
 import org.drools.guvnor.client.rpc.RuleAsset;
 
-import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.ui.Button;
-import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.DisclosurePanel;
-import com.google.gwt.user.client.ui.HTML;
-import com.google.gwt.user.client.ui.HasHorizontalAlignment;
-import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.HorizontalSplitPanel;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.VerticalPanel;
-import com.google.gwt.user.client.ui.VerticalSplitPanel;
-import com.google.gwt.user.client.ui.Widget;
-
 /**
  * The main layout parent/controller the rule viewer.
  *
@@ -67,9 +50,7 @@
     }
 
     /**
-     * @param UUID The resource to open.
-     * @param format The type of resource (may determine what editor is used).
-     * @param name The name to be displayed.
+     * @param asset The rule asset to open.
      * @param historicalReadOnly true if this is a read only view for historical purposes.
      */
     public RuleViewer(RuleAsset asset, boolean historicalReadOnly) {
@@ -98,10 +79,10 @@
     private void doWidgets() {
     	layout.clear();
 
+    	//editor = EditorLauncher.getEditorViewer(asset, this);
+        EditorLauncher editorLauncher = (EditorLauncher) GWT.create(EditorLauncher.class);
+        editor = editorLauncher.getEditorViewer(asset, this);
 
-    	editor = EditorLauncher.getEditorViewer(asset, this);
-
-
         //the action widgets (checkin/close etc).
         toolbar = new ActionToolbar( asset,
                                      new Command() {

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulelist/AssetItemGrid.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulelist/AssetItemGrid.java	2008-06-30 20:16:06 UTC (rev 20847)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rulelist/AssetItemGrid.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -30,6 +30,7 @@
 import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.ui.Composite;
 import com.google.gwt.user.client.ui.SimplePanel;
+import com.google.gwt.core.client.GWT;
 import com.gwtext.client.core.EventObject;
 import com.gwtext.client.data.ArrayReader;
 import com.gwtext.client.data.FieldDef;
@@ -245,7 +246,11 @@
                                     public String render(Object value,
                                             CellMetadata cellMetadata, Record record,
                                             int rowIndex, int colNum, Store store) {
-                                        String fmtIcon = "images/" + EditorLauncher.getAssetFormatIcon(record.getAsString("format"));
+
+                                        EditorLauncher editorLauncher = (EditorLauncher) GWT.create(EditorLauncher.class);
+
+                                        //String fmtIcon = "images/" + EditorLauncher.getAssetFormatIcon(record.getAsString("format"));
+                                        String fmtIcon = "images/" + editorLauncher.getAssetFormatIcon(record.getAsString("format"));
                                         String desc = record.getAsString("Description");
                                         if (desc == null) {
                                         	desc = "";

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/rebind/EditorLauncherGenerator.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/rebind/EditorLauncherGenerator.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/rebind/EditorLauncherGenerator.java	2008-06-30 20:58:23 UTC (rev 20848)
@@ -0,0 +1,198 @@
+package org.drools.guvnor.rebind;
+/*
+ * Copyright 2008 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+
+import com.google.gwt.core.ext.Generator;
+import com.google.gwt.core.ext.GeneratorContext;
+import com.google.gwt.core.ext.TreeLogger;
+import com.google.gwt.core.ext.UnableToCompleteException;
+import com.google.gwt.core.ext.typeinfo.JMethod;
+import com.google.gwt.core.ext.typeinfo.JClassType;
+import com.google.gwt.core.ext.typeinfo.TypeOracle;
+import com.google.gwt.user.rebind.ClassSourceFileComposerFactory;
+import com.google.gwt.user.rebind.SourceWriter;
+
+import java.io.FileInputStream;
+import java.io.PrintWriter;
+import java.io.IOException;
+import java.util.Properties;
+
+/**
+ * EditorLauncherGenerator generates the EditorLauncher implementation in order to
+ * simplify implementation of new content editors
+ */
+public class EditorLauncherGenerator extends Generator {
+
+    private static final String CLASS_SUFFIX = "Gen";
+    public static final String EDITORS_LIST = "guvnor-editors.properties";
+
+    SourceWriter sourceWriter;
+
+    /**
+     * runs generation process
+     *
+     * @param logger
+     * @param context
+     * @param typeName
+     * @return
+     * @throws UnableToCompleteException
+     */
+    public String generate(TreeLogger logger, GeneratorContext context, String typeName)
+            throws UnableToCompleteException {
+        String generatedClassQualifiedName = createClass(logger, context, typeName);
+        if (generatedClassQualifiedName == null) {
+            throw new UnableToCompleteException();
+        }
+        return generatedClassQualifiedName;
+    }
+
+    private String createClass(TreeLogger logger, GeneratorContext context, String typeName) {
+        try {
+            TypeOracle typeOracle = context.getTypeOracle();
+            JClassType originalType = typeOracle.getType(typeName);
+            String packageName = originalType.getPackage().getName();
+
+            System.err.println(packageName);
+
+            String originalClassName = originalType.getSimpleSourceName();
+            String generatedClassName = originalClassName + CLASS_SUFFIX;
+
+            if (sourceWriter == null) {
+                sourceWriter = getSourceWriter(logger, context,
+                        originalType, packageName, generatedClassName);
+            }
+
+            if (sourceWriter != null) {
+                writeClass(logger, originalType, sourceWriter);
+            }
+
+
+            return originalType.getParameterizedQualifiedSourceName() + CLASS_SUFFIX;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+
+    //TODO: read a configuration file with the registered content editors and generate the correct code
+    private void writeClass(TreeLogger logger, JClassType originalType, SourceWriter sourceWriter) {
+        JMethod[] methods = originalType.getMethods();
+        sourceWriter.indent();
+
+        sourceWriter.println(
+                "\n" +
+                "    public final Map TYPE_IMAGES = new HashMap(){\n" +
+                "        {\n" +
+                "          put( AssetFormats.DRL, \"technical_rule_assets.gif\" );\n" +
+                "          put( AssetFormats.DSL, \"dsl.gif\" );\n" +
+                "          put( AssetFormats.FUNCTION, \"function_assets.gif\" );\n" +
+                "          put( AssetFormats.MODEL, \"model_asset.gif\" );\n" +
+                "          put( AssetFormats.DECISION_SPREADSHEET_XLS, \"spreadsheet_small.gif\" );\n" +
+                "          put( AssetFormats.BUSINESS_RULE, \"business_rule.gif\" );\n" +
+                "          put( AssetFormats.DSL_TEMPLATE_RULE, \"business_rule.gif\" );\n" +
+                "          put( AssetFormats.RULE_FLOW_RF, \"ruleflow_small.gif\" );\n" +
+                "          put( AssetFormats.TEST_SCENARIO, \"test_manager.gif\");\n" +
+                "          put( AssetFormats.ENUMERATION, \"enumeration.gif\");\n" +
+                "          put( AssetFormats.DECISION_TABLE_GUIDED, \"gdst.gif\");\n" +
+                "        }\n" +
+                "    };" +
+                "\n" +
+                "public Widget getEditorViewer(RuleAsset asset, RuleViewer viewer) {\n" +
+                "        if ( asset.metaData.format.equals( AssetFormats.BUSINESS_RULE ) ) {\n" +
+                "            return new RuleValidatorWrapper( new RuleModeller( asset  ), asset);\n" +
+                "        } else if ( asset.metaData.format.equals( AssetFormats.DSL_TEMPLATE_RULE ) ) {\n" +
+                "            return new RuleValidatorWrapper(new DSLRuleEditor( asset ), asset);\n" +
+                "        } else if ( asset.metaData.format.equals( AssetFormats.MODEL ) ) {\n" +
+                "            return new ModelAttachmentFileWidget( asset, viewer );\n" +
+                "        } else if (asset.metaData.format.equals( AssetFormats.DECISION_SPREADSHEET_XLS )){\n" +
+                "            return new RuleValidatorWrapper(new DecisionTableXLSWidget( asset, viewer ), asset);\n" +
+                "        } else if (asset.metaData.format.equals( AssetFormats.RULE_FLOW_RF )) {\n" +
+                "            return new RuleFlowUploadWidget(asset, viewer);\n" +
+                "        } else if (asset.metaData.format.equals( AssetFormats.DRL )) {\n" +
+                "            return new RuleValidatorWrapper(new DefaultRuleContentWidget( asset ), asset);\n" +
+                "        } else if (asset.metaData.format.equals( AssetFormats.ENUMERATION )) {\n" +
+                "            return new RuleValidatorWrapper(new DefaultRuleContentWidget( asset ), asset);\n" +
+                "        } else if (asset.metaData.format.equals(AssetFormats.TEST_SCENARIO)) {\n" +
+                "            return new ScenarioWidget(asset);\n" +
+                "        } else if (asset.metaData.format.equals(AssetFormats.DECISION_TABLE_GUIDED)) {\n" +
+                "            return new RuleValidatorWrapper(new GuidedDecisionTableWidget(asset), asset);\n" +
+                "        } else if (asset.metaData.format.equals(AssetFormats.DRL_MODEL)) {\n" +
+                "            return new RuleValidatorWrapper(new FactModelWidget(asset), asset);\n" +
+                "        } else {\n" +
+                "            return new DefaultContentUploadEditor( asset, viewer );\n" +
+                "        }\n" +
+                "}" +
+                "\n" +
+                "public String getAssetFormatIcon(String format) {\n" +
+                "    String result = (String) TYPE_IMAGES.get( format );\n" +
+                "    if (result == null) {\n" +
+                "        return \"rule_asset.gif\";\n" +
+                "    } else {\n" +
+                "        return result;\n" +
+                "    }\n" +
+                "}"
+                );
+
+        /*for (int i = 0; i < methods.length; i++) {
+            JMethod method = methods[i];
+            JType returnType = method.getReturnType();
+            JParameter[] parameters = method.getParameters();
+            List ps = Arrays.asList(parameters);
+
+            sourceWriter.println();
+            sourceWriter.println("public " + returnType.getQualifiedSourceName() + " " +
+                    method.getName() + "(" + ps.toString().substring(1, ps.toString().length() - 1) + ") {");
+            sourceWriter.indent();
+            sourceWriter.println("return null;");
+            sourceWriter.println("}");
+            sourceWriter.outdent();
+        }*/
+        sourceWriter.commit(logger);
+    }
+
+    private SourceWriter getSourceWriter(TreeLogger logger,
+                                         GeneratorContext context,
+                                         JClassType originalType,
+                                         String packageName,
+                                         String generatedClassName) {
+        
+        ClassSourceFileComposerFactory classFactory =
+                new ClassSourceFileComposerFactory(packageName, generatedClassName);
+
+        classFactory.addImport("org.drools.guvnor.client.common.AssetFormats");
+        classFactory.addImport("org.drools.guvnor.client.common.DefaultContentUploadEditor");
+        classFactory.addImport("org.drools.guvnor.client.decisiontable.DecisionTableXLSWidget");
+        classFactory.addImport("org.drools.guvnor.client.decisiontable.GuidedDecisionTableWidget");
+        classFactory.addImport("org.drools.guvnor.client.factmodel.FactModelWidget");
+        classFactory.addImport("org.drools.guvnor.client.modeldriven.ui.RuleModeller");
+        classFactory.addImport("org.drools.guvnor.client.packages.ModelAttachmentFileWidget");
+        classFactory.addImport("org.drools.guvnor.client.qa.ScenarioWidget");
+        classFactory.addImport("org.drools.guvnor.client.rpc.RuleAsset");
+        classFactory.addImport("org.drools.guvnor.client.rpc.RuleContentText");
+        classFactory.addImport("com.google.gwt.user.client.ui.Widget");
+        classFactory.addImport("java.util.HashMap");
+        classFactory.addImport("java.util.Map");
+
+        classFactory.addImplementedInterface(originalType.getName());
+        PrintWriter printWriter = context.tryCreate(logger, packageName, generatedClassName);
+        return classFactory.createSourceWriter(context, printWriter);
+    }
+
+
+}
\ No newline at end of file




More information about the jboss-svn-commits mailing list