[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>→</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