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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Nov 15 08:00:18 EST 2006


Author: michael.neale at jboss.com
Date: 2006-11-15 08:00:08 -0500 (Wed, 15 Nov 2006)
New Revision: 7614

Added:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStyleLayout.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStylePopup.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/save_edit.gif
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/warning-large.png
Removed:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Rules.java
Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/JBRMSFeatureConfigurator.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/ActionToolbar.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
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css
Log:
JBRULES-558 - commit warning and dirty check

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/JBRMSFeatureConfigurator.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/JBRMSFeatureConfigurator.java	2006-11-15 12:53:24 UTC (rev 7613)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/JBRMSFeatureConfigurator.java	2006-11-15 13:00:08 UTC (rev 7614)
@@ -17,7 +17,7 @@
 	 */
 	public static void configure(JBRMSFeatureList list) {
 		list.addSink(Info.init());
-		list.addSink(Rules.init());
+		list.addSink(RulesFeature.init());
 //		list.addSink(Buttons.init());
 //		list.addSink(Menus.init());
 //		list.addSink(Images.init());

Deleted: 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-11-15 12:53:24 UTC (rev 7613)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Rules.java	2006-11-15 13:00:08 UTC (rev 7614)
@@ -1,138 +0,0 @@
-package org.drools.brms.client;
-
-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.RuleViewer;
-import org.drools.brms.client.rulelist.EditItemEvent;
-import org.drools.brms.client.rulelist.RuleItemListViewer;
-
-import com.google.gwt.user.client.ui.ClickListener;
-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.TabPanel;
-import com.google.gwt.user.client.ui.Widget;
-import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
-
-/**
- * This controls the "Rules manager" top level feature.
- * @author Michael Neale
- */
-public class Rules extends JBRMSFeature {
-
-    public static final int       EDITOR_TAB         = 1;
-    
-	public static ComponentInfo init() {
-		return new ComponentInfo("Rules", "Find and edit rules.") {
-			public JBRMSFeature createInstance() {
-				return new Rules();
-			}
-
-			public Image getImage() {
-				return new Image("images/rules.gif");
-			}
-		};
-	}
-
-    private TabPanel tab;
-	
-	public Rules() {
-        tab = new TabPanel();
-        tab.setWidth("100%");
-        tab.setHeight("100%");        
-
-        FlexTable explorePanel = doExplore(tab);        
-        //RuleView ruleViewer = doRuleViewer();
-        
-        tab.add(explorePanel, "Explore");
-        //tab.add(ruleViewer, "Author");
-        
-        tab.selectTab(0);
-        
-		initWidget(tab);
-	}
-    
-    
-
-    /** This will setup the explorer tab */
-	private FlexTable doExplore(final TabPanel tab) {
-		FlexTable  table = new FlexTable();
-        
-        //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) { 
-                RuleViewer view = new RuleViewer(key, type, name);
-                
-                String displayName = name;
-                if (name.length() > 10) {
-                    displayName = name.substring( 0, 7 ) + "...";
-                }
-                tab.add( view, "<img src='images/rule_asset.gif'>" + displayName, true );
-                tab.selectTab( tab.getWidgetIndex( view ) );
-                
-            }
-            
-        });    
-        
-        //setup the nav, which will drive the list
-		CategoryExplorerWidget nav = new CategoryExplorerWidget(new CategorySelectHandler() {
-
-            public void selected(String selectedPath) {
-                  
-                list.loadRulesForCategoryPath(selectedPath);
-            }
-            
-        });		
-        
-        FlexCellFormatter formatter = table.getFlexCellFormatter();
-        
-        table.setWidget( 0, 0, nav );
-		table.setWidget( 0, 1, list);
-
-        
-        
-        
-        formatter.setAlignment( 0, 1, HasHorizontalAlignment.ALIGN_LEFT, HasVerticalAlignment.ALIGN_TOP );
-        formatter.setAlignment( 0, 0, HasHorizontalAlignment.ALIGN_LEFT, HasVerticalAlignment.ALIGN_TOP );        
-        formatter.setRowSpan( 0, 1, 3 );
-        formatter.setWidth( 0, 0, "30%" );
-        formatter.setWidth( 0, 1, "70%" );
-
-        formatter.setHeight( 0, 0, "90%" );
-
-        table.setText( 2, 0, "" );
-        
-        Image newRule = new Image("images/new_rule.gif");
-        newRule.setTitle( "Create new rule" );
-        newRule.addClickListener( new ClickListener() {
-
-            public void onClick(Widget w) {
-                int left = 70;//w.getAbsoluteLeft() - 10;
-                int top = 100; //w.getAbsoluteTop() - 10;
-                
-              NewRuleWizard pop = new NewRuleWizard();
-              pop.setPopupPosition( left, top );
-              
-              pop.show();
-            }
-            
-        });
-        
-        table.setWidget( 1, 0, newRule);
-        formatter.setHeight( 1, 0, "5%" );
-        formatter.setAlignment( 1, 0, HasHorizontalAlignment.ALIGN_CENTER, HasVerticalAlignment.ALIGN_TOP);
-        formatter.setStyleName( 1, 0, "rule-explorer-NewPopups" );
-        
-        
-
-		return table;
-	}
-
-}

Copied: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.java (from rev 7587, 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-11-14 14:44:08 UTC (rev 7587)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.java	2006-11-15 13:00:08 UTC (rev 7614)
@@ -0,0 +1,141 @@
+package org.drools.brms.client;
+
+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.RuleViewer;
+import org.drools.brms.client.rulelist.EditItemEvent;
+import org.drools.brms.client.rulelist.RuleItemListViewer;
+
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.ui.ClickListener;
+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.TabPanel;
+import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
+
+/**
+ * This controls the "Rules manager" top level feature.
+ * @author Michael Neale
+ */
+public class RulesFeature extends JBRMSFeature {
+
+    public static final int       EDITOR_TAB         = 1;
+    
+	public static ComponentInfo init() {
+		return new ComponentInfo("Rules", "Find and edit rules.") {
+			public JBRMSFeature createInstance() {
+				return new RulesFeature();
+			}
+
+			public Image getImage() {
+				return new Image("images/rules.gif");
+			}
+		};
+	}
+
+    private TabPanel tab;
+	
+	public RulesFeature() {
+        tab = new TabPanel();
+        tab.setWidth("100%");
+        tab.setHeight("100%");        
+
+        FlexTable explorePanel = doExplore(tab);        
+        //RuleView ruleViewer = doRuleViewer();
+        
+        tab.add(explorePanel, "Explore");
+        //tab.add(ruleViewer, "Author");
+        
+        tab.selectTab(0);
+        
+		initWidget(tab);
+	}
+    
+    
+
+    /** This will setup the explorer tab */
+	private FlexTable doExplore(final TabPanel tab) {
+		FlexTable  table = new FlexTable();
+        final RulesFeature parent = this;
+        //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) {                  
+                RuleViewer view = new RuleViewer(parent, key, type, name);
+                
+                String displayName = name;
+                if (name.length() > 10) {
+                    displayName = name.substring( 0, 7 ) + "...";
+                }
+                tab.add( view, "<img src='images/rule_asset.gif'>" + displayName, true );
+                
+                final int i = tab.getWidgetIndex( view );
+                view.setCloseCommand( new Command() {
+                    public void execute() {
+                      tab.remove( i ); 
+                      tab.selectTab( 0 );
+                    }
+                });
+                tab.selectTab( i );
+                
+            }
+            
+        });    
+        
+        //setup the nav, which will drive the list
+		CategoryExplorerWidget nav = new CategoryExplorerWidget(new CategorySelectHandler() {
+            public void selected(String selectedPath) {
+                list.loadRulesForCategoryPath(selectedPath);
+            }
+        });		
+        
+        FlexCellFormatter formatter = table.getFlexCellFormatter();
+        
+        table.setWidget( 0, 0, nav );
+		table.setWidget( 0, 1, list);
+        
+        formatter.setAlignment( 0, 1, HasHorizontalAlignment.ALIGN_LEFT, HasVerticalAlignment.ALIGN_TOP );
+        formatter.setAlignment( 0, 0, HasHorizontalAlignment.ALIGN_LEFT, HasVerticalAlignment.ALIGN_TOP );        
+        formatter.setRowSpan( 0, 1, 3 );
+        formatter.setWidth( 0, 0, "30%" );
+        formatter.setWidth( 0, 1, "70%" );
+
+        formatter.setHeight( 0, 0, "90%" );
+
+        table.setText( 2, 0, "" );
+        
+        Image newRule = new Image("images/new_rule.gif");
+        newRule.setTitle( "Create new rule" );
+        newRule.addClickListener( new ClickListener() {
+
+            public void onClick(Widget w) {
+                int left = 70;//w.getAbsoluteLeft() - 10;
+                int top = 100; //w.getAbsoluteTop() - 10;
+                
+              NewRuleWizard pop = new NewRuleWizard();
+              pop.setPopupPosition( left, top );
+              
+              pop.show();
+            }
+            
+        });
+        
+        table.setWidget( 1, 0, newRule);
+        formatter.setHeight( 1, 0, "5%" );
+        formatter.setAlignment( 1, 0, HasHorizontalAlignment.ALIGN_CENTER, HasVerticalAlignment.ALIGN_TOP);
+        formatter.setStyleName( 1, 0, "rule-explorer-NewPopups" );
+        
+        
+
+		return table;
+	}
+
+}

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStyleLayout.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStyleLayout.java	2006-11-15 12:53:24 UTC (rev 7613)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStyleLayout.java	2006-11-15 13:00:08 UTC (rev 7614)
@@ -0,0 +1,58 @@
+package org.drools.brms.client.common;
+
+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.Widget;
+import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
+
+/**
+ * This form style class is to be extended to provide
+ * "form style" dialogs (eg in a popup).
+ * 
+ * @author Michael Neale
+ */
+public class FormStyleLayout extends Composite {
+    
+    private FlexTable layout = new FlexTable();
+    private FlexCellFormatter formatter = layout.getFlexCellFormatter();
+    private int numInLayout = 0;
+
+    public FormStyleLayout(String image, String title) {
+        addHeader( image, title );
+        initWidget( layout );
+    }
+    
+    /**
+     * Add a widget to the "form".
+     */
+    protected 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++;
+        
+    }
+    
+    /**
+     * Adds a header at the top.
+     */
+    protected 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++;
+    }    
+    
+}


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStyleLayout.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStylePopup.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStylePopup.java	2006-11-15 12:53:24 UTC (rev 7613)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStylePopup.java	2006-11-15 13:00:08 UTC (rev 7614)
@@ -0,0 +1,45 @@
+package org.drools.brms.client.common;
+
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.PopupPanel;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * This builds on the FormStyleLayout for providing common popup features in a 
+ * columnar form layout, with a title and a large (ish) icon.
+ * 
+ * @author Michael Neale
+ */
+public class FormStylePopup extends PopupPanel {
+
+    private FormStyleLayout form;
+    private VerticalPanel   vert;
+
+    public FormStylePopup(String image,
+                          String title) {
+        super( true );
+        form = new FormStyleLayout( image, title );
+        vert = new VerticalPanel();
+        
+        vert.add( form );
+        
+        Button close = new Button("Close");
+        
+        close.addClickListener( new ClickListener() {
+            public void onClick(Widget w) {
+                hide();                
+            }            
+        });
+        
+        vert.add( close );
+        
+        add( vert );
+    }
+    
+    public void addAttribute(String label, Widget wid) {
+        form.addAttribute( label, wid );
+    }
+
+}


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStylePopup.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/ActionToolbar.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/ActionToolbar.java	2006-11-15 12:53:24 UTC (rev 7613)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/ActionToolbar.java	2006-11-15 13:00:08 UTC (rev 7614)
@@ -1,13 +1,23 @@
 package org.drools.brms.client.ruleeditor;
 
+import org.drools.brms.client.common.FormStyleLayout;
+import org.drools.brms.client.common.FormStylePopup;
+import org.drools.brms.client.rpc.MetaData;
+
+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.HasHorizontalAlignment;
 import com.google.gwt.user.client.ui.HorizontalPanel;
 import com.google.gwt.user.client.ui.Hyperlink;
 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.MenuBar;
+import com.google.gwt.user.client.ui.MenuItem;
+import com.google.gwt.user.client.ui.PopupPanel;
 import com.google.gwt.user.client.ui.TextBox;
 import com.google.gwt.user.client.ui.Widget;
 
@@ -19,10 +29,9 @@
 public class ActionToolbar extends Composite {
 
     private HorizontalPanel panel = new HorizontalPanel();
-    private ClickListener changeState;
-    private ClickListener close;
-    private ClickListener checkin;
+    private Command closeCommand;
     
+    private MetaData      metaData;
     /**
      * TODO: 
      *  * Maybe move current state to here from meta data?
@@ -30,31 +39,73 @@
      *  * need to somehow refresh on checkin? (or just close?)
      * 
      */
-    public ActionToolbar(ClickListener checkin, ClickListener close, ClickListener changeState) {
-        this.checkin = checkin;
-        this.close = close;
-        this.changeState = changeState;
+    public ActionToolbar(final MetaData meta, 
+                         final ClickListener checkin,
+                         final ClickListener changeState) {
 
-        ListBox actions = new ListBox();
-        actions.addItem( "-- actions --" );
-        actions.addItem( "Check in changes", "checkin" );
-        actions.addItem( "Change status", "status" );
+        this.metaData = meta;
         
-        panel.add( actions );
-        
-        panel.add( new Label("Current status: ") );
-        panel.add( new TextBox() );
+        String status = metaData.state;
 
-        panel.add( new HTML("&nbsp;") );
+
         
-        panel.add( new Label("Close: ") );
-        panel.add( new Image("images/remove_item.gif") );
+        Label state = new Label("Status: [" + status + "]   ");
+        panel.add( state );
         
+        Image editState = new Image("images/edit.gif");
+        editState.setTitle( "Change state." );
+        panel.add( editState );
         
+        Image save = new Image("images/save_edit.gif");
+        save.setTitle( "Check in changes." );        
         
+        Image closeImg = new Image("images/remove_item.gif");
+        closeImg.setTitle( "Close." );
+        closeImg.addClickListener( new ClickListener() {
 
+            public void onClick(Widget w) {
+                if (metaData.dirty) {
+                    doCloseUnsavedWarning( );
+                } else {
+                    //we can actually close
+                    closeCommand.execute(  );
+                }
+                
+            }
+            
+        });
+        
+        
+        panel.add( save );
+        panel.add( closeImg );
         initWidget( panel );
     }
     
+    protected void doCloseUnsavedWarning() {
+        final FormStylePopup pop = new FormStylePopup("images/warning-large.png", "WARNING: Un-committed changes.");
+        Button dis = new Button("Discard");
+        pop.addAttribute( "Are you sure you want to disgard changes?", dis );
+        
+        dis.addClickListener( new ClickListener() {
+            public void onClick(Widget w) {
+                closeCommand.execute();
+                pop.hide();
+            }
+        });
+        
+        pop.setStyleName( "warning-Popup" );
+        pop.setPopupPosition( 100, 200 );
+        pop.show();
+        
+    }
+
+    /**
+     * This needs to be set to allow the current viewer to be closed.
+     */
+    public void setCloseCommand(Command c) {
+        this.closeCommand = c;
+    }
     
+
+    
 }

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-11-15 12:53:24 UTC (rev 7613)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java	2006-11-15 13:00:08 UTC (rev 7614)
@@ -1,37 +1,27 @@
 package org.drools.brms.client.ruleeditor;
 
+import org.drools.brms.client.common.FormStyleLayout;
 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.StackPanel;
-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 {
+public class MetaDataWidget extends FormStyleLayout {
 
-	private FlexTable layout = new FlexTable();
-    private FlexCellFormatter formatter = layout.getFlexCellFormatter();
-	private int numInLayout = 0;
+
     private MetaData data;
     private boolean readOnly;
 	
 	public MetaDataWidget(String name, boolean readOnly) {
+        super("images/meta_data.gif", name);
         this.readOnly = readOnly;
-        initWidget( layout );
-        addHeader("images/meta_data.gif", name);
 	}
 
 
@@ -129,64 +119,15 @@
 
 
 
-    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.
      */

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-11-15 12:53:24 UTC (rev 7613)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java	2006-11-15 13:00:08 UTC (rev 7614)
@@ -3,6 +3,7 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.drools.brms.client.RulesFeature;
 import org.drools.brms.client.breditor.BREditor;
 import org.drools.brms.client.common.ErrorPopup;
 import org.drools.brms.client.rpc.MetaData;
@@ -10,6 +11,7 @@
 import org.drools.brms.client.rpc.RuleAsset;
 import org.drools.brms.client.rpc.TextData;
 
+import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.rpc.AsyncCallback;
 import com.google.gwt.user.client.ui.Button;
 import com.google.gwt.user.client.ui.ClickListener;
@@ -34,8 +36,10 @@
 	private final String resourceUUID;
     private final String name;
     private final String format;
-    private MetaData metaData;
-    private SimplePanel   panel = new SimplePanel();
+    private Command closeCommand;
+    
+    
+    final private SimplePanel   panel = new SimplePanel();
     protected RuleAsset asset;
     
     /**
@@ -43,11 +47,11 @@
      * @param format The type of resource (may determine what editor is used).
      * @param name The name to be displayed.
      */
-    public RuleViewer(String UUID, String format,  String name) {
+    public RuleViewer(RulesFeature parent, String UUID, String format,  String name) {
         this.resourceUUID = UUID;
         this.name = name;
         this.format = format;
-                
+        
         //just pad it out a bit, so it gets the layout right - it will be loaded later.
         FlexTable layout = new FlexTable();
         layout.setWidget( 0, 0, new Label("Loading ...") );
@@ -75,46 +79,46 @@
      * also determines what widgets to load up).
      */
     private void doWidgets() {
-        metaData = asset.metaData;
-        
         final MetaDataWidget metaWidget = new MetaDataWidget(this.name, false);
         
-        FlexTable layout = new FlexTable();
+        final FlexTable layout = new FlexTable();
         
         //now the main layout table
         FlexCellFormatter formatter =  layout.getFlexCellFormatter();
         layout.setWidget( 0, 0, metaWidget );
-        formatter.setRowSpan( 0, 0, 4 );
+        formatter.setRowSpan( 0, 0, 3 );
         formatter.setWidth( 0, 0, "40%" );        
-
         
         //and now the action widgets (checkin/close etc).
-        layout.setWidget( 1, 1, new ActionToolbar(null, null, null) );
+        ActionToolbar toolbar = new ActionToolbar(asset.metaData, null, null);
+        toolbar.setCloseCommand(new Command() {
+            public void execute() {
+                closeCommand.execute();
+            }            
+        });
+        
+        layout.setWidget( 0, 1, toolbar );
         formatter.setAlignment( 0, 1, HasHorizontalAlignment.ALIGN_RIGHT, HasVerticalAlignment.ALIGN_MIDDLE );
-//        formatter.setWidth( 0, 1, "60%");
-
-//        formatter.setStyleName( 0, 1, "outline-Debug" );
-//        formatter.setStyleName( 1, 1, "outline-Debug" );
-//        formatter.setStyleName( 2, 1, "outline-Debug" );
-//        formatter.setStyleName( 0, 0, "outline-Debug" );
         
+        //REMEMBER: subsequent rows have only one column, doh that is confusing ! 
+        //GAAAAAAAAAAAAAAAAAAAAAAAAAAH
+        
         //depending on the format, load the appropriate editor
-        if (metaData.format.equals( "DSL" )) {
+        if (asset.metaData.format.equals( "DSL" )) {
             BREditor ed = new BREditor();
-            layout.setWidget( 2, 1, ed );
+            layout.setWidget( 1, 0, ed );
         } else {
             DefaultRuleContentWidget ed = new DefaultRuleContentWidget((TextData) asset.content);
-            layout.setWidget( 2, 1, ed );
+            layout.setWidget( 1, 0, ed );
         }
+                
         
-        
-        
         //the document widget
         final RuleDocumentWidget doco = new RuleDocumentWidget();
-        layout.setWidget( 3, 1, doco );
+        layout.setWidget( 2, 0, doco );
         
-        metaWidget.loadData( metaData );
-        doco.loadData( metaData );
+        metaWidget.loadData( asset.metaData );
+        doco.loadData( asset.metaData );
         
         
         panel.clear();
@@ -122,8 +126,14 @@
     }
     
 
+    /**
+     * This needs to be called to allow the opened viewer to close itself.
+     * @param c
+     */
+    public void setCloseCommand(Command c) {
+        this.closeCommand = c;
+    }
 
 
 
-
 }

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-11-15 12:53:24 UTC (rev 7613)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css	2006-11-15 13:00:08 UTC (rev 7614)
@@ -254,6 +254,12 @@
   border: 2px solid #87B3FF;
 }
 
+.warning-Popup {
+  border: 2px solid #87B3FF;
+  background-color: white;		
+}
+
+
 .ks-popups-Popup {
   background-color: #FDFCDC;
   border: 1px solid #87B3FF;

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/save_edit.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/save_edit.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/warning-large.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/warning-large.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream




More information about the jboss-svn-commits mailing list