[jboss-svn-commits] JBL Code SVN: r35387 - in labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client: ruleeditor and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Oct 1 11:48:54 EDT 2010


Author: jervisliu
Date: 2010-10-01 11:48:54 -0400 (Fri, 01 Oct 2010)
New Revision: 35387

Modified:
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerLayoutManager.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetSelectorPopup.java
Log:
GUVNOR-639: Replaced com.gwtext.client.widgets.tree.TreeNode in WorkingSetSelectorPopup with ListBox (GWT Tree does not support check box style tree nodes). . 

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerLayoutManager.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerLayoutManager.java	2010-10-01 15:46:11 UTC (rev 35386)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerLayoutManager.java	2010-10-01 15:48:54 UTC (rev 35387)
@@ -192,7 +192,7 @@
             mainPanel.addNorth(titlePanel, 4);
         }        
         SplitLayoutPanel centerPanel = new SplitLayoutPanel();        
-        centerPanel.addWest(navigationStackLayoutPanel, 192);
+        centerPanel.addWest(navigationStackLayoutPanel, 230);
         centerPanel.add(centertabbedPanel.getPanel());        
         mainPanel.add(centerPanel);
     }

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetSelectorPopup.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetSelectorPopup.java	2010-10-01 15:46:11 UTC (rev 35386)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetSelectorPopup.java	2010-10-01 15:48:54 UTC (rev 35387)
@@ -15,32 +15,18 @@
  */
 
 package org.drools.guvnor.client.ruleeditor;
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
 
-
 import com.google.gwt.event.dom.client.ClickEvent;
 import org.drools.guvnor.client.common.AssetFormats;
 import org.drools.guvnor.client.common.FormStylePopup;
 import org.drools.guvnor.client.common.GenericCallback;
 import org.drools.guvnor.client.common.LoadingPopup;
+import org.drools.guvnor.client.common.SmallLabel;
 import org.drools.guvnor.client.messages.Constants;
 import org.drools.guvnor.client.rpc.RepositoryServiceFactory;
 import org.drools.guvnor.client.rpc.RuleAsset;
 import org.drools.guvnor.client.rpc.TableDataResult;
+import org.drools.guvnor.client.rpc.WorkingSetConfigData;
 import org.drools.guvnor.client.modeldriven.ui.RuleModeller;
 import org.drools.guvnor.client.packages.WorkingSetManager;
 
@@ -48,35 +34,27 @@
 import com.google.gwt.event.dom.client.ClickHandler;
 import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.ui.Button;
-import com.gwtext.client.widgets.tree.TreeNode;
-import com.gwtext.client.widgets.tree.TreePanel;
+import com.google.gwt.user.client.ui.Grid;
+import com.google.gwt.user.client.ui.ListBox;
 
+
 public class WorkingSetSelectorPopup {
-
     private final RuleModeller modeller;
     private final RuleAsset asset;
-    private TreePanel treePanel;
     private Button save;
     private FormStylePopup pop;
     private Constants constants = ((Constants) GWT.create(Constants.class));
+    private ListBox availableFacts = new ListBox(true);
+    private ListBox selectedFacts = new ListBox(true);
 
     public WorkingSetSelectorPopup(RuleModeller m, RuleAsset a) {
-
         this.modeller = m;
         this.asset = a;
 
         pop = new FormStylePopup();
         pop.setTitle(constants.SelectWorkingSets());
+        Grid g = buildDoubleList(null);
 
-        treePanel = new TreePanel();
-        treePanel.setWidth("100%");
-        treePanel.setHeight("100%");
-        final TreeNode root = new TreeNode("ROOT");
-        root.setChecked(false);
-        treePanel.setRootNode(root);
-        treePanel.setRootVisible(false);
-
-
 		RepositoryServiceFactory.getService().listAssets(asset.metaData.packageUUID,
 				new String[] { AssetFormats.WORKING_SET }, 0, -1, "workingsetList",
 				new GenericCallback<TableDataResult>() {
@@ -84,30 +62,26 @@
 					public void onSuccess(TableDataResult result) {
 
 						for (int i = 0; i < result.data.length; i++) {
-							TreeNode node = new TreeNode(result.data[i].getDisplayName());
-							node.setUserObject(result.data[i].id);
-							node.setChecked(WorkingSetManager.getInstance().isWorkingSetActive(
-									asset.metaData.packageName, result.data[i].id));
-							root.appendChild(node);
+							if (WorkingSetManager.getInstance().isWorkingSetActive(
+											asset.metaData.packageName,
+											result.data[i].id)) {
+								selectedFacts.addItem(result.data[i].getDisplayName(), result.data[i].id);
+							} else {
+								availableFacts.addItem(result.data[i].getDisplayName(),	result.data[i].id);
+							}							  
 						}
 					}
 				});
 
         save = new Button(constants.SaveAndClose());
         save.addClickHandler(new ClickHandler() {
-
             public void onClick(ClickEvent event) {
-                TreeNode[] checked = treePanel.getChecked();
-
-                String[] wsUUIDs = new String[checked.length];
-                for (int i = 0; i < checked.length; i++) {
-                    TreeNode treeNode = checked[i];
-                    wsUUIDs[i] = (String) treeNode.getUserObject();
+                String[] wsUUIDs = new String[selectedFacts.getItemCount()];
+                for (int i = 0; i < selectedFacts.getItemCount(); i++) {
+                    wsUUIDs[i] = selectedFacts.getValue(i);
                 }
 
-
                 WorkingSetManager.getInstance().applyWorkingSets(asset.metaData.packageName, wsUUIDs, new Command() {
-
                         public void execute() {
                             LoadingPopup.close();
                             pop.hide();
@@ -119,16 +93,52 @@
 
         });
 
-        treePanel.setHeight(100);
-        treePanel.setAutoScroll(true);
-        treePanel.expandAll();
-        pop.addRow(treePanel);
+        pop.addRow(g);
         pop.addRow(save);
     }
 
     public void show() {
-        treePanel.expandAll();
         pop.show();
+    }
+    
+	private Grid buildDoubleList(WorkingSetConfigData wsData) {
+		Grid grid = new Grid(2, 3);
 
-    }
+		availableFacts.setVisibleItemCount(10);
+		selectedFacts.setVisibleItemCount(10);
+
+		Grid btnsPanel = new Grid(2, 1);
+
+		btnsPanel.setWidget(0, 0, new Button(">", new ClickHandler() {
+			public void onClick(ClickEvent sender) {
+				moveSelected(availableFacts, selectedFacts);
+			}
+		}));
+
+		btnsPanel.setWidget(1, 0, new Button("&lt;", new ClickHandler() {
+			public void onClick(ClickEvent sender) {
+				moveSelected(selectedFacts, availableFacts);
+			}
+		}));
+
+		grid.setWidget(0, 0, new SmallLabel("Available")); // TODO i18n
+		grid.setWidget(0, 1, new SmallLabel(""));
+		grid.setWidget(0, 2, new SmallLabel("Selected")); // TODO i18n
+		grid.setWidget(1, 0, availableFacts);
+		grid.setWidget(1, 1, btnsPanel);
+		grid.setWidget(1, 2, selectedFacts);
+
+		grid.getColumnFormatter().setWidth(0, "45%");
+		grid.getColumnFormatter().setWidth(0, "10%");
+		grid.getColumnFormatter().setWidth(0, "45%");
+		return grid;
+	}
+    
+    private void moveSelected(final ListBox from, final ListBox to) {
+        int selected;
+        while ((selected = from.getSelectedIndex()) != -1) {
+            to.addItem(from.getItemText(selected), from.getValue(selected));
+            from.removeItem(selected);
+        }
+    }    
 }



More information about the jboss-svn-commits mailing list