modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java
| 12 +
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentDataSource.java
| 59 +++--
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentListView.java
| 82 ++++++--
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationDataSource.java
| 76 +++----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationListView.java
| 93 +++++++--
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationView.java
| 99 +++++----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundleVersionDataSource.java
| 34 ++-
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundleView.java
| 101 +++-------
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/version/BundleVersionListView.java
| 63 ++++--
modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/bundle/Error_11.png
|binary
10 files changed, 394 insertions(+), 225 deletions(-)
New commits:
commit cb37fdd5b2b814f32b0f92f9e7782f13cce9ee89
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Dec 17 03:27:07 2010 -0500
more cleanup of the bundle views
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java
index 49395c0..c7cc475 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java
@@ -323,4 +323,16 @@ public class LinkManager {
public static String getBundleLink(int bundleId) {
return "#Bundles/Bundle/" + bundleId;
}
+
+ public static String getBundleVersionLink(int bundleId, int bundleVersionId) {
+ return "#Bundles/Bundle/" + bundleId + "/versions/" +
bundleVersionId;
+ }
+
+ public static String getBundleDestinationLink(int bundleId, int bundleDestinationId)
{
+ return "#Bundles/Bundle/" + bundleId + "/destinations/" +
bundleDestinationId;
+ }
+
+ public static String getBundleDeploymentLink(int bundleId, int bundleDeploymentId) {
+ return "#Bundles/Bundle/" + bundleId + "/deployments/" +
bundleDeploymentId;
+ }
}
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 48f6849..5e94e47 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
@@ -48,6 +48,18 @@ import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
*/
public class BundleDeploymentDataSource extends RPCDataSource<BundleDeployment> {
+ public static final String FIELD_ID = "id";
+ public static final String FIELD_NAME = "name";
+ 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_CONFIG = "configuration";
+ public static final String FIELD_STATUS = "status";
+ public static final String FIELD_DEPLOYER = "deployer"; // a user name
+ public static final String FIELD_BUNDLE_VERSION_VERSION =
"bundleVersionVersion";
+ public static final String FIELD_BUNDLE_VERSION_ID = "bundleVersionId";
+ public static final String FIELD_BUNDLE_ID = "bundleId";
+
private BundleGWTServiceAsync bundleService = GWTServiceLookup.getBundleService();
public BundleDeploymentDataSource() {
@@ -60,24 +72,24 @@ public class BundleDeploymentDataSource extends
RPCDataSource<BundleDeployment>
protected List<DataSourceField> addDataSourceFields() {
List<DataSourceField> fields = super.addDataSourceFields();
- DataSourceIntegerField id = new DataSourceIntegerField("id",
MSG.common_title_id());
+ DataSourceIntegerField id = new DataSourceIntegerField(FIELD_ID,
MSG.common_title_id());
id.setPrimaryKey(true);
fields.add(id);
- DataSourceTextField name = new DataSourceTextField("name",
MSG.view_bundle_deploy_name());
+ DataSourceTextField name = new DataSourceTextField(FIELD_NAME,
MSG.view_bundle_deploy_name());
fields.add(name);
- DataSourceTextField bundleVersion = new
DataSourceTextField("bundleVersionVersion", MSG
+ DataSourceTextField bundleVersion = new
DataSourceTextField(FIELD_BUNDLE_VERSION_VERSION, MSG
.view_bundle_bundleVersion());
fields.add(bundleVersion);
- DataSourceTextField description = new
DataSourceTextField("description", MSG.common_title_description());
+ DataSourceTextField description = new DataSourceTextField(FIELD_DESCRIPTION,
MSG.common_title_description());
fields.add(description);
- DataSourceTextField status = new DataSourceTextField("status",
MSG.common_title_status());
+ DataSourceTextField status = new DataSourceTextField(FIELD_STATUS,
MSG.common_title_status());
fields.add(status);
- DataSourceDateTimeField created = new
DataSourceDateTimeField("deploymentTime", MSG.view_bundle_deploy_time());
+ DataSourceDateTimeField created = new DataSourceDateTimeField(FIELD_DEPLOY_TIME,
MSG.view_bundle_deploy_time());
fields.add(created);
return fields;
@@ -88,12 +100,13 @@ public class BundleDeploymentDataSource extends
RPCDataSource<BundleDeployment>
BundleDeploymentCriteria criteria = new BundleDeploymentCriteria();
criteria.fetchBundleVersion(true);
- if (request.getCriteria().getValues().containsKey("bundleId")) {
-
criteria.addFilterBundleId(Integer.parseInt(request.getCriteria().getAttribute("bundleId")));
+ if (request.getCriteria().getValues().containsKey(FIELD_BUNDLE_ID)) {
+
criteria.addFilterBundleId(Integer.parseInt(request.getCriteria().getAttribute(FIELD_BUNDLE_ID)));
}
- if (request.getCriteria().getValues().containsKey("bundleVersionId"))
{
-
criteria.addFilterBundleVersionId(Integer.parseInt(request.getCriteria().getAttribute("bundleVersionId")));
+ if (request.getCriteria().getValues().containsKey(FIELD_BUNDLE_VERSION_ID)) {
+
criteria.addFilterBundleVersionId(Integer.parseInt(request.getCriteria().getAttribute(
+ FIELD_BUNDLE_VERSION_ID)));
}
if
(request.getCriteria().getValues().containsKey("bundleDestinationId")) {
@@ -128,7 +141,7 @@ public class BundleDeploymentDataSource extends
RPCDataSource<BundleDeployment>
@Override
public BundleDeployment copyValues(Record from) {
- return null; // TODO: Implement this method.
+ return (BundleDeployment) from.getAttributeAsObject("object");
}
@Override
@@ -136,24 +149,26 @@ public class BundleDeploymentDataSource extends
RPCDataSource<BundleDeployment>
ListGridRecord record = new ListGridRecord();
- record.setAttribute("id", from.getId());
- record.setAttribute("name", from.getName());
- record.setAttribute("deployDir",
from.getDestination().getDeployDir());
- record.setAttribute("description", from.getDescription());
- record.setAttribute("deploymentTime", new Date(from.getCtime()));
- record.setAttribute("configuration", from.getConfiguration());
- record.setAttribute("status", from.getStatus().name());
- record.setAttribute("deployer", from.getSubjectName());
+ record.setAttribute(FIELD_ID, from.getId());
+ record.setAttribute(FIELD_NAME, from.getName());
+ record.setAttribute(FIELD_DEPLOY_DIR, from.getDestination().getDeployDir());
+ record.setAttribute(FIELD_DESCRIPTION, from.getDescription());
+ record.setAttribute(FIELD_DEPLOY_TIME, new Date(from.getCtime()));
+ record.setAttribute(FIELD_CONFIG, from.getConfiguration());
+ record.setAttribute(FIELD_STATUS, from.getStatus().name());
+ record.setAttribute(FIELD_DEPLOYER, from.getSubjectName());
if (from.getBundleVersion() != null) {
- record.setAttribute("bundleVersionVersion",
from.getBundleVersion().getVersion());
- record.setAttribute("bundleVersionId",
from.getBundleVersion().getId());
+ record.setAttribute(FIELD_BUNDLE_VERSION_VERSION,
from.getBundleVersion().getVersion());
+ record.setAttribute(FIELD_BUNDLE_VERSION_ID,
from.getBundleVersion().getId());
if (from.getBundleVersion().getBundle() != null) {
- record.setAttribute("bundleId",
from.getBundleVersion().getBundle().getId());
+ record.setAttribute(FIELD_BUNDLE_ID,
from.getBundleVersion().getBundle().getId());
}
}
+ record.setAttribute("object", from);
+
return record;
}
}
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 93a55a1..147aaf0 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
@@ -25,17 +25,27 @@ package org.rhq.enterprise.gui.coregui.client.bundle.deployment;
import java.util.HashMap;
import com.smartgwt.client.data.Criteria;
+import com.smartgwt.client.types.DateDisplayFormat;
+import com.smartgwt.client.types.ListGridFieldType;
+import com.smartgwt.client.widgets.events.DoubleClickEvent;
+import com.smartgwt.client.widgets.events.DoubleClickHandler;
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 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.LinkManager;
+import org.rhq.enterprise.gui.coregui.client.bundle.list.BundleVersionDataSource;
import org.rhq.enterprise.gui.coregui.client.components.table.Table;
+import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
/**
* @author Greg Hinkle
*/
-public class BundleDeploymentListView extends Table {
+public class BundleDeploymentListView extends
Table<RPCDataSource<BundleDeployment>> {
public BundleDeploymentListView(String locatorId, Criteria criteria) {
super(locatorId, MSG.view_bundle_bundleDeployments(), criteria);
@@ -45,37 +55,71 @@ public class BundleDeploymentListView extends Table {
@Override
protected void configureTable() {
- getListGrid().getField("id").setWidth("60");
- getListGrid().getField("name").setWidth("25%");
- getListGrid().getField("name").setCellFormatter(new CellFormatter() {
+ ListGridField idField = new ListGridField(BundleDeploymentDataSource.FIELD_ID,
MSG.common_title_id());
+ ListGridField nameField = new
ListGridField(BundleDeploymentDataSource.FIELD_NAME, MSG
+ .view_bundle_deploy_name());
+ ListGridField descriptionField = new
ListGridField(BundleDeploymentDataSource.FIELD_DESCRIPTION, MSG
+ .common_title_description());
+ ListGridField bundleVersionField = new
ListGridField(BundleDeploymentDataSource.FIELD_BUNDLE_VERSION_VERSION,
+ MSG.view_bundle_bundleVersion());
+ ListGridField statusField = new
ListGridField(BundleDeploymentDataSource.FIELD_STATUS, MSG
+ .common_title_status());
+ ListGridField deployTimeField = new
ListGridField(BundleDeploymentDataSource.FIELD_DEPLOY_TIME, MSG
+ .view_bundle_deploy_time());
+
+ deployTimeField.setType(ListGridFieldType.DATE);
+ deployTimeField.setDateFormatter(DateDisplayFormat.TOLOCALESTRING);
+
+ nameField.setCellFormatter(new CellFormatter() {
public String format(Object o, ListGridRecord record, int i, int i1) {
- return "<a href=\"#Bundles/Bundle/" +
record.getAttribute("bundleId") + "/deployments/"
- + record.getAttribute("id") + "\">" +
String.valueOf(o) + "</a>";
+ return "<a href=\""
+ + LinkManager.getBundleDeploymentLink(record
+ .getAttributeAsInt(BundleDeploymentDataSource.FIELD_BUNDLE_ID),
record
+ .getAttributeAsInt(BundleDeploymentDataSource.FIELD_ID)) +
"\">" + String.valueOf(o) + "</a>";
}
});
-
getListGrid().getField("bundleVersionVersion").setWidth("80");
- getListGrid().getField("bundleVersionVersion").setCellFormatter(new
CellFormatter() {
- public String format(Object o, ListGridRecord listGridRecord, int i, int i1)
{
- return "<a href=\"#Bundles/Bundle/" +
listGridRecord.getAttribute("bundleId") + "/versions/"
- + listGridRecord.getAttribute("bundleVersionId") +
"\">" + o + "</a>";
+ bundleVersionField.setCellFormatter(new CellFormatter() {
+ public String format(Object o, ListGridRecord record, int i, int i1) {
+ return "<a href=\""
+ + LinkManager.getBundleVersionLink(record
+ .getAttributeAsInt(BundleDeploymentDataSource.FIELD_BUNDLE_ID),
record
+
.getAttributeAsInt(BundleDeploymentDataSource.FIELD_BUNDLE_VERSION_ID)) +
"\">"
+ + String.valueOf(o) + "</a>";
}
});
- getListGrid().getField("description").setWidth("25%");
- getListGrid().getField("deploymentTime").setWidth("20%");
- getListGrid().getField("status").setWidth("25%");
- ListGridField status = getListGrid().getField("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/Warning_11.png");
+ 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.setWidth(80);
+ statusField.setValueIcons(statusIcons);
+ statusField.setValueIconWidth(11);
+ statusField.setValueIconHeight(11);
+ idField.setWidth(50);
+ nameField.setWidth("30%");
+ descriptionField.setWidth("40%");
+ bundleVersionField.setWidth("15%");
+ deployTimeField.setWidth("15%");
+ statusField.setWidth(80);
+ setListGridFields(idField, nameField, descriptionField, bundleVersionField,
deployTimeField, statusField);
+
+ setListGridDoubleClickHandler(new DoubleClickHandler() {
+ @Override
+ public void onDoubleClick(DoubleClickEvent event) {
+ ListGrid listGrid = (ListGrid) event.getSource();
+ ListGridRecord[] selectedRows = listGrid.getSelection();
+ if (selectedRows != null && selectedRows.length == 1) {
+ String selectedId =
selectedRows[0].getAttribute(BundleVersionDataSource.FIELD_BUNDLE_ID);
+ String selectedVersionId =
selectedRows[0].getAttribute(BundleVersionDataSource.FIELD_ID);
+
CoreGUI.goToView(LinkManager.getBundleDestinationLink(Integer.valueOf(selectedId),
Integer
+ .valueOf(selectedVersionId)));
+ }
+ }
+ });
}
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationDataSource.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationDataSource.java
index d52538c..1a6f3dc 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationDataSource.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationDataSource.java
@@ -49,6 +49,19 @@ import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
*/
public class BundleDestinationDataSource extends RPCDataSource<BundleDestination>
{
+ public static final String FIELD_ID = "id";
+ public static final String FIELD_NAME = "name";
+ public static final String FIELD_DESCRIPTION = "description";
+ public static final String FIELD_BUNDLE_ID = "bundleId";
+ public static final String FIELD_BUNDLE_NAME = "bundleName";
+ public static final String FIELD_GROUP_ID = "groupId";
+ public static final String FIELD_GROUP_NAME = "groupName";
+ public static final String FIELD_DEPLOY_DIR = "deployDir";
+ public static final String FIELD_LATEST_DEPLOY_VERSION =
"latestDeploymentVersion";
+ public static final String FIELD_LATEST_DEPLOY_DATE =
"latestDeploymentDate";
+ public static final String FIELD_LATEST_DEPLOY_STATUS =
"latestDeploymentStatus";
+ public static final String FIELD_LATEST_DEPLOY = "latestDeployment";
+
public BundleDestinationDataSource() {
super();
List<DataSourceField> fields = addDataSourceFields();
@@ -59,34 +72,34 @@ public class BundleDestinationDataSource extends
RPCDataSource<BundleDestination
protected List<DataSourceField> addDataSourceFields() {
List<DataSourceField> fields = super.addDataSourceFields();
- DataSourceIntegerField idField = new DataSourceIntegerField("id",
MSG.common_title_id());
+ DataSourceIntegerField idField = new DataSourceIntegerField(FIELD_ID,
MSG.common_title_id());
idField.setPrimaryKey(true);
fields.add(idField);
- DataSourceTextField name = new DataSourceTextField("name",
MSG.common_title_name());
+ DataSourceTextField name = new DataSourceTextField(FIELD_NAME,
MSG.common_title_name());
fields.add(name);
- DataSourceTextField description = new
DataSourceTextField("description", MSG.common_title_description());
+ DataSourceTextField description = new DataSourceTextField(FIELD_DESCRIPTION,
MSG.common_title_description());
fields.add(description);
- DataSourceTextField bundle = new DataSourceTextField("bundleName",
MSG.view_bundle_bundle());
+ DataSourceTextField bundle = new DataSourceTextField(FIELD_BUNDLE_NAME,
MSG.view_bundle_bundle());
fields.add(bundle);
- DataSourceTextField group = new DataSourceTextField("groupName",
MSG.view_bundle_dest_group());
+ DataSourceTextField group = new DataSourceTextField(FIELD_GROUP_NAME,
MSG.view_bundle_dest_group());
fields.add(group);
- DataSourceTextField deployDir = new DataSourceTextField("deployDir",
MSG.view_bundle_dest_deployDir());
+ DataSourceTextField deployDir = new DataSourceTextField(FIELD_DEPLOY_DIR,
MSG.view_bundle_dest_deployDir());
fields.add(deployDir);
- DataSourceTextField latestDeploymentVersion = new
DataSourceTextField("latestDeploymentVersion", MSG
+ DataSourceTextField latestDeploymentVersion = new
DataSourceTextField(FIELD_LATEST_DEPLOY_VERSION, MSG
.view_bundle_dest_lastDeployedVersion());
fields.add(latestDeploymentVersion);
- DataSourceTextField latestDeploymentDate = new
DataSourceTextField("latestDeploymentDate", MSG
+ DataSourceTextField latestDeploymentDate = new
DataSourceTextField(FIELD_LATEST_DEPLOY_DATE, MSG
.view_bundle_dest_lastDeploymentDate());
fields.add(latestDeploymentDate);
- DataSourceTextField latestDeploymentStatus = new
DataSourceTextField("latestDeploymentStatus", MSG
+ DataSourceTextField latestDeploymentStatus = new
DataSourceTextField(FIELD_LATEST_DEPLOY_STATUS, MSG
.view_bundle_dest_lastDeploymentStatus());
fields.add(latestDeploymentStatus);
@@ -97,8 +110,8 @@ public class BundleDestinationDataSource extends
RPCDataSource<BundleDestination
protected void executeFetch(final DSRequest request, final DSResponse response) {
BundleDestinationCriteria criteria = new BundleDestinationCriteria();
- if (request.getCriteria().getValues().containsKey("bundleId")) {
-
criteria.addFilterBundleId(Integer.parseInt(request.getCriteria().getAttributeAsString("bundleId")));
+ if (request.getCriteria().getValues().containsKey(FIELD_BUNDLE_ID)) {
+
criteria.addFilterBundleId(Integer.parseInt(request.getCriteria().getAttributeAsString(FIELD_BUNDLE_ID)));
}
if (request.getCriteria().getValues().get("tagNamespace") != null) {
@@ -125,11 +138,10 @@ public class BundleDestinationDataSource extends
RPCDataSource<BundleDestination
}
public void onSuccess(final PageList<BundleDestination> result) {
-
BundleVersionCriteria versionCriteria = new BundleVersionCriteria();
- if
(request.getCriteria().getValues().containsKey("bundleId")) {
+ if (request.getCriteria().getValues().containsKey(FIELD_BUNDLE_ID))
{
versionCriteria.addFilterBundleId(Integer.parseInt(request.getCriteria().getAttributeAsString(
- "bundleId")));
+ FIELD_BUNDLE_ID)));
}
GWTServiceLookup.getBundleService().findBundleVersionsByCriteria(versionCriteria,
new AsyncCallback<PageList<BundleVersion>>() {
@@ -139,11 +151,8 @@ public class BundleDestinationDataSource extends
RPCDataSource<BundleDestination
}
public void onSuccess(PageList<BundleVersion> versions)
{
-
for (BundleDestination dest : result) {
-
for (BundleDeployment dep : dest.getDeployments()) {
-
for (BundleVersion version : versions) {
if (dep.getBundleVersion().getId() ==
version.getId()) {
dep.setBundleVersion(version);
@@ -151,10 +160,8 @@ public class BundleDestinationDataSource extends
RPCDataSource<BundleDestination
}
}
}
-
response.setData(buildRecords(result));
processResponse(request.getRequestId(), response);
-
}
});
}
@@ -163,35 +170,32 @@ public class BundleDestinationDataSource extends
RPCDataSource<BundleDestination
@Override
public BundleDestination copyValues(Record from) {
- return null;
+ return (BundleDestination) from.getAttributeAsObject("object");
}
@Override
public ListGridRecord copyValues(BundleDestination from) {
ListGridRecord record = new ListGridRecord();
- record.setAttribute("id", from.getId());
- record.setAttribute("name", from.getName());
- record.setAttribute("description", from.getDescription());
- record.setAttribute("bundleId", from.getBundle().getId());
- record.setAttribute("bundleName", from.getBundle().getName());
-
- record.setAttribute("groupId", from.getGroup().getId());
- record.setAttribute("groupName", from.getGroup().getName());
+ record.setAttribute(FIELD_ID, from.getId());
+ record.setAttribute(FIELD_NAME, from.getName());
+ record.setAttribute(FIELD_DESCRIPTION, from.getDescription());
+ record.setAttribute(FIELD_BUNDLE_ID, from.getBundle().getId());
+ record.setAttribute(FIELD_BUNDLE_NAME, from.getBundle().getName());
+ record.setAttribute(FIELD_GROUP_ID, from.getGroup().getId());
+ record.setAttribute(FIELD_GROUP_NAME, from.getGroup().getName());
+ record.setAttribute(FIELD_DEPLOY_DIR, from.getDeployDir());
- record.setAttribute("deployDir", from.getDeployDir());
- record.setAttribute("entity", from);
+ record.setAttribute("object", from);
long last = 0;
for (BundleDeployment dep : from.getDeployments()) {
if (last < dep.getCtime()) {
last = dep.getCtime();
-
- record.setAttribute("latestDeployment", dep);
- record.setAttribute("latestDeploymentVersion",
dep.getBundleVersion().getVersion());
- record.setAttribute("latestDeploymentDate", new
Date(dep.getCtime()));
- record.setAttribute("latestDeploymentStatus",
dep.getStatus().name());
-
+ record.setAttribute(FIELD_LATEST_DEPLOY, dep);
+ record.setAttribute(FIELD_LATEST_DEPLOY_VERSION,
dep.getBundleVersion().getVersion());
+ record.setAttribute(FIELD_LATEST_DEPLOY_DATE, new Date(dep.getCtime()));
+ record.setAttribute(FIELD_LATEST_DEPLOY_STATUS, dep.getStatus().name());
}
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationListView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationListView.java
index f4052f7..5bfc174 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationListView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationListView.java
@@ -25,17 +25,26 @@ package org.rhq.enterprise.gui.coregui.client.bundle.destination;
import java.util.HashMap;
import com.smartgwt.client.data.Criteria;
+import com.smartgwt.client.types.DateDisplayFormat;
+import com.smartgwt.client.types.ListGridFieldType;
+import com.smartgwt.client.widgets.events.DoubleClickEvent;
+import com.smartgwt.client.widgets.events.DoubleClickHandler;
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 org.rhq.core.domain.bundle.BundleDeploymentStatus;
+import org.rhq.core.domain.bundle.BundleDestination;
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.LinkManager;
import org.rhq.enterprise.gui.coregui.client.components.table.Table;
+import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
/**
* @author Greg Hinkle
*/
-public class BundleDestinationListView extends Table {
+public class BundleDestinationListView extends
Table<RPCDataSource<BundleDestination>> {
public BundleDestinationListView(String locatorId) {
this(locatorId, null);
@@ -49,32 +58,84 @@ public class BundleDestinationListView extends Table {
@Override
protected void configureTable() {
- getListGrid().getField("id").setWidth(45);
- getListGrid().getField("name").setWidth("20%");
- getListGrid().getField("name").setCellFormatter(new CellFormatter() {
+ ListGridField idField = new ListGridField(BundleDestinationDataSource.FIELD_ID,
MSG.common_title_id());
+ ListGridField nameField = new
ListGridField(BundleDestinationDataSource.FIELD_NAME, MSG.common_title_name());
+ ListGridField descriptionField = new
ListGridField(BundleDestinationDataSource.FIELD_DESCRIPTION, MSG
+ .common_title_description());
+ ListGridField bundleNameField = new
ListGridField(BundleDestinationDataSource.FIELD_BUNDLE_NAME, MSG
+ .view_bundle_bundle());
+ ListGridField groupNameField = new
ListGridField(BundleDestinationDataSource.FIELD_GROUP_NAME, MSG
+ .view_bundle_dest_group());
+ ListGridField deployDirField = new
ListGridField(BundleDestinationDataSource.FIELD_DEPLOY_DIR, MSG
+ .view_bundle_dest_deployDir());
+ ListGridField latestDeploymentVersionField = new ListGridField(
+ BundleDestinationDataSource.FIELD_LATEST_DEPLOY_VERSION,
MSG.view_bundle_dest_lastDeployedVersion());
+ ListGridField latestDeploymentDateField = new ListGridField(
+ BundleDestinationDataSource.FIELD_LATEST_DEPLOY_DATE,
MSG.view_bundle_dest_lastDeploymentDate());
+ ListGridField latestDeploymentStatusField = new ListGridField(
+ BundleDestinationDataSource.FIELD_LATEST_DEPLOY_STATUS,
MSG.view_bundle_dest_lastDeploymentStatus());
+
+ latestDeploymentDateField.setType(ListGridFieldType.DATE);
+ latestDeploymentDateField.setDateFormatter(DateDisplayFormat.TOLOCALESTRING);
+
+ nameField.setCellFormatter(new CellFormatter() {
+ public String format(Object o, ListGridRecord listGridRecord, int i, int i1)
{
+ Integer bundleId =
listGridRecord.getAttributeAsInt(BundleDestinationDataSource.FIELD_BUNDLE_ID);
+ Integer bundleDestId =
listGridRecord.getAttributeAsInt(BundleDestinationDataSource.FIELD_ID);
+ return "<a href=\"" +
LinkManager.getBundleDestinationLink(bundleId, bundleDestId) + "\">" + o
+ "</a>";
+ }
+ });
+
+ groupNameField.setCellFormatter(new CellFormatter() {
public String format(Object o, ListGridRecord listGridRecord, int i, int i1)
{
- return "<a href=\"#Bundles/Bundles/" +
listGridRecord.getAttribute("bundleId") + "/destinations/"
- + listGridRecord.getAttribute("id") +
"\">" + o + "</a>";
+ Integer groupId =
listGridRecord.getAttributeAsInt(BundleDestinationDataSource.FIELD_GROUP_ID);
+ return "<a href=\"" +
LinkManager.getResourceGroupLink(groupId) + "\">" + o +
"</a>";
}
});
- getListGrid().getField("description").setWidth("15%");
- //getListGrid().getField("bundleName").setWidth("20%");
- getListGrid().hideField("bundleName");
- getListGrid().getField("groupName").setWidth("15%");
- getListGrid().getField("deployDir").setWidth("15%");
+ bundleNameField.setCellFormatter(new CellFormatter() {
+ public String format(Object o, ListGridRecord listGridRecord, int i, int i1)
{
+ Integer bid =
listGridRecord.getAttributeAsInt(BundleDestinationDataSource.FIELD_BUNDLE_ID);
+ return "<a href=\"" + LinkManager.getBundleLink(bid) +
"\">" + o + "</a>";
+ }
+ });
- ListGridField status =
getListGrid().getField("latestDeploymentStatus");
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/Warning_11.png");
+ 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.setWidth(80);
+ latestDeploymentStatusField.setValueIcons(statusIcons);
+ latestDeploymentStatusField.setValueIconHeight(11);
+ latestDeploymentStatusField.setValueIconWidth(11);
+ idField.setWidth(50);
+ nameField.setWidth("20%");
+ descriptionField.setWidth("25%");
+ bundleNameField.setHidden(true);
+ groupNameField.setWidth("15%");
+ deployDirField.setWidth("20%");
+ latestDeploymentVersionField.setWidth("10%");
+ latestDeploymentDateField.setWidth("10%");
+ latestDeploymentStatusField.setWidth(80);
+ // XXX there seems to be a bug here - i want to hide the bundle column, but
setHidden(true) causes the entire rendering to fail
+ setListGridFields(idField, nameField, descriptionField, /*bundleNameField,
*/groupNameField, deployDirField,
+ latestDeploymentVersionField, latestDeploymentDateField,
latestDeploymentStatusField);
+
+ setListGridDoubleClickHandler(new DoubleClickHandler() {
+ @Override
+ public void onDoubleClick(DoubleClickEvent event) {
+ ListGrid listGrid = (ListGrid) event.getSource();
+ ListGridRecord[] selectedRows = listGrid.getSelection();
+ if (selectedRows != null && selectedRows.length == 1) {
+ String selectedId =
selectedRows[0].getAttribute(BundleDestinationDataSource.FIELD_BUNDLE_ID);
+ String selectedDestId =
selectedRows[0].getAttribute(BundleDestinationDataSource.FIELD_ID);
+
CoreGUI.goToView(LinkManager.getBundleDestinationLink(Integer.valueOf(selectedId),
Integer
+ .valueOf(selectedDestId)));
+ }
+ }
+ });
}
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationView.java
index 601c0c8..b4aaba8 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationView.java
@@ -77,7 +77,7 @@ public class BundleDestinationView extends LocatableVLayout implements
Bookmarka
this.canManageBundles = canManageBundles;
setWidth100();
setHeight100();
- setMargin(10);
+ //setMargin(10); // do not set margin, we already have our margin set outside of
us
}
private void viewBundleDestination(BundleDestination bundleDestination, ViewId
current) {
@@ -87,15 +87,34 @@ public class BundleDestinationView extends LocatableVLayout implements
Bookmarka
this.destination = bundleDestination;
this.bundle = bundleDestination.getBundle();
- addMember(new BackButton(extendLocatorId("BackButton"),
MSG.view_bundle_dest_backToBundle() + ": "
- + bundle.getName(), "Bundles/Bundle/" + bundle.getId()));
+ BackButton backButton = new BackButton(extendLocatorId("BackButton"),
MSG.view_bundle_dest_backToBundle()
+ + ": " + bundle.getName(), "Bundles/Bundle/" +
bundle.getId());
- addMember(new
HeaderLabel(Canvas.getImgURL("subsystems/bundle/BundleDestination_24.png"),
destination.getName()));
+ HeaderLabel header = new
HeaderLabel(Canvas.getImgURL("subsystems/bundle/BundleDestination_24.png"),
+ destination.getName());
- LocatableDynamicForm form = new LocatableDynamicForm(getLocatorId());
+ detail = new Canvas();
+ detail.setHeight("50%");
+ detail.hide();
+
+ addMember(backButton);
+ addMember(header);
+ addMember(createTagEditor());
+ addMember(createSummaryForm());
+ addMember(createDeploymentsTable());
+ addMember(detail);
+ }
+
+ private LocatableDynamicForm createSummaryForm() {
+ LocatableDynamicForm form = new
LocatableDynamicForm(extendLocatorId("Summary"));
form.setWidth100();
- form.setNumCols(4);
- form.setColWidths("20%", "30%", "25%",
"25%");
+ form.setColWidths("20%", "40%", "40%");
+ form.setNumCols(3);
+ form.setWrapItemTitles(false);
+ form.setExtraSpace(10);
+ form.setIsGroup(true);
+ form.setGroupTitle(MSG.common_title_summary());
+ form.setPadding(5);
LinkItem bundleName = new LinkItem("bundle");
bundleName.setTitle(MSG.view_bundle_bundle());
@@ -103,32 +122,11 @@ public class BundleDestinationView extends LocatableVLayout
implements Bookmarka
bundleName.setLinkTitle(bundle.getName());
bundleName.setTarget("_self");
- CanvasItem tagItem = new CanvasItem("tag");
- tagItem.setShowTitle(false);
- TagEditorView tagEditor = new
TagEditorView(form.extendLocatorId("Tags"), destination.getTags(),
- !canManageBundles, new TagsChangedCallback() {
- public void tagsChanged(HashSet<Tag> tags) {
-
GWTServiceLookup.getTagService().updateBundleDestinationTags(destination.getId(), tags,
- new AsyncCallback<Void>() {
- public void onFailure(Throwable caught) {
-
CoreGUI.getErrorHandler().handleError(MSG.view_bundle_dest_tagUpdateFailure(), caught);
- }
-
- public void onSuccess(Void result) {
- CoreGUI.getMessageCenter().notify(
- new
Message(MSG.view_bundle_dest_tagUpdateSuccessful(), Message.Severity.Info));
- }
- });
- }
- });
- tagEditor.setVertical(true);
- tagItem.setCanvas(tagEditor);
- tagItem.setRowSpan(4);
-
CanvasItem actionItem = new CanvasItem("actions");
+ actionItem.setColSpan(1);
+ actionItem.setRowSpan(4);
actionItem.setShowTitle(false);
actionItem.setCanvas(getActionLayout(form.extendLocatorId("actions")));
- actionItem.setRowSpan(4);
StaticTextItem created = new StaticTextItem("created",
MSG.view_bundle_dest_created());
created.setValue(new Date(destination.getCtime()));
@@ -142,24 +140,34 @@ public class BundleDestinationView extends LocatableVLayout
implements Bookmarka
StaticTextItem path = new StaticTextItem("path",
MSG.view_bundle_dest_deployDir());
path.setValue(destination.getDeployDir());
- form.setFields(bundleName, tagItem, actionItem, created, destinationGroup,
path);
-
- addMember(form);
+ form.setFields(bundleName, actionItem, created, destinationGroup, path);
+ return form;
+ }
- Table deployments = createDeploymentsTable();
- deployments.setHeight100();
- deployments.setShowResizeBar(true);
- addMember(createDeploymentsTable());
+ private TagEditorView createTagEditor() {
+ boolean readOnly = !this.canManageBundles;
+ TagEditorView tagEditor = new TagEditorView(extendLocatorId("Tags"),
destination.getTags(), readOnly,
+ new TagsChangedCallback() {
+ public void tagsChanged(HashSet<Tag> tags) {
+
GWTServiceLookup.getTagService().updateBundleDestinationTags(destination.getId(), tags,
+ new AsyncCallback<Void>() {
+ public void onFailure(Throwable caught) {
+
CoreGUI.getErrorHandler().handleError(MSG.view_bundle_dest_tagUpdateFailure(), caught);
+ }
- detail = new Canvas();
- detail.setHeight("50%");
- detail.hide();
- addMember(detail);
+ public void onSuccess(Void result) {
+ CoreGUI.getMessageCenter().notify(
+ new
Message(MSG.view_bundle_dest_tagUpdateSuccessful(), Message.Severity.Info));
+ }
+ });
+ }
+ });
+ tagEditor.setAutoHeight();
+ return tagEditor;
}
private Canvas getActionLayout(String locatorId) {
- LocatableVLayout actionLayout = new LocatableVLayout(locatorId);
- actionLayout.setMembersMargin(10);
+ LocatableVLayout actionLayout = new LocatableVLayout(locatorId, 10);
IButton deployButton = new
LocatableIButton(actionLayout.extendLocatorId("Deploy"),
MSG.view_bundle_deploy());
deployButton.setIcon("subsystems/bundle/BundleAction_Deploy_16.png");
deployButton.addClickHandler(new ClickHandler() {
@@ -189,7 +197,10 @@ public class BundleDestinationView extends LocatableVLayout
implements Bookmarka
private Table createDeploymentsTable() {
Criteria criteria = new Criteria();
criteria.addCriteria("bundleDestinationId", destination.getId());
- return new BundleDeploymentListView(extendLocatorId("Deployments"),
criteria);
+ BundleDeploymentListView deployments = new
BundleDeploymentListView(extendLocatorId("Deployments"), criteria);
+ deployments.setHeight100();
+ deployments.setShowResizeBar(true);
+ return deployments;
}
public void renderView(final ViewPath viewPath) {
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundleVersionDataSource.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundleVersionDataSource.java
index cc21796..11edfdf 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundleVersionDataSource.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundleVersionDataSource.java
@@ -42,6 +42,13 @@ import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
*/
public class BundleVersionDataSource extends RPCDataSource<BundleVersion> {
+ public static final String FIELD_ID = "id";
+ public static final String FIELD_BUNDLE_ID = "bundleId";
+ public static final String FIELD_VERSION = "version";
+ public static final String FIELD_NAME = "name";
+ public static final String FIELD_DESCRIPTION = "description";
+ public static final String FIELD_FILECOUNT = "fileCount";
+
private BundleGWTServiceAsync bundleService = GWTServiceLookup.getBundleService();
public BundleVersionDataSource() {
@@ -54,22 +61,23 @@ public class BundleVersionDataSource extends
RPCDataSource<BundleVersion> {
protected List<DataSourceField> addDataSourceFields() {
List<DataSourceField> fields = super.addDataSourceFields();
- DataSourceIntegerField idField = new DataSourceIntegerField("id",
MSG.common_title_id());
+ DataSourceIntegerField idField = new DataSourceIntegerField(FIELD_ID,
MSG.common_title_id());
idField.setPrimaryKey(true);
fields.add(idField);
- DataSourceTextField latestVersionField = new
DataSourceTextField("version", MSG.common_title_version());
- fields.add(latestVersionField);
+ DataSourceTextField versionField = new DataSourceTextField(FIELD_VERSION,
MSG.common_title_version());
+ fields.add(versionField);
- DataSourceTextField nameField = new DataSourceTextField("name",
MSG.common_title_name());
+ DataSourceTextField nameField = new DataSourceTextField(FIELD_NAME,
MSG.common_title_name());
fields.add(nameField);
- DataSourceTextField descriptionField = new
DataSourceTextField("description", MSG.common_title_description());
+ DataSourceTextField descriptionField = new DataSourceTextField(FIELD_DESCRIPTION,
MSG
+ .common_title_description());
fields.add(descriptionField);
- DataSourceIntegerField deploymentCountField = new
DataSourceIntegerField("fileCount", MSG
+ DataSourceIntegerField fileCountField = new
DataSourceIntegerField(FIELD_FILECOUNT, MSG
.view_bundle_bundleFiles());
- fields.add(deploymentCountField);
+ fields.add(fileCountField);
return fields;
}
@@ -124,12 +132,12 @@ public class BundleVersionDataSource extends
RPCDataSource<BundleVersion> {
public ListGridRecord copyValues(BundleVersion from) {
ListGridRecord record = new ListGridRecord();
- record.setAttribute("id", from.getId());
- record.setAttribute("bundleId", from.getBundle().getId());
- record.setAttribute("name", from.getName());
- record.setAttribute("description", from.getDescription());
- record.setAttribute("version", from.getVersion());
- record.setAttribute("fileCount",
Integer.valueOf(from.getBundleFiles().size()));
+ record.setAttribute(FIELD_ID, from.getId());
+ record.setAttribute(FIELD_BUNDLE_ID, from.getBundle().getId());
+ record.setAttribute(FIELD_NAME, from.getName());
+ record.setAttribute(FIELD_DESCRIPTION, from.getDescription());
+ record.setAttribute(FIELD_VERSION, from.getVersion());
+ record.setAttribute(FIELD_FILECOUNT,
Integer.valueOf(from.getBundleFiles().size()));
record.setAttribute("object", from);
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundleView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundleView.java
index c1e4ccc..36968e8 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundleView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundleView.java
@@ -78,9 +78,7 @@ public class BundleView extends LocatableVLayout implements
BookmarkableView {
private Tab destinationsTab;
private BundleGWTServiceAsync bundleManager = GWTServiceLookup.getBundleService();
-
private Bundle bundle;
-
private final boolean canManageBundles;
public BundleView(String locatorId, Set<Permission> perms) {
@@ -88,39 +86,32 @@ public class BundleView extends LocatableVLayout implements
BookmarkableView {
this.canManageBundles = (perms != null) ?
perms.contains(Permission.MANAGE_BUNDLE) : false;
setWidth100();
setHeight100();
- setPadding(10);
+ setMargin(10);
setOverflow(Overflow.AUTO);
}
- @Override
- protected void onInit() {
- super.onInit();
- }
-
public void viewBundle(Bundle bundle, ViewId nextViewId) {
// Whenever a new view request comes in, make sure to clean house to avoid ID
conflicts for sub-widgets
this.destroyMembers();
this.bundle = bundle;
- addMember(new BackButton(extendLocatorId("BackButton"),
MSG.view_bundle_list_backToAll(), BundleTopView.VIEW_ID
- .getTitle()));
-
+ BackButton backButton = new BackButton(extendLocatorId("BackButton"),
MSG.view_bundle_list_backToAll(),
+ BundleTopView.VIEW_ID.getTitle());
headerLabel = new HeaderLabel("subsystems/bundle/Bundle_24.png",
bundle.getName());
-
- addMember(headerLabel);
-
- addMember(createSummaryForm());
-
tabs = new LocatableTabSet(getLocatorId());
- versionsTab = createVersionsTab();
- tabs.addTab(versionsTab);
-
destinationsTab = createDestinationsTab();
+ versionsTab = createVersionsTab();
tabs.addTab(destinationsTab);
+ tabs.addTab(versionsTab);
+ addMember(backButton);
+ addMember(headerLabel);
+ addMember(createTagEditor());
+ addMember(createSummaryForm());
addMember(tabs);
+ // select the correct tab based on what URL the user is going to (based on what
tree node was selected)
if ((null == nextViewId) || (nextViewId.getPath().equals("versions")))
{
tabs.selectTab(versionsTab);
} else if (nextViewId.getPath().equals("destinations")) {
@@ -130,27 +121,42 @@ public class BundleView extends LocatableVLayout implements
BookmarkableView {
markForRedraw();
}
+ private TagEditorView createTagEditor() {
+ boolean readOnly = !this.canManageBundles;
+ TagEditorView tagEditor = new
TagEditorView(extendLocatorId("TagEditor"), bundle.getTags(), readOnly,
+ new TagsChangedCallback() {
+ public void tagsChanged(HashSet<Tag> tags) {
+ GWTServiceLookup.getTagService().updateBundleTags(bundleBeingViewed,
tags,
+ new AsyncCallback<Void>() {
+ public void onFailure(Throwable caught) {
+
CoreGUI.getErrorHandler().handleError(MSG.view_bundle_list_tagUpdateFailure(), caught);
+ }
+
+ public void onSuccess(Void result) {
+ CoreGUI.getMessageCenter().notify(
+ new
Message(MSG.view_bundle_list_tagUpdateSuccessful(), Message.Severity.Info));
+ }
+ });
+ }
+ });
+ tagEditor.setAutoHeight();
+ return tagEditor;
+ }
+
private Tab createDestinationsTab() {
LocatableTab destinationsTab = new
LocatableTab(extendLocatorId("Destinations"), MSG.view_bundle_destinations());
-
Criteria criteria = new Criteria();
criteria.addCriteria("bundleId", bundle.getId());
-
destinationsTab.setPane(new
BundleDestinationListView(destinationsTab.getLocatorId(), criteria));
-
return destinationsTab;
}
private Tab createVersionsTab() {
LocatableTab versionsTab = new
LocatableTab(extendLocatorId("Versions"), MSG.view_bundle_versions());
-
Criteria criteria = new Criteria();
criteria.addCriteria("bundleId", bundleBeingViewed);
-
bundleVersionsTable = new BundleVersionListView(versionsTab.getLocatorId(),
criteria);
-
versionsTab.setPane(bundleVersionsTable);
-
return versionsTab;
}
@@ -158,13 +164,15 @@ public class BundleView extends LocatableVLayout implements
BookmarkableView {
form = new LocatableDynamicForm(extendLocatorId("Summary"));
form.setWidth100();
- form.setColWidths("20%", "30%", "25%",
"25%");
- form.setNumCols(4);
+ form.setColWidths("20%", "40%", "40%");
+ form.setNumCols(3);
form.setWrapItemTitles(false);
- form.setPadding(10);
+ form.setExtraSpace(10);
+ form.setIsGroup(true);
+ form.setGroupTitle(MSG.common_title_summary());
+ form.setPadding(5);
StaticTextItem descriptionItem = new StaticTextItem("description",
MSG.common_title_description());
- descriptionItem.setWrap(false);
descriptionItem.setValue(bundle.getDescription());
StaticTextItem versionCountItem = new StaticTextItem("versionCount",
MSG.view_bundle_list_versionsCount());
@@ -174,41 +182,11 @@ public class BundleView extends LocatableVLayout implements
BookmarkableView {
.view_bundle_list_destinationsCount());
destinationsCountItem.setValue(bundle.getDestinations() != null ?
bundle.getDestinations().size() : 0);
- form.setFields(descriptionItem, getTagItem(), getActionItem(), versionCountItem,
destinationsCountItem);
+ form.setFields(descriptionItem, getActionItem(), versionCountItem,
destinationsCountItem);
return form;
}
- private CanvasItem getTagItem() {
-
- boolean readOnly = !this.canManageBundles;
-
- TagEditorView tagEditor = new
TagEditorView(form.extendLocatorId("TagEditor"), bundle.getTags(), readOnly,
- new TagsChangedCallback() {
- public void tagsChanged(HashSet<Tag> tags) {
- GWTServiceLookup.getTagService().updateBundleTags(bundleBeingViewed,
tags,
- new AsyncCallback<Void>() {
- public void onFailure(Throwable caught) {
-
CoreGUI.getErrorHandler().handleError(MSG.view_bundle_list_tagUpdateFailure(), caught);
- }
-
- public void onSuccess(Void result) {
- CoreGUI.getMessageCenter().notify(
- new
Message(MSG.view_bundle_list_tagUpdateSuccessful(), Message.Severity.Info));
- }
- });
- }
- });
- tagEditor.setVertical(true);
-
- CanvasItem tagItem = new CanvasItem("tags");
- tagItem.setShowTitle(false);
- tagItem.setRowSpan(3);
- tagItem.setCanvas(tagEditor);
-
- return tagItem;
- }
-
private CanvasItem getActionItem() {
VLayout layout = new LocatableVLayout(form.extendLocatorId("Actions"),
10);
@@ -275,6 +253,7 @@ public class BundleView extends LocatableVLayout implements
BookmarkableView {
layout.addMember(deployButton);
CanvasItem actionItem = new CanvasItem("actions");
+ actionItem.setColSpan(1);
actionItem.setRowSpan(3);
actionItem.setShowTitle(false);
actionItem.setCanvas(layout);
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/version/BundleVersionListView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/version/BundleVersionListView.java
index 6e8f401..247907a 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/version/BundleVersionListView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/version/BundleVersionListView.java
@@ -23,18 +23,25 @@
package org.rhq.enterprise.gui.coregui.client.bundle.version;
import com.smartgwt.client.data.Criteria;
-import com.smartgwt.client.types.SelectionAppearance;
import com.smartgwt.client.types.SelectionStyle;
+import com.smartgwt.client.widgets.events.DoubleClickEvent;
+import com.smartgwt.client.widgets.events.DoubleClickHandler;
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 org.rhq.core.domain.bundle.BundleVersion;
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+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;
+import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
/**
* @author Greg Hinkle
*/
-public class BundleVersionListView extends Table {
+public class BundleVersionListView extends
Table<RPCDataSource<BundleVersion>> {
public BundleVersionListView(String locatorId) {
this(locatorId, null);
@@ -43,28 +50,56 @@ public class BundleVersionListView extends Table {
public BundleVersionListView(String locatorId, Criteria criteria) {
super(locatorId, MSG.view_bundle_bundleVersions(), criteria);
setHeaderIcon("subsystems/bundle/BundleVersion_24.png");
- BundleVersionDataSource bundleVersionsDataSource = new
BundleVersionDataSource();
- setDataSource(bundleVersionsDataSource);
+ setDataSource(new BundleVersionDataSource());
+ }
+
+ @Override
+ protected SelectionStyle getDefaultSelectionStyle() {
+ return SelectionStyle.SINGLE;
}
@Override
protected void configureTable() {
- getListGrid().getField("id").setWidth("60");
- getListGrid().getField("name").setWidth("25%");
- getListGrid().getField("name").setCellFormatter(new CellFormatter() {
+ ListGridField idField = new ListGridField(FIELD_ID, MSG.common_title_id());
+
+ ListGridField versionField = new
ListGridField(BundleVersionDataSource.FIELD_VERSION, MSG
+ .common_title_version());
+ versionField.setCellFormatter(new CellFormatter() {
public String format(Object o, ListGridRecord listGridRecord, int i, int i1)
{
- return "<a href=\"#Bundles/Bundle/" +
listGridRecord.getAttribute("bundleId") + "/versions/"
- + listGridRecord.getAttribute("id") +
"\">" + o + "</a>";
+ Integer _bundleId =
listGridRecord.getAttributeAsInt("bundleId");
+ Integer _bvId = listGridRecord.getAttributeAsInt("id");
+ return "<a href=\"" +
LinkManager.getBundleVersionLink(_bundleId, _bvId) + "\">" + o +
"</a>";
}
});
- getListGrid().getField("version").setWidth("10%");
- getListGrid().getField("fileCount").setWidth("10%");
- getListGrid().getField("description").setWidth("*");
+ ListGridField nameField = new ListGridField(BundleVersionDataSource.FIELD_NAME,
MSG.common_title_name());
- getListGrid().setSelectionType(SelectionStyle.NONE);
- getListGrid().setSelectionAppearance(SelectionAppearance.ROW_STYLE);
+ ListGridField descriptionField = new
ListGridField(BundleVersionDataSource.FIELD_DESCRIPTION, MSG
+ .common_title_description());
+ ListGridField fileCountField = new
ListGridField(BundleVersionDataSource.FIELD_FILECOUNT, MSG
+ .view_bundle_bundleFiles());
+ idField.setWidth(50);
+ versionField.setWidth("20%");
+ nameField.setWidth("25%");
+ descriptionField.setWidth("*");
+ fileCountField.setWidth("10%");
+
+ setListGridFields(idField, versionField, nameField, descriptionField,
fileCountField);
+
+ setListGridDoubleClickHandler(new DoubleClickHandler() {
+ @Override
+ public void onDoubleClick(DoubleClickEvent event) {
+ ListGrid listGrid = (ListGrid) event.getSource();
+ ListGridRecord[] selectedRows = listGrid.getSelection();
+ if (selectedRows != null && selectedRows.length == 1) {
+ String selectedId =
selectedRows[0].getAttribute(BundleVersionDataSource.FIELD_BUNDLE_ID);
+ String selectedVersionId =
selectedRows[0].getAttribute(BundleVersionDataSource.FIELD_ID);
+
CoreGUI.goToView(LinkManager.getBundleVersionLink(Integer.valueOf(selectedId), Integer
+ .valueOf(selectedVersionId)));
+ }
+ }
+ });
}
}
diff --git
a/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/bundle/Error_11.png
b/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/bundle/Error_11.png
new file mode 100644
index 0000000..371298c
Binary files /dev/null and
b/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/bundle/Error_11.png
differ