[jboss-svn-commits] JBL Code SVN: r7247 - in labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms: . client client/breditor client/rpc client/rpc/mock client/ruleeditor gwtutil public server

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Oct 31 07:04:35 EST 2006


Author: michael.neale at jboss.com
Date: 2006-10-31 07:04:20 -0500 (Tue, 31 Oct 2006)
New Revision: 7247

Added:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RuleAsset.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/TextData.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/gwtutil/
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/gwtutil/AsyncInterfaceGenerator.java
Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Rules.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/BREditor.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryService.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryServiceAsync.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/AssetCategoryEditor.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/DefaultRuleContentWidget.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleDocumentWidget.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.html
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java
Log:
added more editors, controllers etc.

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Rules.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Rules.java	2006-10-31 01:13:57 UTC (rev 7246)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Rules.java	2006-10-31 12:04:20 UTC (rev 7247)
@@ -77,8 +77,8 @@
                 }
                 tab.add( view, "<img src='images/drools.gif'>" + displayName, true );
                 tab.selectTab( tab.getWidgetIndex( view ) );
-                view.load();
                 
+                
             }
             
         });    

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/BREditor.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/BREditor.java	2006-10-31 01:13:57 UTC (rev 7246)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/BREditor.java	2006-10-31 12:04:20 UTC (rev 7247)
@@ -12,6 +12,8 @@
 import com.google.gwt.user.client.ui.Widget;
 
 /**
+ * A basic DSL based BUSINESS rule editor.
+ * 
  * This is the editor for "business" rules via a DSL.
  * This uses the EditableLine widget.
  */
@@ -22,7 +24,7 @@
     final int ACTION_COLUMN = 2; //this contains "action" buttons
     
     
-    private Panel panel;
+    private final Panel panel;
     
     /** these lists contain the guts of the rule */
     private List lhs = new ArrayList(); //these will be populated with EditableLine widget
@@ -45,11 +47,13 @@
     public BREditor() {
         panel = new VerticalPanel();
         
+        
         initData();
         initEditorActions();        
         refreshLayoutTable();
         initWidget( panel );
-                
+        setWidth( "100%" );
+        
     }
 
     private void initEditorActions() {
@@ -62,7 +66,7 @@
         addLhsPopupButton = new Image("images/new_item.gif");
         addLhsPopupButton.addClickListener( new ClickListener() {
             public void onClick(Widget sender) {
-                int left = sender.getAbsoluteLeft() + 10;
+                int left = sender.getAbsoluteLeft() - 40;
                 int top = sender.getAbsoluteTop() + 10;
                 lhsSuggestionPopup.setPopupPosition( left, top );
                 lhsSuggestionPopup.show();                
@@ -86,7 +90,7 @@
         addRhsPopupButton.addClickListener( new ClickListener() {
 
             public void onClick(Widget sender) {
-                int left = sender.getAbsoluteLeft() + 10;
+                int left = sender.getAbsoluteLeft() - 40;
                 int top = sender.getAbsoluteTop() + 10;
                 rhsSuggestionPopup.setPopupPosition( left, top );
                 rhsSuggestionPopup.show();              
@@ -255,6 +259,8 @@
         
         //now add the new
         table = new FlexTable();
+        table.setWidth( "100%" );
+        
         table.setStyleName( "rule-breditor-Table" );
         panel.add( table );
     }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryService.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryService.java	2006-10-31 01:13:57 UTC (rev 7246)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryService.java	2006-10-31 12:04:20 UTC (rev 7247)
@@ -43,4 +43,11 @@
      * This returns a list of packages where rules may be added.
      */
     public String[] listRulePackages();
+    
+    /**
+     * This loads up a rule asset based on the UUID (always head version)
+     */
+    public RuleAsset loadAsset(String UUID) throws SerializableException;     
+    
+    
 }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryServiceAsync.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryServiceAsync.java	2006-10-31 01:13:57 UTC (rev 7246)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryServiceAsync.java	2006-10-31 12:04:20 UTC (rev 7247)
@@ -15,69 +15,11 @@
     extends
     RemoteService {
 
-    /**
-
-     * @param categoryPath A "/" delimited path to a category. 
-
-     * @param callback
-
-     */
-
-    public void loadChildCategories(String categoryPath,
-                                    AsyncCallback callback);
-
-    /**
-
-     * Return a a 2d array/grid of results for rules.
-
-     * @param A "/" delimited path to a category.
-
-     * @param status The status flag. Leave blank to be all.
-
-     */
-
-    public void loadRuleListForCategories(String categoryPath,
-                                                     String status, AsyncCallback callback);
-
-    /**
-
-     * This will return a TableConfig of header names.
-
-     * @param listName The name of the list that we are going to render.
-
-     */
-
-    public void loadTableConfig(String listName,
-                                AsyncCallback callback);
-
-    /**
-
-     * This will create a new category at the specified path.
-
-     */
-
-    public void createCategory(String path,
-                               String name,
-                               String description,
-                               AsyncCallback callback);
-
-    /**
-
-     * Creates a brand new rule with the initial category.
-
-     */
-
-    public void createNewRule(String ruleName,
-                                 String description,
-                                 String initialCategory,
-                                 String initialPackage,
-                                 AsyncCallback callBack);
-
-    /**
-
-     * This returns a list of packages where rules may be added.
-
-     */
-
-    public void listRulePackages(AsyncCallback callback);
+    public void loadChildCategories(java.lang.String p0, AsyncCallback cb);
+    public void loadRuleListForCategories(java.lang.String p0, java.lang.String p1, AsyncCallback cb);
+    public void loadTableConfig(java.lang.String p0, AsyncCallback cb);
+    public void createCategory(java.lang.String p0, java.lang.String p1, java.lang.String p2, AsyncCallback cb);
+    public void createNewRule(java.lang.String p0, java.lang.String p1, java.lang.String p2, java.lang.String p3, AsyncCallback cb);
+    public void listRulePackages(AsyncCallback cb);
+    public void loadAsset(java.lang.String p0, AsyncCallback cb);
 }

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RuleAsset.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RuleAsset.java	2006-10-31 01:13:57 UTC (rev 7246)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RuleAsset.java	2006-10-31 12:04:20 UTC (rev 7247)
@@ -0,0 +1,18 @@
+package org.drools.brms.client.rpc;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+
+/**
+ * This is the "payload" of a rule asset.
+ * Includes the meta data.
+ * 
+ * @author Michael Neale
+ */
+public class RuleAsset
+    implements
+    IsSerializable {
+    
+    public MetaData metaData;
+    public IsSerializable ruleAsset;
+
+}

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/TextData.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/TextData.java	2006-10-31 01:13:57 UTC (rev 7246)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/TextData.java	2006-10-31 12:04:20 UTC (rev 7247)
@@ -0,0 +1,12 @@
+package org.drools.brms.client.rpc;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+
+/**
+ * This contains the payload for vanilla text of a rule.
+ * Basically is a mutable string.
+ */
+public class TextData implements IsSerializable {
+    public String content;
+    public boolean dirty;
+}

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java	2006-10-31 01:13:57 UTC (rev 7246)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java	2006-10-31 12:04:20 UTC (rev 7247)
@@ -1,9 +1,12 @@
 package org.drools.brms.client.rpc.mock;
 
+import org.drools.brms.client.rpc.MetaData;
 import org.drools.brms.client.rpc.RepositoryServiceAsync;
+import org.drools.brms.client.rpc.RuleAsset;
 import org.drools.brms.client.rpc.TableConfig;
 import org.drools.brms.client.rpc.TableDataResult;
 import org.drools.brms.client.rpc.TableDataRow;
+import org.drools.brms.client.rpc.TextData;
 
 import com.google.gwt.user.client.Timer;
 import com.google.gwt.user.client.rpc.AsyncCallback;
@@ -126,6 +129,40 @@
     public void listRulePackages(AsyncCallback callback) {
         callback.onSuccess( new String[] {"a package"} );        
     }
+
+
+
+    public void loadAsset(String uuid,
+                          AsyncCallback cb) {
+        
+        log( "loadAsset", "loading UUID"  + uuid);
+        final RuleAsset asset = new RuleAsset();
+        MetaData meta = new MetaData();
+        meta.categories = new String[] {"Approval", "Age related"};
+        meta.name = "age rejection 1";
+        if (uuid.endsWith( "1" )) {
+            meta.format = "DRL";
+            TextData text = new TextData();
+            asset.ruleAsset = text;
+            text.content = "rule la\n\twhen\n\t\tSomething() ...";
+            
+        } else {
+            meta.format = "DSL";
+        }
+        
+        asset.metaData = meta;
+        final AsyncCallback finalCb = cb;
+        Timer t = new Timer() {
+
+            public void run() {
+                finalCb.onSuccess( asset );
+            }
+            
+        };
+        t.schedule( 400 );
+        
+        
+    }
     
     
 

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/AssetCategoryEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/AssetCategoryEditor.java	2006-10-31 01:13:57 UTC (rev 7246)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/AssetCategoryEditor.java	2006-10-31 12:04:20 UTC (rev 7247)
@@ -1,15 +1,10 @@
 package org.drools.brms.client.ruleeditor;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.drools.brms.client.categorynav.CategoryExplorerWidget;
 import org.drools.brms.client.categorynav.CategorySelectHandler;
-import org.drools.brms.client.common.RulePackageSelector;
 import org.drools.brms.client.rpc.MetaData;
 
 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.HorizontalPanel;
@@ -47,7 +42,6 @@
         box.setVisibleItemCount( 3 );
         box.setWidth( "100%" );
         
-        box.setMultipleSelect( true );
         loadData( box );        
         panel.add( box );
         

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/DefaultRuleContentWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/DefaultRuleContentWidget.java	2006-10-31 01:13:57 UTC (rev 7246)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/DefaultRuleContentWidget.java	2006-10-31 12:04:20 UTC (rev 7247)
@@ -1,7 +1,11 @@
 package org.drools.brms.client.ruleeditor;
 
+import org.drools.brms.client.rpc.TextData;
+
+import com.google.gwt.user.client.ui.ChangeListener;
 import com.google.gwt.user.client.ui.Composite;
 import com.google.gwt.user.client.ui.TextArea;
+import com.google.gwt.user.client.ui.Widget;
 
 
 /**
@@ -12,12 +16,20 @@
 	
 	private TextArea text;
 	
-	public DefaultRuleContentWidget(String content) {
+	public DefaultRuleContentWidget(final TextData data) {
 		text = new TextArea();
 		text.setWidth("100%");
 		text.setHeight("100%");
 		text.setVisibleLines(10);
-		text.setText(content);		
+		text.setText(data.content);
+        
+        text.addChangeListener( new ChangeListener() {
+            public void onChange(Widget w) {
+                data.content = text.getText();
+                data.dirty = true;
+            }
+        });
+        
 		initWidget(text);
 	}
 }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java	2006-10-31 01:13:57 UTC (rev 7246)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java	2006-10-31 12:04:20 UTC (rev 7247)
@@ -27,14 +27,23 @@
     private MetaData data;
     private boolean readOnly;
 	
-	public MetaDataWidget(MetaData d, boolean readOnly) {
+	public MetaDataWidget(String name, boolean readOnly) {
         this.readOnly = readOnly;
-        this.data = d;
+        
         initWidget( layout );
         
-        addHeader("images/meta_data.gif", data.name);
+        addHeader("images/meta_data.gif", name);
 
-        addAttribute("Subject", editableText(new FieldBinding() {
+              
+        
+	}
+
+
+    public void loadData(MetaData d) {
+        this.data = d;
+        addAttribute("Categories:", categories());
+        
+        addAttribute("Subject:", editableText(new FieldBinding() {
             public String getValue() {
                 return data.subject;
             }
@@ -42,18 +51,16 @@
             public void setValue(String val) {
                 data.subject = val;                
             }            
-        }));
+        }, "A short description of the subject matter."));            
         
-        
-        addAttribute("Categories", categories());
-        
-        addAttribute("Package", new Label(data.packageName));
-        addAttribute("Last modified on:", new Label(data.lastModifiedDate));
-        addAttribute("Last modified by:", new Label(data.lastContributor));
-        addAttribute("Created by:", new Label(data.creator));
-        addAttribute("Version number:", new Label("" + data.versionNumber));
-        
-        addAttribute("Type", editableText(new FieldBinding() {
+        addAttribute("Last modified on:", readOnlyText(data.lastModifiedDate));
+        addAttribute("Last modified by:", readOnlyText(data.lastContributor));
+        addAttribute("Created by:", readOnlyText(data.creator));
+        addAttribute("Version number:", readOnlyText("" + data.versionNumber));
+        addAttribute("Package:", readOnlyText(data.packageName));
+                
+            
+        addAttribute("Type:", editableText(new FieldBinding() {
             public String getValue() {
                 return data.type;
             }
@@ -62,30 +69,52 @@
                 data.type = val;
             }
             
-        }));
+        }, "This is for classification purposes."));
         
+        addAttribute("External link:", editableText(new FieldBinding() {
+            public String getValue() {
+                return data.externalRelation;
+            }
+
+            public void setValue(String val) {
+                data.externalRelation = val;
+            }
+            
+        }, "This is for relating the asset to an external system."));    
         
-        
-	}
+        addAttribute("Source:", editableText(new FieldBinding() {
+            public String getValue() {
+                return data.externalSource;
+            }
 
-    
+            public void setValue(String val) {
+                data.externalSource = val;
+            }
+            
+        }, "A short description or code indicating the source of the rule."));
+    }
 
 
 
+    private Label readOnlyText(String text) {
+        Label lbl = new Label(text);
+        lbl.setWidth( "100%" );
+        return lbl;
+    }
 
 
+
     private Widget categories() {
-        
         AssetCategoryEditor ed = new AssetCategoryEditor(this.data, this.readOnly);
         return ed;
-        
     }
 
 
     /** This binds a field, and returns a text editor for it */
-    private Widget editableText(final FieldBinding bind) {
+    private Widget editableText(final FieldBinding bind, String toolTip) {
         if (!readOnly) {
             final TextBox box = new TextBox();
+            box.setTitle( toolTip );
             box.setText( bind.getValue() );
             ChangeListener listener = new ChangeListener() {    
                 public void onChange(Widget w) {   

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleDocumentWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleDocumentWidget.java	2006-10-31 01:13:57 UTC (rev 7246)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleDocumentWidget.java	2006-10-31 12:04:20 UTC (rev 7247)
@@ -9,7 +9,7 @@
 
 /**
  * This holds the editor and viewer for rule documentation.
- * 
+ * It will update the model when the text is changed.
  * @author Michael Neale
  *
  */
@@ -17,20 +17,24 @@
 
 	private TextArea text;
 	
-	public RuleDocumentWidget(final MetaData data) {
-        
+	public RuleDocumentWidget() {
 		text = new TextArea();
         text.setVisibleLines( 10 );
-		text.setText(data.description);
         text.setStyleName( "rule-viewer-Documentation" );        
-        
+        text.setTitle( "This is rule documentation. Human friendly descriptions of the business logic.");
+		initWidget(text);
+	}
+
+    public void loadData(final MetaData data) {
+        text.setText(data.description);
         text.addChangeListener( new ChangeListener() {
-            public void onChange(Widget w) {
+            public void onChange(Widget w) {                
                 data.description = text.getText();
+                data.dirty = true;
             }            
         });
-        
-		initWidget(text);
-	}
+    }
+    
+    
 	
 }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java	2006-10-31 01:13:57 UTC (rev 7246)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java	2006-10-31 12:04:20 UTC (rev 7247)
@@ -1,11 +1,17 @@
 package org.drools.brms.client.ruleeditor;
 
 import org.drools.brms.client.breditor.BREditor;
+import org.drools.brms.client.common.ErrorPopup;
 import org.drools.brms.client.rpc.MetaData;
+import org.drools.brms.client.rpc.RepositoryServiceFactory;
+import org.drools.brms.client.rpc.RuleAsset;
+import org.drools.brms.client.rpc.TextData;
 
+import com.google.gwt.user.client.rpc.AsyncCallback;
 import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.FlexTable;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
 
 /**
  * The main layout parent/controller the rule viewer.
@@ -14,11 +20,15 @@
  */
 public class RuleViewer extends Composite {
 	
-	private String resourceUUID;
-    private String name;
-    private String format;
+	private final String resourceUUID;
+    private final String name;
+    private final String format;
+    private MetaData metaData;
     
     
+    private FlexTable layout = new FlexTable();
+    protected RuleAsset asset;
+    
     /**
      * @param UUID The resource to open.
      * @param format The type of resource (will determine what editor is used).
@@ -29,38 +39,65 @@
         this.name = name;
         this.format = format;
         
-		HorizontalPanel horiz = new HorizontalPanel();	
-		horiz.setWidth("100%");
-		horiz.setHeight("100%");
-		VerticalPanel ruleAndDoc = new VerticalPanel();
-		
-        MetaData data = loadMetaData();
-        data.name = name;
+        //just pad it out a bit, so it gets the layout right - it will be loaded later.
+        layout.setWidget( 0, 0, new Label("Loading ...") );
+        layout.setWidget( 0, 1, new Label("") );
+        layout.setWidget( 1, 0, new Label("") );
+        layout.setWidget( 1, 1, new Label("") );
+        layout.setWidget( 2, 0, new Label("") );
+        layout.setWidget( 2, 1, new Label("") );
         
-		horiz.add(new MetaDataWidget(data, false));
-		horiz.add(ruleAndDoc);
-		
-		ruleAndDoc.setWidth("100%");
-		ruleAndDoc.setHeight("100%");
-		//ruleAndDoc.add(new DefaultRuleContentWidget("when\n\tPerson(age < 42)\nthen\n\tpanic();"));
-        BREditor ed = new BREditor();
-        ed.setWidth( "100%" );
-        ruleAndDoc.add( ed);
-		ruleAndDoc.add(new RuleDocumentWidget(data));
-		
-		initWidget(horiz);
+        RepositoryServiceFactory.getService().loadAsset( this.resourceUUID, new AsyncCallback() {
+            public void onFailure(Throwable e) {
+                ErrorPopup.showMessage( e.getMessage() );
+            }
+            public void onSuccess(Object o) {
+                asset = (RuleAsset) o;                
+                loadAssetData();
+            }
+            
+        });
+        
+		initWidget(layout);
 	}
-
-    private MetaData loadMetaData() {
-        return new MetaData();
-    }
-
+    
+    
     /**
-     * This will kick off the loading of the data.
+     * This will actually load up the data (this is called by the callback 
+     * when we get the data back from the server,
+     * also determines what widgets to load up).
      */
-    public void load() {
+    private void loadAssetData() {
+        metaData = asset.metaData;
         
         
+        final MetaDataWidget metaWidget = new MetaDataWidget(this.name, false);
+        
+        //now the layout table
+        FlexCellFormatter formatter =  layout.getFlexCellFormatter();
+        layout.setWidget( 0, 0, metaWidget );
+        formatter.setRowSpan( 0, 0, 3 );
+        formatter.setWidth( 0, 0, "40%" );        
+        
+        layout.setWidget( 0, 1, new Label("") );
+        
+        if (metaData.format.equals( "DSL" )) {
+            BREditor ed = new BREditor();
+            layout.setWidget( 1, 1, ed );
+        } else {
+            DefaultRuleContentWidget ed = new DefaultRuleContentWidget((TextData) asset.ruleAsset);
+            layout.setWidget( 1, 1, ed );
+        }
+
+        final RuleDocumentWidget doco = new RuleDocumentWidget();
+        layout.setWidget( 2, 1, doco );
+        metaWidget.loadData( metaData );
+        doco.loadData( metaData );
     }
+    
 
+
+
+
+
 }

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/gwtutil/AsyncInterfaceGenerator.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/gwtutil/AsyncInterfaceGenerator.java	2006-10-31 01:13:57 UTC (rev 7246)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/gwtutil/AsyncInterfaceGenerator.java	2006-10-31 12:04:20 UTC (rev 7247)
@@ -0,0 +1,44 @@
+package org.drools.brms.gwtutil;
+
+import java.lang.reflect.Method;
+import java.util.Iterator;
+
+import org.drools.brms.client.rpc.RepositoryService;
+
+/**
+ * This utility uses reflection to generate the async interface from the 
+ * Service interface as per GWT standard.
+ * 
+ * @author Michael Neale
+ */
+public class AsyncInterfaceGenerator {
+
+    public static void main(String[] args) throws Exception {
+        Class cls = RepositoryService.class;
+        String line = "";
+        Method[] methods = cls.getMethods();
+        for ( int i = 0; i < methods.length; i++ ) {
+            Method meth = methods[i];
+            if (meth.getDeclaringClass() == cls) {
+                line += "public void " + meth.getName() + "(";
+                Class params[] = meth.getParameterTypes();
+                for ( int j = 0; j < params.length; j++ ) {
+                    line += params[j].getName();
+                    line += " p" + j;
+                    if (j < params.length -1) {
+                        line += ", ";
+                    }
+                }
+                if (line.endsWith( "(" )) {
+                    line += "AsyncCallback cb";
+                } else {
+                    line += ", AsyncCallback cb";
+                }
+                line += ");\n";
+            }
+        }
+        
+        System.out.println(line);
+    }
+
+}

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.html
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.html	2006-10-31 01:13:57 UTC (rev 7246)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.html	2006-10-31 12:04:20 UTC (rev 7247)
@@ -7,8 +7,6 @@
 	    <link rel="icon" href="images/drools.gif" type="image/gif">		
 	</head>
 	<body> 
-			
-
 		<img src="images/top_logo.png" />
 		<!-- This script is the bootstrap stuff that simply must be there; it is sent down uncompressed -->
 		<script language='javascript' src='gwt.js'></script>

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java	2006-10-31 01:13:57 UTC (rev 7246)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java	2006-10-31 12:04:20 UTC (rev 7247)
@@ -11,6 +11,7 @@
 import javax.servlet.http.HttpSession;
 
 import org.drools.brms.client.rpc.RepositoryService;
+import org.drools.brms.client.rpc.RuleAsset;
 import org.drools.brms.client.rpc.TableConfig;
 import org.drools.brms.client.rpc.TableDataResult;
 import org.drools.brms.client.rpc.TableDataRow;
@@ -182,6 +183,8 @@
         }
         return repository;
     }
+
+
     
     
 




More information about the jboss-svn-commits mailing list