[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