[jboss-svn-commits] JBL Code SVN: r18309 - in labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client: packages and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Feb 5 05:04:07 EST 2008
Author: michael.neale at jboss.com
Date: 2008-02-05 05:04:07 -0500 (Tue, 05 Feb 2008)
New Revision: 18309
Added:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/SnapshotView.java
Modified:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerLayoutManager.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerViewCenterPanel.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageBuilderWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageEditor2.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageSnapshotView.java
Log:
new L&F - snapshots
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerLayoutManager.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerLayoutManager.java 2008-02-05 06:19:56 UTC (rev 18308)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerLayoutManager.java 2008-02-05 10:04:07 UTC (rev 18309)
@@ -12,6 +12,7 @@
import org.drools.brms.client.common.GenericCallback;
import org.drools.brms.client.common.LoadingPopup;
import org.drools.brms.client.packages.NewPackageWizard;
+import org.drools.brms.client.packages.SnapshotView;
import org.drools.brms.client.rpc.PackageConfigData;
import org.drools.brms.client.rpc.RepositoryServiceFactory;
import org.drools.brms.client.rpc.SnapshotInfo;
@@ -25,6 +26,7 @@
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.Ext;
import com.gwtext.client.data.Node;
@@ -36,6 +38,7 @@
import com.gwtext.client.widgets.Toolbar;
import com.gwtext.client.widgets.ToolbarButton;
import com.gwtext.client.widgets.ToolbarMenuButton;
+import com.gwtext.client.widgets.event.ButtonListener;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
import com.gwtext.client.widgets.event.TabPanelItemListener;
import com.gwtext.client.widgets.event.TabPanelItemListenerAdapter;
@@ -197,6 +200,8 @@
packagesPanel.add(pkgToolbar);
packagesPanel.setWidth("100%");
+ //deploymentPanel.add(deploymentToolbar());
+
/** ****************** */
ContentPanel cp = new ContentPanel("eg-explorer", "BRMS Explorer");
cp.setWidth(" 100%");
@@ -239,6 +244,8 @@
tpPackageExplorer.setContent(packagesPanel);
tpDeployment.setContent(deploymentPanel);
+
+
tpAdmin.setContent(vp4);
//these panels are lazy loaded to easy startup wait time.
@@ -271,6 +278,23 @@
layout.add(LayoutRegionConfig.WEST, tree);
}
+ private Widget deploymentToolbar() {
+ Toolbar tb = new Toolbar(Ext.generateId());
+ tb.addButton(new ToolbarButton(new ButtonConfig() {
+ {
+ setText("New deployment snapshot");
+ setButtonListener(new ButtonListenerAdapter() {
+ public void onClick(Button button, EventObject e) {
+
+ super.onClick(button, e);
+ }
+ });
+ }
+ }));
+ // TODO Auto-generated method stub
+ return tb;
+ }
+
private Menu rulesNewMenu() {
Menu m = new Menu(Ext.generateId());
@@ -493,29 +517,14 @@
final TreeNode root = new TreeNode("Package snapshots", new TreeNodeConfig() {
{
setIcon("images/silk/chart_organisation.gif");
+ setId("snapshotRoot");
}
});
final TreePanel panel = genericExplorerWidget(root);
cp.add(panel);
- RepositoryServiceFactory.getService().listPackages(
- new GenericCallback() {
- public void onSuccess(Object data) {
- PackageConfigData value[] = (PackageConfigData[]) data;
- for (int i = 0; i < value.length; i++) {
- TreeNode pkg = new TreeNode(value[i].name, new TreeNodeConfig() {
- {
- setIcon("images/package.gif");
- }
- });
- pkg.setUserObject(value[i]);
- pkg.appendChild(new TreeNode("Please wait..."));
- root.appendChild(pkg);
- }
- root.expand();
- }
- });
+ deploymentListPackages(root);
panel.addTreePanelListener(new TreePanelListenerAdapter() {
@@ -524,12 +533,18 @@
for (int i = 0; i < children.length; i++) {
node.removeChild(children[i]);
}
- node.appendChild(new TreeNode("Please wait..."));
+ if (node.getId().equals("snapshotRoot")) {
+ deploymentListPackages(root);
+ } else {
+ node.appendChild(new TreeNode("Please wait..."));
+ }
; }
public void onExpand(final TreeNode node) {
-
- PackageConfigData conf = (PackageConfigData) node.getUserObject();
+ if (node.getId().equals("snapshotRoot")) {
+ return;
+ }
+ final PackageConfigData conf = (PackageConfigData) node.getUserObject();
RepositoryServiceFactory.getService().listSnapshots(conf.name, new GenericCallback() {
public void onSuccess(Object data) {
final SnapshotInfo[] snaps = (SnapshotInfo[]) data;
@@ -541,7 +556,7 @@
setText(snapInfo.name);
}
});
- snap.setUserObject(snapInfo);
+ snap.setUserObject(new Object[] {snapInfo, conf});
node.appendChild(snap);
@@ -556,8 +571,10 @@
public void onClick(TreeNode node, EventObject e) {
- if (node.getUserObject() instanceof SnapshotInfo) {
- SnapshotInfo snap = (SnapshotInfo) node.getUserObject();
+ if (node.getUserObject() instanceof Object[]) {
+ Object[] o = (Object[]) node.getUserObject();
+ SnapshotInfo snap = (SnapshotInfo) o[0];
+ centertabbedPanel.openSnapshot(snap);
}
}
});
@@ -565,7 +582,27 @@
return cp;
}
+ private void deploymentListPackages(final TreeNode root) {
+ RepositoryServiceFactory.getService().listPackages(
+ new GenericCallback() {
+ public void onSuccess(Object data) {
+ PackageConfigData value[] = (PackageConfigData[]) data;
+ for (int i = 0; i < value.length; i++) {
+ TreeNode pkg = new TreeNode(value[i].name, new TreeNodeConfig() {
+ {
+ setIcon("images/package.gif");
+ }
+ });
+ pkg.setUserObject(value[i]);
+ pkg.appendChild(new TreeNode("Please wait..."));
+ root.appendChild(pkg);
+ }
+ root.expand();
+ }
+ });
+ }
+
/**
* Build the package explorer panel.
*/
@@ -668,7 +705,8 @@
return pn;
}
- private TreePanel genericExplorerWidget(final TreeNode childNode) {
+
+ public static TreePanel genericExplorerWidget(final TreeNode childNode) {
// create and configure the main tree
final TreePanel menuTree = new TreePanel(Ext.generateId(),
new TreePanelConfig() {
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerViewCenterPanel.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerViewCenterPanel.java 2008-02-05 06:19:56 UTC (rev 18308)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerViewCenterPanel.java 2008-02-05 10:04:07 UTC (rev 18309)
@@ -1,28 +1,27 @@
package org.drools.brms.client.explorer;
import java.util.HashMap;
-import java.util.Map;
import org.drools.brms.client.common.GenericCallback;
import org.drools.brms.client.common.LoadingPopup;
import org.drools.brms.client.packages.PackageEditor2;
+import org.drools.brms.client.packages.SnapshotView;
import org.drools.brms.client.packages.SuggestionCompletionCache;
import org.drools.brms.client.rpc.PackageConfigData;
import org.drools.brms.client.rpc.RepositoryServiceFactory;
import org.drools.brms.client.rpc.RuleAsset;
+import org.drools.brms.client.rpc.SnapshotInfo;
import org.drools.brms.client.ruleeditor.RuleViewer;
import org.drools.brms.client.rulelist.EditItemEvent;
import org.drools.brms.client.rulelist.QuickFindWidget;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.ui.SimplePanel;
-import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import com.gwtext.client.core.Ext;
import com.gwtext.client.widgets.TabPanel;
import com.gwtext.client.widgets.TabPanelItem;
import com.gwtext.client.widgets.event.TabPanelItemListenerAdapter;
-import com.gwtext.client.widgets.event.TabPanelListener;
import com.gwtext.client.widgets.layout.ContentPanel;
/**
@@ -31,14 +30,18 @@
*/
public class ExplorerViewCenterPanel extends ContentPanel {
- final TabPanel tp = new TabPanel("tab-2");
+ final TabPanel tp;
private int index = 0;
private HashMap openedTabs = new HashMap();
+ private String id = Ext.generateId();
public ExplorerViewCenterPanel() {
super(Ext.generateId());
+
+ tp = new TabPanel(id);
+
tp.setWidth("100%");
tp.setHeight("100%");
@@ -56,8 +59,8 @@
* @param widget The contentx.
* @param key A key which is unique.
*/
- public void addTab (String tabname, boolean closeable, Widget widget, String key) {
- TabPanelItem localTP = tp.addTab(key, tabname, closeable);
+ public void addTab (String tabname, boolean closeable, Widget widget, final String key) {
+ TabPanelItem localTP = tp.addTab(key + id, tabname, closeable);
SimplePanel sp = new SimplePanel();
sp.add(widget);
@@ -66,7 +69,7 @@
localTP.addTabPanelItemListener(new TabPanelItemListenerAdapter() {
public void onClose(TabPanelItem tab) {
- openedTabs.remove(tab.getId());
+ openedTabs.remove(key);
}
});
tp.activate(tp.getCount()-1);
@@ -89,7 +92,7 @@
public void close(String key) {
- tp.removeTab(key);
+ tp.removeTab(key + id);
openedTabs.remove(key);
}
@@ -161,6 +164,26 @@
}
+ public void openSnapshot(final SnapshotInfo snap) {
+ if (!showIfOpen(snap.uuid)) {
+ LoadingPopup.showMessage("Loading snapshot...");
+ RepositoryServiceFactory.getService().loadPackageConfig(snap.uuid, new GenericCallback() {
+ public void onSuccess(Object data) {
+ PackageConfigData conf = (PackageConfigData) data;
+ addTab("Snapshot: " + snap.name, true, new SnapshotView(snap, conf, new Command() {
+ public void execute() {
+ close(snap.uuid);
+ }
+ }), snap.uuid);
+ LoadingPopup.close();
+ }
+ });
+ }
+ }
+
+
+
+
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageBuilderWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageBuilderWidget.java 2008-02-05 06:19:56 UTC (rev 18308)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageBuilderWidget.java 2008-02-05 10:04:07 UTC (rev 18309)
@@ -264,7 +264,7 @@
public static String getDownloadLink(PackageConfigData conf) {
String hurl = GWT.getModuleBaseURL() + "package/" + conf.name;
if (!conf.isSnapshot) {
- hurl = hurl + "/" + PackageSnapshotView.LATEST_SNAPSHOT;
+ hurl = hurl + "/" + SnapshotView.LATEST_SNAPSHOT;
} else {
hurl = hurl + "/" + conf.snapshotName;
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageEditor2.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageEditor2.java 2008-02-05 06:19:56 UTC (rev 18308)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageEditor2.java 2008-02-05 10:04:07 UTC (rev 18309)
@@ -47,6 +47,7 @@
/**
* This is the package editor and viewer for package configuration.
+ * This is ALL NEW AND IMPROVED !
*
* @author Michael Neale
*/
@@ -115,9 +116,12 @@
}
startSection("Information");
+ if (!conf.isSnapshot) {
+ addAttribute( "Last modified:", new Label(getDateString(conf.lastModified)) );
+ }
- addAttribute( "Last modified:", new Label(getDateString(conf.lastModified)) );
addAttribute( "Last contributor:", new Label(this.conf.lasContributor));
+
addAttribute( "Date created:", new Label(getDateString(this.conf.dateCreated)));
Button buildSource = new Button("Show package source");
buildSource.addClickListener(new ClickListener() {
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 2008-02-05 06:19:56 UTC (rev 18308)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageSnapshotView.java 2008-02-05 10:04:07 UTC (rev 18309)
@@ -53,7 +53,7 @@
/**
* This contains a list of packages and their deployment snapshots.
- *
+ * @deprecated Use SnapshotView instead.
* @author Michael Neale
*/
public class PackageSnapshotView extends Composite {
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/SnapshotView.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/SnapshotView.java (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/SnapshotView.java 2008-02-05 10:04:07 UTC (rev 18309)
@@ -0,0 +1,225 @@
+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.PrettyFormLayout;
+import org.drools.brms.client.explorer.ExplorerLayoutManager;
+import org.drools.brms.client.explorer.ExplorerNodeConfig;
+import org.drools.brms.client.explorer.ExplorerViewCenterPanel;
+import org.drools.brms.client.rpc.PackageConfigData;
+import org.drools.brms.client.rpc.RepositoryServiceFactory;
+import org.drools.brms.client.rpc.SnapshotInfo;
+import org.drools.brms.client.rulelist.AssetItemGrid;
+import org.drools.brms.client.rulelist.AssetItemGridDataLoader;
+import org.drools.brms.client.rulelist.EditItemEvent;
+
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.Window;
+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.HTML;
+import com.google.gwt.user.client.ui.HasHorizontalAlignment;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.SimplePanel;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
+import com.gwtext.client.core.EventObject;
+import com.gwtext.client.data.Node;
+import com.gwtext.client.util.Format;
+import com.gwtext.client.widgets.layout.ContentPanel;
+import com.gwtext.client.widgets.tree.TreeNode;
+import com.gwtext.client.widgets.tree.TreePanel;
+import com.gwtext.client.widgets.tree.event.TreeNodeListenerAdapter;
+import com.gwtext.client.widgets.tree.event.TreePanelListener;
+import com.gwtext.client.widgets.tree.event.TreePanelListenerAdapter;
+
+/**
+ * This is the new snapshot view.
+ * @author Michael Neale
+ *
+ */
+public class SnapshotView extends Composite {
+
+
+ public static final String LATEST_SNAPSHOT = "LATEST";
+
+ private ExplorerViewCenterPanel centerPanel;
+ private PackageConfigData parentConf;
+ private SnapshotInfo snapInfo;
+ private SimplePanel gridPanel = new SimplePanel();
+
+ private Command close;
+
+ public SnapshotView(SnapshotInfo snapInfo, PackageConfigData parentPackage, Command closeSnap) {
+
+ VerticalPanel vert = new VerticalPanel();
+ this.snapInfo = snapInfo;
+ this.parentConf = parentPackage;
+ this.close = closeSnap;
+ PrettyFormLayout head = new PrettyFormLayout();
+
+ head.addHeader("images/snapshot.png", header());
+
+
+
+ vert.add(head);
+ centerPanel = new ExplorerViewCenterPanel();
+ vert.add(centerPanel);
+ centerPanel.setHeight("100%");
+ centerPanel.setWidth("100%");
+
+
+ centerPanel.addTab("Info", false, infoPanel(), "INFO");
+
+ vert.setWidth("100%");
+ initWidget(vert);
+
+ }
+
+ private Widget header() {
+ FlexTable ft = new FlexTable();
+
+
+
+
+ ft.setWidget(0, 0, new Label("Viewing snapshot:"));
+ ft.setWidget(0, 1, new HTML("<b>" + this.snapInfo.name + "</b>"));
+ ft.getFlexCellFormatter().setHorizontalAlignment(0, 0, HasHorizontalAlignment.ALIGN_RIGHT);
+
+ ft.setWidget(1, 0, new Label("For package:"));
+ ft.setWidget(1, 1, new Label(this.parentConf.name));
+ ft.getFlexCellFormatter().setHorizontalAlignment(1, 0, HasHorizontalAlignment.ALIGN_RIGHT);
+
+ HTML dLink = new HTML("<a href='" + PackageBuilderWidget.getDownloadLink(this.parentConf)
+ + "' target='_blank'>click here to download binary (or copy URL for Rule Agent)</a>");
+ ft.setWidget(2, 0, new Label("Deployment URL:"));
+ ft.setWidget(2, 1, dLink);
+ ft.getFlexCellFormatter().setHorizontalAlignment(2, 0, HasHorizontalAlignment.ALIGN_RIGHT);
+
+ ft.setWidget(3, 0, new Label("Snapshot created on:"));
+ ft.setWidget(3, 1, new Label( parentConf.lastModified.toLocaleString() ));
+ ft.getFlexCellFormatter().setHorizontalAlignment(4, 0, HasHorizontalAlignment.ALIGN_RIGHT);
+
+ ft.setWidget(4,0, new Label("Comment:"));
+ ft.setWidget(4,1, new Label( parentConf.checkinComment ));
+ ft.getFlexCellFormatter().setHorizontalAlignment(4, 0, HasHorizontalAlignment.ALIGN_RIGHT);
+
+ HorizontalPanel actions = new HorizontalPanel();
+
+ actions.add(getDeleteButton(this.snapInfo.name, this.parentConf.name));
+ actions.add(getCopyButton(this.snapInfo.name, this.parentConf.name));
+
+
+ ft.setWidget(5, 0, actions);
+ ft.getFlexCellFormatter().setColSpan(5, 0, 2);
+
+
+
+ return ft;
+ }
+
+ private Button getDeleteButton(final String snapshotName, final String pkgName) {
+ Button btn = new Button("Delete");
+ btn.addClickListener( new ClickListener() {
+ public void onClick(Widget w) {
+ if (Window.confirm( "Are you sure you want to delete the snapshot labelled [" + snapshotName +
+ "] from the package [" + pkgName + "] ?")) {
+ RepositoryServiceFactory.getService().copyOrRemoveSnapshot( pkgName, snapshotName, true, null, new GenericCallback() {
+ public void onSuccess(Object data) {
+ close.execute();
+ Window.alert("Snapshot was deleted.");
+ }
+ });
+ }
+ }
+
+ });
+ return btn;
+ }
+
+ private Button getCopyButton(final String snapshotName, final String packageName) {
+ 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) {
+ RepositoryServiceFactory.getService().copyOrRemoveSnapshot( packageName, snapshotName, false, box.getText(), new GenericCallback() {
+ public void onSuccess(Object data) {
+ copy.hide();
+ Window.alert("Created snapshot [" + snapshotName + "] for package [" + packageName + "]");
+ }
+ });
+ }
+ } );
+
+
+ Button btn = new Button("Copy");
+ btn.addClickListener( new ClickListener() {
+ public void onClick(Widget w) {
+
+ copy.show();
+ }
+ });
+
+ return btn;
+ }
+
+
+
+ private Widget infoPanel() {
+ HorizontalPanel h = new HorizontalPanel();
+ h.add(packageTree());
+ h.add(gridPanel);
+ return h;
+ }
+
+
+ protected Widget packageTree() {
+ TreeNode pkg = ExplorerNodeConfig.getPackageItemStructure(parentConf.name, snapInfo.uuid);
+ pkg.setUserObject(snapInfo);
+ TreeNode root = new TreeNode(snapInfo.name);
+ root.appendChild(pkg);
+ TreePanel tp = ExplorerLayoutManager.genericExplorerWidget(root);
+ tp.addTreePanelListener(new TreePanelListenerAdapter() {
+
+ public void onClick(TreeNode node, EventObject e) {
+ Object uo = node.getUserObject();
+ if (uo instanceof Object[]) {
+ Object o = ((Object[]) uo)[0];
+ showAssetList((String[]) o);
+ } else if (uo instanceof SnapshotInfo) {
+ SnapshotInfo s = (SnapshotInfo) uo;
+ centerPanel.openPackageEditor(s.uuid, null);
+ }
+
+ }
+ });
+ return tp;
+
+ }
+
+ protected void showAssetList(final String[] assetTypes) {
+ this.gridPanel.clear();
+ AssetItemGrid grid = new AssetItemGrid(new EditItemEvent() {
+ public void open(String key) {
+ centerPanel.openAsset(key);
+ }
+ }, AssetItemGrid.RULE_LIST_TABLE_ID, new AssetItemGridDataLoader() {
+ public void loadData(int startRow, int numberOfRows,
+ GenericCallback cb) {
+ RepositoryServiceFactory.getService().listAssets(snapInfo.uuid, assetTypes, startRow, numberOfRows, cb);
+ }
+ });
+ this.gridPanel.add(grid);
+
+ }
+
+}
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/SnapshotView.java
___________________________________________________________________
Name: svn:eol-style
+ native
More information about the jboss-svn-commits
mailing list