[jboss-svn-commits] JBL Code SVN: r32062 - in labs/jbossrules/branches/factsConstraints_baunax_esteban: drools-guvnor/src/main/java/org/drools/guvnor/client/messages and 8 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Mar 12 14:17:31 EST 2010


Author: baunax
Date: 2010-03-12 14:17:30 -0500 (Fri, 12 Mar 2010)
New Revision: 32062

Added:
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetEditor.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/WorkingSetHandler.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/resources/workingsetList.properties
Removed:
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/NewWorkingSetWizard.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/WorkingSetItem.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/WorkingSetItemIterator.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/resources/node_type_definitions/workingset_node_type.cnd
Modified:
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerNodeConfig.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/PackagesPanel.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants_es_ES.properties
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/WorkingSetConfigData.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/EditorLauncher.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetSelectorPopup.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/RepositoryServiceServlet.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/resources/contenthandler.properties
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/JackrabbitRepositoryConfigurator.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/PackageItem.java
Log:
refactor to transform workingsets into assets

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerNodeConfig.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerNodeConfig.java	2010-03-12 19:10:45 UTC (rev 32061)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerNodeConfig.java	2010-03-12 19:17:30 UTC (rev 32062)
@@ -72,20 +72,10 @@
 
 		pkg.appendChild(makeItem(constants.OtherAssetsDocumentation(), "images/new_file.gif", new String[0]));
         
+		pkg.appendChild(makeItem(constants.WorkingSets(), "images/workingset.gif", new String[] {AssetFormats.WORKING_SET}));
+		
         return pkg;
 	}
-
-    public static void getWorkingSetItemsStructure(TreeNode parent, WorkingSetConfigData[] workingsets) {
-    	if (workingsets == null || workingsets.length == 0) {
-    		return;
-    	}
-    	for (WorkingSetConfigData ws : workingsets) {
-    		TreeNode wsNode = new TreeNode(ws.name, "images/workingset.gif");
-    		wsNode.setUserObject(wsNode);
-    		getWorkingSetItemsStructure(wsNode, ws.workingSets);
-    		parent.appendChild(wsNode);
-		}
-    }
     
 	private static TreeNode makeItem(final String txt, final String img,
 			final String[] formats) {

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/PackagesPanel.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/PackagesPanel.java	2010-03-12 19:10:45 UTC (rev 32061)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/PackagesPanel.java	2010-03-12 19:17:30 UTC (rev 32062)
@@ -6,7 +6,6 @@
 import org.drools.guvnor.client.common.RulePackageSelector;
 import org.drools.guvnor.client.messages.Constants;
 import org.drools.guvnor.client.packages.NewPackageWizard;
-import org.drools.guvnor.client.packages.NewWorkingSetWizard;
 import org.drools.guvnor.client.rpc.PackageConfigData;
 import org.drools.guvnor.client.rpc.PushClient;
 import org.drools.guvnor.client.rpc.PushResponse;
@@ -57,24 +56,23 @@
 
         Toolbar pkgToolbar = new Toolbar();
         final ToolbarMenuButton menuButton = new ToolbarMenuButton(constants.CreateNew(), packageNewMenu());
-        pkgToolbar.addButton(menuButton);
+        pkgToolbar.addButton( menuButton );
 
-        menuButton.addListener(new SplitButtonListenerAdapter() {
+        menuButton.addListener( new SplitButtonListenerAdapter() {
 
             public void onClick(Button button,
-                    EventObject e) {
+                                EventObject e) {
                 menuButton.showMenu();
             }
-        });
-
+        } );
+        
         packagesPanel = new VerticalPanel();
         packagesPanel.setWidth("100%");
         packagesPanel.add(pkgToolbar);
 
         //these panels are lazy loaded to easy startup wait time.
         addListener(new PanelListenerAdapter() {
-
-            public void onExpand(Panel panel) {
+        	public void onExpand(Panel panel) {
                 loadPackageList();
             }
         });
@@ -94,10 +92,8 @@
     private Menu packageNewMenu() {
         Menu m = new Menu();
         m.addItem(new Item(constants.NewPackage1(), new BaseItemListenerAdapter() {
-
             public void onClick(BaseItem item, EventObject e) {
                 NewPackageWizard wiz = new NewPackageWizard(new Command() {
-
                     public void execute() {
                         refreshPackageTree();
                     }
@@ -106,19 +102,6 @@
             }
         }, "images/new_package.gif")); //NON-NLS
 
-        m.addItem(new Item(constants.NewWorkingSet(), new BaseItemListenerAdapter() {
-
-            public void onClick(BaseItem item, EventObject e) {
-                NewWorkingSetWizard wiz = new NewWorkingSetWizard(new Command() {
-
-                    public void execute() {
-                        refreshPackageTree();
-                    }
-                });
-                wiz.show();
-            }
-        }, "images/new_package.gif")); // NON-NLS
-
         //SubPackage are currently not used.
 //        m.addItem(new Item(constants.NewSubPackage(), new BaseItemListenerAdapter() {
 //            public void onClick(BaseItem item, EventObject e) {
@@ -130,40 +113,42 @@
 //                wiz.show();
 //            }
 //        }, "images/new_package.gif")); //NON-NLS
-
+        
+        m.addItem(new Item(constants.NewWorkingSet(), new BaseItemListenerAdapter() {
+            public void onClick(BaseItem item, EventObject e) {
+                launchWizard(AssetFormats.WORKING_SET, constants.NewWorkingSet(), false);
+            }
+        }, "images/new_package.gif"));          //NON-NLS
+        
         m.addItem(new Item(constants.NewRule(), new BaseItemListenerAdapter() {
-
             public void onClick(BaseItem item, EventObject e) {
                 launchWizard(null, constants.NewRule(), true);
             }
         }, "images/rule_asset.gif"));          //NON-NLS
 
         m.addItem(new Item(constants.UploadPOJOModelJar(), new BaseItemListenerAdapter() {
-
             public void onClick(BaseItem item, EventObject e) {
                 launchWizard(AssetFormats.MODEL, constants.NewModelArchiveJar(), false);
             }
         }, "images/model_asset.gif"));              //NON-NLS
 
         m.addItem(new Item(constants.NewDeclarativeModel(), new BaseItemListenerAdapter() {
-
             public void onClick(BaseItem item, EventObject e) {
                 launchWizard(AssetFormats.DRL_MODEL, constants.NewDeclarativeModelUsingGuidedEditor(), false);
             }
         }, "images/model_asset.gif")); //NON-NLS
 
         if (Preferences.getBooleanPref("flex-bpel-editor")) {
-            m.addItem(new Item(constants.NewBPELPackage(),
-                    new BaseItemListenerAdapter() {
+			m.addItem(new Item(constants.NewBPELPackage(),
+					new BaseItemListenerAdapter() {
+						public void onClick(BaseItem item, EventObject e) {
+							launchWizard(AssetFormats.BPEL_PACKAGE, constants
+									.CreateANewBPELPackage(), false);
+						}
+					}, "images/model_asset.gif")); // NON-NLS
+		}
 
-                        public void onClick(BaseItem item, EventObject e) {
-                            launchWizard(AssetFormats.BPEL_PACKAGE, constants.CreateANewBPELPackage(), false);
-                        }
-                    }, "images/model_asset.gif")); // NON-NLS
-        }
-
         m.addItem(new Item(constants.NewFunction(), new BaseItemListenerAdapter() {
-
             public void onClick(BaseItem item, EventObject e) {
                 launchWizard(AssetFormats.FUNCTION, constants.CreateANewFunction(), false);
             }
@@ -171,7 +156,6 @@
 
 
         m.addItem(new Item(constants.NewDSL(), new BaseItemListenerAdapter() {
-
             public void onClick(BaseItem item, EventObject e) {
                 launchWizard(AssetFormats.DSL, constants.CreateANewDSLConfiguration(), false);
             }
@@ -179,28 +163,24 @@
 
 
         m.addItem(new Item(constants.NewRuleFlow(), new BaseItemListenerAdapter() {
-
             public void onClick(BaseItem item, EventObject e) {
                 launchWizard(AssetFormats.RULE_FLOW_RF, constants.CreateANewRuleFlow(), false);
             }
         }, "images/ruleflow_small.gif")); //NON-NLS
-
+        
         m.addItem(new Item(constants.NewEnumeration(), new BaseItemListenerAdapter() {
-
             public void onClick(BaseItem item, EventObject e) {
                 launchWizard(AssetFormats.ENUMERATION, constants.CreateANewEnumerationDropDownMapping(), false);
             }
         }, "images/new_enumeration.gif")); //NON-NLS
 
         m.addItem(new Item(constants.NewTestScenario(), new BaseItemListenerAdapter() {
-
             public void onClick(BaseItem item, EventObject e) {
                 launchWizard(AssetFormats.TEST_SCENARIO, constants.CreateATestScenario(), false);
             }
         }, "images/test_manager.gif")); //NON-NLS
 
         m.addItem(new Item(constants.NewFile(), new BaseItemListenerAdapter() {
-
             public void onClick(BaseItem item, EventObject e) {
                 launchWizard("*", constants.CreateAFile(), false);
             }
@@ -208,12 +188,10 @@
 
 
         m.addItem(new Item(constants.RebuildAllPackageBinariesQ(), new BaseItemListenerAdapter() {
-
             public void onClick(BaseItem item, EventObject e) {
                 if (Window.confirm(constants.RebuildConfirmWarning())) {
                     LoadingPopup.showMessage(constants.RebuildingPackageBinaries());
                     RepositoryServiceFactory.getService().rebuildPackages(new GenericCallback<Void>() {
-
                         public void onSuccess(Void data) {
                             LoadingPopup.close();
                         }
@@ -231,88 +209,89 @@
         packagesPanel.add(packageExplorer(centertabbedPanel));
     }
 
-    private Widget packageExplorer(final ExplorerViewCenterPanel tabPanel) {
-        TreeNode rootNode = new TreeNode(constants.Admin());
+	private Widget packageExplorer(final ExplorerViewCenterPanel tabPanel) {
+		TreeNode rootNode = new TreeNode(constants.Admin());
 
+		TreeNode packageRootNode = new TreeNode(constants.Packages());
+		packageRootNode.setAttribute("icon", "images/silk/chart_organisation.gif"); // NON-NLS
+		loadPackages(packageRootNode);
 
-        TreeNode packageRootNode = new TreeNode(constants.Packages());
-        packageRootNode.setAttribute("icon", "images/silk/chart_organisation.gif"); //NON-NLS
-        loadPackages(packageRootNode);
+		/*
+		 * TreeNode globalRootNode = new TreeNode("Global area");
+		 * globalRootNode.setAttribute("icon",
+		 * "images/silk/chart_organisation.gif"); //NON-NLS
+		 * globalRootNode.setAttribute("id", "globalarea");
+		 */
+		loadGlobal(rootNode);
 
-        /*		TreeNode globalRootNode = new TreeNode("Global area");
-        globalRootNode.setAttribute("icon", "images/silk/chart_organisation.gif");   //NON-NLS
-        globalRootNode.setAttribute("id", "globalarea");*/
-        loadGlobal(rootNode);
+		rootNode.appendChild(packageRootNode);
+		// rootNode.appendChild(globalRootNode);
 
-        rootNode.appendChild(packageRootNode);
-        //rootNode.appendChild(globalRootNode);
+		final TreePanel panel = genericExplorerWidget(rootNode);
+		panel.setRootVisible(false);
 
-        final TreePanel panel = genericExplorerWidget(rootNode);
-        panel.setRootVisible(false);
+		TreePanelListener treePanelListener = new TreePanelListenerAdapter() {
+			public void onClick(TreeNode node, EventObject e) {
+				if (node.getUserObject() instanceof PackageConfigData
+						&& !"global".equals(((PackageConfigData) node.getUserObject()).name)) {
+					PackageConfigData pc = (PackageConfigData) node.getUserObject();
+					RulePackageSelector.currentlySelectedPackage = pc.name;
 
+					String uuid = pc.uuid;
+					centertabbedPanel.openPackageEditor(uuid, new Command() {
+						public void execute() {
+							// refresh the package tree.
+							refreshPackageTree();
+						}
+					});
+//				} else if (node.getUserObject() instanceof WorkingSetConfigData) {
+//					WorkingSetConfigData ws = (WorkingSetConfigData) node.getUserObject();
+//					if (!centertabbedPanel.showIfOpen("_ws_" + ws.name)) {
+//
+//					}
+				} else if (node.getUserObject() instanceof Object[]) {
+					Object[] uo = (Object[]) node.getUserObject();
+					final String[] fmts = (String[]) uo[0];
+					final PackageConfigData pc = (PackageConfigData) node.getParentNode().getUserObject();
+					RulePackageSelector.currentlySelectedPackage = pc.name;
+					String key = key(fmts, pc);
+					if (!centertabbedPanel.showIfOpen(key)) {
 
-        TreePanelListener treePanelListener = new TreePanelListenerAdapter() {
+						final AssetItemGrid list = new AssetItemGrid(new EditItemEvent() {
+							public void open(String uuid) {
+								centertabbedPanel.openAsset(uuid);
+							}
 
-            public void onClick(TreeNode node, EventObject e) {
-                if (node.getUserObject() instanceof PackageConfigData && !"global".equals(((PackageConfigData) node.getUserObject()).name)) {
-                    PackageConfigData pc = (PackageConfigData) node.getUserObject();
-                    RulePackageSelector.currentlySelectedPackage = pc.name;
+							public void open(MultiViewRow[] rows) {
+								centertabbedPanel.openAssets(rows);
+							}
+						}, AssetItemGrid.PACKAGEVIEW_LIST_TABLE_ID, new AssetItemGridDataLoader() {
+							public void loadData(int startRow, int numberOfRows, GenericCallback<TableDataResult> cb) {
+								RepositoryServiceFactory.getService().listAssets(pc.uuid, fmts, startRow, numberOfRows,
+										AssetItemGrid.PACKAGEVIEW_LIST_TABLE_ID, cb);
+							}
+						}, GWT.getModuleBaseURL() + "feed/package?name=" + pc.name + "&viewUrl="
+								+ CategoriesPanel.getSelfURL() + "&status=*");
+						tabPanel.addTab(uo[1] + " [" + pc.name + "]", true, list, key);
 
-                    String uuid = pc.uuid;
-                    centertabbedPanel.openPackageEditor(uuid, new Command() {
+						final ServerPushNotification sub = new ServerPushNotification() {
+							public void messageReceived(PushResponse response) {
+								if (response.messageType.equals("packageChange") && response.message.equals(pc.name)) {
+									list.refreshGrid();
+								}
+							}
+						};
+						PushClient.instance().subscribe(sub);
+						list.addUnloadListener(new Command() {
+							public void execute() {
+								PushClient.instance().unsubscribe(sub);
+							}
+						});
+					}
+				}
+			}
 
-                        public void execute() {
-                            //refresh the package tree.
-                            refreshPackageTree();
-                        }
-                    });
-                } else if (node.getUserObject() instanceof Object[]) {
-                    Object[] uo = (Object[]) node.getUserObject();
-                    final String[] fmts = (String[]) uo[0];
-                    final PackageConfigData pc = (PackageConfigData) node.getParentNode().getUserObject();
-                    RulePackageSelector.currentlySelectedPackage = pc.name;
-                    String key = key(fmts, pc);
-                    if (!centertabbedPanel.showIfOpen(key)) {
 
-                        final AssetItemGrid list = new AssetItemGrid(new EditItemEvent() {
-
-                            public void open(String uuid) {
-                                centertabbedPanel.openAsset(uuid);
-                            }
-
-                            public void open(MultiViewRow[] rows) {
-                                centertabbedPanel.openAssets(rows);
-                            }
-                        },
-                                AssetItemGrid.PACKAGEVIEW_LIST_TABLE_ID,
-                                new AssetItemGridDataLoader() {
-
-                                    public void loadData(int startRow, int numberOfRows, GenericCallback<TableDataResult> cb) {
-                                        RepositoryServiceFactory.getService().listAssets(pc.uuid, fmts, startRow, numberOfRows,
-                                                AssetItemGrid.PACKAGEVIEW_LIST_TABLE_ID, cb);
-                                    }
-                                }, GWT.getModuleBaseURL() + "feed/package?name=" + pc.name + "&viewUrl=" + CategoriesPanel.getSelfURL() + "&status=*");
-                        tabPanel.addTab(uo[1] + " [" + pc.name + "]", true, list, key);
-
-                        final ServerPushNotification sub = new ServerPushNotification() {
-
-                            public void messageReceived(PushResponse response) {
-                                if (response.messageType.equals("packageChange") && response.message.equals(pc.name)) {
-                                    list.refreshGrid();
-                                }
-                            }
-                        };
-                        PushClient.instance().subscribe(sub);
-                        list.addUnloadListener(new Command() {
-
-                            public void execute() {
-                                PushClient.instance().unsubscribe(sub);
-                            }
-                        });
-                    }
-                }
-            }
-
             @Override
             public void onCollapseNode(final TreeNode node) {
                 if (node.getText().equals(constants.Packages())) {
@@ -323,6 +302,8 @@
                     loadPackages(node);
                 }
             }
+
+
         };
         // register listener
         panel.addListener(treePanelListener);
@@ -338,7 +319,6 @@
 
 
         Window.addWindowResizeListener(new WindowResizeListener() {
-
             public void onWindowResized(int width, int height) {
                 scp.setHeight((int) (Window.getClientHeight() / 1.8) + "px"); //NON-NLS
             }
@@ -350,7 +330,6 @@
     private void loadPackages(final TreeNode root) {
         RepositoryServiceFactory.getService().listPackages(
                 new GenericCallback<PackageConfigData[]>() {
-
                     public void onSuccess(PackageConfigData[] value) {
                         PackageHierarchy ph = new PackageHierarchy();
 
@@ -370,21 +349,20 @@
     private void loadGlobal(final TreeNode root) {
         RepositoryServiceFactory.getService().loadGlobalPackage(
                 new GenericCallback<PackageConfigData>() {
-
                     public void onSuccess(PackageConfigData value) {
 
-                        TreeNode globalRootNode = ExplorerNodeConfig.getPackageItemStructure("Global Area", value.uuid);
-                        globalRootNode.setUserObject(value);
+                                TreeNode globalRootNode = ExplorerNodeConfig.getPackageItemStructure("Global Area", value.uuid);
+                                globalRootNode.setUserObject(value);
+                                
+                                globalRootNode.setAttribute("icon", "images/silk/chart_organisation.gif");   //NON-NLS
+                                globalRootNode.setAttribute("id", "globalarea");
+                        		
+                                root.appendChild(globalRootNode);
 
-                        globalRootNode.setAttribute("icon", "images/silk/chart_organisation.gif");   //NON-NLS
-                        globalRootNode.setAttribute("id", "globalarea");
-
-                        root.appendChild(globalRootNode);
-
                     }
                 });
     }
-
+    
     private void buildPkgTree(TreeNode root, PackageHierarchy.Folder fldr) {
         if (fldr.conf != null) {
             root.appendChild(loadPackage(fldr.name, fldr.conf));
@@ -401,9 +379,9 @@
 
     private TreeNode loadPackage(String name, PackageConfigData conf) {
         TreeNode pn = ExplorerNodeConfig.getPackageItemStructure(name, conf.uuid);
-        TreeNode wsNode = new TreeNode(constants.WorkingSets(), "images/workingset.gif");
-        ExplorerNodeConfig.getWorkingSetItemsStructure(wsNode, conf.workingsets);
-        pn.appendChild(wsNode);
+//        TreeNode wsNode = new TreeNode(constants.WorkingSets(), "images/workingset.gif");
+//        ExplorerNodeConfig.getWorkingSetItemsStructure(wsNode, conf.workingsets);
+//        pn.appendChild(wsNode);
         pn.setUserObject(conf);
         return pn;
     }

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java	2010-03-12 19:10:45 UTC (rev 32061)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java	2010-03-12 19:17:30 UTC (rev 32062)
@@ -2046,4 +2046,5 @@
     String WorkingSets();
     String NewWorkingSet();
     String CreateWorkingSet();
+    String WorkingSetName();
 }

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties	2010-03-12 19:10:45 UTC (rev 32061)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties	2010-03-12 19:17:30 UTC (rev 32062)
@@ -991,3 +991,4 @@
 WorkingSets=WorkingSets
 NewWorkingSet=New WorkingSet
 CreateWorkingSet=Create a WorkingSet
+WorkingSetName=WorkingSet name
\ No newline at end of file

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants_es_ES.properties
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants_es_ES.properties	2010-03-12 19:10:45 UTC (rev 32061)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants_es_ES.properties	2010-03-12 19:17:30 UTC (rev 32062)
@@ -908,3 +908,4 @@
 WorkingSets=WorkingSets
 NewWorkingSet=Nuevo WorkingSet
 CreateWorkingSet=Crear el WorkingSet
+WorkingSetName=Nombre del WorkingSet
\ No newline at end of file

Deleted: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/NewWorkingSetWizard.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/NewWorkingSetWizard.java	2010-03-12 19:10:45 UTC (rev 32061)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/NewWorkingSetWizard.java	2010-03-12 19:17:30 UTC (rev 32062)
@@ -1,101 +0,0 @@
-package org.drools.guvnor.client.packages;
-
-/*
- * 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 org.drools.guvnor.client.common.FormStyleLayout;
-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.RulePackageSelector;
-import org.drools.guvnor.client.messages.Constants;
-import org.drools.guvnor.client.rpc.RepositoryServiceFactory;
-
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.Window;
-import com.google.gwt.user.client.ui.Button;
-import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.TextBox;
-import com.google.gwt.user.client.ui.Widget;
-
-/**
- * This is the wizard used when creating new packages or importing them.
- * 
- * @author Pablo Nussembaum
- */
-public class NewWorkingSetWizard extends FormStylePopup {
-
-	private TextBox nameBox;
-	private TextBox descBox;
-	private RulePackageSelector parentPackage;
-	private final FormStyleLayout newPackageLayout = new FormStyleLayout();
-	private static Constants constants = ((Constants) GWT.create(Constants.class));
-
-	public NewWorkingSetWizard(final Command afterCreatedEvent) {
-		super("images/new_wiz.gif", constants.CreateANewSubPackage()); // NON-NLS
-		nameBox = new TextBox();
-		descBox = new TextBox();
-		parentPackage = new RulePackageSelector();
-
-		// newPackageLayout.addRow( new HTML(constants.CreateNewPackage()) );
-
-		newPackageLayout.addAttribute(constants.NameColon(), nameBox);
-		newPackageLayout.addAttribute(constants.DescriptionColon(), descBox);
-		newPackageLayout.addAttribute(constants.ParentPackage(), parentPackage);
-
-		nameBox.setTitle(constants.PackageNameTip());
-
-		this.setAfterShow(new Command() {
-			public void execute() {
-				nameBox.setFocus(true);
-			}
-		});
-
-		addRow(newPackageLayout);
-
-		Button create = new Button(constants.CreateWorkingSet());
-		create.addClickListener(new ClickListener() {
-			public void onClick(Widget w) {
-				if (PackageNameValidator.validatePackageName(nameBox.getText())) {
-					createWorkingSetAction(nameBox.getText(), descBox.getText(), 
-							parentPackage.getSelectedPackage(),
-							afterCreatedEvent);
-					hide();
-				} else {
-					nameBox.setText("");
-					Window.alert(constants.PackageNameCorrectHint());
-				}
-			}
-		});
-
-		newPackageLayout.addAttribute("", create);
-	}
-
-	private void createWorkingSetAction(final String name, final String descr, final String parentPackage,
-			final Command refresh) {
-		LoadingPopup.showMessage(constants.CreatingPackagePleaseWait());
-		RepositoryServiceFactory.getService().createWorkingSet(name, descr, parentPackage,
-				new GenericCallback<String>() {
-					public void onSuccess(String data) {
-						RulePackageSelector.currentlySelectedPackage = parentPackage;
-						LoadingPopup.close();
-						refresh.execute();
-					}
-				});
-	}
-
-}
\ No newline at end of file

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java	2010-03-12 19:10:45 UTC (rev 32061)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java	2010-03-12 19:17:30 UTC (rev 32062)
@@ -158,16 +158,6 @@
     public String createSubPackage(String name, String description, String parentPackage) throws SerializableException;
 
     /**
-     * 
-     * @param name
-     * @param descr
-     * @param parentPackage
-     * @return
-     * @throws Exception
-     */
-    public String createWorkingSet(String name, String descr, String parentPackage) throws SerializableException;
-    
-    /**
      * Loads a package by its uuid.
      * @return Well, its pretty obvious if you think about it for a minute. Really.
      */

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java	2010-03-12 19:10:45 UTC (rev 32061)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java	2010-03-12 19:17:30 UTC (rev 32062)
@@ -59,7 +59,6 @@
 	void createPackageSnapshot(java.lang.String packageName, java.lang.String snapshotName, boolean replaceExisting, java.lang.String comment, com.google.gwt.user.client.rpc.AsyncCallback<java.lang.Void> arg5);
 	void createState(java.lang.String name, com.google.gwt.user.client.rpc.AsyncCallback<java.lang.String> arg2);
 	void createSubPackage(java.lang.String name, java.lang.String description, java.lang.String parentPackage, com.google.gwt.user.client.rpc.AsyncCallback<java.lang.String> arg4);
-	void createWorkingSet(java.lang.String name, java.lang.String descr, java.lang.String parentPackage, com.google.gwt.user.client.rpc.AsyncCallback<java.lang.String> arg4);
 	void createUser(java.lang.String userName, com.google.gwt.user.client.rpc.AsyncCallback<java.lang.Void> arg2);
 	void deleteUncheckedRule(java.lang.String ruleName, java.lang.String initialPackage, com.google.gwt.user.client.rpc.AsyncCallback<java.lang.Void> arg3);
 	void deleteUser(java.lang.String userName, com.google.gwt.user.client.rpc.AsyncCallback<java.lang.Void> arg2);

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/WorkingSetConfigData.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/WorkingSetConfigData.java	2010-03-12 19:10:45 UTC (rev 32061)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/WorkingSetConfigData.java	2010-03-12 19:17:30 UTC (rev 32062)
@@ -1,12 +1,14 @@
 package org.drools.guvnor.client.rpc;
 
+import org.drools.guvnor.client.modeldriven.brl.PortableObject;
+
 import com.google.gwt.user.client.rpc.IsSerializable;
 
 /**
  * 
  * @author bauna
  */
-public class WorkingSetConfigData implements IsSerializable {
+public class WorkingSetConfigData implements PortableObject, IsSerializable {
 	public String name;
 	public String description;
 	

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/EditorLauncher.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/EditorLauncher.java	2010-03-12 19:10:45 UTC (rev 32061)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/EditorLauncher.java	2010-03-12 19:17:30 UTC (rev 32062)
@@ -52,60 +52,50 @@
     /**
      * This will return the appropriate viewer for the asset.
      */
-    public static Widget getEditorViewer(RuleAsset asset,
-                                         RuleViewer viewer) {
-        RulePackageSelector.currentlySelectedPackage = asset.metaData.packageName;
-        //depending on the format, load the appropriate editor
-        if ( asset.metaData.format.equals( AssetFormats.BUSINESS_RULE ) ) {
+	public static Widget getEditorViewer(RuleAsset asset, RuleViewer viewer) {
+		RulePackageSelector.currentlySelectedPackage = asset.metaData.packageName;
+		// depending on the format, load the appropriate editor
+		if (asset.metaData.format.equals(AssetFormats.BUSINESS_RULE)) {
+			return new RuleModeller(asset);
+		} else if (asset.metaData.format.equals(AssetFormats.DSL_TEMPLATE_RULE)) {
+			return new RuleValidatorWrapper(new DSLRuleEditor(asset), asset);
+		} else if (asset.metaData.format.equals(AssetFormats.BPEL_PACKAGE)
+				&& Preferences.getBooleanPref("flex-bpel-editor")) {
+			return new BPELWrapper(asset, viewer);
+		} else if (asset.metaData.format.equals(AssetFormats.MODEL)) {
+			return new ModelAttachmentFileWidget(asset, viewer);
+		} else if (asset.metaData.format.equals(AssetFormats.DECISION_SPREADSHEET_XLS)) {
+			return new DecisionTableXLSWidget(asset, viewer);
+		} else if (asset.metaData.format.equals(AssetFormats.RULE_FLOW_RF)) {
+			return new RuleFlowWrapper(asset, viewer);
+		} else if (asset.metaData.format.equals(AssetFormats.BPMN2_PROCESS)) {
+			return new RuleFlowWrapper(asset, viewer);
+		} else if (asset.metaData.format.equals(AssetFormats.DRL)) {
+			return new DrlEditor(asset);
+		} else if (asset.metaData.format.equals(AssetFormats.ENUMERATION)) {
+			return new DefaultRuleContentWidget(asset);
+		} else if (asset.metaData.format.equals(AssetFormats.TEST_SCENARIO)) {
+			return new ScenarioWidget(asset);
+		} else if (asset.metaData.format.equals(AssetFormats.DECISION_TABLE_GUIDED)) {
+			return new GuidedDecisionTableWidget(asset);
+		} else if (asset.metaData.format.equals(AssetFormats.DRL_MODEL)) {
+			return new FactModelWidget(asset);
+		} else if (asset.metaData.format.equals(AssetFormats.DSL)) {
+			return new DefaultRuleContentWidget(asset);
+		} else if (asset.metaData.format.equals(AssetFormats.PROPERTIES)) {
+			return new PropertiesWidget(asset, viewer);
+		} else if (asset.metaData.format.equals(AssetFormats.XML)) {
+			return new XmlFileWidget(asset, viewer);
+		} else if (asset.metaData.format.equals(AssetFormats.FUNCTION)) {
+			return new FunctionEditor(asset);
+		} else if (asset.metaData.format.equals(AssetFormats.WORKING_SET)) {
+			return new WorkingSetEditor(asset);
+		} else {
+			return new DefaultContentUploadEditor(asset, viewer);
+		}
 
-            return new RuleModeller( asset );
-            //return new RuleModeller( asset  );
-        } else if ( asset.metaData.format.equals( AssetFormats.DSL_TEMPLATE_RULE ) ) {
-            return new RuleValidatorWrapper( new DSLRuleEditor( asset ),
-                                             asset );
-        } else if ( asset.metaData.format.equals( AssetFormats.BPEL_PACKAGE ) && Preferences.getBooleanPref( "flex-bpel-editor" ) ) {
-            return new BPELWrapper( asset,
-                                    viewer );
-        } else if ( asset.metaData.format.equals( AssetFormats.MODEL ) ) {
-            return new ModelAttachmentFileWidget( asset,
-                                                  viewer );
-        } else if ( asset.metaData.format.equals( AssetFormats.DECISION_SPREADSHEET_XLS ) ) {
-            return new DecisionTableXLSWidget( asset,
-                                               viewer );
+	}
 
-        } else if ( asset.metaData.format.equals( AssetFormats.RULE_FLOW_RF ) ) {
-            return new RuleFlowWrapper( asset,
-                                        viewer );
-        } else if ( asset.metaData.format.equals( AssetFormats.BPMN2_PROCESS ) ) {
-            return new RuleFlowWrapper( asset,
-                                        viewer );
-        } else if ( asset.metaData.format.equals( AssetFormats.DRL ) ) {
-            return new DrlEditor( asset );
-        } else if ( asset.metaData.format.equals( AssetFormats.ENUMERATION ) ) {
-            return new DefaultRuleContentWidget( asset );
-        } else if ( asset.metaData.format.equals( AssetFormats.TEST_SCENARIO ) ) {
-            return new ScenarioWidget( asset );
-        } else if ( asset.metaData.format.equals( AssetFormats.DECISION_TABLE_GUIDED ) ) {
-            return new GuidedDecisionTableWidget( asset );
-        } else if ( asset.metaData.format.equals( AssetFormats.DRL_MODEL ) ) {
-            return new FactModelWidget( asset );
-        } else if ( asset.metaData.format.equals( AssetFormats.DSL ) ) {
-            return new DefaultRuleContentWidget( asset );
-        } else if ( asset.metaData.format.equals( AssetFormats.PROPERTIES ) ) {
-            return new PropertiesWidget( asset,
-                                         viewer );
-        } else if ( asset.metaData.format.equals( AssetFormats.XML ) ) {
-            return new XmlFileWidget( asset,
-                                      viewer );
-        } else if ( asset.metaData.format.equals( AssetFormats.FUNCTION ) ) {
-            return new FunctionEditor( asset );
-        } else {
-            return new DefaultContentUploadEditor( asset,
-                                                   viewer );
-        }
-
-    }
-
     private static Map<String, String> getTypeImages() {
         Map<String, String> result = new HashMap<String, String>();
 

Added: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetEditor.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetEditor.java	                        (rev 0)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetEditor.java	2010-03-12 19:17:30 UTC (rev 32062)
@@ -0,0 +1,97 @@
+package org.drools.guvnor.client.ruleeditor;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.drools.guvnor.client.common.AssetFormats;
+import org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.guvnor.client.packages.SuggestionCompletionCache;
+import org.drools.guvnor.client.rpc.RuleAsset;
+import org.drools.guvnor.client.rpc.WorkingSetConfigData;
+
+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.Grid;
+import com.google.gwt.user.client.ui.ListBox;
+import com.google.gwt.user.client.ui.Widget;
+
+public class WorkingSetEditor extends Composite {
+	private RuleAsset workingSet;
+	
+	public WorkingSetEditor(RuleAsset asset) {
+		if (!AssetFormats.WORKING_SET.equals(asset.metaData.format)) {
+			throw new IllegalArgumentException("asset must a be a workingset not a: " + asset.metaData.format);
+		}
+		workingSet = asset;
+		WorkingSetConfigData wsData = (WorkingSetConfigData) workingSet.content;
+		Grid grid = new Grid(1, 3);
+		final ListBox availFacts = new ListBox(true);
+		final ListBox validFacts = new ListBox(true);
+		SuggestionCompletionEngine sce = SuggestionCompletionCache.getInstance().getEngineFromCache(workingSet.metaData.packageName);
+		
+		Set<String> elem = new HashSet<String>();
+
+		availFacts.setVisibleItemCount(10);
+		validFacts.setVisibleItemCount(10);
+		
+		if (wsData.validFacts != null) {
+			elem.addAll(Arrays.asList(wsData.validFacts));
+			for (String factName : wsData.validFacts) {
+				validFacts.addItem(factName);
+			}
+		}
+			
+		for (String factName : sce.getFactTypes()) {
+			if (!elem.contains(factName)) {
+				availFacts.addItem(factName);
+			}
+		}
+		
+		Grid btnsPanel = new Grid(2,1);
+		
+		btnsPanel.setWidget(0, 0, new Button(">", new ClickListener() {
+			public void onClick(Widget sender) {
+				copySelected(availFacts, validFacts);
+				updateAsset(availFacts);
+			}
+		}));
+
+		btnsPanel.setWidget(1, 0, new Button("&lt;", new ClickListener() {
+			public void onClick(Widget sender) {
+				copySelected(validFacts, availFacts);
+				updateAsset(availFacts);
+			}
+		}));
+
+		grid.setWidget(0, 0, availFacts);
+		grid.setWidget(0, 1, btnsPanel);
+		grid.setWidget(0, 2, validFacts);
+		
+		grid.getColumnFormatter().setWidth(0, "45%");
+		grid.getColumnFormatter().setWidth(0, "10%");
+		grid.getColumnFormatter().setWidth(0, "45%");
+		
+		initWidget(grid);
+	}
+	
+	private void updateAsset(ListBox availFacts) {
+		List<String> l = new ArrayList<String>(availFacts.getItemCount()); 
+		for (int i = 0; i < availFacts.getItemCount(); i++) {
+			l.add(availFacts.getItemText(i));
+		}
+		((WorkingSetConfigData) workingSet.content).validFacts = l.toArray(new String[l.size()]);
+	}
+
+	private void copySelected(final ListBox from, final ListBox to) {
+		int selected;
+		while ((selected = from.getSelectedIndex()) != -1) {
+			to.addItem(from.getItemText(selected));
+			from.removeItem(selected);
+		}
+	}
+	
+}


Property changes on: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetEditor.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetSelectorPopup.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetSelectorPopup.java	2010-03-12 19:10:45 UTC (rev 32061)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetSelectorPopup.java	2010-03-12 19:17:30 UTC (rev 32062)
@@ -15,29 +15,29 @@
  * limitations under the License.
  */
 
-import com.google.gwt.user.client.ui.Widget;
-import org.drools.guvnor.client.common.FormStylePopup;
-import org.drools.guvnor.client.messages.Constants;
-
-import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.ui.Button;
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.ui.ClickListener;
-import com.gwtext.client.widgets.tree.TreeNode;
-import com.gwtext.client.widgets.tree.TreePanel;
-import java.util.ArrayList;
 import java.util.HashSet;
-import java.util.List;
 import java.util.Set;
+
+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.messages.Constants;
 import org.drools.guvnor.client.modeldriven.FactTypeFilter;
 import org.drools.guvnor.client.packages.SuggestionCompletionCache;
-import org.drools.guvnor.client.rpc.PackageConfigData;
 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 com.google.gwt.core.client.GWT;
+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.Widget;
+import com.gwtext.client.widgets.tree.TreeNode;
+import com.gwtext.client.widgets.tree.TreePanel;
+
 public class WorkingSetSelectorPopup {
 
     private final RuleAsset asset;
@@ -60,25 +60,37 @@
         treePanel.setRootNode(root);
         treePanel.setRootVisible(false);
 
-        RepositoryServiceFactory.getService().loadPackageConfig(asset.metaData.packageUUID, new GenericCallback<PackageConfigData>() {
+        RepositoryServiceFactory.getService().listAssets(asset.metaData.packageUUID, new String[] {AssetFormats.WORKING_SET}, 0, -1, "workingsetList", new GenericCallback<TableDataResult>()  {
 
-            public void onSuccess(PackageConfigData t) {
-                this.createTreeNodes(root, t.workingsets);
-            }
-
-            private void createTreeNodes(TreeNode root, WorkingSetConfigData[] data) {
-
-                for (WorkingSetConfigData ws : data) {
-                    TreeNode node = new TreeNode(ws.name);
-                    node.setAttribute("workingSet", ws);
+			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[0].id);
                     node.setChecked(false);
-                    if (ws.workingSets != null && ws.workingSets.length > 0) {
-                        this.createTreeNodes(node, ws.workingSets);
-                    }
-                    root.appendChild(node);
-                }
-            }
+                    root.appendChild(root);
+				}
+			}
         });
+        
+//        RepositoryServiceFactory.getService().loadPackageConfig(asset.metaData.packageUUID, new GenericCallback<PackageConfigData>() {
+//        	
+//            public void onSuccess(PackageConfigData t) {
+//                this.createTreeNodes(root, t.workingsets);
+//            }
+//
+//            private void createTreeNodes(TreeNode root, WorkingSetConfigData[] data) {
+//
+//                for (WorkingSetConfigData ws : data) {
+//                    TreeNode node = new TreeNode(ws.name);
+//                    node.setAttribute("workingSet", ws);
+//                    node.setChecked(false);
+//                    if (ws.workingSets != null && ws.workingSets.length > 0) {
+//                        this.createTreeNodes(node, ws.workingSets);
+//                    }
+//                    root.appendChild(node);
+//                }
+//            }
+//        });
 
         save = new Button(constants.SaveAndClose());
         save.addClickListener(new ClickListener() {
@@ -86,16 +98,15 @@
             public void onClick(Widget widget) {
                 TreeNode[] checked = treePanel.getChecked();
 
-                List<WorkingSetConfigData> data = new ArrayList<WorkingSetConfigData>(checked.length);
+                String[] wsUUIDs = new String[checked.length];
                 for (int i = 0; i < checked.length; i++) {
                     TreeNode treeNode = checked[i];
-                    data.add((WorkingSetConfigData) treeNode.getAttributeAsObject("workingSet"));
+                    wsUUIDs[i] = (String) treeNode.getUserObject();
                 }
+                //TODO: move this code to a class
 
-                ///TODO: move this code to a class
-
                 //if there are no WS checked, remove any SCE filter.
-                if (data.isEmpty()){
+                if (wsUUIDs.length > 0){
                     SuggestionCompletionCache.getInstance().refreshPackage(asset.metaData.packageName, new Command() {
                         public void execute() {
                             LoadingPopup.close();
@@ -107,23 +118,24 @@
                 }
 
                 final Set<String> validFacts = new HashSet<String>();
-                for (WorkingSetConfigData d : data) {
-                    for (int i = 0; i < d.validFacts.length; i++) {
-                        String validFact = d.validFacts[i];
-                        validFacts.add(validFact);
-                    }
-                }
-
-
+                RepositoryServiceFactory.getService().loadRuleAssets(wsUUIDs, new GenericCallback<RuleAsset[]>() {
+					public void onSuccess(RuleAsset[] result) {
+						for (RuleAsset asset : result) {
+							WorkingSetConfigData wsConfig = (WorkingSetConfigData) asset.content;
+		                    for (int i = 0; i < wsConfig.validFacts.length; i++) {
+		                        validFacts.add(wsConfig.validFacts[i]);
+		                    }
+		                }
+					}
+				});
+                
                 FactTypeFilter filter = new FactTypeFilter() {
-
                     public boolean filter(String originalFact) {
                         return !validFacts.contains(originalFact);
                     }
                 };
 
                 Command done = new Command() {
-
                     public void execute() {
                         LoadingPopup.close();
                         pop.hide();
@@ -131,13 +143,10 @@
                 };
 
                 SuggestionCompletionCache.getInstance().applyFactFilter(asset.metaData.packageName,filter,done);
-
-
             }
         });
         pop.addRow(treePanel);
         pop.addRow(save);
-
     }
 
     public void setCommand(final Command checkin) {

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/RepositoryServiceServlet.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/RepositoryServiceServlet.java	2010-03-12 19:10:45 UTC (rev 32061)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/RepositoryServiceServlet.java	2010-03-12 19:17:30 UTC (rev 32062)
@@ -165,10 +165,6 @@
 		return getService().createSubPackage(p0, p1, parentPackage);
 	}
 
-    public String createWorkingSet(String name, String descr, String parentPackage) throws SerializableException {
-    	return getService().createWorkingSet(name, descr, parentPackage);
-    }
-    
     public org.drools.guvnor.client.rpc.PackageConfigData loadPackageConfig(java.lang.String p0)  {
          return getService().loadPackageConfig( p0);
     }

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java	2010-03-12 19:10:45 UTC (rev 32061)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java	2010-03-12 19:17:30 UTC (rev 32062)
@@ -126,7 +126,6 @@
 import org.drools.repository.RulesRepositoryException;
 import org.drools.repository.StateItem;
 import org.drools.repository.VersionableItem;
-import org.drools.repository.WorkingSetItem;
 import org.drools.repository.RulesRepository.DateQuery;
 import org.drools.repository.security.PermissionManager;
 import org.drools.rule.Package;
@@ -388,7 +387,7 @@
         data.lasContributor = item.getLastContributor();
         data.state = item.getStateDescription();
         data.isSnapshot = item.isSnapshot();
-        data.workingsets = listWorkingSets(item.listWorkingSets());
+
         if ( data.isSnapshot ) {
             data.snapshotName = item.getSnapshotName();
         }
@@ -417,32 +416,12 @@
             }
             
             data.subPackages = listSubPackages(pkg, archive, filter);
-            data.workingsets = listWorkingSets(pkg.listWorkingSets());
         }
 
         sortPackages( result );
         return result.toArray( new PackageConfigData[result.size()] );
     }
-    
-    private WorkingSetConfigData[] listWorkingSets(Iterator<WorkingSetItem> workingSets) {
-    	List<WorkingSetConfigData> ret = new LinkedList<WorkingSetConfigData>();
-    	while (workingSets.hasNext()) {
-    		WorkingSetItem wsItem = workingSets.next();
-    		WorkingSetConfigData data =  new WorkingSetConfigData();
-    		data.name = wsItem.getName();
-    		data.description = wsItem.getDescription();
 
-                //TODO: change this!
-                //data.validFacts = wsItem.getValidFacts();
-                data.validFacts = new String[]{"Car"};
-
-
-                data.workingSets = listWorkingSets(wsItem.listChildren());
-    		ret.add(data);
-    	}
-		return ret.toArray(new WorkingSetConfigData[ret.size()]);
-	}
-
 	private PackageConfigData[] listSubPackages(PackageItem parentPkg, boolean archive, RepositoryFilter filter) {
     	List<PackageConfigData> children = new LinkedList<PackageConfigData>();
     	
@@ -917,25 +896,6 @@
     }
     
     @WebRemote
-    public String createWorkingSet(String name, String descr, String parentPackage) throws SerializableException {
-    	try {
-
-    		if (Contexts.isSessionContextActive()) {
-				Identity.instance().checkPermission(new AdminType(), RoleTypes.ADMIN);
-			}
-
-			log.info( "USER: " + getCurrentUserName() + " CREATING workingSet [" + name + "], package [" + parentPackage + "]");
-			PackageItem item = repository.loadPackage(parentPackage);
-			return item.addWorkingSet(name, descr).getUUID();
-		} catch (Exception e) {
-			log.error(e, e);
-			throw new SerializableException(e.getMessage());
-		} finally {
-			repository.save();
-		}
-    }
-    
-    @WebRemote
     @Restrict("#{identity.loggedIn}")
     public PackageConfigData loadPackageConfig(String uuid) {
         PackageItem item = repository.loadPackageByUUID( uuid );
@@ -962,7 +922,6 @@
         data.lasContributor = item.getLastContributor();
         data.state = item.getStateDescription();
         data.isSnapshot = item.isSnapshot();
-        data.workingsets = listWorkingSets(item.listWorkingSets());
         if ( data.isSnapshot ) {
             data.snapshotName = item.getSnapshotName();
         }

Added: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/WorkingSetHandler.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/WorkingSetHandler.java	                        (rev 0)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/WorkingSetHandler.java	2010-03-12 19:17:30 UTC (rev 32062)
@@ -0,0 +1,46 @@
+package org.drools.guvnor.server.contenthandler;
+
+import org.apache.log4j.spi.LoggerFactory;
+import org.drools.guvnor.client.rpc.RuleAsset;
+import org.drools.guvnor.client.rpc.WorkingSetConfigData;
+import org.drools.repository.AssetItem;
+import org.drools.repository.PackageItem;
+import org.drools.repository.RulesRepositoryException;
+import org.slf4j.Logger;
+
+import com.google.gwt.user.client.rpc.SerializableException;
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.io.xml.DomDriver;
+
+/**
+ *
+ */
+public class WorkingSetHandler extends ContentHandler {
+	private static final Logger log = org.slf4j.LoggerFactory.getLogger(WorkingSetHandler.class);
+	
+	private static final XStream xt = new XStream( new DomDriver() );
+	
+    public void retrieveAssetContent(RuleAsset asset, PackageItem pkg, AssetItem item)
+            throws SerializableException {
+        if (item.getContent() != null && item.getContent().length() > 0) {
+            try {
+				asset.content = (WorkingSetConfigData) xt.fromXML(item.getContent());
+			} catch (RulesRepositoryException e) {
+				log.error("error marshalling working set: " + asset.metaData.name, e);
+				throw new SerializableException(e.getMessage());
+			}
+        } else {
+        	asset.content = new WorkingSetConfigData();
+        }
+    }
+
+    public void storeAssetContent(RuleAsset asset, AssetItem repoAsset) throws SerializableException {
+    	try {
+			WorkingSetConfigData wsData = (WorkingSetConfigData) asset.content;
+			repoAsset.updateContent(xt.toXML(wsData));
+		} catch (Exception e) {
+			log.error("error marshalling working set: " + asset.metaData.name, e);
+			throw new SerializableException(e.getMessage());
+		}
+    }
+}


Property changes on: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/WorkingSetHandler.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/resources/contenthandler.properties
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/resources/contenthandler.properties	2010-03-12 19:10:45 UTC (rev 32061)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/resources/contenthandler.properties	2010-03-12 19:17:30 UTC (rev 32062)
@@ -34,3 +34,6 @@
 properties=org.drools.guvnor.server.contenthandler.PropertiesHandler
 #xml attachment
 xml=org.drools.guvnor.server.contenthandler.XmlFileHandler
+#Working_Set
+workingset=org.drools.guvnor.server.contenthandler.WorkingSetHandler
+

Added: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/resources/workingsetList.properties
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/resources/workingsetList.properties	                        (rev 0)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/resources/workingsetList.properties	2010-03-12 19:17:30 UTC (rev 32062)
@@ -0,0 +1,25 @@
+#
+# This is the configuration for the asset list table.
+# It can access any field on the AssetItem object by the method name.
+# It will intelligently convert types as appropriate.
+#
+#
+#
+# If you wish to customise, you can put your own properties ahead of the
+# repository on the classpath.
+#
+# NOTE: the key value is the key from the Constants.properties localisation bundle (which contains the display names
+#for the respective languages.
+#
+# @author Pablo Nussembaum
+#
+#
+
+#these must stay the same.
+Name=getName
+Description=getDescription
+
+#you can modify the following...
+LastModified=getLastModified
+Status=getStateDescription
+Package=getPackageName
\ No newline at end of file

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/JackrabbitRepositoryConfigurator.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/JackrabbitRepositoryConfigurator.java	2010-03-12 19:10:45 UTC (rev 32061)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/JackrabbitRepositoryConfigurator.java	2010-03-12 19:17:30 UTC (rev 32062)
@@ -69,8 +69,6 @@
                 
                 this.registerNodeTypesFromCndFile("/node_type_definitions/rule_node_type.cnd", ws);
                 this.registerNodeTypesFromCndFile("/node_type_definitions/rulepackage_node_type.cnd", ws);
-                this.registerNodeTypesFromCndFile("/node_type_definitions/workingset_node_type.cnd", ws);
-             
             }
             
             // Setup the rule repository node

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/PackageItem.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/PackageItem.java	2010-03-12 19:10:45 UTC (rev 32061)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/PackageItem.java	2010-03-12 19:17:30 UTC (rev 32062)
@@ -185,21 +185,6 @@
     	
     }
     
-    public WorkingSetItem addWorkingSet(String name, String description) throws RepositoryException {
-    	getNode().checkout();
-    	return new WorkingSetItem(name, description, getName(), rulesRepository, getWorkingSetFolderNode());
-    }
-    
-    public Iterator<WorkingSetItem> listWorkingSets()  {
-    	try {
-			return new WorkingSetItemIterator(getRulesRepository(), getNode().getNode(WORKINGSETS_FOLDER_NAME).getNodes());
-		} catch (PathNotFoundException e) {
-			return Collections.<WorkingSetItem>emptyList().iterator();
-		} catch (RepositoryException e) {
-			throw new RulesRepositoryException(e);
-		}
-    }
-
     /**
      * This adds a rule to the current physical package (you can move it later).
      * With the given category.

Deleted: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/WorkingSetItem.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/WorkingSetItem.java	2010-03-12 19:10:45 UTC (rev 32061)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/WorkingSetItem.java	2010-03-12 19:17:30 UTC (rev 32062)
@@ -1,111 +0,0 @@
-package org.drools.repository;
-
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.Iterator;
-
-import javax.jcr.Node;
-import javax.jcr.PathNotFoundException;
-import javax.jcr.RepositoryException;
-
-public class WorkingSetItem extends VersionableItem {
-
-	/**
-     * The Dublin Core format attribute.
-     */
-    public static final String WORKINGSET_FORMAT = "pkgWorkingSet";
-
-    /**
-     * The name of the rule package node type
-     */
-    public static final String WORKINGSET_PACKAGE_TYPE_NAME  = "drools:packageWorkingSet";
-    
-    public static final String PACKAGE_NAME_PROPERTY = AssetItem.PACKAGE_NAME_PROPERTY;
-
-	public static final String WORKINGSETS_FOLDER_NAME = PackageItem.WORKINGSETS_FOLDER_NAME;
-
-	private static final String VALID_FACTS_PROPERTY = "drools:validFacts";
-    
-    
-    /**
-     * Creates new {@link WorkingSetItem} under the provided {@link PackageItem}
-     * 
-     * @param name working set name
-     * @param rulesRepository the ruleRepository
-     * @param pkgItem under this package the WorkingSet will be created
-     * @throws RepositoryException 
-     */
-	public WorkingSetItem(String name, String description, String packageName, RulesRepository rulesRepository, Node workingSetParentNode) throws RepositoryException {
-		this(rulesRepository, createWorkingSet(name, description, packageName, rulesRepository, workingSetParentNode));
-	}
-
-	private static Node createWorkingSet(String name, String description, String pkgName, RulesRepository rulesRepository, Node wsFolderNode)
-			throws RepositoryException {
-		Node wsNode = wsFolderNode.addNode(name.trim(), WorkingSetItem.WORKINGSET_PACKAGE_TYPE_NAME);
-		wsNode.setProperty(WorkingSetItem.TITLE_PROPERTY_NAME, name);
-		wsNode.setProperty(WorkingSetItem.DESCRIPTION_PROPERTY_NAME, description);
-		wsNode.setProperty(WorkingSetItem.FORMAT_PROPERTY_NAME, WorkingSetItem.WORKINGSET_FORMAT);
-		wsNode.setProperty(WorkingSetItem.CHECKIN_COMMENT, "Initial");
-		wsNode.setProperty(WorkingSetItem.LAST_MODIFIED_PROPERTY_NAME, Calendar.getInstance());
-		wsNode.setProperty(WorkingSetItem.PACKAGE_NAME_PROPERTY, pkgName);
-		wsNode.setProperty(WorkingSetItem.CREATOR_PROPERTY_NAME, rulesRepository.getSession().getUserID());
-		return wsNode;
-	}
-	
-	public WorkingSetItem(RulesRepository rulesRepository, Node node) {
-		super(rulesRepository, node);
-	}
-
-	@Override
-	public WorkingSetItem getPrecedingVersion() throws RulesRepositoryException {
-		Node prev = getPrecedingVersionNode();
-		if (prev != null) {
-			return new WorkingSetItem(rulesRepository, prev);
-		}
-		return null;
-	}
-
-	@Override
-	public WorkingSetItem getSucceedingVersion() throws RulesRepositoryException {
-		Node next = getSucceedingVersionNode();
-		if (next != null) {
-			return new WorkingSetItem(rulesRepository, next);
-		}
-		return null;
-	}
-	
-    public Node getWorkingSetFolderNode() throws RepositoryException {
-       	try {
-			return getNode().getNode(WORKINGSETS_FOLDER_NAME);
-		} catch (PathNotFoundException e) {
-			return getNode().addNode(WORKINGSETS_FOLDER_NAME, "nt:folder");
-		}
-    	
-    }
-	
-	public WorkingSetItem addWorkingSet(String name, String description) throws RepositoryException {
-    	return new WorkingSetItem(name, description, getPackageName(), getRulesRepository(), getWorkingSetFolderNode());
-    }
-	
-	public String getPackageName() {
-		return getStringProperty(PACKAGE_NAME_PROPERTY);
-	}
-	
-	public String[] getValidFacts() {
-		return getStringPropertyArray(VALID_FACTS_PROPERTY);
-	}
-
-	public void updateValidFacts(String[] validFacts) {
-		updateStringArrayProperty(validFacts, VALID_FACTS_PROPERTY, true);
-	}
-	
-	public Iterator<WorkingSetItem> listChildren() {
-		try {
-			return new WorkingSetItemIterator(getRulesRepository(), getNode().getNode(WORKINGSETS_FOLDER_NAME).getNodes());
-		} catch (PathNotFoundException e) {
-			return Collections.<WorkingSetItem>emptyList().iterator();
-		} catch (RepositoryException e) {
-			throw new RulesRepositoryException(e);
-		}
-	}
-}

Deleted: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/WorkingSetItemIterator.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/WorkingSetItemIterator.java	2010-03-12 19:10:45 UTC (rev 32061)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/WorkingSetItemIterator.java	2010-03-12 19:17:30 UTC (rev 32062)
@@ -1,29 +0,0 @@
-package org.drools.repository;
-
-import java.util.Iterator;
-
-import javax.jcr.NodeIterator;
-
-public class WorkingSetItemIterator implements Iterator<WorkingSetItem> {
-
-	private RulesRepository rulesRepository; 
-	private NodeIterator wsIterator;
-	
-	public WorkingSetItemIterator(RulesRepository rulesRepository, NodeIterator wsIterator) {
-		this.rulesRepository = rulesRepository;
-		this.wsIterator = wsIterator;
-	}
-	
-	public boolean hasNext() {
-		return wsIterator.hasNext();
-	}
-
-	public WorkingSetItem next() {
-		return new WorkingSetItem(rulesRepository, wsIterator.nextNode());
-	}
-
-	public void remove() {
-		wsIterator.remove();
-	}
-
-}

Deleted: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/resources/node_type_definitions/workingset_node_type.cnd
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/resources/node_type_definitions/workingset_node_type.cnd	2010-03-12 19:10:45 UTC (rev 32061)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/resources/node_type_definitions/workingset_node_type.cnd	2010-03-12 19:17:30 UTC (rev 32062)
@@ -1,27 +0,0 @@
-/*  The node type definition for the ruleset node type.  
-    See http://jackrabbit.apache.org/doc/nodetype/cnd.html for an explanation
-*/
-
-// The namespace declaration
-<drools = 'http://www.jboss.org/drools-repository/1.0'>
-<nt='http://www.jcp.org/jcr/nt/1.0'>
-<mix='http://www.jcp.org/jcr/mix/1.0'>
-
-// Node type name
-[drools:packageWorkingSet]
-
-// Supertypes
-> 'drools:versionableNodeType', 'nt:folder'
-
-- drools:archive (boolean) = 'false' mandatory autocreated
-
-- drools:validFacts (String) = '' mandatory autocreated multiple 
-
-// Multiple assets are children of one physical package definition
-// these folders contain the actual assets
-+ * (drools:packageWorkingSet)
-  ignore
-
-// use this to capture fields which are not known ahead of time 
-- * (undefined) 
-



More information about the jboss-svn-commits mailing list