[jboss-svn-commits] JBL Code SVN: r18669 - in labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms: client/admin and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Mar 4 02:59:43 EST 2008


Author: michael.neale at jboss.com
Date: 2008-03-04 02:59:43 -0500 (Tue, 04 Mar 2008)
New Revision: 18669

Added:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/decisiontable/GuidedDecisionTableWidget.java
Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/LoginWidget.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/admin/CategoryManager.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerLayoutManager.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css
Log:
JBRULES-1494

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/LoginWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/LoginWidget.java	2008-03-04 07:58:54 UTC (rev 18668)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/LoginWidget.java	2008-03-04 07:59:43 UTC (rev 18669)
@@ -17,23 +17,20 @@
 
 
 
-import org.drools.brms.client.common.FormStyleLayout;
+import org.drools.brms.client.common.FormStylePopup;
 import org.drools.brms.client.common.GenericCallback;
 import org.drools.brms.client.common.LoadingPopup;
 import org.drools.brms.client.rpc.RepositoryServiceFactory;
 
 import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.DeferredCommand;
+import com.google.gwt.user.client.ui.Button;
 import com.google.gwt.user.client.ui.ClickListener;
 import com.google.gwt.user.client.ui.PasswordTextBox;
 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.gwtext.client.core.EventObject;
-import com.gwtext.client.widgets.Button;
-import com.gwtext.client.widgets.Panel;
+
 import com.gwtext.client.widgets.Window;
-import com.gwtext.client.widgets.event.ButtonListener;
 import com.gwtext.client.widgets.event.ButtonListenerAdapter;
 import com.gwtext.client.widgets.layout.FitLayout;
 
@@ -45,105 +42,67 @@
 public class LoginWidget {
 
 
-    private TextBox userName;
-    private PasswordTextBox password;
-    private Command loggedInEvent;
-	private Window w;
 
 
 
 
-	public void show() {
 
-    	w = new Window();
-    	w.setWidth(400);
-    	//w.setHeight(200);
-    	w.setModal(true);
-    	w.setShadow(false);
-    	w.setClosable(false);
+	private Command loggedInEvent;
+	private String userNameLoggedIn;
 
-    	final Widget signInForm = getSignInForm();
+	public void show() {
 
-//    	VerticalPanel signInWrapper = new VerticalPanel() {
-//    	    {
-//    	        setSpacing(30);
-//    	        setWidth("100%");
-//    	        setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
-//    	    }
-//    	};
+		final FormStylePopup pop = new FormStylePopup("images/login.gif", "BRMS login");
 
-    	Panel p = new Panel();
-    	p.add(signInForm);
-    	p.setLayout(new FitLayout());
-//    	signInWrapper.add(signInForm);
 
-    	w.setTitle("Sign In");
+		final TextBox userName = new TextBox();
+		pop.addAttribute("User name:", userName);
 
-    	w.add(p);
 
+		final PasswordTextBox password = new PasswordTextBox();
+		pop.addAttribute("Password: ", password);
 
+		Button b = new Button("OK");
 
 
+		b.addClickListener(new ClickListener() {
+			public void onClick(Widget arg0) {
+				LoadingPopup.showMessage("Authenticating...");
+		        RepositoryServiceFactory.login( userName.getText(), password.getText(), new GenericCallback() {
+					public void onSuccess(Object o) {
+		            	userNameLoggedIn = userName.getText();
+		                LoadingPopup.close();
+		                Boolean success = (Boolean) o;
+		                if (!success.booleanValue()) {
+		                    com.google.gwt.user.client.Window.alert( "Incorrect username or password." );
+		                } else {
+		                    loggedInEvent.execute();
+		                    pop.hide();
+		                }
+		            }
+		        });
+			}
 
+		});
 
 
-        w.show();
-        userName.setFocus( true );
-	}
+		pop.addAttribute("", b);
 
-    private void doLogin(final Command loggedInEvent, final TextBox userName, final PasswordTextBox password) {
-        RepositoryServiceFactory.login( userName.getText(), password.getText(), new GenericCallback() {
-            public void onSuccess(Object o) {
-                LoadingPopup.close();
-                Boolean success = (Boolean) o;
-                if (!success.booleanValue()) {
-                    com.google.gwt.user.client.Window.alert( "Incorrect username or password." );
-                } else {
-                    loggedInEvent.execute();
-                    w.hide();
-                    w.destroy();
-                }
-            }
-        });
-    }
+		pop.show();
 
-    private Widget getSignInForm() {
 
-        FormStyleLayout layout = new FormStyleLayout("images/login.gif", "BRMS Login");
 
-        userName = new TextBox();
-        userName.setTabIndex( 1 );
-        layout.addAttribute( "User name:", userName );
 
-        password = new PasswordTextBox();
-        password.setTabIndex( 2 );
-        layout.addAttribute( "Password:", password );
-    	com.google.gwt.user.client.ui.Button b2 = new com.google.gwt.user.client.ui.Button("Sign in");
 
-    	b2.addClickListener(new ClickListener() {
+	}
 
-			public void onClick(Widget arg0) {
-                LoadingPopup.showMessage( "Logging in..." );
 
-                DeferredCommand.addCommand( new Command() {
-                    public void execute() {
-                        doLogin( loggedInEvent, userName, password );
-                    }
-                });
-			}
 
-    	});
-        layout.addAttribute("", b2);
-
-        return layout;
-
-    }
-
     /**
      * Return the name that was entered.
      */
     public String getUserName() {
-        return userName.getText();
+        return userNameLoggedIn;
     }
 
     /**

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/admin/CategoryManager.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/admin/CategoryManager.java	2008-03-04 07:58:54 UTC (rev 18668)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/admin/CategoryManager.java	2008-03-04 07:59:43 UTC (rev 18669)
@@ -23,6 +23,10 @@
 import org.drools.brms.client.common.GenericCallback;
 import org.drools.brms.client.common.ImageButton;
 import org.drools.brms.client.common.PrettyFormLayout;
+import org.drools.brms.client.decisiontable.GuidedDecisionTableWidget;
+import org.drools.brms.client.modeldriven.dt.ActionCol;
+import org.drools.brms.client.modeldriven.dt.ConditionCol;
+import org.drools.brms.client.modeldriven.dt.GuidedDecisionTable;
 import org.drools.brms.client.rpc.RepositoryServiceFactory;
 
 import com.google.gwt.user.client.Window;
@@ -93,7 +97,26 @@
 
         form.endSection();
 
+
+        GuidedDecisionTable dt = new GuidedDecisionTable();
+        dt.data = new String[][] {
+        		new String[] {"a", "b", "c"},
+        		new String[] {"d", "e", "f"}
+        };
+        ConditionCol c1 = new ConditionCol();
+        c1.header = "Driver 1 age";
+        dt.conditionCols.add(c1);
+        ConditionCol c2 = new ConditionCol();
+        c2.header = "Driver 2 age";
+        dt.conditionCols.add(c2);
+
+
+        ActionCol a1 = new ActionCol();
+        a1.header = "Do something !";
+        dt.actionCols.add(a1);
+
         initWidget( form );
+        //initWidget( new GuidedDecisionTableWidget(dt) );
     }
 
 

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/decisiontable/GuidedDecisionTableWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/decisiontable/GuidedDecisionTableWidget.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/decisiontable/GuidedDecisionTableWidget.java	2008-03-04 07:59:43 UTC (rev 18669)
@@ -0,0 +1,184 @@
+package org.drools.brms.client.decisiontable;
+
+import org.drools.brms.client.modeldriven.dt.ActionCol;
+import org.drools.brms.client.modeldriven.dt.ConditionCol;
+import org.drools.brms.client.modeldriven.dt.GuidedDecisionTable;
+
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.gwtext.client.core.EventObject;
+import com.gwtext.client.data.ArrayReader;
+import com.gwtext.client.data.FieldDef;
+import com.gwtext.client.data.MemoryProxy;
+import com.gwtext.client.data.Record;
+import com.gwtext.client.data.RecordDef;
+import com.gwtext.client.data.Store;
+import com.gwtext.client.data.StringFieldDef;
+import com.gwtext.client.widgets.MessageBox;
+import com.gwtext.client.widgets.Toolbar;
+import com.gwtext.client.widgets.ToolbarMenuButton;
+import com.gwtext.client.widgets.form.TextField;
+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.EditorGridPanel;
+import com.gwtext.client.widgets.grid.GridEditor;
+import com.gwtext.client.widgets.grid.GridPanel;
+import com.gwtext.client.widgets.grid.GridView;
+import com.gwtext.client.widgets.grid.Renderer;
+import com.gwtext.client.widgets.grid.RowNumberingColumnConfig;
+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;
+
+/**
+ * This is the new guided decision table editor for the web.
+ * @author Michael Neale
+ */
+public class GuidedDecisionTableWidget extends Composite {
+
+    private GuidedDecisionTable dt;
+	private boolean DEBUG = false;
+
+	public GuidedDecisionTableWidget(GuidedDecisionTable dt) {
+
+    	this.dt = dt;
+
+        GridPanel grid = doGrid();
+        VerticalPanel p = new VerticalPanel();
+        p.add(grid);
+
+
+        initWidget(p);
+    }
+
+	private GridPanel doGrid() {
+
+		FieldDef[] fds = new FieldDef[dt.actionCols.size() + dt.conditionCols.size()];
+
+		BaseColumnConfig[] cols = new BaseColumnConfig[fds.length + 2];
+		if (!DEBUG ) {
+			cols[0] = new RowNumberingColumnConfig();
+		} else {
+			cols[0] = new ColumnConfig() {
+				{
+					setDataIndex("num");
+					setWidth(5);
+				}
+			};
+		}
+
+
+
+		//do all the condition cols
+		for (int i = 0; i < dt.conditionCols.size(); i++) {
+			//here we could also deal with numeric type?
+			final ConditionCol c = (ConditionCol) dt.conditionCols.get(i);
+			fds[i] = new StringFieldDef(c.header);
+			cols[i + 1] = new ColumnConfig() {
+				{
+					setHeader(c.header);
+					setDataIndex(c.header);
+					//and here we do the appropriate editor
+					setEditor(new GridEditor(new TextField()));
+				}
+			};
+		}
+
+		//the split thing
+		cols[dt.conditionCols.size() + 1] = new ColumnConfig() {
+			{
+    			setDataIndex("x");
+    			setHeader("");
+    			setFixed(true);
+    			setResizable(false);
+
+    			setRenderer(new Renderer() {
+					public String render(Object value,
+							CellMetadata cellMetadata, Record record,
+							int rowIndex, int colNum, Store store) {
+						return "<b>&#8594;</b>";
+					}
+    			});
+    			setWidth(20);
+			}
+		};
+
+		for (int i = 0; i < dt.actionCols.size(); i++) {
+			//here we could also deal with numeric type?
+			final ActionCol c = (ActionCol) dt.actionCols.get(i);
+			fds[i + dt.conditionCols.size()] = new StringFieldDef(c.header);
+
+			cols[i + dt.conditionCols.size() + 2]  = new ColumnConfig() {
+				{
+					setHeader(c.header);
+					setDataIndex(c.header);
+					//and here we do the appropriate editor
+					setEditor(new GridEditor(new TextField()));
+				}
+			};
+		}
+
+		final RecordDef recordDef = new RecordDef(fds);
+        ArrayReader reader = new ArrayReader(recordDef);
+        MemoryProxy proxy = new MemoryProxy( dt.data );
+
+
+
+
+        ColumnModel cm = new ColumnModel(cols);
+        final Store store = new Store(proxy, reader);
+        store.load();
+
+
+        final EditorGridPanel grid = new EditorGridPanel(store, cm);
+        //to stretch it out
+        GridView gv = new GridView();
+        gv.setForceFit(true);
+        grid.setView(gv);
+
+        grid.setStore(store);
+        grid.setWidth(500);
+        grid.setHeight(300);
+        grid.setClicksToEdit(1);
+
+        Toolbar tb = new Toolbar();
+        Menu menu = new Menu();
+        menu.addItem(new Item("Add row...", new BaseItemListenerAdapter() {
+        	public void onClick(BaseItem item, EventObject e) {
+        		Record r = recordDef.createRecord(new Object[recordDef.getFields().length]);
+        		grid.stopEditing();
+        		store.add(r);
+        		grid.startEditing(0, 0);
+        	}
+        }));
+        menu.addItem(new Item("Remove row...", new BaseItemListenerAdapter() {
+        	public void onClick(BaseItem item, EventObject e) {
+        		MessageBox.prompt("Line number to delete", "Line #", new MessageBox.PromptCallback() {
+					public void execute(String btnID, String text) {
+						int i = Integer.parseInt(text);
+
+						Record r = store.getAt(i - 1);
+						grid.stopEditing();
+						store.remove(r);
+						grid.startEditing(0, 0);
+					}
+        		});
+        	}
+        }));
+        ToolbarMenuButton tbb = new ToolbarMenuButton("Modify...", menu);
+
+        tb.addButton(tbb);
+        grid.add(tb);
+
+
+
+
+
+        return grid;
+
+	}
+
+}


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

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerLayoutManager.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerLayoutManager.java	2008-03-04 07:58:54 UTC (rev 18668)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerLayoutManager.java	2008-03-04 07:59:43 UTC (rev 18669)
@@ -304,9 +304,9 @@
         });
 
         adminPanel.add(adminTree);
+        adminPanel.setWidth("100%");
 
 
-
         tpCategory.add(rulesPanel);
 
 

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	2008-03-04 07:58:54 UTC (rev 18668)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css	2008-03-04 07:59:43 UTC (rev 18669)
@@ -327,6 +327,8 @@
 	border-radius:.7em;
 
 }
+
+
 .dt-editor-Grid {
 	border:1px solid #aa9;
 	border-spacing:0;




More information about the jboss-svn-commits mailing list