modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java | 28 +-- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java | 18 -- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentListView.java | 4 modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentView.java | 2 modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationListView.java | 6 modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesListView.java | 9 - modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/version/BundleVersionListView.java | 9 - modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/Link.java | 65 ++++--- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/ViewLink.java | 25 ++ modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/CanvasField.java | 49 ++++- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/EnhancedListGrid.java | 15 + modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/TableSection.java | 65 ++----- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/ViewLinkField.java | 16 + modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/platform/PlatformSummaryPortlet.java | 2 modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/imported/RecentlyAddedResourcesPortlet.java | 9 - modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/operations/OperationSchedulePortlet.java | 32 +-- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/problems/ProblemResourcesPortlet.java | 14 - modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/resource/ResourceConfigurationUpdatesPortlet.java | 18 -- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/history/AbstractOperationHistoryListView.java | 19 +- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/event/EventCompositeHistoryView.java | 14 - modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java | 14 - modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/SingleGroupDefinitionView.java | 2 modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/HistoryGroupResourceConfigurationMembers.java | 14 - modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationMembers.java | 14 - modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/ResourceGroupMetricGraphView.java | 7 modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/traits/TraitsDetailView.java | 16 - modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/traits/TraitsView.java | 13 - modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/operation/history/GroupMemberResourceOperationHistoryListView.java | 9 - modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/AncestryUtil.java | 53 +++++- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java | 13 - modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/AbstractConfigurationHistoryDataSource.java | 15 - modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/AbstractConfigurationHistoryView.java | 30 ++- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/ResourceMetricGraphView.java | 5 modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/history/ResourceOperationHistoryDetailsView.java | 20 -- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/MenuBarView.java | 5 modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/operation/OperationHistoryDataSource.java | 87 +++++----- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/AlertDefinitionReportView.java | 39 +--- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ResourceInstallReport.java | 13 - modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/measurement/MeasurementOOBDataSource.java | 14 - modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/SeleniumUtility.java | 3 modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.css | 12 + 41 files changed, 454 insertions(+), 363 deletions(-)
New commits: commit a4cd692a8893908fdc66a643830489886519ee78 Author: Ian Springer ian.springer@redhat.com Date: Fri Apr 29 10:04:06 2011 -0400
the work goes on...
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java index 6475640..0209680 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java @@ -36,6 +36,7 @@ import com.smartgwt.client.types.Alignment; import com.smartgwt.client.types.ListGridFieldType; import com.smartgwt.client.widgets.grid.CellFormatter; import com.smartgwt.client.widgets.grid.HoverCustomizer; +import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord;
@@ -53,7 +54,9 @@ import org.rhq.core.domain.util.PageList; import org.rhq.enterprise.gui.coregui.client.CoreGUI; import org.rhq.enterprise.gui.coregui.client.ImageManager; import org.rhq.enterprise.gui.coregui.client.LinkManager; +import org.rhq.enterprise.gui.coregui.client.components.ViewLink; import org.rhq.enterprise.gui.coregui.client.components.table.TimestampCellFormatter; +import org.rhq.enterprise.gui.coregui.client.components.table.ViewLinkField; import org.rhq.enterprise.gui.coregui.client.gwt.AlertGWTServiceAsync; import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup; import org.rhq.enterprise.gui.coregui.client.inventory.resource.AncestryUtil; @@ -61,7 +64,6 @@ import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTyp import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository.TypesLoadedCallback; import org.rhq.enterprise.gui.coregui.client.util.MeasurementConverterClient; import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource; -import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility;
/** * @author Ian Springer @@ -107,15 +109,14 @@ public class AlertDataSource extends RPCDataSource<Alert, AlertCriteria> { ctimeField.setHoverCustomizer(TimestampCellFormatter.getHoverCustomizer(AlertCriteria.SORT_FIELD_CTIME)); fields.add(ctimeField);
- ListGridField nameField = new ListGridField("name", MSG.view_alerts_field_name()); - nameField.setCellFormatter(new CellFormatter() { - public String format(Object o, ListGridRecord listGridRecord, int i, int i1) { - Integer resourceId = listGridRecord.getAttributeAsInt(AncestryUtil.RESOURCE_ID); - Integer defId = listGridRecord.getAttributeAsInt("definitionId"); + ViewLinkField nameField = new ViewLinkField("name", MSG.view_alerts_field_name()) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { + Integer resourceId = record.getAttributeAsInt(AncestryUtil.RESOURCE_ID); + Integer defId = record.getAttributeAsInt("definitionId"); String url = LinkManager.getSubsystemAlertDefinitionLink(resourceId, defId); - return SeleniumUtility.getLocatableHref(url, o.toString(), null); + return new ViewLink(value.toString(), url); } - }); + }; fields.add(nameField);
ListGridField conditionField = new ListGridField("conditionText", MSG.view_alerts_field_condition_text()); @@ -175,14 +176,13 @@ public class AlertDataSource extends RPCDataSource<Alert, AlertCriteria> { fields.add(statusField);
if (this.entityContext.type != EntityContext.Type.Resource) { - ListGridField resourceNameField = new ListGridField(AncestryUtil.RESOURCE_NAME, MSG.common_title_resource()); - resourceNameField.setCellFormatter(new CellFormatter() { - public String format(Object o, ListGridRecord listGridRecord, int i, int i1) { + ViewLinkField resourceNameField = new ViewLinkField(AncestryUtil.RESOURCE_NAME, MSG.common_title_resource()) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { String url = LinkManager - .getResourceLink(listGridRecord.getAttributeAsInt(AncestryUtil.RESOURCE_ID)); - return SeleniumUtility.getLocatableHref(url, o.toString(), null); + .getResourceLink(record.getAttributeAsInt(AncestryUtil.RESOURCE_ID)); + return new ViewLink(value.toString(), url); } - }); + }; resourceNameField.setShowHover(true); resourceNameField.setHoverCustomizer(new HoverCustomizer() {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java index 45dd32c..01e7b7b 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java @@ -41,8 +41,10 @@ import org.rhq.core.domain.criteria.AlertCriteria; import org.rhq.enterprise.gui.coregui.client.CoreGUI; import org.rhq.enterprise.gui.coregui.client.ImageManager; import org.rhq.enterprise.gui.coregui.client.LinkManager; +import org.rhq.enterprise.gui.coregui.client.components.ViewLink; import org.rhq.enterprise.gui.coregui.client.components.form.EnumSelectItem; import org.rhq.enterprise.gui.coregui.client.components.table.AbstractTableAction; +import org.rhq.enterprise.gui.coregui.client.components.table.CanvasField; import org.rhq.enterprise.gui.coregui.client.components.table.TableAction; import org.rhq.enterprise.gui.coregui.client.components.table.TableActionEnablement; import org.rhq.enterprise.gui.coregui.client.components.table.TableSection; @@ -151,16 +153,12 @@ public class AlertHistoryView extends TableSection<AlertDataSource> { }
@Override - protected CellFormatter getDetailsLinkColumnCellFormatter() { - return new CellFormatter() { - public String format(Object value, ListGridRecord record, int i, int i1) { - Integer resourceId = record.getAttributeAsInt(AncestryUtil.RESOURCE_ID); - Integer alertHistoryId = getId(record); - String url = LinkManager.getSubsystemAlertHistoryLink(resourceId, alertHistoryId); - String formattedValue = TimestampCellFormatter.format(value); - return SeleniumUtility.getLocatableHref(url, formattedValue, null); - } - }; + protected ViewLink createDetailsViewLink(ListGridRecord record, Object value) { + Integer resourceId = record.getAttributeAsInt(AncestryUtil.RESOURCE_ID); + Integer alertHistoryId = getId(record); + String url = LinkManager.getSubsystemAlertHistoryLink(resourceId, alertHistoryId); + String formattedValue = TimestampCellFormatter.format(value); + return new ViewLink(formattedValue, url); }
protected void setupTableInteractions(final boolean hasWriteAccess) { 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 d9d2d3d..5c2f5b6 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 @@ -66,7 +66,7 @@ public class BundleDeploymentListView extends Table<BundleDeploymentDataSource> // only users that are authorized can see deployments if (canManageBundles) { nameField = new ViewLinkField(BundleDeploymentDataSource.FIELD_NAME, MSG.view_bundle_deploy_name()) { - protected ViewLink getViewLink(ListGrid grid, ListGridRecord record) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { String linkText = StringUtility.escapeHtml(record.getAttribute(BundleDeploymentDataSource.FIELD_NAME)); String viewPath = getBundleDeploymentLink(record); return new ViewLink(extendLocatorId("ViewLink"), linkText, viewPath); @@ -81,7 +81,7 @@ public class BundleDeploymentListView extends Table<BundleDeploymentDataSource> .common_title_description()); ViewLinkField bundleVersionField = new ViewLinkField(BundleDeploymentDataSource.FIELD_BUNDLE_VERSION_VERSION, MSG.view_bundle_bundleVersion()) { - protected ViewLink getViewLink(ListGrid grid, ListGridRecord record) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { String linkText = record.getAttribute(BundleDeploymentDataSource.FIELD_BUNDLE_VERSION_VERSION); String viewPath = LinkManager.getBundleVersionLink(record .getAttributeAsInt(BundleDeploymentDataSource.FIELD_BUNDLE_ID), record diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentView.java index 58b5664..e0da95d 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentView.java @@ -345,7 +345,7 @@ public class BundleDeploymentView extends LocatableVLayout implements Bookmarkab
// resource field ViewLinkField resource = new ViewLinkField("resource", MSG.common_title_platform()) { - protected ViewLink getViewLink(ListGrid grid, ListGridRecord record) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { String resourceUrl = LinkManager.getResourceLink(record.getAttributeAsInt("resourceId")); String linkText = StringUtility.escapeHtml(record.getAttribute("resource")); return new ViewLink(extendLocatorId("ViewLink"), linkText, resourceUrl); 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 2e94600..88867aa 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 @@ -60,7 +60,7 @@ public class BundleDestinationListView extends Table<BundleDestinationDataSource protected void configureTable() { ListGridField idField = new ListGridField(BundleDestinationDataSource.FIELD_ID, MSG.common_title_id()); ViewLinkField nameField = new ViewLinkField(BundleDestinationDataSource.FIELD_NAME, MSG.common_title_name()) { - protected ViewLink getViewLink(ListGrid grid, ListGridRecord record) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { String bundleName = record.getAttribute(BundleDestinationDataSource.FIELD_NAME); String linkText = StringUtility.escapeHtml(bundleName); String viewPath = getBundleDestinationLink(record); @@ -71,7 +71,7 @@ public class BundleDestinationListView extends Table<BundleDestinationDataSource .common_title_description()); ViewLinkField bundleNameField = new ViewLinkField(BundleDestinationDataSource.FIELD_BUNDLE_NAME, MSG .view_bundle_bundle()) { - protected ViewLink getViewLink(ListGrid grid, ListGridRecord record) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { String bundleName = record.getAttribute(BundleDestinationDataSource.FIELD_BUNDLE_NAME); String linkText = StringUtility.escapeHtml(bundleName); Integer bundleId = record.getAttributeAsInt(BundleDestinationDataSource.FIELD_BUNDLE_ID); @@ -81,7 +81,7 @@ public class BundleDestinationListView extends Table<BundleDestinationDataSource }; ViewLinkField groupNameField = new ViewLinkField(BundleDestinationDataSource.FIELD_GROUP_NAME, MSG .view_bundle_dest_group()) { - protected ViewLink getViewLink(ListGrid grid, ListGridRecord record) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { String groupName = record.getAttribute(BundleDestinationDataSource.FIELD_GROUP_NAME); String linkText = StringUtility.escapeHtml(groupName); Integer groupId = record.getAttributeAsInt(BundleDestinationDataSource.FIELD_GROUP_ID); diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesListView.java index b0313bc..bc2ea3c 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesListView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesListView.java @@ -34,6 +34,7 @@ import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord;
import com.smartgwt.client.widgets.layout.HLayout; +import com.smartgwt.client.widgets.layout.VLayout; import org.rhq.core.domain.authz.Permission; import org.rhq.core.domain.bundle.Bundle; import org.rhq.core.domain.bundle.composite.BundleWithLatestVersionComposite; @@ -91,13 +92,13 @@ public class BundlesListView extends Table<BundlesWithLatestVersionDataSource> {
CanvasField nameField = new CanvasField(BundlesWithLatestVersionDataSource.FIELD_NAME, MSG .common_title_name()) { - protected Canvas createCanvas(ListGrid grid, ListGridRecord record) { - HLayout hLayout = createHLayout(grid); + protected Canvas createCanvas(ListGrid grid, ListGridRecord record, Object value) { + VLayout vLayout = createVLayout(grid); String name = record.getAttribute(BundlesWithLatestVersionDataSource.FIELD_NAME); String nameLink = record.getAttribute(BundlesWithLatestVersionDataSource.FIELD_NAMELINK); ViewLink viewLink = new ViewLink(extendLocatorId("ViewLink"), StringUtility.escapeHtml(name), nameLink); - hLayout.addMember(viewLink); - return hLayout; + vLayout.addMember(viewLink); + return vLayout; } }; nameField.setWidth("33%"); 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 29c9744..bbb38f8 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 @@ -32,6 +32,7 @@ import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord;
import com.smartgwt.client.widgets.layout.HLayout; +import com.smartgwt.client.widgets.layout.VLayout; 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; @@ -65,13 +66,13 @@ public class BundleVersionListView extends Table<BundleVersionDataSource> {
CanvasField versionField = new CanvasField(BundleVersionDataSource.FIELD_VERSION, MSG .common_title_version()) { - protected Canvas createCanvas(ListGrid grid, ListGridRecord record) { - HLayout hLayout = createHLayout(grid); + protected Canvas createCanvas(ListGrid grid, ListGridRecord record, Object value) { + VLayout vLayout = createVLayout(grid); String viewPath = getBundleVersionViewPath(record); ViewLink viewLink = new ViewLink(extendLocatorId("ViewLink"), record.getAttribute(BundleVersionDataSource.FIELD_VERSION), viewPath); - hLayout.addMember(viewLink); - return hLayout; + vLayout.addMember(viewLink); + return vLayout; } };
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/Link.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/Link.java index 240779a..553e2a0 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/Link.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/Link.java @@ -33,48 +33,65 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableHTMLFlow; */ public class Link extends LocatableHTMLFlow {
- private static final String DEFAULT_MOUSE_OUT_STYLE_NAME = "viewLink"; - private static final String DEFAULT_MOUSE_OVER_STYLE_NAME = "viewLinkHover"; + private static final String DEFAULT_MOUSE_OVER_STYLE_NAME = "linkHover"; + private static final String DEFAULT_MOUSE_OUT_STYLE_NAME = "link";
private String mouseOverStyleName; private String mouseOutStyleName;
+ public Link(String linkText, ClickHandler clickHandler) { + this(linkText, linkText, clickHandler); + } + public Link(String locatorId, String linkText, ClickHandler clickHandler) { super(locatorId);
- this.mouseOutStyleName = DEFAULT_MOUSE_OUT_STYLE_NAME; this.mouseOverStyleName = DEFAULT_MOUSE_OVER_STYLE_NAME; + this.mouseOutStyleName = DEFAULT_MOUSE_OUT_STYLE_NAME;
- setWidth100(); - setHeight(25); + // TODO (ips, 04/28/11): This is lame - find a better way. + int width = 0; + for (int i = 0; i < linkText.length(); i++) { + int charWidth = (Character.isUpperCase(linkText.charAt(i))) ? 8 : 6; + width += charWidth; + } + setWidth(width); + //setAutoWidth(); setContents(linkText);
addClickHandler(clickHandler); - - addMouseOverHandler(new MouseOverHandler() { - public void onMouseOver(MouseOverEvent event) { - if (mouseOutStyleName != null && mouseOverStyleName != null) { - setStyleName(mouseOverStyleName); - markForRedraw(); - } - } - }); - - addMouseOutHandler(new MouseOutHandler() { - public void onMouseOut(MouseOutEvent event) { - if (mouseOutStyleName != null && mouseOverStyleName != null) { - setStyleName(mouseOutStyleName); - markForRedraw(); - } - } - }); }
@Override protected void onInit() { super.onInit();
- setStyleName(getMouseOutStyleName()); + if (this.mouseOverStyleName != null) { + addMouseOverHandler(new MouseOverHandler() { + public void onMouseOver(MouseOverEvent event) { + handleMouseOverEvent(); + } + }); + } + + if (this.mouseOutStyleName != null) { + setStyleName(this.mouseOutStyleName); + addMouseOutHandler(new MouseOutHandler() { + public void onMouseOut(MouseOutEvent event) { + handleMouseOutEvent(); + } + }); + } + } + + protected void handleMouseOverEvent() { + setStyleName(mouseOverStyleName); + markForRedraw(); + } + + protected void handleMouseOutEvent() { + setStyleName(mouseOutStyleName); + markForRedraw(); }
public String getMouseOverStyleName() { diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/ViewLink.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/ViewLink.java index 5446a8c..b8246e3 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/ViewLink.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/ViewLink.java @@ -19,14 +19,10 @@ */ package org.rhq.enterprise.gui.coregui.client.components;
+import com.google.gwt.user.client.Window; import com.smartgwt.client.widgets.events.ClickEvent; import com.smartgwt.client.widgets.events.ClickHandler; -import com.smartgwt.client.widgets.events.MouseOutEvent; -import com.smartgwt.client.widgets.events.MouseOutHandler; -import com.smartgwt.client.widgets.events.MouseOverEvent; -import com.smartgwt.client.widgets.events.MouseOverHandler; import org.rhq.enterprise.gui.coregui.client.CoreGUI; -import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableHTMLFlow;
/** * A link to another view within coregui.war. Clicking on the link will navigate to the view via the GWT history API @@ -38,6 +34,10 @@ public class ViewLink extends Link {
private String viewPath;
+ public ViewLink(String linkText, final String viewPath) { + this(linkText, linkText, viewPath); + } + public ViewLink(String locatorId, String linkText, final String viewPath) { super(locatorId, linkText, new ClickHandler() { public void onClick(ClickEvent event) { @@ -45,7 +45,20 @@ public class ViewLink extends Link { } });
- this.viewPath = viewPath; + this.viewPath = (viewPath.charAt(0) == '#') ? viewPath.substring(1) : viewPath; + } + + @Override + protected void handleMouseOverEvent() { + super.handleMouseOverEvent(); + // NOTE: This doesn't work on Firefox :-( + Window.setStatus('#' + this.viewPath); + } + + @Override + protected void handleMouseOutEvent() { + super.handleMouseOutEvent(); + Window.setStatus(""); }
@Override diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/CanvasField.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/CanvasField.java index b28e51f..b3ff1b5 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/CanvasField.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/CanvasField.java @@ -20,12 +20,12 @@ package org.rhq.enterprise.gui.coregui.client.components.table;
import com.google.gwt.core.client.JavaScriptObject; -import com.smartgwt.client.types.Overflow; +import com.smartgwt.client.types.VerticalAlignment; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord; -import com.smartgwt.client.widgets.layout.HLayout; +import com.smartgwt.client.widgets.layout.VLayout;
/** * Formats a cell value as a SmartGWT canvas. @@ -59,7 +59,7 @@ public abstract class CanvasField extends ListGridField { super(field.getName(), field.getTitle());
setWidth(field.getWidth()); - // TODO: clone other commonly used fields + // TODO (ips, 04/27/11): clone other commonly used fields }
/** @@ -67,18 +67,21 @@ public abstract class CanvasField extends ListGridField { * * @param grid * @param record + * @param value + * * @return */ - protected abstract Canvas createCanvas(ListGrid grid, ListGridRecord record); - - protected HLayout createHLayout(ListGrid grid) { - HLayout component = new HLayout(); - component.setWidth100(); - // TODO: is this the best way to deal w/ height? - component.setHeight(25); - component.setMargin(grid.getCellPadding()); - component.setOverflow(Overflow.HIDDEN); - return component; + protected abstract Canvas createCanvas(ListGrid grid, ListGridRecord record, Object value); + + protected VLayout createVLayout(ListGrid grid) { + VLayout vLayout = new CanvasFieldVLayout(grid); + /*vLayout.setWidth(grid.getFieldWidth(getName())); + vLayout.setHeight100(); + //vLayout.setOverflow(Overflow.VISIBLE); + //vLayout.setAutoHeight(); + vLayout.setMargin(grid.getCellPadding()); + vLayout.setAlign(VerticalAlignment.CENTER);*/ + return vLayout; }
@Override @@ -86,4 +89,24 @@ public abstract class CanvasField extends ListGridField { return getClass().getName() + "[name=" + getName() + ", title=" + getTitle() + "]"; }
+ class CanvasFieldVLayout extends VLayout { + private ListGrid grid; + + CanvasFieldVLayout(ListGrid grid) { + this.grid = grid; + setWidth(grid.getFieldWidth(getName())); + setHeight100(); + //setOverflow(Overflow.VISIBLE); + //setAutoHeight(); + setMargin(grid.getCellPadding()); + setAlign(VerticalAlignment.CENTER); + } + + @Override + public void redraw() { + setWidth(this.grid.getFieldWidth(getName())); + super.redraw(); + } + } + } diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/EnhancedListGrid.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/EnhancedListGrid.java index b383443..972b2b0 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/EnhancedListGrid.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/EnhancedListGrid.java @@ -19,6 +19,8 @@ */ package org.rhq.enterprise.gui.coregui.client.components.table;
+import com.google.gwt.core.client.JavaScriptObject; +import com.smartgwt.client.util.JSOHelper; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.grid.CellFormatter; import com.smartgwt.client.widgets.grid.ListGridField; @@ -73,10 +75,19 @@ public class EnhancedListGrid extends LocatableListGrid { }
ListGridField field = getField(colNum); - ListGridField originalField = this.originalFields.get(field.getName()); + String fieldName = field.getName(); + ListGridField originalField = this.originalFields.get(fieldName); if (originalField instanceof CanvasField) { CanvasField canvasField = (CanvasField)originalField; - return canvasField.createCanvas(this, record); + Object value; + try { + Object rawValue = record.getAttributeAsObject(fieldName); + value = (rawValue instanceof JavaScriptObject) ? + JSOHelper.convertToJava((JavaScriptObject) rawValue) : rawValue; + } catch (RuntimeException e) { + value = record.getAttribute(fieldName); + } + return canvasField.createCanvas(this, record, value); } else { return null; } diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/TableSection.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/TableSection.java index 4b49302..3b6d11d 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/TableSection.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/TableSection.java @@ -27,18 +27,14 @@ import com.google.gwt.user.client.History; import com.smartgwt.client.data.Criteria; import com.smartgwt.client.data.SortSpecifier; import com.smartgwt.client.types.AnimationEffect; -import com.smartgwt.client.types.Overflow; import com.smartgwt.client.types.VerticalAlignment; import com.smartgwt.client.widgets.AnimationCallback; import com.smartgwt.client.widgets.Canvas; 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 com.smartgwt.client.widgets.layout.HLayout; -import com.smartgwt.client.widgets.layout.Layout; import com.smartgwt.client.widgets.layout.VLayout;
import org.rhq.enterprise.gui.coregui.client.BookmarkableView; @@ -122,8 +118,8 @@ public abstract class TableSection<DS extends RPCDataSource> extends Table<DS> i }
/** - * The default implementation wraps the {@link #getDetailsLinkColumnCellFormatter()} column with the - * {@link #getDetailsLinkColumnCellFormatter()}. This is typically the 'name' column linking to the detail + * The default implementation renders each cell in the {@link #getDetailsLinkColumnName()} column as a hyperlink + * to the details for the corresponding row. This is typically the 'name' column linking to the detail * view, given the 'id'. Also, establishes a double click handler for the row which invokes * {@link #showDetails(com.smartgwt.client.widgets.grid.ListGridRecord)}</br> * </br> @@ -137,28 +133,14 @@ public abstract class TableSection<DS extends RPCDataSource> extends Table<DS> i
ListGrid grid = getListGrid();
- // Make the value of some specific field a link to the details view for the corresponding record. + // Make the value of some specific field (typically the 'name' field) a link to the details view for the + // corresponding record. ListGridField field = (grid != null) ? grid.getField(getDetailsLinkColumnName()) : null; if (field != null) { - //field.setCellFormatter(getDetailsLinkColumnCellFormatter()); - - CanvasField canvasField = new CanvasField(field) { - protected Canvas createCanvas(ListGrid grid, ListGridRecord record) { - HLayout hLayout = createHLayout(grid); - Integer recordId = getId(record); - String detailsViewPath = getBasePath() + "/" + recordId; - String recordValue = record.getAttribute(getDetailsLinkColumnName()); - String formattedValue = (escapeHtmlInDetailsLinkColumn) ? StringUtility.escapeHtml(recordValue.toString()) - : recordValue.toString(); - ViewLink viewLink = new ViewLink(extendLocatorId("ViewLink"), formattedValue, detailsViewPath); - hLayout.addMember(viewLink); - return hLayout; - } - }; - + CanvasField detailsViewLinkField = createDetailsLinkField(field); int fieldIndex = grid.getFieldNum(field.getName()); ListGridField[] fields = grid.getFields(); - fields[fieldIndex] = canvasField; + fields[fieldIndex] = detailsViewLinkField; grid.setFields(fields); }
@@ -175,6 +157,22 @@ public abstract class TableSection<DS extends RPCDataSource> extends Table<DS> i } }
+ protected CanvasField createDetailsLinkField(final ListGridField field) { + return new ViewLinkField(field) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { + return createDetailsViewLink(record, value); + } + }; + } + + protected ViewLink createDetailsViewLink(ListGridRecord record, Object value) { + Integer recordId = getId(record); + String detailsViewPath = getBasePath() + "/" + recordId; + String formattedValue = (this.escapeHtmlInDetailsLinkColumn) ? StringUtility.escapeHtml(value.toString()) + : value.toString(); + return new ViewLink(formattedValue, detailsViewPath); + } + protected boolean isDetailsEnabled() { return true; } @@ -192,25 +190,6 @@ public abstract class TableSection<DS extends RPCDataSource> extends Table<DS> i }
/** - * Override if you don't want the detailsLinkColumn to have the default link wrapper. - * @return the desired CellFormatter. - */ - protected CellFormatter getDetailsLinkColumnCellFormatter() { - return new CellFormatter() { - public String format(Object value, ListGridRecord record, int i, int i1) { - if (value == null) { - return ""; - } - Integer recordId = getId(record); - String detailsUrl = "#" + getBasePath() + "/" + recordId; - String formattedValue = (escapeHtmlInDetailsLinkColumn) ? StringUtility.escapeHtml(value.toString()) - : value.toString(); - return SeleniumUtility.getLocatableHref(detailsUrl, formattedValue, null); - } - }; - } - - /** * Shows the details view for the given record of the table. * * The default implementation of this method assumes there is an diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/ViewLinkField.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/ViewLinkField.java index b91d48c..31fcced 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/ViewLinkField.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/ViewLinkField.java @@ -5,10 +5,12 @@ import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord; -import com.smartgwt.client.widgets.layout.HLayout; +import com.smartgwt.client.widgets.layout.VLayout; import org.rhq.enterprise.gui.coregui.client.components.ViewLink;
/** + * A list grid field that is displayed as a link to another CoreGUI view. + * * @author Ian Springer */ public abstract class ViewLinkField extends CanvasField { @@ -38,14 +40,14 @@ public abstract class ViewLinkField extends CanvasField { }
@Override - protected Canvas createCanvas(ListGrid grid, ListGridRecord record) { - HLayout hLayout = createHLayout(grid); - ViewLink viewLink = getViewLink(grid, record); - hLayout.addMember(viewLink); - return hLayout; + protected Canvas createCanvas(ListGrid grid, ListGridRecord record, Object value) { + VLayout vLayout = createVLayout(grid); + ViewLink viewLink = getViewLink(grid, record, value); + vLayout.addMember(viewLink); + return vLayout; }
- protected abstract ViewLink getViewLink(ListGrid grid, ListGridRecord record); + protected abstract ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value);
protected ViewLinkField(ListGridField field) { super(field); diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/platform/PlatformSummaryPortlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/platform/PlatformSummaryPortlet.java index 831993c..bc50d85 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/platform/PlatformSummaryPortlet.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/platform/PlatformSummaryPortlet.java @@ -124,7 +124,7 @@ public class PlatformSummaryPortlet extends LocatableListGrid implements Portlet private void buildUI() { ViewLinkField nameField = new ViewLinkField(ResourceDataSourceField.NAME.propertyName(), MSG .common_title_name()) { - protected ViewLink getViewLink(ListGrid grid, ListGridRecord record) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { String resourceUrl = LinkManager.getResourceLink(record.getAttributeAsInt("id")); String linkText = StringUtility.escapeHtml(record.getAttribute(ResourceDataSourceField.NAME.propertyName())); return new ViewLink(extendLocatorId("ViewLink"), linkText, resourceUrl); diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/imported/RecentlyAddedResourcesPortlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/imported/RecentlyAddedResourcesPortlet.java index 91289ba..9ee0eca 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/imported/RecentlyAddedResourcesPortlet.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/imported/RecentlyAddedResourcesPortlet.java @@ -34,6 +34,7 @@ import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord; import com.smartgwt.client.widgets.layout.HLayout; +import com.smartgwt.client.widgets.layout.VLayout; import com.smartgwt.client.widgets.tree.TreeGrid;
import org.rhq.core.domain.configuration.PropertySimple; @@ -93,15 +94,15 @@ public class RecentlyAddedResourcesPortlet extends LocatableVLayout implements C treeGrid.setTreeFieldTitle("Resource Name");
CanvasField resourceNameField = new CanvasField("name", MSG.common_title_resource_name()) { - protected Canvas createCanvas(ListGrid grid, ListGridRecord record) { - HLayout hLayout = createHLayout(grid); + protected Canvas createCanvas(ListGrid grid, ListGridRecord record, Object value) { + VLayout vLayout = createVLayout(grid); int resourceId = record.getAttributeAsInt("id"); String resourceName = record.getAttribute("name"); String resourceViewPath = LinkManager.getResourceLink(resourceId); ViewLink viewLink = new ViewLink(extendLocatorId("ViewLink"), StringUtility.escapeHtml(resourceName), resourceViewPath); - hLayout.addMember(viewLink); - return hLayout; + vLayout.addMember(viewLink); + return vLayout; } };
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/operations/OperationSchedulePortlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/operations/OperationSchedulePortlet.java index b26405b..3853ea7 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/operations/OperationSchedulePortlet.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/operations/OperationSchedulePortlet.java @@ -31,6 +31,7 @@ import com.smartgwt.client.widgets.form.fields.events.ChangeEvent; import com.smartgwt.client.widgets.form.fields.events.ChangeHandler; import com.smartgwt.client.widgets.grid.CellFormatter; import com.smartgwt.client.widgets.grid.HoverCustomizer; +import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord; import com.smartgwt.client.widgets.layout.VStack; @@ -41,7 +42,10 @@ import org.rhq.core.domain.configuration.definition.PropertyDefinitionSimple; import org.rhq.core.domain.configuration.definition.PropertySimpleType; import org.rhq.core.domain.dashboard.DashboardPortlet; import org.rhq.enterprise.gui.coregui.client.LinkManager; +import org.rhq.enterprise.gui.coregui.client.components.ViewLink; +import org.rhq.enterprise.gui.coregui.client.components.table.CanvasField; import org.rhq.enterprise.gui.coregui.client.components.table.TimestampCellFormatter; +import org.rhq.enterprise.gui.coregui.client.components.table.ViewLinkField; import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortlet; import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortletUtil; import org.rhq.enterprise.gui.coregui.client.dashboard.CustomSettingsPortlet; @@ -118,21 +122,20 @@ public class OperationSchedulePortlet extends LocatableVLayout implements Custom protected void onDraw() { super.onDraw();
- ListGridField timeNext = new ListGridField(ScheduledOperationsDataSource.Field.TIME.propertyName(), - ScheduledOperationsDataSource.Field.TIME.title(), WIDTH_SCHEDULED_TIME); - timeNext.setCellFormatter(new TimestampCellFormatter() { - public String format(Object value, ListGridRecord record, int rowNum, int colNum) { + CanvasField timeNext = new CanvasField(ScheduledOperationsDataSource.Field.TIME.propertyName(), + ScheduledOperationsDataSource.Field.TIME.title(), WIDTH_SCHEDULED_TIME) { + protected Canvas createCanvas(ListGrid grid, ListGridRecord record, Object value) { if (value != null) { - String timestamp = super.format(value, record, rowNum, colNum); + String timestamp = TimestampCellFormatter.format(value); Integer resourceId = record.getAttributeAsInt(AncestryUtil.RESOURCE_ID); Integer opScheduleId = record.getAttributeAsInt("id"); String url = LinkManager.getSubsystemResourceOperationScheduleLink(resourceId, opScheduleId); - return SeleniumUtility.getLocatableHref(url, timestamp, null); + return new ViewLink(timestamp, url); } else { - return "<i>" + MSG.common_label_none() + "</i>"; + return new HTMLFlow("<i>" + MSG.common_label_none() + "</i>"); } } - }); + }; timeNext.setShowHover(true); timeNext.setHoverCustomizer(TimestampCellFormatter.getHoverCustomizer(ScheduledOperationsDataSource.Field.TIME .propertyName())); @@ -140,14 +143,13 @@ public class OperationSchedulePortlet extends LocatableVLayout implements Custom ListGridField operationNext = new ListGridField(ScheduledOperationsDataSource.Field.OPERATION.propertyName(), ScheduledOperationsDataSource.Field.OPERATION.title());
- ListGridField resourceNext = new ListGridField(ScheduledOperationsDataSource.Field.RESOURCE.propertyName(), - ScheduledOperationsDataSource.Field.RESOURCE.title()); - resourceNext.setCellFormatter(new CellFormatter() { - public String format(Object o, ListGridRecord listGridRecord, int i, int i1) { - String url = LinkManager.getResourceLink(listGridRecord.getAttributeAsInt(AncestryUtil.RESOURCE_ID)); - return SeleniumUtility.getLocatableHref(url, o.toString(), null); + ViewLinkField resourceNext = new ViewLinkField(ScheduledOperationsDataSource.Field.RESOURCE.propertyName(), + ScheduledOperationsDataSource.Field.RESOURCE.title()) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { + String url = LinkManager.getResourceLink(record.getAttributeAsInt(AncestryUtil.RESOURCE_ID)); + return new ViewLink(value.toString(), url); } - }); + }; resourceNext.setShowHover(true); resourceNext.setHoverCustomizer(new HoverCustomizer() { public String hoverHTML(Object value, ListGridRecord listGridRecord, int rowNum, int colNum) { diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/problems/ProblemResourcesPortlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/problems/ProblemResourcesPortlet.java index f3738d4..a512bab 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/problems/ProblemResourcesPortlet.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/problems/ProblemResourcesPortlet.java @@ -47,9 +47,11 @@ import org.rhq.core.domain.configuration.definition.PropertyDefinitionSimple; import org.rhq.core.domain.configuration.definition.PropertySimpleType; import org.rhq.core.domain.dashboard.DashboardPortlet; import org.rhq.enterprise.gui.coregui.client.LinkManager; +import org.rhq.enterprise.gui.coregui.client.components.ViewLink; import org.rhq.enterprise.gui.coregui.client.components.table.IconField; import org.rhq.enterprise.gui.coregui.client.components.table.Table; import org.rhq.enterprise.gui.coregui.client.components.table.TableWidget; +import org.rhq.enterprise.gui.coregui.client.components.table.ViewLinkField; import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortlet; import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortletUtil; import org.rhq.enterprise.gui.coregui.client.dashboard.CustomSettingsPortlet; @@ -120,13 +122,13 @@ public class ProblemResourcesPortlet extends Table<ProblemResourcesDataSource> i addExtraWidget(new TimeRange(extendLocatorId("TimeRange"), this), false); }
- ListGridField resourceField = new ListGridField(RESOURCE.propertyName(), RESOURCE.title()); - resourceField.setCellFormatter(new CellFormatter() { - public String format(Object o, ListGridRecord listGridRecord, int i, int i1) { - String url = LinkManager.getResourceLink(listGridRecord.getAttributeAsInt("id")); - return SeleniumUtility.getLocatableHref(url, o.toString(), null); + ViewLinkField resourceField = new ViewLinkField(RESOURCE.propertyName(), RESOURCE.title()) { + @Override + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { + String url = LinkManager.getResourceLink(record.getAttributeAsInt("id")); + return new ViewLink(value.toString(), url); } - }); + }; resourceField.setShowHover(true); resourceField.setHoverCustomizer(new HoverCustomizer() { public String hoverHTML(Object value, ListGridRecord listGridRecord, int rowNum, int colNum) { diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/resource/ResourceConfigurationUpdatesPortlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/resource/ResourceConfigurationUpdatesPortlet.java index f9b2d9d..9f9a31a 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/resource/ResourceConfigurationUpdatesPortlet.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/resource/ResourceConfigurationUpdatesPortlet.java @@ -41,6 +41,7 @@ import org.rhq.core.domain.util.PageControl; import org.rhq.core.domain.util.PageList; import org.rhq.core.domain.util.PageOrdering; import org.rhq.enterprise.gui.coregui.client.CoreGUI; +import org.rhq.enterprise.gui.coregui.client.components.ViewLink; import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet; import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory; import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.PortletConfigurationEditorComponent.Constant; @@ -168,18 +169,11 @@ public class ResourceConfigurationUpdatesPortlet extends GroupConfigurationUpdat } }
- /** - * Override if you don't want the detailsLinkColumn to have the default link wrapper. - * @return the desired CellFormatter. - */ - protected CellFormatter getDetailsLinkColumnCellFormatter() { - return new CellFormatter() { - public String format(Object value, ListGridRecord record, int i, int i1) { - Integer recordId = getId(record); - String detailsUrl = "#" + getBasePath() + "/" + recordId; - return SeleniumUtility.getLocatableHref(detailsUrl, value.toString(), null); - } - }; + @Override + protected ViewLink createDetailsViewLink(ListGridRecord record, Object value) { + Integer recordId = getId(record); + String detailsUrl = getBasePath() + "/" + recordId; + return new ViewLink(value.toString(), detailsUrl); }
@Override diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/history/AbstractOperationHistoryListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/history/AbstractOperationHistoryListView.java index 48fea33..c97a67e 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/history/AbstractOperationHistoryListView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/history/AbstractOperationHistoryListView.java @@ -35,6 +35,7 @@ import com.smartgwt.client.widgets.events.CloseClickHandler; import com.smartgwt.client.widgets.events.CloseClientEvent; import com.smartgwt.client.widgets.grid.CellFormatter; import com.smartgwt.client.widgets.grid.HoverCustomizer; +import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord; import com.smartgwt.client.widgets.grid.events.RecordClickEvent; @@ -46,9 +47,11 @@ import org.rhq.core.domain.operation.ResourceOperationHistory; import org.rhq.enterprise.gui.coregui.client.CoreGUI; import org.rhq.enterprise.gui.coregui.client.ImageManager; import org.rhq.enterprise.gui.coregui.client.LinkManager; +import org.rhq.enterprise.gui.coregui.client.components.ViewLink; import org.rhq.enterprise.gui.coregui.client.components.table.TableAction; import org.rhq.enterprise.gui.coregui.client.components.table.TableSection; import org.rhq.enterprise.gui.coregui.client.components.table.TimestampCellFormatter; +import org.rhq.enterprise.gui.coregui.client.components.table.ViewLinkField; import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup; import org.rhq.enterprise.gui.coregui.client.inventory.resource.AncestryUtil; import org.rhq.enterprise.gui.coregui.client.operation.OperationHistoryDataSource; @@ -246,19 +249,17 @@ public abstract class AbstractOperationHistoryListView<T extends AbstractOperati return statusField; }
- protected ListGridField createResourceField() { - ListGridField resourceField = new ListGridField(AncestryUtil.RESOURCE_NAME, MSG.common_title_resource()); + protected ViewLinkField createResourceField() { + ViewLinkField resourceField = new ViewLinkField(AncestryUtil.RESOURCE_NAME, MSG.common_title_resource()) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { + String url = LinkManager.getResourceLink(record.getAttributeAsInt(AncestryUtil.RESOURCE_ID)); + return new ViewLink(value.toString(), url); + } + }; resourceField.setAlign(Alignment.LEFT); resourceField.setCellAlign(Alignment.LEFT); - resourceField.setCellFormatter(new CellFormatter() { - public String format(Object o, ListGridRecord listGridRecord, int i, int i1) { - String url = LinkManager.getResourceLink(listGridRecord.getAttributeAsInt(AncestryUtil.RESOURCE_ID)); - return SeleniumUtility.getLocatableHref(url, o.toString(), null); - } - }); resourceField.setShowHover(true); resourceField.setHoverCustomizer(new HoverCustomizer() { - public String hoverHTML(Object value, ListGridRecord listGridRecord, int rowNum, int colNum) { return AncestryUtil.getResourceHoverHTML(listGridRecord, 0); } diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/event/EventCompositeHistoryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/event/EventCompositeHistoryView.java index 0965096..c70f4f4 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/event/EventCompositeHistoryView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/event/EventCompositeHistoryView.java @@ -44,6 +44,7 @@ import org.rhq.core.domain.resource.composite.ResourceComposite; import org.rhq.core.domain.resource.group.composite.ResourceGroupComposite; import org.rhq.enterprise.gui.coregui.client.CoreGUI; import org.rhq.enterprise.gui.coregui.client.ImageManager; +import org.rhq.enterprise.gui.coregui.client.components.ViewLink; import org.rhq.enterprise.gui.coregui.client.components.form.EnumSelectItem; import org.rhq.enterprise.gui.coregui.client.components.table.AbstractTableAction; import org.rhq.enterprise.gui.coregui.client.components.table.TableActionEnablement; @@ -212,14 +213,11 @@ public class EventCompositeHistoryView extends TableSection<EventCompositeDataso return "timestamp"; }
- protected CellFormatter getDetailsLinkColumnCellFormatter() { - return new CellFormatter() { - public String format(Object value, ListGridRecord record, int rowNum, int colNum) { - Integer recordId = getId(record); - String detailsUrl = "#" + getBasePath() + "/" + recordId; - return SeleniumUtility.getLocatableHref(detailsUrl, TimestampCellFormatter.format(value), null); - } - }; + @Override + protected ViewLink createDetailsViewLink(ListGridRecord record, Object value) { + Integer recordId = getId(record); + String detailsUrl = getBasePath() + "/" + recordId; + return new ViewLink(TimestampCellFormatter.format(value), detailsUrl); }
private void setupTableInteractions() { diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java index c0ae2d7..7ab79dd 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java @@ -46,10 +46,12 @@ import org.rhq.core.domain.search.SearchSubsystem; import org.rhq.enterprise.gui.coregui.client.CoreGUI; import org.rhq.enterprise.gui.coregui.client.ImageManager; import org.rhq.enterprise.gui.coregui.client.LinkManager; +import org.rhq.enterprise.gui.coregui.client.components.ViewLink; import org.rhq.enterprise.gui.coregui.client.components.table.AbstractTableAction; import org.rhq.enterprise.gui.coregui.client.components.table.AuthorizedTableAction; import org.rhq.enterprise.gui.coregui.client.components.table.Table; import org.rhq.enterprise.gui.coregui.client.components.table.TableActionEnablement; +import org.rhq.enterprise.gui.coregui.client.components.table.ViewLinkField; import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup; import org.rhq.enterprise.gui.coregui.client.gwt.ResourceGroupGWTServiceAsync; import org.rhq.enterprise.gui.coregui.client.inventory.groups.wizard.GroupCreateWizard; @@ -136,16 +138,14 @@ public class ResourceGroupListView extends Table<ResourceGroupCompositeDataSourc } });
- ListGridField nameField = new ListGridField(NAME.propertyName(), NAME.title()); - nameField.setWidth("40%"); - - nameField.setCellFormatter(new CellFormatter() { - public String format(Object value, ListGridRecord record, int i, int i1) { + ViewLinkField nameField = new ViewLinkField(NAME.propertyName(), NAME.title()) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { String groupId = record.getAttribute("id"); String groupUrl = LinkManager.getResourceGroupLink(Integer.valueOf(groupId)); - return SeleniumUtility.getLocatableHref(groupUrl, value.toString(), null); + return new ViewLink(value.toString(), groupUrl); } - }); + }; + nameField.setWidth("40%");
ListGridField descriptionField = new ListGridField(DESCRIPTION.propertyName(), DESCRIPTION.title()); descriptionField.setWidth("30%"); diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/SingleGroupDefinitionView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/SingleGroupDefinitionView.java index 3d2c15d..daf2c1a 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/SingleGroupDefinitionView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/SingleGroupDefinitionView.java @@ -251,7 +251,7 @@ public class SingleGroupDefinitionView extends LocatableVLayout implements Bookm idField.setWidth("50");
ViewLinkField nameField = new ViewLinkField(NAME.propertyName(), NAME.title()) { - protected ViewLink getViewLink(ListGrid grid, ListGridRecord record) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { String linkName = StringUtility.escapeHtml(record.getAttributeAsString(NAME.propertyName())); String linkUrl = LinkManager.getResourceGroupLink(record.getAttributeAsInt("id")); return new ViewLink(extendLocatorId("ViewLink"), linkName, linkUrl); diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/HistoryGroupResourceConfigurationMembers.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/HistoryGroupResourceConfigurationMembers.java index 31520bd..c0692dd 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/HistoryGroupResourceConfigurationMembers.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/HistoryGroupResourceConfigurationMembers.java @@ -50,9 +50,11 @@ import org.rhq.enterprise.gui.coregui.client.CoreGUI; import org.rhq.enterprise.gui.coregui.client.ErrorMessageWindow; import org.rhq.enterprise.gui.coregui.client.ImageManager; import org.rhq.enterprise.gui.coregui.client.LinkManager; +import org.rhq.enterprise.gui.coregui.client.components.ViewLink; import org.rhq.enterprise.gui.coregui.client.components.buttons.BackButton; import org.rhq.enterprise.gui.coregui.client.components.table.Table; import org.rhq.enterprise.gui.coregui.client.components.table.TimestampCellFormatter; +import org.rhq.enterprise.gui.coregui.client.components.table.ViewLinkField; import org.rhq.enterprise.gui.coregui.client.gwt.ConfigurationGWTServiceAsync; import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup; import org.rhq.enterprise.gui.coregui.client.inventory.resource.AncestryUtil; @@ -103,17 +105,15 @@ public class HistoryGroupResourceConfigurationMembers extends LocatableVLayout {
@Override protected void configureTable() { - ListGridField fieldResource = new ListGridField(AncestryUtil.RESOURCE_NAME, MSG.common_title_resource()); - fieldResource.setCellFormatter(new CellFormatter() { - public String format(Object o, ListGridRecord listGridRecord, int i, int i1) { + ViewLinkField fieldResource = new ViewLinkField(AncestryUtil.RESOURCE_NAME, MSG.common_title_resource()) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { String url = LinkManager - .getResourceLink(listGridRecord.getAttributeAsInt(AncestryUtil.RESOURCE_ID)); - return SeleniumUtility.getLocatableHref(url, o.toString(), null); + .getResourceLink(record.getAttributeAsInt(AncestryUtil.RESOURCE_ID)); + return new ViewLink(value.toString(), url); } - }); + }; fieldResource.setShowHover(true); fieldResource.setHoverCustomizer(new HoverCustomizer() { - public String hoverHTML(Object value, ListGridRecord listGridRecord, int rowNum, int colNum) { return AncestryUtil.getResourceHoverHTML(listGridRecord, 0); } diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationMembers.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationMembers.java index 2699dff..cdb8551 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationMembers.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationMembers.java @@ -50,9 +50,11 @@ import org.rhq.enterprise.gui.coregui.client.CoreGUI; import org.rhq.enterprise.gui.coregui.client.ErrorMessageWindow; import org.rhq.enterprise.gui.coregui.client.ImageManager; import org.rhq.enterprise.gui.coregui.client.LinkManager; +import org.rhq.enterprise.gui.coregui.client.components.ViewLink; import org.rhq.enterprise.gui.coregui.client.components.buttons.BackButton; import org.rhq.enterprise.gui.coregui.client.components.table.Table; import org.rhq.enterprise.gui.coregui.client.components.table.TimestampCellFormatter; +import org.rhq.enterprise.gui.coregui.client.components.table.ViewLinkField; import org.rhq.enterprise.gui.coregui.client.gwt.ConfigurationGWTServiceAsync; import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup; import org.rhq.enterprise.gui.coregui.client.inventory.resource.AncestryUtil; @@ -102,17 +104,15 @@ public class HistoryGroupPluginConfigurationMembers extends LocatableVLayout {
@Override protected void configureTable() { - ListGridField fieldResource = new ListGridField(AncestryUtil.RESOURCE_NAME, MSG.common_title_resource()); - fieldResource.setCellFormatter(new CellFormatter() { - public String format(Object o, ListGridRecord listGridRecord, int i, int i1) { + ViewLinkField fieldResource = new ViewLinkField(AncestryUtil.RESOURCE_NAME, MSG.common_title_resource()) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { String url = LinkManager - .getResourceLink(listGridRecord.getAttributeAsInt(AncestryUtil.RESOURCE_ID)); - return SeleniumUtility.getLocatableHref(url, o.toString(), null); + .getResourceLink(record.getAttributeAsInt(AncestryUtil.RESOURCE_ID)); + return new ViewLink(value.toString(), url); } - }); + }; fieldResource.setShowHover(true); fieldResource.setHoverCustomizer(new HoverCustomizer() { - public String hoverHTML(Object value, ListGridRecord listGridRecord, int rowNum, int colNum) { return AncestryUtil.getResourceHoverHTML(listGridRecord, 0); } diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/ResourceGroupMetricGraphView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/ResourceGroupMetricGraphView.java index 61a30ce..ae11ac8 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/ResourceGroupMetricGraphView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/ResourceGroupMetricGraphView.java @@ -32,11 +32,12 @@ import org.rhq.core.domain.resource.group.ResourceGroup; import org.rhq.core.domain.util.PageList; import org.rhq.enterprise.gui.coregui.client.CoreGUI; import org.rhq.enterprise.gui.coregui.client.LinkManager; +import org.rhq.enterprise.gui.coregui.client.components.ViewLink; import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup; import org.rhq.enterprise.gui.coregui.client.gwt.ResourceGroupGWTServiceAsync; import org.rhq.enterprise.gui.coregui.client.inventory.common.AbstractMetricGraphView; import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository; -import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility; +import org.rhq.enterprise.gui.coregui.client.util.StringUtility;
/** * @author Greg Hinkle @@ -44,7 +45,7 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility; */ public class ResourceGroupMetricGraphView extends AbstractMetricGraphView {
- private HTMLFlow resourceGroupTitle; + private ViewLink resourceGroupTitle;
public ResourceGroupMetricGraphView(String locatorId) { super(locatorId); @@ -84,7 +85,7 @@ public class ResourceGroupMetricGraphView extends AbstractMetricGraphView {
final ResourceGroup group = result.get(0); String url = LinkManager.getResourceGroupLink(group.getId()); - resourceGroupTitle = new HTMLFlow(SeleniumUtility.getLocatableHref(url, group.getName(), null)); + resourceGroupTitle = new ViewLink(StringUtility.escapeHtml(group.getName()), url);
ResourceTypeRepository.Cache.getInstance().getResourceTypes(group.getResourceType().getId(), EnumSet.of(ResourceTypeRepository.MetadataType.measurements), diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/traits/TraitsDetailView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/traits/TraitsDetailView.java index e93a1cb..4d3122e 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/traits/TraitsDetailView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/traits/TraitsDetailView.java @@ -19,17 +19,16 @@ package org.rhq.enterprise.gui.coregui.client.inventory.groups.detail.monitoring.traits;
import com.smartgwt.client.data.Criteria; -import com.smartgwt.client.widgets.grid.CellFormatter; import com.smartgwt.client.widgets.grid.HoverCustomizer; 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.criteria.MeasurementDataTraitCriteria; import org.rhq.enterprise.gui.coregui.client.LinkManager; +import org.rhq.enterprise.gui.coregui.client.components.ViewLink; +import org.rhq.enterprise.gui.coregui.client.components.table.ViewLinkField; import org.rhq.enterprise.gui.coregui.client.inventory.common.AbstractMeasurementDataTraitListDetailView; import org.rhq.enterprise.gui.coregui.client.inventory.resource.AncestryUtil; -import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility;
/** * The detail view for the group Monitoring>Traits subtab. @@ -47,13 +46,12 @@ public class TraitsDetailView extends AbstractMeasurementDataTraitListDetailView
ListGrid listGrid = getListGrid();
- ListGridField resourceNameField = listGrid.getField(MeasurementDataTraitCriteria.SORT_FIELD_RESOURCE_NAME); - resourceNameField.setCellFormatter(new CellFormatter() { - public String format(Object o, ListGridRecord listGridRecord, int i, int i1) { - String url = LinkManager.getResourceLink(listGridRecord.getAttributeAsInt(AncestryUtil.RESOURCE_ID)); - return SeleniumUtility.getLocatableHref(url, o.toString(), null); + ViewLinkField resourceNameField = new ViewLinkField(listGrid.getField(MeasurementDataTraitCriteria.SORT_FIELD_RESOURCE_NAME)) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { + String url = LinkManager.getResourceLink(record.getAttributeAsInt(AncestryUtil.RESOURCE_ID)); + return new ViewLink(value.toString(), url); } - }); + }; resourceNameField.setShowHover(true); resourceNameField.setHoverCustomizer(new HoverCustomizer() { public String hoverHTML(Object value, ListGridRecord listGridRecord, int rowNum, int colNum) { diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/traits/TraitsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/traits/TraitsView.java index f1c7cfa..5de7e79 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/traits/TraitsView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/traits/TraitsView.java @@ -29,6 +29,8 @@ import com.smartgwt.client.widgets.grid.ListGridRecord;
import org.rhq.core.domain.criteria.MeasurementDataTraitCriteria; import org.rhq.enterprise.gui.coregui.client.LinkManager; +import org.rhq.enterprise.gui.coregui.client.components.ViewLink; +import org.rhq.enterprise.gui.coregui.client.components.table.ViewLinkField; import org.rhq.enterprise.gui.coregui.client.inventory.common.AbstractMeasurementDataTraitListView; import org.rhq.enterprise.gui.coregui.client.inventory.resource.AncestryUtil; import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility; @@ -54,13 +56,12 @@ public class TraitsView extends AbstractMeasurementDataTraitListView { listGrid.setGroupStartOpen(GroupStartOpen.ALL); listGrid.groupBy(MeasurementDataTraitCriteria.SORT_FIELD_DISPLAY_NAME);
- ListGridField resourceNameField = listGrid.getField(MeasurementDataTraitCriteria.SORT_FIELD_RESOURCE_NAME); - resourceNameField.setCellFormatter(new CellFormatter() { - public String format(Object o, ListGridRecord listGridRecord, int i, int i1) { - String url = LinkManager.getResourceLink(listGridRecord.getAttributeAsInt(AncestryUtil.RESOURCE_ID)); - return SeleniumUtility.getLocatableHref(url, o.toString(), null); + ViewLinkField resourceNameField = new ViewLinkField(listGrid.getField(MeasurementDataTraitCriteria.SORT_FIELD_RESOURCE_NAME)) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { + String url = LinkManager.getResourceLink(record.getAttributeAsInt(AncestryUtil.RESOURCE_ID)); + return new ViewLink(value.toString(), url); } - }); + }; resourceNameField.setShowHover(true); resourceNameField.setHoverCustomizer(new HoverCustomizer() { public String hoverHTML(Object value, ListGridRecord listGridRecord, int rowNum, int colNum) { diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/operation/history/GroupMemberResourceOperationHistoryListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/operation/history/GroupMemberResourceOperationHistoryListView.java index b9eb6bb..59e4ac2 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/operation/history/GroupMemberResourceOperationHistoryListView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/operation/history/GroupMemberResourceOperationHistoryListView.java @@ -13,6 +13,7 @@ import com.smartgwt.client.widgets.grid.ListGridRecord; import org.rhq.core.domain.resource.group.composite.ResourceGroupComposite; 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.ViewLinkField; import org.rhq.enterprise.gui.coregui.client.inventory.common.detail.operation.history.AbstractOperationHistoryDataSource; import org.rhq.enterprise.gui.coregui.client.inventory.common.detail.operation.history.AbstractOperationHistoryListView; import org.rhq.enterprise.gui.coregui.client.inventory.resource.AncestryUtil; @@ -44,14 +45,8 @@ public class GroupMemberResourceOperationHistoryListView extends idField.setWidth(38); fields.add(idField);
- ListGridField resourceField = createResourceField(); + ViewLinkField resourceField = createResourceField(); resourceField.setWidth("25%"); - resourceField.setCellFormatter(new CellFormatter() { - public String format(Object o, ListGridRecord listGridRecord, int i, int i1) { - String url = LinkManager.getResourceLink(listGridRecord.getAttributeAsInt(AncestryUtil.RESOURCE_ID)); - return SeleniumUtility.getLocatableHref(url, o.toString(), null); - } - }); resourceField.setShowHover(true); resourceField.setHoverCustomizer(new HoverCustomizer() { public String hoverHTML(Object value, ListGridRecord listGridRecord, int rowNum, int colNum) { diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/AncestryUtil.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/AncestryUtil.java index b451c0e..5b8d1a3 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/AncestryUtil.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/AncestryUtil.java @@ -24,16 +24,23 @@ import java.util.Map;
import com.smartgwt.client.data.Record; import com.smartgwt.client.types.Alignment; +import com.smartgwt.client.types.Overflow; +import com.smartgwt.client.widgets.Canvas; +import com.smartgwt.client.widgets.HTMLFlow; import com.smartgwt.client.widgets.grid.CellFormatter; import com.smartgwt.client.widgets.grid.HoverCustomizer; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord;
+import com.smartgwt.client.widgets.layout.HStack; +import com.smartgwt.client.widgets.layout.VLayout; import org.rhq.core.domain.resource.Resource; import org.rhq.core.domain.resource.ResourceType; import org.rhq.enterprise.gui.coregui.client.CoreGUI; import org.rhq.enterprise.gui.coregui.client.LinkManager; +import org.rhq.enterprise.gui.coregui.client.components.ViewLink; +import org.rhq.enterprise.gui.coregui.client.components.table.CanvasField; import org.rhq.enterprise.gui.coregui.client.util.StringUtility; import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility;
@@ -63,11 +70,53 @@ public abstract class AncestryUtil { * @return ancestry field */ public static ListGridField setupAncestryListGridField() { - ListGridField ancestryField = new ListGridField(AncestryUtil.RESOURCE_ANCESTRY, CoreGUI.getMessages().common_title_ancestry()); + CanvasField ancestryField = new CanvasField(AncestryUtil.RESOURCE_ANCESTRY, + CoreGUI.getMessages().common_title_ancestry()) { + protected Canvas createCanvas(ListGrid grid, ListGridRecord record, Object value) { + VLayout vLayout = createVLayout(grid); + + if (value == null) { + // no ancestry - render a blank cell + return vLayout; + } + + HStack hStack = new HStack(); + hStack.setMembersMargin(4); + hStack.setOverflow(Overflow.AUTO); + Integer resourceId = getResourceId(record); + String[] ancestryEntries = value.toString().split(Resource.ANCESTRY_DELIM); + for (int i = 0; i < ancestryEntries.length; ++i) { + String[] entryTokens = ancestryEntries[i].split(Resource.ANCESTRY_ENTRY_DELIM); + int ancestorResourceId = Integer.valueOf(entryTokens[1]); + String ancestorName = StringUtility.escapeHtml(entryTokens[2]); + + if (i > 0) { + HTMLFlow html = new HTMLFlow("<"); + html.setAutoWidth(); + hStack.addMember(html); + } + boolean generateLinks = true; // TODO + if (generateLinks) { + String url = LinkManager.getResourceLink(ancestorResourceId); + String suffix = resourceId + "_" + entryTokens[1]; + ViewLink viewLink = new ViewLink(ancestorName + suffix, ancestorName, url); + hStack.addMember(viewLink); + } else { + HTMLFlow html = new HTMLFlow(ancestorName); + html.setAutoWidth(); + hStack.addMember(html); + } + } + + vLayout.addMember(hStack); + return vLayout; + } + }; + ancestryField.setAlign(Alignment.LEFT); ancestryField.setCellAlign(Alignment.LEFT); - setupAncestryListGridFieldCellFormatter(ancestryField); setupAncestryListGridFieldHover(ancestryField); + return ancestryField; }
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java index 025ee97..a33b8be 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java @@ -30,7 +30,6 @@ import com.smartgwt.client.data.Record; import com.smartgwt.client.data.SortSpecifier; 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.HoverCustomizer; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; @@ -43,6 +42,7 @@ import org.rhq.core.domain.resource.ResourceCategory; import org.rhq.core.domain.search.SearchSubsystem; import org.rhq.enterprise.gui.coregui.client.CoreGUI; import org.rhq.enterprise.gui.coregui.client.LinkManager; +import org.rhq.enterprise.gui.coregui.client.components.ViewLink; import org.rhq.enterprise.gui.coregui.client.components.table.EscapedHtmlCellFormatter; import org.rhq.enterprise.gui.coregui.client.components.table.RecordExtractor; import org.rhq.enterprise.gui.coregui.client.components.table.ResourceAuthorizedTableAction; @@ -51,6 +51,7 @@ import org.rhq.enterprise.gui.coregui.client.components.table.ResourceCategoryCe import org.rhq.enterprise.gui.coregui.client.components.table.Table; import org.rhq.enterprise.gui.coregui.client.components.table.TableActionEnablement; import org.rhq.enterprise.gui.coregui.client.components.table.TimestampCellFormatter; +import org.rhq.enterprise.gui.coregui.client.components.table.ViewLinkField; import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup; import org.rhq.enterprise.gui.coregui.client.gwt.ResourceGWTServiceAsync; import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource; @@ -58,7 +59,6 @@ import org.rhq.enterprise.gui.coregui.client.util.StringUtility; import org.rhq.enterprise.gui.coregui.client.util.TableUtility; import org.rhq.enterprise.gui.coregui.client.util.message.Message; import org.rhq.enterprise.gui.coregui.client.util.message.Message.Severity; -import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility;
/** * The list view for {@link Resource}s. @@ -193,14 +193,13 @@ public class ResourceSearchView extends Table { }); fields.add(iconField);
- ListGridField nameField = new ListGridField(NAME.propertyName(), NAME.title(), 250); - nameField.setCellFormatter(new CellFormatter() { - public String format(Object value, ListGridRecord record, int rowNum, int colNum) { + ViewLinkField nameField = new ViewLinkField(NAME.propertyName(), NAME.title(), 250) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { String url = LinkManager.getResourceLink(record.getAttributeAsInt("id")); String name = StringUtility.escapeHtml(value.toString()); - return SeleniumUtility.getLocatableHref(url, name, null); + return new ViewLink(name, url); } - }); + }; nameField.setShowHover(true); nameField.setHoverCustomizer(new HoverCustomizer() { public String hoverHTML(Object value, ListGridRecord listGridRecord, int rowNum, int colNum) { diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/AbstractConfigurationHistoryDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/AbstractConfigurationHistoryDataSource.java index 7993957..05a00b6 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/AbstractConfigurationHistoryDataSource.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/AbstractConfigurationHistoryDataSource.java @@ -47,6 +47,7 @@ import org.rhq.enterprise.gui.coregui.client.LinkManager; import org.rhq.enterprise.gui.coregui.client.components.ViewLink; import org.rhq.enterprise.gui.coregui.client.components.table.CanvasField; import org.rhq.enterprise.gui.coregui.client.components.table.TimestampCellFormatter; +import org.rhq.enterprise.gui.coregui.client.components.table.ViewLinkField; import org.rhq.enterprise.gui.coregui.client.gwt.ConfigurationGWTServiceAsync; import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup; import org.rhq.enterprise.gui.coregui.client.inventory.resource.AncestryUtil; @@ -201,7 +202,7 @@ public abstract class AbstractConfigurationHistoryDataSource<T extends AbstractR
CanvasField updateTypeField = new CanvasField(Field.GROUP_CONFIG_UPDATE_ID, MSG .dataSource_configurationHistory_updateType()) { - protected Canvas createCanvas(ListGrid grid, ListGridRecord record) { + protected Canvas createCanvas(ListGrid grid, ListGridRecord record, Object value) { Integer groupConfigUpdateId = record.getAttributeAsInt(Field.GROUP_CONFIG_UPDATE_ID); if (groupConfigUpdateId == null) { return new HTMLFlow(MSG.dataSource_configurationHistory_updateType_individual()); @@ -217,17 +218,15 @@ public abstract class AbstractConfigurationHistoryDataSource<T extends AbstractR
// determine the widths of our columns if (includeResourceFields) { - ListGridField resourceNameField = new ListGridField(AncestryUtil.RESOURCE_NAME, MSG.common_title_resource()); - resourceNameField.setCellFormatter(new CellFormatter() { - public String format(Object o, ListGridRecord listGridRecord, int i, int i1) { + ViewLinkField resourceNameField = new ViewLinkField(AncestryUtil.RESOURCE_NAME, MSG.common_title_resource()) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { String url = LinkManager - .getResourceLink(listGridRecord.getAttributeAsInt(AncestryUtil.RESOURCE_ID)); - return SeleniumUtility.getLocatableHref(url, o.toString(), null); + .getResourceLink(record.getAttributeAsInt(AncestryUtil.RESOURCE_ID)); + return new ViewLink(value.toString(), url); } - }); + }; resourceNameField.setShowHover(true); resourceNameField.setHoverCustomizer(new HoverCustomizer() { - public String hoverHTML(Object value, ListGridRecord listGridRecord, int rowNum, int colNum) { return AncestryUtil.getResourceHoverHTML(listGridRecord, 0); } diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/AbstractConfigurationHistoryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/AbstractConfigurationHistoryView.java index 72966cf..0d848a7 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/AbstractConfigurationHistoryView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/AbstractConfigurationHistoryView.java @@ -23,21 +23,25 @@ import java.util.List;
import com.smartgwt.client.data.Criteria; import com.smartgwt.client.widgets.Canvas; -import com.smartgwt.client.widgets.grid.CellFormatter; +import com.smartgwt.client.widgets.Img; +import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord;
+import com.smartgwt.client.widgets.layout.HLayout; +import com.smartgwt.client.widgets.layout.VLayout; import org.rhq.core.domain.configuration.AbstractResourceConfigurationUpdate; import org.rhq.core.domain.criteria.AbstractResourceConfigurationUpdateCriteria; import org.rhq.enterprise.gui.coregui.client.CoreGUI; import org.rhq.enterprise.gui.coregui.client.ImageManager; +import org.rhq.enterprise.gui.coregui.client.components.ViewLink; import org.rhq.enterprise.gui.coregui.client.components.configuration.ConfigurationComparisonView; import org.rhq.enterprise.gui.coregui.client.components.table.AbstractTableAction; +import org.rhq.enterprise.gui.coregui.client.components.table.CanvasField; import org.rhq.enterprise.gui.coregui.client.components.table.TableActionEnablement; import org.rhq.enterprise.gui.coregui.client.components.table.TableSection; import org.rhq.enterprise.gui.coregui.client.util.message.Message; import org.rhq.enterprise.gui.coregui.client.util.message.Message.Severity; -import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility;
/** * The superclass to the main plugin/resource views that lists all configuration history items. @@ -153,18 +157,24 @@ public abstract class AbstractConfigurationHistoryView<T extends AbstractConfigu }
@Override - protected CellFormatter getDetailsLinkColumnCellFormatter() { - return new CellFormatter() { - public String format(Object value, ListGridRecord record, int i, int i1) { - Integer recordId = getId(record); - String detailsUrl = "#" + getBasePath() + "/" + recordId; - String cellHtml = SeleniumUtility.getLocatableHref(detailsUrl, value.toString(), null); + protected CanvasField createDetailsLinkField(ListGridField field) { + return new CanvasField(field) { + protected Canvas createCanvas(ListGrid grid, ListGridRecord record, Object value) { + VLayout vLayout = createVLayout(grid); + HLayout hLayout = new HLayout(); + String isCurrentConfig = record .getAttribute(AbstractConfigurationHistoryDataSource.Field.CURRENT_CONFIG); if (Boolean.parseBoolean(isCurrentConfig)) { - cellHtml = Canvas.imgHTML(ImageManager.getApproveIcon()) + cellHtml; + Img approveIcon = new Img(ImageManager.getApproveIcon()); + hLayout.addMember(approveIcon); } - return cellHtml; + + ViewLink detailsViewLink = createDetailsViewLink(record, value); + hLayout.addMember(detailsViewLink); + + vLayout.addMember(hLayout); + return vLayout; } }; } diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/ResourceMetricGraphView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/ResourceMetricGraphView.java index d051b92..def6455 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/ResourceMetricGraphView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/ResourceMetricGraphView.java @@ -34,11 +34,13 @@ import org.rhq.core.domain.resource.ResourceType; import org.rhq.core.domain.util.PageList; import org.rhq.enterprise.gui.coregui.client.CoreGUI; import org.rhq.enterprise.gui.coregui.client.LinkManager; +import org.rhq.enterprise.gui.coregui.client.components.ViewLink; import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup; import org.rhq.enterprise.gui.coregui.client.gwt.ResourceGWTServiceAsync; import org.rhq.enterprise.gui.coregui.client.inventory.common.AbstractMetricGraphView; import org.rhq.enterprise.gui.coregui.client.inventory.resource.AncestryUtil; import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository; +import org.rhq.enterprise.gui.coregui.client.util.StringUtility; import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility;
/** @@ -99,8 +101,7 @@ public class ResourceMetricGraphView extends AbstractMetricGraphView {
public void onTypesLoaded(Map<Integer, ResourceType> types) { String url = LinkManager.getResourceLink(resource.getId()); - resourceTitle = new HTMLFlow(SeleniumUtility.getLocatableHref(url, resource.getName(), - null)); + resourceTitle = new ViewLink(StringUtility.escapeHtml(resource.getName()), url); resourceTitle.setTooltip(AncestryUtil.getAncestryHoverHTMLForResource(resource, types, 0));
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/history/ResourceOperationHistoryDetailsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/history/ResourceOperationHistoryDetailsView.java index b94f59b..51f2027 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/history/ResourceOperationHistoryDetailsView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/history/ResourceOperationHistoryDetailsView.java @@ -27,7 +27,6 @@ import com.smartgwt.client.widgets.HTMLFlow; import com.smartgwt.client.widgets.Label; import com.smartgwt.client.widgets.form.fields.CanvasItem; import com.smartgwt.client.widgets.form.fields.FormItem; -import com.smartgwt.client.widgets.form.fields.StaticTextItem;
import com.smartgwt.client.widgets.layout.HLayout; import org.rhq.core.domain.configuration.definition.ConfigurationDefinition; @@ -45,15 +44,14 @@ import org.rhq.enterprise.gui.coregui.client.components.ViewLink; import org.rhq.enterprise.gui.coregui.client.components.configuration.ConfigurationEditor; import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup; import org.rhq.enterprise.gui.coregui.client.inventory.common.detail.operation.history.AbstractOperationHistoryDetailsView; +import org.rhq.enterprise.gui.coregui.client.util.StringUtility; import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout; -import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility;
/** * @author Ian Springer */ public class ResourceOperationHistoryDetailsView extends AbstractOperationHistoryDetailsView<ResourceOperationHistory> {
- private String disambiguatedResourceName; private boolean showResourceField; private ResourceComposite resourceComposite;
@@ -77,9 +75,11 @@ public class ResourceOperationHistoryDetailsView extends AbstractOperationHistor List<FormItem> items = super.createFields(operationHistory);
if (this.showResourceField) { - StaticTextItem resourceItem = new StaticTextItem(ResourceOperationHistoryDataSource.Field.RESOURCE, - "Resource"); - resourceItem.setValue(this.disambiguatedResourceName); + CanvasItem resourceItem = new CanvasItem(ResourceOperationHistoryDataSource.Field.RESOURCE, "Resource"); + Resource resource = resourceComposite.getResource(); + String url = LinkManager.getResourceLink(resource.getId()); + ViewLink viewLink = new ViewLink(StringUtility.escapeHtml(resource.getName()), url); + resourceItem.setCanvas(viewLink); items.add(1, resourceItem); }
@@ -120,14 +120,6 @@ public class ResourceOperationHistoryDetailsView extends AbstractOperationHistor
public void onSuccess(PageList<ResourceOperationHistory> result) { ResourceOperationHistory resourceOperationHistory = result.get(0); - - if (showResourceField) { - Resource resource = resourceOperationHistory.getResource(); - String url = LinkManager.getResourceLink(resource.getId()); - disambiguatedResourceName = SeleniumUtility.getLocatableHref(url, resource.getName(), String - .valueOf(resource.getId())); - } - displayDetails(resourceOperationHistory); } }); diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/MenuBarView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/MenuBarView.java index 70fdc4c..0eff890 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/MenuBarView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/MenuBarView.java @@ -155,9 +155,8 @@ public class MenuBarView extends LocatableVLayout { viewLinkContainer.setAlign(VerticalAlignment.CENTER); ViewLink viewLink = new ViewLink(extendLocatorId(sectionName.getName()), sectionName.getTitle(), sectionName.getName()); - viewLink.setStyleName(null); - viewLink.setMouseOutStyleName(null); - viewLink.setMouseOverStyleName(null); + viewLink.setMouseOutStyleName("menuBarLink"); + viewLink.setMouseOverStyleName("menuBarLinkHover"); this.sectionNameToViewLinkMap.put(sectionName.getName(), viewLinkContainer); viewLinkContainer.addMember(viewLink); updateViewLinkStyle(sectionName.getName()); diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/operation/OperationHistoryDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/operation/OperationHistoryDataSource.java index 93a59a8..c910b32 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/operation/OperationHistoryDataSource.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/operation/OperationHistoryDataSource.java @@ -16,7 +16,6 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ - package org.rhq.enterprise.gui.coregui.client.operation;
import java.util.ArrayList; @@ -32,11 +31,13 @@ import com.smartgwt.client.rpc.RPCResponse; import com.smartgwt.client.types.Alignment; import com.smartgwt.client.types.Overflow; import com.smartgwt.client.widgets.Canvas; +import com.smartgwt.client.widgets.HTMLFlow; import com.smartgwt.client.widgets.Window; import com.smartgwt.client.widgets.events.CloseClickHandler; import com.smartgwt.client.widgets.events.CloseClientEvent; import com.smartgwt.client.widgets.grid.CellFormatter; import com.smartgwt.client.widgets.grid.HoverCustomizer; +import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord; import com.smartgwt.client.widgets.grid.events.RecordClickEvent; @@ -54,7 +55,10 @@ import org.rhq.core.domain.util.PageList; import org.rhq.enterprise.gui.coregui.client.CoreGUI; import org.rhq.enterprise.gui.coregui.client.ImageManager; import org.rhq.enterprise.gui.coregui.client.LinkManager; +import org.rhq.enterprise.gui.coregui.client.components.ViewLink; +import org.rhq.enterprise.gui.coregui.client.components.table.CanvasField; import org.rhq.enterprise.gui.coregui.client.components.table.TimestampCellFormatter; +import org.rhq.enterprise.gui.coregui.client.components.table.ViewLinkField; import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup; import org.rhq.enterprise.gui.coregui.client.gwt.OperationGWTServiceAsync; import org.rhq.enterprise.gui.coregui.client.inventory.resource.AncestryUtil; @@ -63,7 +67,6 @@ import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTyp import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource; import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableHTMLPane; import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableWindow; -import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility;
/** * @author Jay Shaughnessy @@ -123,14 +126,13 @@ public class OperationHistoryDataSource extends fields.add(statusField);
if (this.entityContext.type != EntityContext.Type.Resource) { - ListGridField resourceNameField = new ListGridField(AncestryUtil.RESOURCE_NAME, MSG.common_title_resource()); - resourceNameField.setCellFormatter(new CellFormatter() { - public String format(Object o, ListGridRecord listGridRecord, int i, int i1) { + ViewLinkField resourceNameField = new ViewLinkField(AncestryUtil.RESOURCE_NAME, MSG.common_title_resource()) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { String url = LinkManager - .getResourceLink(listGridRecord.getAttributeAsInt(AncestryUtil.RESOURCE_ID)); - return SeleniumUtility.getLocatableHref(url, o.toString(), null); + .getResourceLink(record.getAttributeAsInt(AncestryUtil.RESOURCE_ID)); + return new ViewLink(value.toString(), url); } - }); + }; resourceNameField.setShowHover(true); resourceNameField.setHoverCustomizer(new HoverCustomizer() {
@@ -160,23 +162,22 @@ public class OperationHistoryDataSource extends }
protected ListGridField createStartedTimeField() { - ListGridField startedTimeField = new ListGridField(Field.STARTED_TIME, MSG - .view_operationHistoryDetails_dateSubmitted()); - startedTimeField.setAlign(Alignment.LEFT); - startedTimeField.setCellAlign(Alignment.LEFT); - startedTimeField.setCellFormatter(new TimestampCellFormatter() { - public String format(Object value, ListGridRecord record, int rowNum, int colNum) { + CanvasField startedTimeField = new CanvasField(Field.STARTED_TIME, MSG + .view_operationHistoryDetails_dateSubmitted()) { + protected Canvas createCanvas(ListGrid grid, ListGridRecord record, Object value) { if (value != null) { - String timestamp = super.format(value, record, rowNum, colNum); + String timestamp = TimestampCellFormatter.format(value); Integer resourceId = record.getAttributeAsInt(AncestryUtil.RESOURCE_ID); Integer opHistoryId = record.getAttributeAsInt("id"); String url = LinkManager.getSubsystemResourceOperationHistoryLink(resourceId, opHistoryId); - return SeleniumUtility.getLocatableHref(url, timestamp, null); + return new ViewLink(timestamp, url); } else { - return "<i>" + MSG.view_operationHistoryList_notYetStarted() + "</i>"; + return new HTMLFlow("<i>" + MSG.view_operationHistoryList_notYetStarted() + "</i>"); } } - }); + }; + startedTimeField.setAlign(Alignment.LEFT); + startedTimeField.setCellAlign(Alignment.LEFT); startedTimeField.setShowHover(true); startedTimeField.setHoverCustomizer(TimestampCellFormatter.getHoverCustomizer(Field.STARTED_TIME));
@@ -194,18 +195,18 @@ public class OperationHistoryDataSource extends String statusStr = record.getAttribute(Field.STATUS); OperationRequestStatus status = OperationRequestStatus.valueOf(statusStr); switch (status) { - case SUCCESS: { - return MSG.common_status_success(); - } - case FAILURE: { - return MSG.common_status_failed(); - } - case INPROGRESS: { - return MSG.common_status_inprogress(); - } - case CANCELED: { - return MSG.common_status_canceled(); - } + case SUCCESS: { + return MSG.common_status_success(); + } + case FAILURE: { + return MSG.common_status_failed(); + } + case INPROGRESS: { + return MSG.common_status_inprogress(); + } + case CANCELED: { + return MSG.common_status_canceled(); + } } // should never get here return MSG.common_status_unknown(); @@ -276,22 +277,22 @@ public class OperationHistoryDataSource extends final long start = System.currentTimeMillis();
this.operationService.findResourceOperationHistoriesByCriteria(criteria, - new AsyncCallback<PageList<ResourceOperationHistory>>() { + new AsyncCallback<PageList<ResourceOperationHistory>>() {
- public void onFailure(Throwable caught) { - CoreGUI.getErrorHandler() - .handleError(MSG.view_operationHistoryDetails_error_fetchFailure(), caught); - response.setStatus(RPCResponse.STATUS_FAILURE); - processResponse(request.getRequestId(), response); - } + public void onFailure(Throwable caught) { + CoreGUI.getErrorHandler() + .handleError(MSG.view_operationHistoryDetails_error_fetchFailure(), caught); + response.setStatus(RPCResponse.STATUS_FAILURE); + processResponse(request.getRequestId(), response); + }
- public void onSuccess(PageList<ResourceOperationHistory> result) { - long fetchTime = System.currentTimeMillis() - start; - Log.info(result.size() + " operation histories fetched in: " + fetchTime + "ms"); + public void onSuccess(PageList<ResourceOperationHistory> result) { + long fetchTime = System.currentTimeMillis() - start; + Log.info(result.size() + " operation histories fetched in: " + fetchTime + "ms");
- dataRetrieved(result, response, request); - } - }); + dataRetrieved(result, response, request); + } + }); }
/** diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/AlertDefinitionReportView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/AlertDefinitionReportView.java index 23c6546..f8dcdb4 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/AlertDefinitionReportView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/AlertDefinitionReportView.java @@ -22,7 +22,7 @@ import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord;
-import com.smartgwt.client.widgets.layout.HLayout; +import com.smartgwt.client.widgets.layout.VLayout; import org.rhq.core.domain.alert.AlertDefinition; import org.rhq.core.domain.criteria.AlertDefinitionCriteria; import org.rhq.core.domain.criteria.ResourceCriteria; @@ -37,6 +37,7 @@ import org.rhq.enterprise.gui.coregui.client.components.Link; import org.rhq.enterprise.gui.coregui.client.components.ViewLink; import org.rhq.enterprise.gui.coregui.client.components.table.CanvasField; import org.rhq.enterprise.gui.coregui.client.components.table.Table; +import org.rhq.enterprise.gui.coregui.client.components.table.ViewLinkField; import org.rhq.enterprise.gui.coregui.client.components.view.ViewName; import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup; import org.rhq.enterprise.gui.coregui.client.inventory.resource.AncestryUtil; @@ -127,27 +128,24 @@ public class AlertDefinitionReportView extends Table<AlertDefinitionReportView.D if (fieldName.equals(FIELD_CTIME) || fieldName.equals(FIELD_MTIME)) { field.setHidden(true); } else if (fieldName.equals(FIELD_NAME)) { - CanvasField canvasField = new CanvasField(field) { - protected Canvas createCanvas(ListGrid grid, ListGridRecord record) { - HLayout hLayout = createHLayout(grid); + ViewLinkField nameField = new ViewLinkField(field) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { AlertDefinition alertDef = copyValues(record); int resourceId = alertDef.getResource().getId(); int alertDefId = alertDef.getId(); String link = LinkManager.getSubsystemAlertDefinitionLink(resourceId, alertDefId); - ViewLink viewLink = new ViewLink(extendLocatorId("ViewLink"), - StringUtility.escapeHtml(alertDef.getName()), link); - hLayout.addMember(viewLink); - return hLayout; + String linkText = StringUtility.escapeHtml(alertDef.getName()); + return new ViewLink(linkText, link); } }; - fields.set(i, canvasField); + fields.set(i, nameField); } }
// add more columns CanvasField parentField = new CanvasField(FIELD_PARENT, MSG.view_alerts_field_parent(), 100) { - protected Canvas createCanvas(ListGrid grid, final ListGridRecord record) { - HLayout hLayout = createHLayout(grid); + protected Canvas createCanvas(ListGrid grid, final ListGridRecord record, Object value) { + VLayout vLayout = createVLayout(grid);
final AlertDefinition alertDef = copyValues(record); boolean hasParent; @@ -208,12 +206,12 @@ public class AlertDefinitionReportView extends Table<AlertDefinitionReportView.D } } }); - hLayout.addMember(link); + vLayout.addMember(link); } else { - hLayout.addMember(new HTMLFlow(MSG.common_val_na())); + vLayout.addMember(new HTMLFlow(MSG.common_val_na())); }
- return hLayout; + return vLayout; } }; parentField.setShowHover(true); @@ -228,15 +226,15 @@ public class AlertDefinitionReportView extends Table<AlertDefinitionReportView.D fields.add(parentField);
CanvasField resourceField = new CanvasField(FIELD_RESOURCE, MSG.common_title_resource()) { - protected Canvas createCanvas(ListGrid grid, ListGridRecord record) { - HLayout hLayout = createHLayout(grid); + protected Canvas createCanvas(ListGrid grid, ListGridRecord record, Object value) { + VLayout vLayout = createVLayout(grid); Integer resourceId = record.getAttributeAsInt(AncestryUtil.RESOURCE_ID); String url = LinkManager.getResourceLink(resourceId); String resourceName = record.getAttribute(FIELD_RESOURCE); ViewLink viewLink = new ViewLink(extendLocatorId("ViewLink"), StringUtility.escapeHtml(resourceName), url); - hLayout.addMember(viewLink); - return hLayout; + vLayout.addMember(viewLink); + return vLayout; } }; resourceField.setShowHover(true); @@ -303,10 +301,7 @@ public class AlertDefinitionReportView extends Table<AlertDefinitionReportView.D }
/** - * Additional processing to support a cross-resource view) - * @param result - * @param response - * @param request + * Additional processing to support a cross-resource view. */ protected void dataRetrieved(final PageList<AlertDefinition> result, final DSResponse response, final DSRequest request) { diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ResourceInstallReport.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ResourceInstallReport.java index caf8e8d..d03c62a 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ResourceInstallReport.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ResourceInstallReport.java @@ -18,7 +18,7 @@ import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord;
-import com.smartgwt.client.widgets.layout.HLayout; +import com.smartgwt.client.widgets.layout.VLayout; import org.rhq.core.domain.resource.ResourceCategory; import org.rhq.core.domain.resource.composite.ResourceInstallCount; import org.rhq.enterprise.gui.coregui.client.BookmarkableView; @@ -34,7 +34,6 @@ import org.rhq.enterprise.gui.coregui.client.gwt.ResourceGWTServiceAsync; import org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDataSourceField; import org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceSearchView; import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource; -import org.rhq.enterprise.gui.coregui.client.util.StringUtility; import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
/** @@ -119,18 +118,18 @@ public class ResourceInstallReport extends LocatableVLayout implements Bookmarka @Override protected void configureTable() { CanvasField fieldTypeName = new CanvasField(DataSource.Field.TYPENAME, MSG.common_title_resource_type()) { - protected Canvas createCanvas(ListGrid grid, ListGridRecord record) { - HLayout hLayout = createHLayout(grid); + protected Canvas createCanvas(ListGrid grid, ListGridRecord record, Object value) { + VLayout vLayout = createVLayout(grid); String typeName = record.getAttribute(DataSource.Field.TYPENAME); String url = getResourceTypeTableUrl(record); if (url != null) { ViewLink viewLink = new ViewLink(extendLocatorId("ViewLink"), typeName, url); - hLayout.addMember(viewLink); + vLayout.addMember(viewLink); } else { HTMLFlow html = new HTMLFlow(typeName); - hLayout.addMember(html); + vLayout.addMember(html); } - return hLayout; + return vLayout; } }; ListGridField fieldPlugin = new ListGridField(DataSource.Field.TYPEPLUGIN, MSG.common_title_plugin()); diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/measurement/MeasurementOOBDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/measurement/MeasurementOOBDataSource.java index d47b4f0..7794e3a 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/measurement/MeasurementOOBDataSource.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/measurement/MeasurementOOBDataSource.java @@ -37,6 +37,7 @@ import com.smartgwt.client.data.Record; import com.smartgwt.client.widgets.HTMLFlow; import com.smartgwt.client.widgets.grid.CellFormatter; import com.smartgwt.client.widgets.grid.HoverCustomizer; +import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord;
@@ -47,6 +48,8 @@ import org.rhq.core.domain.util.PageControl; import org.rhq.core.domain.util.PageList; import org.rhq.enterprise.gui.coregui.client.CoreGUI; import org.rhq.enterprise.gui.coregui.client.LinkManager; +import org.rhq.enterprise.gui.coregui.client.components.ViewLink; +import org.rhq.enterprise.gui.coregui.client.components.table.ViewLinkField; import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup; import org.rhq.enterprise.gui.coregui.client.inventory.resource.AncestryUtil; import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository; @@ -76,13 +79,12 @@ public class MeasurementOOBDataSource extends RPCDataSource<MeasurementOOBCompos public ArrayList<ListGridField> getListGridFields() { ArrayList<ListGridField> fields = new ArrayList<ListGridField>();
- ListGridField resourceNameField = new ListGridField(AncestryUtil.RESOURCE_NAME, MSG.common_title_resource()); - resourceNameField.setCellFormatter(new CellFormatter() { - public String format(Object o, ListGridRecord listGridRecord, int i, int i1) { - String url = LinkManager.getResourceLink(listGridRecord.getAttributeAsInt(AncestryUtil.RESOURCE_ID)); - return SeleniumUtility.getLocatableHref(url, o.toString(), null); + ViewLinkField resourceNameField = new ViewLinkField(AncestryUtil.RESOURCE_NAME, MSG.common_title_resource()) { + protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object value) { + String url = LinkManager.getResourceLink(record.getAttributeAsInt(AncestryUtil.RESOURCE_ID)); + return new ViewLink(value.toString(), url); } - }); + }; resourceNameField.setShowHover(true); resourceNameField.setHoverCustomizer(new HoverCustomizer() {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/SeleniumUtility.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/SeleniumUtility.java index 60291bc..38df4b4 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/SeleniumUtility.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/SeleniumUtility.java @@ -75,7 +75,8 @@ public class SeleniumUtility { }
/** - * A utility for assigning an ID to a gwt uiobject. For a smartgwt widget use {@link setId(BaseWidget)}. + * A utility for assigning an ID to a gwt uiobject. For a smartgwt widget, use + * {@link #setID(com.smartgwt.client.widgets.BaseWidget, String)}. * Any current ID will be overwritten. The algorithm is: * <pre> * If the unsafeId parameter is non-empty, the ID is set to the unsafeId, with spaces removed. diff --git a/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.css b/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.css index aebf32b..628c67c 100644 --- a/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.css +++ b/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.css @@ -22,13 +22,19 @@ hr { width: 100%; }
-a, a:link, a:visited, a:hover, .viewLink, .viewLinkHover { - color: #4A5D75 !important; +a, a:link, a:visited, a:hover, .link, .linkHover, .menuBarLink, .menuBarLinkHover { font-weight: bold !important; +} + +a, a:link, a:visited, a:hover, .link, .linkHover { + color: #4A5D75 !important; +} + +a, a:link, a:visited, .link, .menuBarLink { text-decoration: none !important; }
-a:hover, .viewLinkHover { +a:hover, .linkHover, .menuBarLinkHover { text-decoration: underline !important; }