[jboss-svn-commits] JBL Code SVN: r7178 - in labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms: client client/rpc client/ruleeditor public

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Oct 27 14:57:44 EDT 2006


Author: michael.neale at jboss.com
Date: 2006-10-27 14:57:33 -0400 (Fri, 27 Oct 2006)
New Revision: 7178

Added:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/MetaData.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/CategoryViewer.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/RuleViewer.java
Removed:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleMetaDataWidget.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleView.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/ruleeditor/DefaultRuleContentWidget.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/public/JBRMS.css
Log:
lots a refactoring and the meta data editor

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-27 17:57:23 UTC (rev 7177)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Rules.java	2006-10-27 18:57:33 UTC (rev 7178)
@@ -3,7 +3,7 @@
 import org.drools.brms.client.categorynav.CategoryExplorerWidget;
 import org.drools.brms.client.categorynav.CategorySelectHandler;
 import org.drools.brms.client.ruleeditor.NewRuleWizard;
-import org.drools.brms.client.ruleeditor.RuleView;
+import org.drools.brms.client.ruleeditor.RuleViewer;
 import org.drools.brms.client.rulelist.EditItemEvent;
 import org.drools.brms.client.rulelist.RuleItemListViewer;
 
@@ -55,46 +55,29 @@
 	}
     
     
-    
-    
 
-    private RuleView doRuleViewer() {
-        RuleView ruleViewer = new RuleView();
-		ruleViewer.setWidth("100%");
-		ruleViewer.setHeight("100%");
-        return ruleViewer;
-    }
-
     /** This will setup the explorer tab */
 	private FlexTable doExplore(final TabPanel tab) {
 		FlexTable  table = new FlexTable();
         
-        //setup the list
-//        final RuleListView list = new RuleListView(new EditItemEvent() {
-//
-//            public void open(String[] rowData) {
-//                tab.selectTab( EDITOR_TAB );                
-//            }
-//            
-//        });         
-        
+        //and the the delegate to open an editor for a rule resource when
+        //chosen to
         final RuleItemListViewer list = new RuleItemListViewer(new EditItemEvent() {
-
             
 
             public void open(String key,
                              String type,
                              String name) {
-
-                System.out.println("opening key [" + key + "]");
-                System.out.println("opening type [" + type + "]");
-                System.out.println("opening name [" + name + "]");
-                RuleView view = new RuleView();
+ 
+                RuleViewer view = new RuleViewer(key, type, name);
                 
-                String ruleName = name;
-                tab.add( view, "<img src='images/drools.gif'>" + ruleName, true );
+                String displayName = name;
+                if (name.length() > 10) {
+                    displayName = name.substring( 0, 7 ) + "...";
+                }
+                tab.add( view, "<img src='images/drools.gif'>" + displayName, true );
                 tab.selectTab( tab.getWidgetIndex( view ) );
-                view.loadUUID(key);
+                view.load();
                 
             }
             

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/MetaData.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/MetaData.java	2006-10-27 17:57:23 UTC (rev 7177)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/MetaData.java	2006-10-27 18:57:33 UTC (rev 7178)
@@ -0,0 +1,41 @@
+package org.drools.brms.client.rpc;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+
+/**
+ * This is the DTO for a versionable asset's meta data.
+ * ie basically everything except the payload.
+ */
+public class MetaData
+    implements
+    IsSerializable {
+
+    public String name = "";
+    public String description = "";
+    
+    public String title = "";
+    public String state = "";
+
+    public String lastModifiedDate = "";
+    public String lastContributor = "";
+    public int versionNumber;
+
+    public String packageName = "";
+    public String[] categories = new String[0];
+    
+    
+    public String format = "";
+    public String type = "";
+    public String creator = "";
+    public String externalSource = "";
+    public String subject = "";
+    public String externalRelation = "";
+    public String rights = ""; 
+    public String coverage = "";
+    public String publisher = "";   
+    
+    
+    /** used to flag dirty - ie needs to be spanked. Or saved to the repo, whatever */
+    public boolean dirty = false;
+
+}

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/CategoryViewer.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/CategoryViewer.java	2006-10-27 17:57:23 UTC (rev 7177)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/CategoryViewer.java	2006-10-27 18:57:33 UTC (rev 7178)
@@ -0,0 +1,37 @@
+package org.drools.brms.client.ruleeditor;
+
+import org.drools.brms.client.rpc.MetaData;
+
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.ListBox;
+
+/**
+ * This is a viewer/editor for categories.
+ * It will show a list of categories currently applicable, and allow you to 
+ * remove/add to them.
+ * @author Michael Neale
+ */
+public class CategoryViewer extends Composite {
+
+    private MetaData data;
+    private HorizontalPanel panel = new HorizontalPanel();
+    
+    public CategoryViewer(MetaData d) {
+        this.data = d;
+        ListBox box = new ListBox();
+        
+        box.setMultipleSelect( true );
+        loadData( box );
+        
+        initWidget( panel );
+        
+    }
+
+    private void loadData(ListBox box) {
+        for ( int i = 0; i < data.categories.length; i++ ) {
+            box.addItem( data.categories[i] );
+        }
+    }
+    
+}

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-27 17:57:23 UTC (rev 7177)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/DefaultRuleContentWidget.java	2006-10-27 18:57:33 UTC (rev 7178)
@@ -18,6 +18,6 @@
 		text.setHeight("100%");
 		text.setVisibleLines(10);
 		text.setText(content);		
-		setWidget(text);
+		initWidget(text);
 	}
 }

Copied: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java (from rev 7172, labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleMetaDataWidget.java)
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleMetaDataWidget.java	2006-10-27 09:40:22 UTC (rev 7172)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java	2006-10-27 18:57:33 UTC (rev 7178)
@@ -0,0 +1,202 @@
+package org.drools.brms.client.ruleeditor;
+
+import org.drools.brms.client.rpc.MetaData;
+
+import com.google.gwt.user.client.ui.ChangeListener;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.FlexTable;
+import com.google.gwt.user.client.ui.HasHorizontalAlignment;
+import com.google.gwt.user.client.ui.HasVerticalAlignment;
+import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.ListBox;
+import com.google.gwt.user.client.ui.TextArea;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
+
+/**
+ * This displays the metadata for a versionable asset.
+ * It also captures edits, but it does not load or save anything itself.
+ * @author Michael Neale
+ */
+public class MetaDataWidget extends Composite {
+
+    
+    
+	private FlexTable layout = new FlexTable();
+    private FlexCellFormatter formatter = layout.getFlexCellFormatter();
+	private int numInLayout = 0;
+    private MetaData data;
+	
+	
+	public MetaDataWidget(MetaData d, boolean readOnly) {
+        this.data = d;
+        initWidget( layout );
+        
+        addHeader("images/meta_data.gif", data.name);
+
+        addAttribute("Subject", editableText(new FieldBinding() {
+            public String getValue() {
+                return data.subject;
+            }
+
+            public void setValue(String val) {
+                data.subject = val;                
+            }            
+        }));
+        
+        
+        //addAttribute("Description", description());
+        
+        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("Status", status());
+        
+        addAttribute("Type", editableText(new FieldBinding() {
+
+            public String getValue() {
+                return data.type;
+            }
+
+            public void setValue(String val) {
+                data.type = val;
+            }
+            
+        }));
+        
+        
+        
+	}
+
+    
+
+
+
+
+
+    private Widget categories() {
+        
+        ListBox box = new ListBox();
+        for ( int i = 0; i < data.categories.length; i++ ) {
+            String cat = data.categories[i];
+            box.addItem( cat );
+        }
+        
+        return box;
+        
+    }
+
+
+
+
+
+
+
+    /** This binds a field, and returns a text editor for it */
+    private Widget editableText(final FieldBinding bind) {
+        final TextBox box = new TextBox();
+        box.setText( bind.getValue() );
+        ChangeListener listener = new ChangeListener() {
+
+            public void onChange(Widget w) {   
+                data.dirty = true;     
+                bind.setValue( box.getText() );                
+            }
+            
+        };
+        
+        box.addChangeListener( listener );
+        return box;        
+    }
+
+    
+
+
+    
+
+
+
+
+
+    private Widget description() {
+        final TextArea box = new TextArea();
+        box.setText( data.description );
+        box.setVisibleLines( 10 );
+        box.setWidth( "100%" );
+        box.setStyleName( "rule-viewer-Documentation" );
+        ChangeListener listener = new ChangeListener() {
+
+            public void onChange(Widget w) {   
+                data.dirty = true;     
+                data.description = box.getText();                
+            }
+            
+        };
+        
+        box.addChangeListener( listener );
+        return box;        
+    }    
+
+
+
+    /** used to bind fields in the meta data DTO to the form */
+    static interface FieldBinding {
+        void setValue(String val);
+        String getValue();
+    }
+
+    /**
+     * Adds a header at the top.
+     */
+    private void addHeader(String image, String title) {
+        layout.setWidget( 0, 0, new Image(image) );
+        formatter.setAlignment( 0, 0, HasHorizontalAlignment.ALIGN_LEFT, HasVerticalAlignment.ALIGN_TOP );
+        
+        Label name = new Label(title);
+        name.setStyleName( "resource-name-Label" );
+        
+        layout.setWidget( 0, 1, name );
+        numInLayout++;
+    }
+
+
+    /**
+     * Add a widget to the "form".
+     */
+    private void addAttribute(String lbl,
+                     Widget editor) {
+        Label label = new Label(lbl);
+        layout.setWidget( numInLayout, 0, label );
+        formatter.setAlignment( numInLayout, 0, HasHorizontalAlignment.ALIGN_RIGHT, HasVerticalAlignment.ALIGN_TOP );
+        layout.setWidget( numInLayout, 1, editor );
+        formatter.setAlignment( numInLayout, 1, HasHorizontalAlignment.ALIGN_LEFT, HasVerticalAlignment.ALIGN_TOP );
+        
+        numInLayout++;
+        
+    }
+
+
+    /**
+     * This is used if the data is dirty, ie change pending save.
+     */
+    public boolean isDirty() {
+        return data.dirty;
+    }
+    
+    /**
+     * Return the data if it is to be saved.
+     */
+    public MetaData getData() {
+        return data;
+    }
+
+	
+	
+}

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-27 17:57:23 UTC (rev 7177)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleDocumentWidget.java	2006-10-27 18:57:33 UTC (rev 7178)
@@ -1,11 +1,15 @@
 package org.drools.brms.client.ruleeditor;
 
+import org.drools.brms.client.rpc.MetaData;
+
+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;
 
 /**
  * This holds the editor and viewer for rule documentation.
- * TODO: make this rich text.
+ * 
  * @author Michael Neale
  *
  */
@@ -13,12 +17,18 @@
 
 	private TextArea text;
 	
-	public RuleDocumentWidget(String content) {
+	public RuleDocumentWidget(final MetaData data) {
+        
 		text = new TextArea();
         text.setVisibleLines( 10 );
-		text.setText(content);
-        text.setStyleName( "rule-viewer-Documentation" );
+		text.setText(data.description);
+        text.setStyleName( "rule-viewer-Documentation" );        
         
+        text.addChangeListener( new ChangeListener() {
+            public void onChange(Widget w) {
+                data.description = text.getText();
+            }            
+        });
         
 		initWidget(text);
 	}

Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleMetaDataWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleMetaDataWidget.java	2006-10-27 17:57:23 UTC (rev 7177)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleMetaDataWidget.java	2006-10-27 18:57:33 UTC (rev 7178)
@@ -1,68 +0,0 @@
-package org.drools.brms.client.ruleeditor;
-
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.FlexTable;
-import com.google.gwt.user.client.ui.HasHorizontalAlignment;
-import com.google.gwt.user.client.ui.HasVerticalAlignment;
-import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.TextArea;
-import com.google.gwt.user.client.ui.TextBox;
-import com.google.gwt.user.client.ui.Widget;
-import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
-
-/**
- * This displays the metadata for a versionable asset.
- * Also can be editable.
- * 
- * @author Michael Neale
- */
-public class RuleMetaDataWidget extends Composite {
-
-	private FlexTable layout = new FlexTable();
-    private FlexCellFormatter formatter = layout.getFlexCellFormatter();
-	private int numInLayout = 0;
-	
-	
-	public RuleMetaDataWidget() {
-        initWidget( layout );
-        
-        addHeader("images/new_wiz.gif", "Underage price 1");
-        addAttribute(new Label("type"), new TextBox());
-        addAttribute(new Label("description"), new TextArea() );
-        
-	}
-
-    
-    /**
-     * Adds a header at the top.
-     */
-    private void addHeader(String image, String title) {
-        layout.setWidget( 0, 0, new Image(image) );
-        formatter.setAlignment( 0, 0, HasHorizontalAlignment.ALIGN_LEFT, HasVerticalAlignment.ALIGN_TOP );
-        
-        layout.setWidget( 0, 1, new Label(title) );
-        numInLayout++;
-    }
-
-
-    /**
-     * Add a widget to the "form".
-     */
-    private void addAttribute(Widget label,
-                     Widget editor) {
-        layout.setWidget( numInLayout, 0, label );
-        formatter.setAlignment( numInLayout, 0, HasHorizontalAlignment.ALIGN_RIGHT, HasVerticalAlignment.ALIGN_TOP );
-        layout.setWidget( numInLayout, 1, editor );
-        formatter.setAlignment( numInLayout, 1, HasHorizontalAlignment.ALIGN_LEFT, HasVerticalAlignment.ALIGN_TOP );
-        
-        numInLayout++;
-        
-    }
-
-
-
-
-	
-	
-}

Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleView.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleView.java	2006-10-27 17:57:23 UTC (rev 7177)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleView.java	2006-10-27 18:57:33 UTC (rev 7178)
@@ -1,47 +0,0 @@
-package org.drools.brms.client.ruleeditor;
-
-import org.drools.brms.client.breditor.BREditor;
-
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.VerticalPanel;
-
-/**
- * The main layout parent/controller the rule viewer.
- * 
- * @author Michael Neale
- */
-public class RuleView extends Composite {
-	
-	private String resourceUUID;
-
-    public RuleView() {
-		HorizontalPanel horiz = new HorizontalPanel();	
-		horiz.setWidth("100%");
-		horiz.setHeight("100%");
-		VerticalPanel ruleAndDoc = new VerticalPanel();
-		
-		horiz.add(new RuleMetaDataWidget());
-		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("This is a rule telling us when to panic."));
-		
-		initWidget(horiz);
-	}
-
-    /**
-     * This UUID indicates what versionable asset to load.
-     * @param key a UUID to the repository.
-     */
-    public void loadUUID(String key) {
-        this.resourceUUID = key;
-        
-    }
-
-}

Copied: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java (from rev 7172, labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleView.java)
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleView.java	2006-10-27 09:40:22 UTC (rev 7172)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java	2006-10-27 18:57:33 UTC (rev 7178)
@@ -0,0 +1,66 @@
+package org.drools.brms.client.ruleeditor;
+
+import org.drools.brms.client.breditor.BREditor;
+import org.drools.brms.client.rpc.MetaData;
+
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.VerticalPanel;
+
+/**
+ * The main layout parent/controller the rule viewer.
+ * 
+ * @author Michael Neale
+ */
+public class RuleViewer extends Composite {
+	
+	private String resourceUUID;
+    private String name;
+    private String format;
+    
+    
+    /**
+     * @param UUID The resource to open.
+     * @param format The type of resource (will determine what editor is used).
+     * @param name The name to be displayed.
+     */
+    public RuleViewer(String UUID, String format,  String name) {
+        this.resourceUUID = UUID;
+        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;
+        
+		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);
+	}
+
+    private MetaData loadMetaData() {
+        return new MetaData();
+    }
+
+    /**
+     * This will kick off the loading of the data.
+     */
+    public void load() {
+        
+        
+    }
+
+}

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css	2006-10-27 17:57:23 UTC (rev 7177)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css	2006-10-27 18:57:33 UTC (rev 7178)
@@ -147,9 +147,13 @@
 }
 
 .gwt-TextArea {
+  border: 1px solid #87B3FF;
+  padding: 0px;
 }
 
 .gwt-TextBox {
+  border: 1px solid #87B3FF;
+  padding: 0px;	
 }
 
 .gwt-Tree {
@@ -347,6 +351,10 @@
 
 /* end the rule list stuff */
 
+.resource-name-Label {
+	font-size: larger;
+ 	font-weight: bold;
+}
 
 .infoProse {
   margin: 8px;




More information about the jboss-svn-commits mailing list