modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/ErrorMessageWindow.java
| 78 ++++++++++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentDataSource.java
| 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentListView.java
| 13 +
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentView.java
| 47 +++++-
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleResourceDeploymentHistoryListView.java
| 26 ---
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
| 2
6 files changed, 140 insertions(+), 28 deletions(-)
New commits:
commit 1b25505eb944dd6fe0edb1706e1ff65b6a585461
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Dec 17 15:35:53 2010 -0500
exposing error messages
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/ErrorMessageWindow.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/ErrorMessageWindow.java
new file mode 100644
index 0000000..bd90b9f
--- /dev/null
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/ErrorMessageWindow.java
@@ -0,0 +1,78 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser General Public License along with this program;
+ * if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+package org.rhq.enterprise.gui.coregui.client;
+
+import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.events.CloseClickHandler;
+import com.smartgwt.client.widgets.events.CloseClientEvent;
+
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableHTMLPane;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableWindow;
+
+/**
+ * This is a convienence component that is a simple modal dialog box used to display
+ * things like error messages/stack traces.
+ *
+ * Call {@link #show()} on the instantiated window to display it.
+ *
+ * @author John Mazzitelli
+ */
+public class ErrorMessageWindow extends LocatableWindow {
+ public ErrorMessageWindow(String locatorId, String title, String message) {
+ super(locatorId);
+
+ LocatableHTMLPane htmlPane = new
LocatableHTMLPane(extendLocatorId("winDetailsPane"));
+ htmlPane.setMargin(10);
+ htmlPane.setDefaultWidth(500);
+ htmlPane.setDefaultHeight(400);
+ htmlPane.setContents(message);
+
+ setupWindow(title, htmlPane);
+ }
+
+ public ErrorMessageWindow(String locatorId, String title, Canvas item) {
+ super(locatorId);
+ setupWindow(title, item);
+ }
+
+ private void setupWindow(String title, Canvas item) {
+ setTitle(title);
+ setShowMinimizeButton(false);
+ setShowMaximizeButton(true);
+ setIsModal(true);
+ setShowModalMask(true);
+ setAutoSize(true);
+ setAutoCenter(true);
+ setShowResizer(true);
+ setCanDragResize(true);
+ centerInPage();
+ addCloseClickHandler(new CloseClickHandler() {
+ @Override
+ public void onCloseClick(CloseClientEvent event) {
+ markForDestroy();
+ }
+ });
+ addItem(item);
+ }
+}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentDataSource.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentDataSource.java
index 5e94e47..917b13d 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentDataSource.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentDataSource.java
@@ -53,6 +53,7 @@ public class BundleDeploymentDataSource extends
RPCDataSource<BundleDeployment>
public static final String FIELD_DEPLOY_DIR = "deployDir";
public static final String FIELD_DESCRIPTION = "description";
public static final String FIELD_DEPLOY_TIME = "deploymentTime";
+ public static final String FIELD_ERROR_MESSAGE = "errorMessage";
public static final String FIELD_CONFIG = "configuration";
public static final String FIELD_STATUS = "status";
public static final String FIELD_DEPLOYER = "deployer"; // a user name
@@ -153,6 +154,7 @@ public class BundleDeploymentDataSource extends
RPCDataSource<BundleDeployment>
record.setAttribute(FIELD_NAME, from.getName());
record.setAttribute(FIELD_DEPLOY_DIR, from.getDestination().getDeployDir());
record.setAttribute(FIELD_DESCRIPTION, from.getDescription());
+ record.setAttribute(FIELD_ERROR_MESSAGE, from.getErrorMessage());
record.setAttribute(FIELD_DEPLOY_TIME, new Date(from.getCtime()));
record.setAttribute(FIELD_CONFIG, from.getConfiguration());
record.setAttribute(FIELD_STATUS, from.getStatus().name());
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentListView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentListView.java
index a0658b0..9cb3f58 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentListView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentListView.java
@@ -33,10 +33,13 @@ import com.smartgwt.client.widgets.grid.CellFormatter;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;
+import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
+import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
import org.rhq.core.domain.bundle.BundleDeployment;
import org.rhq.core.domain.bundle.BundleDeploymentStatus;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.ErrorMessageWindow;
import org.rhq.enterprise.gui.coregui.client.LinkManager;
import org.rhq.enterprise.gui.coregui.client.bundle.list.BundleVersionDataSource;
import org.rhq.enterprise.gui.coregui.client.components.table.Table;
@@ -105,6 +108,16 @@ public class BundleDeploymentListView extends
Table<RPCDataSource<BundleDeployme
statusField.setValueIcons(statusIcons);
statusField.setValueIconWidth(11);
statusField.setValueIconHeight(11);
+ statusField.addRecordClickHandler(new RecordClickHandler() {
+ @Override
+ public void onRecordClick(RecordClickEvent event) {
+ String err =
event.getRecord().getAttribute(BundleDeploymentDataSource.FIELD_ERROR_MESSAGE);
+ if (err != null && err.length() > 0) {
+ err = "<pre>" + err + "</pre>";
+ new ErrorMessageWindow(extendLocatorId("errWin"),
MSG.common_title_error(), err).show();
+ }
+ }
+ });
idField.setWidth(50);
nameField.setWidth("30%");
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentView.java
index f64edda..97b60af 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentView.java
@@ -30,11 +30,14 @@ import java.util.HashSet;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.types.AnimationEffect;
import com.smartgwt.client.types.AutoFitWidthApproach;
+import com.smartgwt.client.types.DateDisplayFormat;
import com.smartgwt.client.types.ListGridFieldType;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.HTMLFlow;
import com.smartgwt.client.widgets.form.fields.LinkItem;
import com.smartgwt.client.widgets.form.fields.StaticTextItem;
+import com.smartgwt.client.widgets.form.fields.events.ClickEvent;
+import com.smartgwt.client.widgets.form.fields.events.ClickHandler;
import com.smartgwt.client.widgets.grid.CellFormatter;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridField;
@@ -58,6 +61,7 @@ import org.rhq.core.domain.tagging.Tag;
import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.gui.coregui.client.BookmarkableView;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.ErrorMessageWindow;
import org.rhq.enterprise.gui.coregui.client.ImageManager;
import org.rhq.enterprise.gui.coregui.client.LinkManager;
import org.rhq.enterprise.gui.coregui.client.ViewId;
@@ -86,12 +90,21 @@ public class BundleDeploymentView extends LocatableVLayout implements
Bookmarkab
private VLayout detail;
private boolean canManageBundles;
+ private final HashMap<String, String> statusIcons;
+
public BundleDeploymentView(String locatorId, boolean canManageBundles) {
super(locatorId);
this.canManageBundles = canManageBundles;
setWidth100();
setHeight100();
//setMargin(10); // do not set margin, we already have our margin set outside of
us
+
+ statusIcons = new HashMap<String, String>();
+ statusIcons.put(BundleDeploymentStatus.IN_PROGRESS.name(),
"subsystems/bundle/install-loader.gif");
+ statusIcons.put(BundleDeploymentStatus.FAILURE.name(),
"subsystems/bundle/Error_11.png");
+ statusIcons.put(BundleDeploymentStatus.MIXED.name(),
"subsystems/bundle/Warning_11.png");
+ statusIcons.put(BundleDeploymentStatus.WARN.name(),
"subsystems/bundle/Warning_11.png");
+ statusIcons.put(BundleDeploymentStatus.SUCCESS.name(),
"subsystems/bundle/Ok_11.png");
}
private void viewBundleDeployment(BundleDeployment bundleDeployment, ViewId current)
{
@@ -141,8 +154,33 @@ public class BundleDeploymentView extends LocatableVLayout implements
Bookmarkab
bundleVersionName.setTarget("_self");
StaticTextItem deployed = new StaticTextItem("deployed",
MSG.view_bundle_deployed());
+ deployed.setDateFormatter(DateDisplayFormat.TOLOCALESTRING);
deployed.setValue(new Date(deployment.getCtime()));
+ StaticTextItem deployedBy = new StaticTextItem("deployedBy",
MSG.view_bundle_deploy_deployedBy());
+ deployedBy.setValue(deployment.getSubjectName());
+
+ StaticTextItem description = new StaticTextItem("description",
MSG.common_title_description());
+ description.setValue(deployment.getDescription());
+
+ StaticTextItem status = new StaticTextItem("status",
MSG.common_title_status());
+ status.setValue(deployment.getStatus().name());
+ status.setValueIcons(statusIcons);
+ status.setValueIconHeight(11);
+ status.setValueIconWidth(11);
+ status.setShowValueIconOnly(true);
+ if (deployment.getErrorMessage() != null) {
+ status.setTooltip(MSG.view_bundle_deploy_clickForError());
+ status.addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(ClickEvent event) {
+ ErrorMessageWindow win = new
ErrorMessageWindow(extendLocatorId("errWin"),
+ MSG.common_title_error(), "<pre>" +
deployment.getErrorMessage() + "</pre>");
+ win.show();
+ }
+ });
+ }
+
LinkItem destinationGroup = new LinkItem("group");
destinationGroup.setTitle(MSG.common_title_resource_group());
destinationGroup.setValue(LinkManager.getResourceGroupLink(deployment.getDestination().getGroup().getId()));
@@ -152,7 +190,8 @@ public class BundleDeploymentView extends LocatableVLayout implements
Bookmarkab
StaticTextItem path = new StaticTextItem("path",
MSG.view_bundle_deployDir());
path.setValue(deployment.getDestination().getDeployDir());
- form.setFields(bundleName, bundleVersionName, deployed, destinationGroup, path);
+ form.setFields(bundleName, deployed, bundleVersionName, deployedBy, //
+ description, status, destinationGroup, path);
return form;
}
@@ -214,12 +253,6 @@ public class BundleDeploymentView extends LocatableVLayout implements
Bookmarkab
// status icon field
ListGridField status = new ListGridField("status",
MSG.common_title_status());
- HashMap<String, String> statusIcons = new HashMap<String, String>();
- statusIcons.put(BundleDeploymentStatus.IN_PROGRESS.name(),
"subsystems/bundle/install-loader.gif");
- statusIcons.put(BundleDeploymentStatus.FAILURE.name(),
"subsystems/bundle/Error_11.png");
- statusIcons.put(BundleDeploymentStatus.MIXED.name(),
"subsystems/bundle/Warning_11.png");
- statusIcons.put(BundleDeploymentStatus.WARN.name(),
"subsystems/bundle/Warning_11.png");
- statusIcons.put(BundleDeploymentStatus.SUCCESS.name(),
"subsystems/bundle/Ok_11.png");
status.setValueIcons(statusIcons);
status.setValueIconHeight(11);
status.setValueIconWidth(11);
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleResourceDeploymentHistoryListView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleResourceDeploymentHistoryListView.java
index 6093083..972e618 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleResourceDeploymentHistoryListView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleResourceDeploymentHistoryListView.java
@@ -34,8 +34,6 @@ import com.smartgwt.client.types.ListGridFieldType;
import com.smartgwt.client.types.SelectionStyle;
import com.smartgwt.client.types.VerticalAlignment;
import com.smartgwt.client.widgets.Window;
-import com.smartgwt.client.widgets.events.CloseClickHandler;
-import com.smartgwt.client.widgets.events.CloseClientEvent;
import com.smartgwt.client.widgets.events.DoubleClickEvent;
import com.smartgwt.client.widgets.events.DoubleClickHandler;
import com.smartgwt.client.widgets.form.DynamicForm;
@@ -51,10 +49,10 @@ import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
import org.rhq.core.domain.bundle.BundleDeploymentStatus;
import org.rhq.core.domain.bundle.BundleResourceDeployment;
import org.rhq.core.domain.bundle.BundleResourceDeploymentHistory;
+import org.rhq.enterprise.gui.coregui.client.ErrorMessageWindow;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableListGrid;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
-import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableWindow;
/**
* @author Greg Hinkle
@@ -170,24 +168,10 @@ public class BundleResourceDeploymentHistoryListView extends
LocatableVLayout {
form.setItems(timestamp, action, category, user, status, info, message, detail);
form.editRecord(record);
- final Window window = new
LocatableWindow(extendLocatorId("detailsWin"));
- window.setTitle(MSG.view_bundle_deploy_installDetails());
- window.setAutoSize(true);
- window.setWidth(500);
- window.setAutoCenter(true);
- window.setIsModal(true);
- window.setShowModalMask(true);
- window.setCanDragResize(true);
- window.addItem(form);
- window.setShowMinimizeButton(false);
- window.setShowMaximizeButton(true);
- window.addCloseClickHandler(new CloseClickHandler() {
- @Override
- public void onCloseClick(CloseClientEvent event) {
- window.destroy();
- }
- });
- window.show();
+ Window win = new ErrorMessageWindow(extendLocatorId("detailsWin"),
MSG.view_bundle_deploy_installDetails(),
+ form);
+ win.setWidth(500);
+ win.show();
}
public ListGridRecord[] buildRecords() {
diff --git
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
index b0ceaf9..0009db8 100644
---
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
+++
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
@@ -970,6 +970,8 @@ view_bundle_deploy_selectARow = Select a row to show installation
details
view_bundle_deploy_operatingSystem = Operating System
view_bundle_deploy_loadFailure = Failed to load bundle deployment
view_bundle_deploy_loadBundleFailure = Failed to find bundle
+view_bundle_deploy_deployedBy = Deployed By
+view_bundle_deploy_clickForError = Click the icon for the error message
view_bundle_createWizard_title = Create Bundle
view_bundle_createWizard_windowTitle = Bundle Creation Wizard
view_bundle_createWizard_cancelSuccessful = Canceled the creation of bundle [{0}],
version = [{1}]