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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Feb 27 01:33:27 EST 2007


Author: michael.neale at jboss.com
Date: 2007-02-27 01:33:27 -0500 (Tue, 27 Feb 2007)
New Revision: 9802

Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageExplorerWidget.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageManagerView.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageSnapshotView.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-644 fin !

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.java	2007-02-27 06:27:19 UTC (rev 9801)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.java	2007-02-27 06:33:27 UTC (rev 9802)
@@ -154,14 +154,14 @@
     }
 
     public void showLoadEditor(String uuid) {
-        showLoadEditor( openedViewers, tab, uuid );
+        showLoadEditor( openedViewers, tab, uuid, false );
     }
 
     /**
      * This will show the rule viewer. If it was previously opened, it will show that dialog instead
      * of opening it again.
      */
-    public static void showLoadEditor(final Map openedViewers, final TabPanel tab,  final String uuid) {
+    public static void showLoadEditor(final Map openedViewers, final TabPanel tab,  final String uuid, final boolean readonly) {
       
         
       if (openedViewers.containsKey( uuid )) {
@@ -178,7 +178,7 @@
 
           public void onSuccess(Object o) {
               RuleAsset asset = (RuleAsset) o;
-              final RuleViewer view = new RuleViewer(asset);
+              final RuleViewer view = new RuleViewer(asset, readonly);
               
               String displayName = asset.metaData.name;
               if (displayName.length() > 10) {

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageExplorerWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageExplorerWidget.java	2007-02-27 06:27:19 UTC (rev 9801)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageExplorerWidget.java	2007-02-27 06:33:27 UTC (rev 9802)
@@ -49,7 +49,7 @@
      * This is for the generic and re-useable package explorer.
      */    
     public PackageExplorerWidget(EditItemEvent edit) {
-        this(edit, null);
+        this(edit, null, false);
     }
     
     /**
@@ -57,7 +57,7 @@
      * @param edit The edit event (action) when the user wants to open an item.
      * @param uuid The package to lock this to.
      */
-    public PackageExplorerWidget(EditItemEvent edit, String uuid) {
+    public PackageExplorerWidget(EditItemEvent edit, String uuid, boolean readonly) {
         
         this.editEvent = edit;
         this.uuid = uuid;
@@ -84,15 +84,17 @@
         
         VerticalPanel left = new VerticalPanel();
         left.add( exTree );
-        
-        FlexTable buttons = new FlexTable();
-        buttons.getCellFormatter().setStyleName( 0, 0, "new-asset-Icons" );
-        buttons.getCellFormatter().setAlignment( 0, 0, HasHorizontalAlignment.ALIGN_CENTER, HasVerticalAlignment.ALIGN_MIDDLE );
 
-        buttons.setWidget( 0, 0, getNewWizardButtons() );
-        left.add( buttons );
-        buttons.setWidth( "100%" );
-        
+        if (!readonly) {
+            //only care about new buttons if its not read only
+            FlexTable buttons = new FlexTable();
+            buttons.getCellFormatter().setStyleName( 0, 0, "new-asset-Icons" );
+            buttons.getCellFormatter().setAlignment( 0, 0, HasHorizontalAlignment.ALIGN_CENTER, HasVerticalAlignment.ALIGN_MIDDLE );
+    
+            buttons.setWidget( 0, 0, getNewWizardButtons() );
+            left.add( buttons );
+            buttons.setWidth( "100%" );
+        }
         layout.setWidget( 0, 0, left );
         FlexCellFormatter formatter = layout.getFlexCellFormatter();
         formatter.setVerticalAlignment( 0, 0, HasVerticalAlignment.ALIGN_TOP );

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageManagerView.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageManagerView.java	2007-02-27 06:27:19 UTC (rev 9801)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageManagerView.java	2007-02-27 06:33:27 UTC (rev 9802)
@@ -29,20 +29,20 @@
      * not including snapshots.
      */
     public PackageManagerView() {
-        this(null);
+        this(null, false);
     }
 
     /**
      * This is used when you only want to view one package.
      * @param packageUUID The UUID of the package.
      */
-    public PackageManagerView(String packageUUID) {
+    public PackageManagerView(String packageUUID, final boolean readonly) {
         tab = new TabPanel();
         tab.setWidth("100%");
         tab.setHeight("100%");   
         EditItemEvent editEvent = new EditItemEvent() {
             public void open(String key) {
-                RulesFeature.showLoadEditor( openedViewers, tab, key );
+                RulesFeature.showLoadEditor( openedViewers, tab, key, readonly );
             }
         };
         PackageExplorerWidget explorer = null;
@@ -50,7 +50,7 @@
         if (packageUUID == null) {
             explorer = new PackageExplorerWidget(editEvent);            
         } else {
-            explorer = new PackageExplorerWidget(editEvent, packageUUID);
+            explorer = new PackageExplorerWidget(editEvent, packageUUID, readonly);
         }
         
         tab.add( explorer,  "Explore");        

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageSnapshotView.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageSnapshotView.java	2007-02-27 06:27:19 UTC (rev 9801)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageSnapshotView.java	2007-02-27 06:33:27 UTC (rev 9802)
@@ -1,6 +1,7 @@
 package org.drools.brms.client.packages;
 
 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.PackageConfigData;
@@ -24,6 +25,7 @@
 import com.google.gwt.user.client.ui.Image;
 import com.google.gwt.user.client.ui.Label;
 import com.google.gwt.user.client.ui.TabPanel;
+import com.google.gwt.user.client.ui.TextBox;
 import com.google.gwt.user.client.ui.Tree;
 import com.google.gwt.user.client.ui.TreeItem;
 import com.google.gwt.user.client.ui.TreeListener;
@@ -151,8 +153,8 @@
             table.setWidget( row, 1, name );
             table.setWidget( row, 2, new Label(list[i].comment) );
             table.setWidget( row, 3, getOpenSnapshotButton(pkgName, name.getText(), list[i].uuid) );
-            table.setWidget( row, 4, new Button("Copy") );
-            table.setWidget( row, 4, getDeleteButton(name.getText(), pkgName) );
+            table.setWidget( row, 4, getCopyButton(pkgName, name.getText() ) );
+            table.setWidget( row, 5, getDeleteButton(name.getText(), pkgName) );
             
             if (i%2 == 0) {
                 table.getRowFormatter().setStyleName( i + 1, SortableTable.styleEvenRow );
@@ -172,6 +174,36 @@
         
     }
 
+    private Button getCopyButton(final String packageName, final String snapshotName) {
+        final FormStylePopup copy = new FormStylePopup("images/snapshot.png", "Copy snapshot " + snapshotName);
+        final TextBox box = new TextBox();
+        copy.addAttribute( "New label:", box );
+        Button ok = new Button("OK");        
+        copy.addAttribute( "", ok );
+        
+        ok.addClickListener( new ClickListener() {
+            public void onClick(Widget w) {
+                service.copyOrRemoveSnapshot( packageName, snapshotName, false, box.getText(), new GenericCallback() {
+                    public void onSuccess(Object data) {
+                        showPackage( packageName );
+                        copy.hide();                        
+                    }
+                });
+            }
+        } );
+        
+        
+        Button btn = new Button("Copy");
+        btn.addClickListener( new ClickListener() {
+            public void onClick(Widget w) {
+                copy.setPopupPosition( w.getAbsoluteLeft(), w.getAbsoluteTop() );
+                copy.show();
+            }            
+        });
+        
+        return btn;
+    }
+
     private Button getOpenSnapshotButton(final String pkgName, final String snapshotName, final String uuid) {
 
         
@@ -179,37 +211,9 @@
         but.addClickListener( new ClickListener() {
             public void onClick(Widget w) {
                 
-                FlexTable viewLayout = new FlexTable();
-                String msg = "<b>Viewing snapshot labelled: </b>" + snapshotName + 
-                    " for package " + pkgName + ". This should not be edited.";
-                HorizontalPanel horiz = new HorizontalPanel();
-                horiz.add( new HTML(msg) );
-                Image close = new Image("images/close.gif");
-                close.setTitle( "Close this view" );
-                close.addClickListener( new ClickListener() {
-                    public void onClick(Widget w) {
-                        tab.remove( 1 );
-                        tab.selectTab( 0 );
-                    }
-                } );
-                horiz.add( close );
-                viewLayout.setWidget( 0, 0, horiz );
-                FlexCellFormatter formatter = viewLayout.getFlexCellFormatter();
-                formatter.setStyleName( 0, 0, "editable-Surface" );
-                
-                
-                viewLayout.setWidget( 1, 0, new PackageManagerView(uuid) );
-                
-                
-                
-                viewLayout.setWidth( "100%" );
-                viewLayout.setHeight( "100%" );
-                
-                if (tab.getWidgetCount() > 1) {
-                    tab.remove( 1 );
-                }
-                tab.add( viewLayout, "<img src='images/package_snapshot_item.gif'> " + pkgName + " [" + snapshotName + "]", true );
-                tab.selectTab( 1 );
+                openPackageSnapshot( pkgName,
+                                     snapshotName,
+                                     uuid );
             }            
         });
         
@@ -223,9 +227,17 @@
             public void onClick(Widget w) {
                 boolean confirm = Window.confirm( "Are you sure you want to delete the snapshot labelled [" + snapshotName +
                                  "] from the package [" + pkgName + "] ?");
-                Window.alert( "FINISH ME !" );
-                if (!confirm) return;
                 
+                if (!confirm) 
+                {
+                    return;
+                } else {
+                    service.copyOrRemoveSnapshot( pkgName, snapshotName, true, null, new GenericCallback() {
+                        public void onSuccess(Object data) {
+                            showPackage( pkgName );
+                        }                    
+                    });
+                }
             }
             
         });
@@ -239,4 +251,40 @@
         return item;
     }
 
+    /**
+     * This opens the package viewer, showing the contents of that snapshot.
+     */
+    private void openPackageSnapshot(final String pkgName,
+                                     final String snapshotName,
+                                     final String uuid) {
+        FlexTable viewLayout = new FlexTable();
+        String msg = "<b>Viewing snapshot labelled: </b>" + snapshotName + 
+            " for package " + pkgName + ". This should not be edited.";
+        HorizontalPanel horiz = new HorizontalPanel();
+        horiz.add( new HTML(msg) );
+        Image close = new Image("images/close.gif");
+        close.setTitle( "Close this view" );
+        close.addClickListener( new ClickListener() {
+            public void onClick(Widget w) {
+                tab.remove( 1 );
+                tab.selectTab( 0 );
+            }
+        } );
+        horiz.add( close );
+        viewLayout.setWidget( 0, 0, horiz );
+        FlexCellFormatter formatter = viewLayout.getFlexCellFormatter();
+        formatter.setStyleName( 0, 0, "editable-Surface" );
+        
+        viewLayout.setWidget( 1, 0, new PackageManagerView(uuid, true) );
+        
+        viewLayout.setWidth( "100%" );
+        viewLayout.setHeight( "100%" );
+        
+        if (tab.getWidgetCount() > 1) {
+            tab.remove( 1 );
+        }
+        tab.add( viewLayout, "<img src='images/package_snapshot_item.gif'> " + pkgName + " [" + snapshotName + "]", true );
+        tab.selectTab( 1 );
+    }
+
 }

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-02-27 06:27:19 UTC (rev 9801)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryService.java	2007-02-27 06:33:27 UTC (rev 9802)
@@ -155,4 +155,13 @@
      */
     public void createPackageSnapshot(String packageName, String snapshotName, boolean replaceExisting, String comment);
     
+    /**
+     * This alters an existing snapshot, it can be used to copy or delete it. 
+     * @param packageName The package name that we are dealing with. 
+     * @param snapshotName The snapshot name (this must exist)
+     * @param delete true if the snapshotName is to be removed. 
+     * @param newSnapshotName The name of the target snapshot that the contents will be copied to.
+     */
+    public void copyOrRemoveSnapshot(String packageName, String snapshotName, boolean delete, String newSnapshotName) 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-02-27 06:27:19 UTC (rev 9801)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryServiceAsync.java	2007-02-27 06:33:27 UTC (rev 9802)
@@ -36,6 +36,7 @@
     public void copyAsset(java.lang.String p0, java.lang.String p1, java.lang.String p2, AsyncCallback cb);
     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 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-02-27 06:27:19 UTC (rev 9801)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java	2007-02-27 06:33:27 UTC (rev 9802)
@@ -475,6 +475,22 @@
         repo.save();
         
     }
+
+    public void copyOrRemoveSnapshot(String packageName,
+                                     String snapshotName,
+                                     boolean delete,
+                                     String newSnapshotName) throws SerializableException {
+        RulesRepository repo = getRulesRepository();
+        if (delete) {
+            repo.removePackageSnapshot( packageName, snapshotName );
+        } else {
+            if (newSnapshotName.equals( "" )) {
+                throw new SerializableException("Need to have a new snapshot name.");
+            }
+            repo.copyPackageSnapshot( packageName, snapshotName, newSnapshotName );
+        }
+        
+    }
     
 
 

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-02-27 06:27:19 UTC (rev 9801)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java	2007-02-27 06:33:27 UTC (rev 9802)
@@ -514,6 +514,18 @@
       impl.createPackageSnapshot( "testSnapshot", "X", true, "we" );
       assertEquals(2, impl.listSnapshots( "testSnapshot" ).length);
       
+      impl.copyOrRemoveSnapshot( "testSnapshot", "X", false, "Q" );
+      assertEquals(3, impl.listSnapshots( "testSnapshot" ).length);
+      
+      try {
+          impl.copyOrRemoveSnapshot( "testSnapshot", "X", false, "" );
+          fail("should not be able to copy snapshot to empty detination");
+      } catch (SerializableException e) {
+          assertNotNull(e.getMessage());
+      }
+      
+      impl.copyOrRemoveSnapshot( "testSnapshot", "X", true, null );
+      assertEquals(2, impl.listSnapshots( "testSnapshot" ).length);      
   }
   
     




More information about the jboss-svn-commits mailing list