[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