[jboss-svn-commits] JBL Code SVN: r9233 - in labs/jbossrules/trunk/drools-jbrms/src: main/java/org/drools/brms/client/rpc/mock and 6 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jan 31 19:08:40 EST 2007


Author: michael.neale at jboss.com
Date: 2007-01-31 19:08:40 -0500 (Wed, 31 Jan 2007)
New Revision: 9233

Added:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/PackageConfigData.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/meta_data.png
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/trash.gif
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/rpc/
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/rpc/MetaDataTest.java
Removed:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/meta_data.gif
Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/MetaData.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/client/rpc/mock/MockRepositoryServiceAsync.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/AssetCategoryEditor.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.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-633 package configuration editor JBRULES-637

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/MetaData.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/MetaData.java	2007-02-01 00:01:41 UTC (rev 9232)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/MetaData.java	2007-02-01 00:08:40 UTC (rev 9233)
@@ -2,6 +2,8 @@
 
 import java.util.Date;
 
+import org.drools.brms.client.modeldriven.brxml.RuleAttribute;
+
 import com.google.gwt.user.client.rpc.IsSerializable;
 
 /**
@@ -44,5 +46,41 @@
     
     /** used to flag dirty - ie needs to be spanked. Or saved to the repo, whatever */
     public boolean dirty = false;
+    
+    /**
+     * Remove a category.
+     * @param idx The index of the cat to remove.
+     */
+    public void removeCategory(int idx) {
+        String[] newList = new String[categories.length - 1];
+        int newIdx = 0;
+        for ( int i = 0; i < categories.length; i++ ) {
+            
+            if (i != idx) {
+                newList[newIdx] = categories[i];
+                newIdx++;
+            }
+            
+        }
+        this.categories = newList;
+    }
+    
+    /**
+     * Add the given cat to the end of the cat list.
+     */
+    public void addCategory(String cat) {
+        for ( int i = 0; i < this.categories.length; i++ ) {
+            if (categories[i].equals( cat )) return;
+        }
+        String[] list = this.categories;
+        String[] newList = new String[list.length + 1];
+        
+        for ( int i = 0; i < list.length; i++ ) {
+            newList[i] =  list[i];
+        }
+        newList[list.length] = cat; 
+        
+        this.categories = newList;           
+    }
 
 }

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/PackageConfigData.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/PackageConfigData.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/PackageConfigData.java	2007-02-01 00:08:40 UTC (rev 9233)
@@ -0,0 +1,18 @@
+package org.drools.brms.client.rpc;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+
+/**
+ * This contains data for a package configuration.
+ * @author Michael Neale
+ *
+ */
+public class PackageConfigData
+    implements
+    IsSerializable {
+
+    public String uuid;
+    public String header;    
+    public MetaData metaData;
+    
+}


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/PackageConfigData.java
___________________________________________________________________
Name: svn:eol-style
   + native

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-01 00:01:41 UTC (rev 9232)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryService.java	2007-02-01 00:08:40 UTC (rev 9233)
@@ -77,4 +77,11 @@
      */
     public String createPackage(String name, String description) throws SerializableException;
     
+    /**
+     * Loads a package by its name (NOT UUID !).
+     * @param name The name of the package (NOT THE UUID !).
+     * @return Well, its pretty obvious if you think about it for a minute. Really.
+     */
+    public PackageConfigData loadPackage(String name);
+    
 }

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-01 00:01:41 UTC (rev 9232)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryServiceAsync.java	2007-02-01 00:08:40 UTC (rev 9233)
@@ -27,4 +27,5 @@
     public void checkinVersion(org.drools.brms.client.rpc.RuleAsset p0, AsyncCallback cb);
     public void restoreVersion(java.lang.String p0, java.lang.String p1, java.lang.String p2, AsyncCallback cb);
     public void createPackage(java.lang.String p0, java.lang.String p1, AsyncCallback cb);
+    public void loadPackage(java.lang.String p0, AsyncCallback cb);
 }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java	2007-02-01 00:01:41 UTC (rev 9232)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java	2007-02-01 00:08:40 UTC (rev 9233)
@@ -18,6 +18,7 @@
 import org.drools.brms.client.modeldriven.brxml.IPattern;
 import org.drools.brms.client.modeldriven.brxml.RuleModel;
 import org.drools.brms.client.rpc.MetaData;
+import org.drools.brms.client.rpc.PackageConfigData;
 import org.drools.brms.client.rpc.RepositoryServiceAsync;
 import org.drools.brms.client.rpc.RuleAsset;
 import org.drools.brms.client.rpc.RuleContentText;
@@ -355,6 +356,14 @@
         cb.onSuccess( "UUIDHERE" );
         
     }
+
+
+
+    public void loadPackage(String name,
+                            AsyncCallback cb) {
+        cb.onSuccess( new PackageConfigData() );
+        
+    }
     
     
 

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/AssetCategoryEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/AssetCategoryEditor.java	2007-02-01 00:01:41 UTC (rev 9232)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/AssetCategoryEditor.java	2007-02-01 00:08:40 UTC (rev 9233)
@@ -7,9 +7,10 @@
 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.FlexTable;
+import com.google.gwt.user.client.ui.Grid;
 import com.google.gwt.user.client.ui.HorizontalPanel;
 import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.ListBox;
 import com.google.gwt.user.client.ui.PopupPanel;
 import com.google.gwt.user.client.ui.VerticalPanel;
 import com.google.gwt.user.client.ui.Widget;
@@ -26,9 +27,10 @@
 public class AssetCategoryEditor extends Composite {
 
     private MetaData data;
-    private HorizontalPanel panel = new HorizontalPanel();
-    private ListBox box;
+    private Grid layout = new Grid(1, 2);
+    private FlexTable list;
     
+    
     /**
      * @param d The meta data.
      * @param readOnly If it is to be non editable.
@@ -37,21 +39,26 @@
     public AssetCategoryEditor(MetaData d, boolean readOnly) {
         this.data = d;
 
-        box = new ListBox();
+        list = new FlexTable();
         
         
-        box.setVisibleItemCount( 3 );
-        box.setWidth( "100%" );
-        box.setMultipleSelect( false );
-        loadData( box );        
-        panel.add( box );
         
+        loadData( list );  
+        list.setStyleName( "rule-List" );
+        layout.setWidget( 0, 0, list );
+        
+        
         if (!readOnly) {
             doActions();
         }
+    
         
-        panel.setWidth( "100%" );
-        initWidget( panel );        
+        
+
+        
+        
+        
+        initWidget( layout );        
     }
 
     private void doActions() {
@@ -65,47 +72,42 @@
             }            
         });
         
-        Image remove = new Image("images/delete_obj.gif");
-        remove.setTitle( "Remove the currently selected category." );
-        remove.addClickListener( new ClickListener() {
-            public void onClick(Widget w) {
-                 if (box.getSelectedIndex() != -1) {
-                     removeCategory(box.getItemText( box.getSelectedIndex()));
-                 }
-            }
-        });
         
-        
         actions.add( add );
-        actions.add( remove );
-        panel.add( actions );
+        layout.setWidget( 0, 1, actions );
+        
     }
 
-    protected void removeCategory(String category) {
+    protected void removeCategory(int idx) {
         
-        String[] newList = new String[data.categories.length - 1];
+        data.removeCategory( idx );
         
-        for ( int i = 0, j = 0; i < data.categories.length; i++) {
-            if (! data.categories[i].equals( category )) {
-                newList[j] = data.categories[i];
-                j++;
-            } 
-        }
-        
         data.dirty = true;
-        data.categories = newList;
         
         resetBox();
     }
 
     private void resetBox() {
-        box.clear();
-        loadData( box );
+        
+        list = new FlexTable();
+        list.setStyleName( "rule-List" );
+        layout.setWidget( 0, 0, list );        
+        loadData( list );
     }
 
-    private void loadData(ListBox box) {
+    private void loadData(FlexTable list) {
         for ( int i = 0; i < data.categories.length; i++ ) {
-            box.addItem( data.categories[i] );
+            final int idx = i;
+            
+            list.setText( i, 0, data.categories[i] );
+            Image del = new Image("images/trash.gif");
+            del.setTitle( "Remove this category" );
+            del.addClickListener( new ClickListener() {
+                public void onClick(Widget w) {
+                    removeCategory(idx);
+                }
+            } );
+            list.setWidget( i, 1, del );            
         }
     }
     
@@ -114,15 +116,7 @@
 
     /** Handles the OK click on the selector popup */
     private void doOKClick() {
-//        final CategorySelector sel = new CategorySelector();
-//        sel.ok.addClickListener( new ClickListener() {
-//            public void onClick(Widget w) {                
-//                addToCategory(sel.selectedPath);   
-//                sel.hide();
-//            }            
-//        });
-//        sel.setPopupPosition( this.getAbsoluteLeft(), this.getAbsoluteTop() );
-//        sel.show();
+
         CategorySelector sel = new CategorySelector();
         sel.setPopupPosition( getAbsoluteLeft(), getAbsoluteTop() );
         sel.show();  
@@ -137,22 +131,7 @@
     public void addToCategory(String selectedPath) {
 
         
-        //ignore already selected ones.
-        for ( int i = 0; i < data.categories.length; i++ ) {
-            if (data.categories[i].equals( selectedPath )) {
-                return;
-            }
-        }
-        
-        String[] newList = new String[data.categories.length + 1];
-        for ( int i = 0; i < data.categories.length; i++ ) {
-                newList[i] = data.categories[i];
-        }
-        newList[data.categories.length] = selectedPath;
-        
-        data.categories = newList;
-        data.dirty = true;
-        
+        data.addCategory( selectedPath );
         resetBox();
     }
 

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java	2007-02-01 00:01:41 UTC (rev 9232)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java	2007-02-01 00:08:40 UTC (rev 9233)
@@ -30,7 +30,7 @@
         setStyleName( "editable-Surface" );
         
         if (!readOnly) {
-            addHeader( "images/meta_data.gif", d.name );
+            addHeader( "images/meta_data.png", d.name );
         } else {
             addHeader( "images/asset_version.png", d.name );
         }

Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/meta_data.gif
===================================================================
(Binary files differ)

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/meta_data.png
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/meta_data.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/trash.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/trash.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

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-01 00:01:41 UTC (rev 9232)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java	2007-02-01 00:08:40 UTC (rev 9233)
@@ -18,6 +18,7 @@
 import javax.servlet.http.HttpSession;
 
 import org.drools.brms.client.rpc.MetaData;
+import org.drools.brms.client.rpc.PackageConfigData;
 import org.drools.brms.client.rpc.RepositoryService;
 import org.drools.brms.client.rpc.RuleAsset;
 import org.drools.brms.client.rpc.TableConfig;
@@ -32,6 +33,7 @@
 import org.drools.repository.RepositoryConfigurator;
 import org.drools.repository.RulesRepository;
 import org.drools.repository.RulesRepositoryException;
+import org.drools.repository.VersionableItem;
 
 import com.google.gwt.user.client.rpc.SerializableException;
 import com.google.gwt.user.server.rpc.RemoteServiceServlet;
@@ -219,7 +221,7 @@
 
         
         //load standard meta data
-        asset.metaData = popuplateMetaData( item );
+        asset.metaData = populateMetaData( item );
         
         //load the content
         AssetContentFormatHandler handler = new AssetContentFormatHandler();
@@ -230,13 +232,26 @@
     
 
     /** 
-     * read in the meta data.
-     * @param item
-     * @return
+     * read in the meta data, populating all dublin core and versioning stuff.
      */
-    MetaData popuplateMetaData(AssetItem item) {
+    MetaData populateMetaData(VersionableItem item) {
         MetaData meta = new MetaData();
+        
+        meta.state = (item.getState() != null) ? item.getState().getName() : "";
 
+        getMetaDataMapper().copyToMetaData( meta, item );
+        
+        meta.createdDate = calendarToDate(item.getCreatedDate());
+        meta.lastModifiedDate = calendarToDate( item.getLastModified() );
+        
+        return meta;
+    }
+    
+    /**
+     * Populate meta data with asset specific info.
+     */
+    MetaData populateMetaData(AssetItem item) {
+        MetaData meta = populateMetaData( (VersionableItem ) item);
         meta.packageName = item.getPackageName();
         
         List cats = item.getCategories();
@@ -245,18 +260,10 @@
             CategoryItem cat = (CategoryItem) cats.get(i);
             meta.categories[i] = cat.getFullPath();          
         }
-        
-        meta.state = (item.getState() != null) ? item.getState().getName() : "";
-
-        getMetaDataMapper().copyToMetaData( meta, item );
-        
-        meta.createdDate = calendarToDate(item.getCreatedDate());
         meta.dateEffective = calendarToDate( item.getDateEffective() );
         meta.dateExpired = calendarToDate( item.getDateExpired() );
-        meta.lastModifiedDate = calendarToDate( item.getLastModified() );
+        return meta;
         
-        
-        return meta;
     }
 
     private Date calendarToDate(Calendar createdDate) {
@@ -387,6 +394,18 @@
         
         return item.getUUID();
     }
+
+    public PackageConfigData loadPackage(String name) {
+        PackageItem item = getRulesRepository().loadPackage( name );
+        
+        PackageConfigData data = new PackageConfigData();
+        data.uuid = item.getUUID();
+        data.header = item.getHeader();
+        
+        data.metaData = this.populateMetaData( item );
+        
+        return data;
+    }
     
 
 

Added: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/rpc/MetaDataTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/rpc/MetaDataTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/rpc/MetaDataTest.java	2007-02-01 00:08:40 UTC (rev 9233)
@@ -0,0 +1,29 @@
+package org.drools.brms.client.rpc;
+
+import junit.framework.TestCase;
+
+public class MetaDataTest extends TestCase {
+
+    public void testAddCats() {
+        MetaData data = new MetaData();
+        data.addCategory( "new cat" );
+        assertEquals(1, data.categories.length);
+        assertEquals("new cat", data.categories[0]);
+        
+        data.addCategory( "another" );
+        assertEquals(2, data.categories.length);
+        assertEquals("another", data.categories[1]);
+        
+        data.addCategory( "another" );
+        assertEquals(2, data.categories.length);
+    }
+    
+    public void testRemoveCats() {
+        MetaData data = new MetaData();
+        data.categories = new String[] {"wa", "la"};
+        data.removeCategory( 0 );
+        assertEquals(1, data.categories.length);
+        assertEquals("la", data.categories[0]);
+    }
+    
+}


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/rpc/MetaDataTest.java
___________________________________________________________________
Name: svn:eol-style
   + native

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-01 00:01:41 UTC (rev 9232)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java	2007-02-01 00:08:40 UTC (rev 9233)
@@ -5,6 +5,7 @@
 
 import junit.framework.TestCase;
 
+import org.drools.brms.client.rpc.PackageConfigData;
 import org.drools.brms.client.rpc.RepositoryService;
 import org.drools.brms.client.rpc.RuleAsset;
 import org.drools.brms.client.rpc.RuleContentText;
@@ -289,5 +290,14 @@
       assertEquals(pkgs.length + 1, impl.listRulePackages().length);
   }
   
+  public void testLoadPackageConfig() throws Exception {
+      MockJBRMSServiceServlet impl = new MockJBRMSServiceServlet();
+      PackageConfigData data = impl.loadPackage( "default" );
+      assertNotNull(data);
+      
+      assertEquals("default", data.metaData.name);
+      
+  }
+  
     
 }




More information about the jboss-svn-commits mailing list