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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Feb 3 21:23:43 EST 2007


Author: michael.neale at jboss.com
Date: 2007-02-03 21:23:43 -0500 (Sat, 03 Feb 2007)
New Revision: 9321

Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStyleLayout.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageEditor.java
   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/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/server/JBRMSServiceServlet.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/MetaDataMapper.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
Log:
JBRULES-633 package configuration editor

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStyleLayout.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStyleLayout.java	2007-02-04 02:18:39 UTC (rev 9320)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStyleLayout.java	2007-02-04 02:23:43 UTC (rev 9321)
@@ -36,6 +36,14 @@
     }
     
     /**
+     * Clears the layout table.
+     */
+    public void clear() {
+        numInLayout = 0;
+        this.layout.clear();
+    }
+    
+    /**
      * Add a widget to the "form".
      */
     public void addAttribute(String lbl,

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageEditor.java	2007-02-04 02:18:39 UTC (rev 9320)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageEditor.java	2007-02-04 02:23:43 UTC (rev 9321)
@@ -1,13 +1,19 @@
 package org.drools.brms.client.packages;
 
 import org.drools.brms.client.common.FormStyleLayout;
+import org.drools.brms.client.common.GenericCallback;
+import org.drools.brms.client.common.LoadingPopup;
 import org.drools.brms.client.rpc.PackageConfigData;
+import org.drools.brms.client.rpc.RepositoryServiceFactory;
 
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.Button;
 import com.google.gwt.user.client.ui.ChangeListener;
 import com.google.gwt.user.client.ui.ClickListener;
 import com.google.gwt.user.client.ui.FlexTable;
 import com.google.gwt.user.client.ui.HorizontalPanel;
 import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.Label;
 import com.google.gwt.user.client.ui.TextArea;
 import com.google.gwt.user.client.ui.TextBox;
 import com.google.gwt.user.client.ui.VerticalPanel;
@@ -30,14 +36,57 @@
         setHeight( "100%" );
         setWidth( "100%" );
         
-        addHeader( "images/package_large.png", this.conf.metaData.name );
+        refreshWidgets();
+    }
+
+    private void refreshWidgets() {
+        clear();
+        addHeader( "images/package_large.png", this.conf.name );
         
         addAttribute( "Description:", description() );
         addAttribute( "Header:", header() );
         addAttribute( "External URI:", externalURI() );
+        addAttribute( "Last modified on:", new Label(this.conf.lastModified.toLocaleString())  );
+        addAttribute( "Last modified by:", new Label(this.conf.lasContributor));
+        addRow( saveChangeWidget() );
+    }
+
+    private Widget saveChangeWidget() {
         
+        Button save = new Button("Save configuration changes");
+        save.addClickListener( new ClickListener() {
+            public void onClick(Widget w) {
+                doSaveAction();
+            }
+        } );
+        
+        return save;
     }
 
+    private void doSaveAction() {
+        LoadingPopup.showMessage( "Saving package configuration. Please wait ..." );
+        RepositoryServiceFactory.getService().savePackage( this.conf, new GenericCallback() {
+            public void onSuccess(Object data) {
+                reload();
+            }            
+        });
+        
+    }
+
+    /**
+     * Will refresh all the data.
+     */
+    private void reload() {
+        LoadingPopup.showMessage( "Refreshing package data..." );
+        RepositoryServiceFactory.getService().loadPackage( this.conf.name, new GenericCallback() {
+            public void onSuccess(Object data) {
+                LoadingPopup.close();
+                conf = (PackageConfigData) data;
+                refreshWidgets();
+            }
+        });
+    }
+
     private Widget externalURI() {
         final TextBox box = new TextBox();
         box.setWidth( "100%" );
@@ -65,6 +114,8 @@
             }            
         });
         
+        
+        
         HorizontalPanel panel = new HorizontalPanel();
         panel.add( area );
 
@@ -88,6 +139,7 @@
             public void onClick(Widget w) {
                 area.setText( area.getText(  ) + "\n" + 
                               "import <your class here>");
+                conf.header = area.getText();
             }
         });
         vert.add( newImport );
@@ -98,6 +150,7 @@
             public void onClick(Widget w) {
                 area.setText( area.getText() + "\n" + 
                               "global <your class here> <variable name>");
+                conf.header = area.getText();
             }
         });
         newGlobal.setTitle( "Add a new global variable declaration." );
@@ -131,10 +184,11 @@
         final TextArea area = new TextArea();
         area.setWidth( "100%" );
         area.setVisibleLines( 4 );
+        area.setText( conf.description );
         
         area.addChangeListener( new ChangeListener() {
             public void onChange(Widget w) {
-                conf.metaData.description = area.getText();                 
+                conf.description = area.getText();                 
             }            
         });
         

Modified: 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	2007-02-04 02:18:39 UTC (rev 9320)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/PackageConfigData.java	2007-02-04 02:23:43 UTC (rev 9321)
@@ -1,5 +1,7 @@
 package org.drools.brms.client.rpc;
 
+import java.util.Date;
+
 import com.google.gwt.user.client.rpc.IsSerializable;
 
 /**
@@ -14,6 +16,11 @@
     public String uuid;
     public String header;    
     public String externalURI;
-    public MetaData metaData;
+    public String name;
+    public String description;
+    public Date   lastModified;
+    public String lasContributor;
     
+    
+    
 }

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-04 02:18:39 UTC (rev 9320)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryService.java	2007-02-04 02:23:43 UTC (rev 9321)
@@ -84,12 +84,10 @@
      */
     public PackageConfigData loadPackage(String name);
     
-//    /**
-//     * This will save the package info. It will also 
-//     * checkin a new version (a baseline of the package) if needed.
-//     * If a state is provded, the status will be changed to that ot the package and all its
-//     * assets.
-//     */
-//    public String savePackageConfiguration(PackageConfigData config, boolean createBaseline, String newState);
-//    
+    /**
+     * Saves the package config data in place (does not create a new version of anything).
+     * @return The UUID of the saved item.
+     */
+    public String savePackage(PackageConfigData data) 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-04 02:18:39 UTC (rev 9320)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryServiceAsync.java	2007-02-04 02:23:43 UTC (rev 9321)
@@ -28,4 +28,6 @@
     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);
+    public void savePackage(org.drools.brms.client.rpc.PackageConfigData 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-04 02:18:39 UTC (rev 9320)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java	2007-02-04 02:23:43 UTC (rev 9321)
@@ -364,6 +364,13 @@
         cb.onSuccess( new PackageConfigData() );
         
     }
+
+
+
+    public void savePackage(PackageConfigData p0,
+                            AsyncCallback cb) {
+        cb.onSuccess( "UUID" );        
+    }
     
     
 

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-04 02:18:39 UTC (rev 9320)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java	2007-02-04 02:23:43 UTC (rev 9321)
@@ -388,11 +388,28 @@
         data.uuid = item.getUUID();
         data.header = item.getHeader();
         data.externalURI = item.getExternalURI();
+        data.description = item.getDescription();
+        data.name = item.getName();
+        data.lastModified = item.getLastModified().getTime();
+        data.lasContributor = item.getLastContributor();
         
-        data.metaData = this.populateMetaData( item );
         
         return data;
     }
+
+    public String savePackage(PackageConfigData data) throws SerializableException {
+        
+        PackageItem item = getRulesRepository().loadPackage( data.name );
+        
+        
+        item.updateHeader( data.header );
+        item.updateExternalURI( data.externalURI );
+        item.updateDescription( data.description );
+        
+        getRulesRepository().save();
+        
+        return item.getUUID();
+    }
     
 
 

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/MetaDataMapper.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/MetaDataMapper.java	2007-02-04 02:18:39 UTC (rev 9320)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/MetaDataMapper.java	2007-02-04 02:23:43 UTC (rev 9321)
@@ -22,15 +22,14 @@
  */
 public class MetaDataMapper {
 
-    private Map readMappings;
-    private Map writeMappings;
     
+    private Map writeMappingsForClass = new HashMap();
+
+    private Map readMappipngsForClass = new HashMap();
     
     public void copyFromMetaData(MetaData data, Object target) {
-        if ( this.writeMappings == null ) {
-            this.writeMappings = loadWriteMappings( data,
-                                              target.getClass() );
-        }
+        Map writeMappings = getWriteMappings( data,
+                          target );
         
         for ( Iterator iter = writeMappings.entrySet().iterator(); iter.hasNext(); ) {
             Map.Entry e = (Map.Entry) iter.next();
@@ -50,6 +49,16 @@
         }        
         
     }
+
+    private Map getWriteMappings(MetaData data,
+                                  Object target) {
+        if (!this.writeMappingsForClass.containsKey( target.getClass() )) {
+            Map writeMappings = loadWriteMappings( data,
+                                                    target.getClass() );
+            writeMappingsForClass.put( target.getClass(), writeMappings );
+        }
+        return (Map) writeMappingsForClass.get( target.getClass() );
+    }
     
     private Map loadWriteMappings(MetaData data,
                                   Class bean) {
@@ -81,10 +90,8 @@
 
     public void copyToMetaData(MetaData data,
                                Object source) {
-        if ( this.readMappings == null ) {
-            this.readMappings = loadReadMappings( data,
-                                              source.getClass() );
-        }
+        Map readMappings = getReadMappings( data,
+                         source );
 
         for ( Iterator iter = readMappings.entrySet().iterator(); iter.hasNext(); ) {
             Map.Entry e = (Map.Entry) iter.next();
@@ -105,6 +112,15 @@
 
     }
 
+    private Map getReadMappings(MetaData data,
+                                 Object source) {
+        if (!this.readMappipngsForClass.containsKey( source.getClass() )) {
+            this.readMappipngsForClass.put( source.getClass(), loadReadMappings( data,
+                                                                                 source.getClass() ) );
+        }
+        return (Map) this.readMappipngsForClass.get( source.getClass() );
+    }
+
     private Map loadReadMappings(MetaData data,
                             Class bean) {
 

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-04 02:18:39 UTC (rev 9320)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java	2007-02-04 02:23:43 UTC (rev 9321)
@@ -287,7 +287,13 @@
       assertNotNull(item);
       assertEquals("this is a new package", item.getDescription());
       
+      
+      
       assertEquals(pkgs.length + 1, impl.listRulePackages().length);
+      
+      PackageConfigData conf = impl.loadPackage( "testCreatePackage" );
+      assertEquals("this is a new package", conf.description);
+      assertNotNull(conf.lastModified);
   }
   
   public void testLoadPackageConfig() throws Exception {
@@ -301,14 +307,33 @@
       PackageConfigData data = impl.loadPackage( "default" );
       assertNotNull(data);
       
-      assertEquals("default", data.metaData.name);
+      assertEquals("default", data.name);
       assertEquals("header", data.header);
       assertEquals("ext", data.externalURI);
-      assertEquals("xyz", data.metaData.coverage);
       
       assertNotNull(data.uuid);
       
   }
   
+  public void testPackageConfSave() throws Exception {
+      MockJBRMSServiceServlet impl = new MockJBRMSServiceServlet();
+      String uuid = impl.createPackage( "testPackageConfSave", "a desc" );
+      PackageConfigData data = impl.loadPackage( "testPackageConfSave" );
+      
+      data.description = "new desc";
+      data.header = "wa";
+      data.externalURI = "new URI";
+      
+      
+      String uuid2 = impl.savePackage( data );
+      assertNotNull(uuid);
+      assertEquals(uuid, uuid2);
+      
+      data = impl.loadPackage( "testPackageConfSave" );
+      assertEquals("new desc", data.description);
+      assertEquals("wa", data.header);
+      assertEquals("new URI", data.externalURI);      
+  }
+  
     
 }




More information about the jboss-svn-commits mailing list