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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Mar 6 21:50:09 EST 2007


Author: michael.neale at jboss.com
Date: 2007-03-06 21:50:09 -0500 (Tue, 06 Mar 2007)
New Revision: 10007

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/categorynav/CategoryEditor.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryService.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryServiceAsync.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
Log:
JBRULES-726 Can remove categories

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	2007-03-07 01:49:34 UTC (rev 10006)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/admin/CategoryManager.java	2007-03-07 02:50:09 UTC (rev 10007)
@@ -4,10 +4,14 @@
 import org.drools.brms.client.categorynav.CategoryExplorerWidget;
 import org.drools.brms.client.categorynav.CategorySelectHandler;
 import org.drools.brms.client.common.FormStyleLayout;
+import org.drools.brms.client.common.GenericCallback;
+import org.drools.brms.client.rpc.RepositoryServiceFactory;
 
+import com.google.gwt.user.client.Window;
 import com.google.gwt.user.client.ui.ClickListener;
 import com.google.gwt.user.client.ui.Composite;
 import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.HorizontalPanel;
 import com.google.gwt.user.client.ui.Image;
 import com.google.gwt.user.client.ui.SimplePanel;
 import com.google.gwt.user.client.ui.VerticalPanel;
@@ -30,8 +34,10 @@
 
         explorer = new CategoryExplorerWidget(new CategorySelectHandler() {
             public void selected(String sel) {
-                selectedPath = sel;
-            }             
+                selectPath( sel );
+            }
+
+          
          });
 
         
@@ -63,11 +69,39 @@
         } );
         
         form.addAttribute( "Create a new category:", newCat );
-         
+        
+        Image delete = new Image("images/delete_obj.gif");
+        delete.addClickListener( new ClickListener() {
+            public void onClick(Widget w) {
+                deleteSelected();
+            }
+        } );
+        delete.setTitle( "Deletes the currently selected category. You won't be able to delete if the category is in use." );
+        
+        form.addAttribute( "Delete the currently selected category:", delete );
+        
         initWidget( form );
     }
     
     
+    private void deleteSelected() {
+        if (Window.confirm( "Are you sure you want to delete category: " + selectedPath )) {
+            RepositoryServiceFactory.getService().removeCategory( selectedPath, new GenericCallback() {
 
+                public void onSuccess(Object data) {
+                    explorer.refresh();
+                }
+                
+            });
+        }        
+    }
+
+    /**
+     * This is called when the user clicks somewhere on the tree.
+     * @param sel
+     */
+    private void selectPath(String sel) {
+        selectedPath = sel;
+    }   
     
 }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/categorynav/CategoryEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/categorynav/CategoryEditor.java	2007-03-07 01:49:34 UTC (rev 10006)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/categorynav/CategoryEditor.java	2007-03-07 02:50:09 UTC (rev 10007)
@@ -97,7 +97,7 @@
             ErrorPopup.showMessage( "Can't have an empty category name." );
         } else {
             RepositoryServiceFactory.getService().createCategory( path, name.getText(), description.getText(), cb );        
-            //this.table.setWidget( 0, 1, new Label("Please wait ..." ));
+            
         }
     }
     

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryService.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryService.java	2007-03-07 01:49:34 UTC (rev 10006)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryService.java	2007-03-07 02:50:09 UTC (rev 10007)
@@ -176,4 +176,14 @@
      */
     public TableDataResult quickFindAsset(String searchText, int maxMatches);
     
+    
+    /**
+     * This will remove a category. A category must have no
+     * current assets linked to it, or else it will not be able to be removed. 
+     * @param categoryPath The full path to the category. Any sub categories will also
+     * be removed.
+     * @throws SerializableException For when it all goes horribly wrong.
+     */
+    public void removeCategory(String categoryPath) throws SerializableException;
+    
 }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryServiceAsync.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryServiceAsync.java	2007-03-07 01:49:34 UTC (rev 10006)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryServiceAsync.java	2007-03-07 02:50:09 UTC (rev 10007)
@@ -37,7 +37,7 @@
     public void listSnapshots(java.lang.String p0, AsyncCallback cb);
     public void createPackageSnapshot(java.lang.String p0, java.lang.String p1, boolean p2, java.lang.String p3, AsyncCallback cb);
     public void copyOrRemoveSnapshot(java.lang.String p0, java.lang.String p1, boolean p2, java.lang.String p3, AsyncCallback cb);
-    public void quickFindAsset(java.lang.String p0, int p2, AsyncCallback cb);
-    public void changeState(java.lang.String p0, java.lang.String p1, boolean p2, AsyncCallback cb);
-    
+    public void quickFindAsset(java.lang.String p0, int p1, AsyncCallback cb);
+    public void removeCategory(java.lang.String p0, AsyncCallback cb);
+    public void changeState(java.lang.String p0, java.lang.String p1, boolean p2, AsyncCallback cb);    
 }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java	2007-03-07 01:49:34 UTC (rev 10006)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java	2007-03-07 02:50:09 UTC (rev 10007)
@@ -75,10 +75,12 @@
                                   String description) {
         
         if (path == null || "".equals(path)) {
-            path = "/";
+            path = "/";        
         }
-        CategoryItem item = getRulesRepository().loadCategory( path );
+        RulesRepository repo = getRulesRepository();
+        CategoryItem item = repo.loadCategory( path );
         item.addCategory( name, description );
+        repo.save();
         return Boolean.TRUE;
     }
     
@@ -552,6 +554,18 @@
         return result;
         
     }
+
+    public void removeCategory(String categoryPath) throws SerializableException {
+        RulesRepository repo = getRulesRepository();
+        
+        try {
+            repo.loadCategory( categoryPath ).remove();
+            repo.save();
+        } catch (RulesRepositoryException e) {
+            throw new SerializableException( e.getMessage() );
+        }
+        
+    }
     
 
 

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java	2007-03-07 01:49:34 UTC (rev 10006)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java	2007-03-07 02:50:09 UTC (rev 10007)
@@ -547,5 +547,16 @@
       
   }
   
+  public void testRemoveCategory() throws Exception {
+      
+      JBRMSServiceServlet impl = new MockJBRMSServiceServlet();
+      String[] children = impl.loadChildCategories( "/" );
+      impl.createCategory( "/", "testRemoveCategory", "foo" );
+      
+      impl.removeCategory( "testRemoveCategory" );
+      String[] _children = impl.loadChildCategories( "/" );
+      assertEquals(children.length, _children.length);
+  }
+  
     
 }




More information about the jboss-svn-commits mailing list