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@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