modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesListView.java
| 18 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/version/BundleVersionListView.java
| 12 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/Link.java
| 20 +-
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/CanvasField.java
| 78 ++++----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/EnhancedListGrid.java
| 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/ViewLinkField.java
| 15 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/imported/RecentlyAddedResourcesPortlet.java
| 13 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/AncestryUtil.java
| 93 +++++-----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/AbstractConfigurationHistoryView.java
| 5
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/AlertDefinitionReportView.java
| 17 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ResourceInstallReport.java
| 10 -
11 files changed, 138 insertions(+), 147 deletions(-)
New commits:
commit e5bfdbfefa9234a26f567a79406b2b54dd3eef60
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Fri Apr 29 14:29:24 2011 -0400
layout fixes and other refactoring to EnhancedListGrid/CanvasField code
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 bc2ea3c..63c7625 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
@@ -25,7 +25,6 @@ import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.data.Criteria;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.ListGridFieldType;
-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;
@@ -33,8 +32,6 @@ 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.authz.Permission;
import org.rhq.core.domain.bundle.Bundle;
import org.rhq.core.domain.bundle.composite.BundleWithLatestVersionComposite;
@@ -46,9 +43,9 @@ import
org.rhq.enterprise.gui.coregui.client.bundle.create.BundleCreateWizard;
import org.rhq.enterprise.gui.coregui.client.bundle.deploy.BundleDeployWizard;
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.CanvasField;
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.BundleGWTServiceAsync;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.util.ErrorHandler;
@@ -90,15 +87,11 @@ public class BundlesListView extends
Table<BundlesWithLatestVersionDataSource> {
idField.setType(ListGridFieldType.INTEGER);
idField.setWidth("50");
- CanvasField nameField = new
CanvasField(BundlesWithLatestVersionDataSource.FIELD_NAME, MSG
+ ViewLinkField nameField = new
ViewLinkField(BundlesWithLatestVersionDataSource.FIELD_NAME, MSG
.common_title_name()) {
- protected Canvas createCanvas(ListGrid grid, ListGridRecord record, Object
value) {
- VLayout vLayout = createVLayout(grid);
- String name =
record.getAttribute(BundlesWithLatestVersionDataSource.FIELD_NAME);
+ protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object
value) {
String nameLink =
record.getAttribute(BundlesWithLatestVersionDataSource.FIELD_NAMELINK);
- ViewLink viewLink = new ViewLink(extendLocatorId("ViewLink"),
StringUtility.escapeHtml(name), nameLink);
- vLayout.addMember(viewLink);
- return vLayout;
+ return new ViewLink(extendLocatorId("ViewLink"),
StringUtility.escapeHtml(value.toString()), nameLink);
}
};
nameField.setWidth("33%");
@@ -196,7 +189,7 @@ public class BundlesListView extends
Table<BundlesWithLatestVersionDataSource> {
return;
}
- BundlesWithLatestVersionDataSource ds =
(BundlesWithLatestVersionDataSource) getDataSource();
+ BundlesWithLatestVersionDataSource ds = getDataSource();
final BundleWithLatestVersionComposite object =
ds.copyValues(selection[0]);
BundleCriteria bc = new BundleCriteria();
bc.addFilterId(object.getBundleId());
@@ -222,4 +215,5 @@ public class BundlesListView extends
Table<BundlesWithLatestVersionDataSource> {
}
}
+
}
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 bbb38f8..aaf3cb8 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
@@ -31,7 +31,6 @@ 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.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.LinkManager;
@@ -39,6 +38,7 @@ import
org.rhq.enterprise.gui.coregui.client.bundle.list.BundleVersionDataSource
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;
/**
* @author Greg Hinkle
@@ -64,15 +64,11 @@ public class BundleVersionListView extends
Table<BundleVersionDataSource> {
protected void configureTable() {
ListGridField idField = new ListGridField(FIELD_ID, MSG.common_title_id());
- CanvasField versionField = new CanvasField(BundleVersionDataSource.FIELD_VERSION,
MSG
+ ViewLinkField versionField = new
ViewLinkField(BundleVersionDataSource.FIELD_VERSION, MSG
.common_title_version()) {
- protected Canvas createCanvas(ListGrid grid, ListGridRecord record, Object
value) {
- VLayout vLayout = createVLayout(grid);
+ protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object
value) {
String viewPath = getBundleVersionViewPath(record);
- ViewLink viewLink = new ViewLink(extendLocatorId("ViewLink"),
- record.getAttribute(BundleVersionDataSource.FIELD_VERSION),
viewPath);
- vLayout.addMember(viewLink);
- return vLayout;
+ return new ViewLink(value.toString(), viewPath);
}
};
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 553e2a0..95352b4 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
@@ -49,19 +49,23 @@ public class Link extends LocatableHTMLFlow {
this.mouseOverStyleName = DEFAULT_MOUSE_OVER_STYLE_NAME;
this.mouseOutStyleName = DEFAULT_MOUSE_OUT_STYLE_NAME;
- // 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;
- }
+ // TODO (ips, 04/28/11): This is hacky - try to find a better way.
+ int width = calculateWidth(linkText);
setWidth(width);
- //setAutoWidth();
setContents(linkText);
-
addClickHandler(clickHandler);
}
+ private int calculateWidth(String string) {
+ float width = 0;
+ for (int i = 0; i < string.length(); i++) {
+ float charWidth = (Character.isUpperCase(string.charAt(i))) ? 10.5F : 5.5F;
+ width += charWidth;
+ }
+ width +=1;
+ return (int)width;
+ }
+
@Override
protected void onInit() {
super.onInit();
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 b3ff1b5..dcafd44 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,6 +20,7 @@
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;
@@ -28,7 +29,10 @@ import com.smartgwt.client.widgets.grid.ListGridRecord;
import com.smartgwt.client.widgets.layout.VLayout;
/**
- * Formats a cell value as a SmartGWT canvas.
+ * A special field, when used in conjunction with an {@link EnhancedListGrid}, whose
values will be formatted as a
+ * custom SmartGWT canvases. The ListGrid equivalent of a DynamicForm CanvasItem.
+ *
+ * @author Ian Springer
*/
public abstract class CanvasField extends ListGridField {
@@ -58,55 +62,65 @@ public abstract class CanvasField extends ListGridField {
protected CanvasField(ListGridField field) {
super(field.getName(), field.getTitle());
+ setAlign(field.getAlign());
setWidth(field.getWidth());
// TODO (ips, 04/27/11): clone other commonly used fields
}
/**
- * TODO
+ * Take care when overriding this method. Generally, always call the super impl and
don't mess with the
+ * properties it has explicitly set (width, height, overflow. etc.).
*
- * @param grid
- * @param record
- * @param value
+ * @param grid the grid containing this field
+ * @param record the record containing the data for the row containing the cell being
rendered
+ * @param value the value of this field in the above record
*
* @return
*/
- protected abstract Canvas createCanvas(ListGrid grid, ListGridRecord record, Object
value);
+ protected Canvas createCellComponent(ListGrid grid, ListGridRecord record, Object
value) {
+ VLayout vLayout = new VLayout();
- protected VLayout createVLayout(ListGrid grid) {
- VLayout vLayout = new CanvasFieldVLayout(grid);
- /*vLayout.setWidth(grid.getFieldWidth(getName()));
+ vLayout.setWidth100();
vLayout.setHeight100();
- //vLayout.setOverflow(Overflow.VISIBLE);
- //vLayout.setAutoHeight();
+
+ // Chop off stuff that doesn't fit, which is as ListGrid does for other
cells.
+ vLayout.setOverflow(Overflow.HIDDEN);
+
+ // Use the grid-specified cell-padding as the margin (not 100% sure this is
necessary).
vLayout.setMargin(grid.getCellPadding());
- vLayout.setAlign(VerticalAlignment.CENTER);*/
+
+ // We want center vertical alignment, since that's what ListGrid uses for
other cells.
+ vLayout.setAlign(VerticalAlignment.CENTER);
+
+ // The below incantations are needed in order for this canvas to resize when the
corresponding grid column is
+ // resized. I figured these out by reading the Javadoc for
ListGrid.addEmbeddedComponent().
+ vLayout.setCanDragResize(true);
+ vLayout.setSnapToGrid(true);
+
+ // Call the abstract createCanvas() method which creates the Canvas containing
the actual content.
+ Canvas canvas = createCanvas(grid, record, value);
+ if (canvas != null) {
+ vLayout.addMember(canvas);
+ }
+
return vLayout;
}
+ /**
+ * TODO
+ *
+ * @param grid the grid containing this field
+ * @param record the record containing the data for the row containing the cell being
rendered
+ * @param value the value of this field in the above record
+ *
+ * @return the canvas containing content representing this field in the passed-in
record, or null if the cell
+ * should be empty
+ */
+ protected abstract Canvas createCanvas(ListGrid grid, ListGridRecord record, Object
value);
+
@Override
public String toString() {
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 972b2b0..b743042 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
@@ -70,7 +70,7 @@ public class EnhancedListGrid extends LocatableListGrid {
*/
@Override
protected Canvas createRecordComponent(ListGridRecord record, Integer colNum) {
- if (getShowRecordComponents() != null && !getShowRecordComponents()) {
+ if (getShowRecordComponents() == null || !getShowRecordComponents()) {
return null;
}
@@ -87,7 +87,7 @@ public class EnhancedListGrid extends LocatableListGrid {
} catch (RuntimeException e) {
value = record.getAttribute(fieldName);
}
- return canvasField.createCanvas(this, record, value);
+ return canvasField.createCellComponent(this, record, value);
} else {
return null;
}
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 31fcced..cee59f9 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,11 +5,11 @@ 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.VLayout;
import org.rhq.enterprise.gui.coregui.client.components.ViewLink;
/**
* A list grid field that is displayed as a link to another CoreGUI view.
+ * TODO: Get rid of this class, since it no longer provides anything beyond what
CanvasField does.
*
* @author Ian Springer
*/
@@ -39,18 +39,15 @@ public abstract class ViewLinkField extends CanvasField {
super(name, title, width);
}
+ protected ViewLinkField(ListGridField field) {
+ super(field);
+ }
+
@Override
protected Canvas createCanvas(ListGrid grid, ListGridRecord record, Object value) {
- VLayout vLayout = createVLayout(grid);
- ViewLink viewLink = getViewLink(grid, record, value);
- vLayout.addMember(viewLink);
- return vLayout;
+ return getViewLink(grid, record, value);
}
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/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 9ee0eca..620422d 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
@@ -33,8 +33,6 @@ import com.smartgwt.client.widgets.form.fields.SelectItem;
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;
@@ -42,8 +40,8 @@ import org.rhq.core.domain.dashboard.DashboardPortlet;
import org.rhq.enterprise.gui.coregui.client.LinkManager;
import org.rhq.enterprise.gui.coregui.client.components.HeaderLabel;
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;
@@ -93,16 +91,13 @@ public class RecentlyAddedResourcesPortlet extends LocatableVLayout
implements C
treeGrid.setResizeFieldsInRealTime(true);
treeGrid.setTreeFieldTitle("Resource Name");
- CanvasField resourceNameField = new CanvasField("name",
MSG.common_title_resource_name()) {
- protected Canvas createCanvas(ListGrid grid, ListGridRecord record, Object
value) {
- VLayout vLayout = createVLayout(grid);
+ ViewLinkField resourceNameField = new ViewLinkField("name",
MSG.common_title_resource_name()) {
+ protected ViewLink getViewLink(ListGrid grid, ListGridRecord record, Object
value) {
int resourceId = record.getAttributeAsInt("id");
String resourceName = record.getAttribute("name");
String resourceViewPath = LinkManager.getResourceLink(resourceId);
- ViewLink viewLink = new ViewLink(extendLocatorId("ViewLink"),
StringUtility.escapeHtml(resourceName),
+ return new ViewLink(extendLocatorId("ViewLink"),
StringUtility.escapeHtml(resourceName),
resourceViewPath);
- vLayout.addMember(viewLink);
- return vLayout;
}
};
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 5b8d1a3..d178e25 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
@@ -23,7 +23,6 @@ import java.util.HashSet;
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;
@@ -34,7 +33,6 @@ 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;
@@ -73,48 +71,10 @@ public abstract class AncestryUtil {
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;
+ return createCellCanvasForAncestryValue(record, value);
}
};
- ancestryField.setAlign(Alignment.LEFT);
- ancestryField.setCellAlign(Alignment.LEFT);
setupAncestryListGridFieldHover(ancestryField);
return ancestryField;
@@ -127,14 +87,57 @@ public abstract class AncestryUtil {
* @return ancestry field
*/
public static ListGridField setupAncestryListGridField(ListGrid listGrid) {
- ListGridField ancestryField = listGrid.getField(AncestryUtil.RESOURCE_ANCESTRY);
- ancestryField.setAlign(Alignment.LEFT);
- ancestryField.setCellAlign(Alignment.LEFT);
- setupAncestryListGridFieldCellFormatter(ancestryField);
+ ListGridField ancestryField = new
CanvasField(listGrid.getField(AncestryUtil.RESOURCE_ANCESTRY)) {
+ protected Canvas createCanvas(ListGrid grid, ListGridRecord record, Object
value) {
+ return createCellCanvasForAncestryValue(record, value);
+ }
+ };
+
setupAncestryListGridFieldHover(ancestryField);
+
return ancestryField;
}
+ private static Canvas createCellCanvasForAncestryValue(ListGridRecord record, Object
value) {
+ if (value == null) {
+ // no ancestry - return null to tell the EnhancedListGrid to render a blank
cell
+ return null;
+ }
+
+ HStack hStack = new HStack();
+ hStack.setMembersMargin(4);
+ hStack.setOverflow(Overflow.HIDDEN);
+ 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.setOverflow(Overflow.VISIBLE);
+ 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);
+ //viewLink.setOverflow(Overflow.VISIBLE);
+ //viewLink.setAutoWidth();
+ hStack.addMember(viewLink);
+ } else {
+ HTMLFlow html = new HTMLFlow(ancestorName);
+ html.setAutoWidth();
+ hStack.addMember(html);
+ }
+ }
+
+ return hStack;
+ }
+
public static void setupAncestryListGridFieldHover(ListGridField ancestryField) {
ancestryField.setShowHover(true);
ancestryField.setHoverCustomizer(new HoverCustomizer() {
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 0d848a7..9b14c88 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
@@ -29,7 +29,6 @@ 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;
@@ -160,7 +159,6 @@ public abstract class AbstractConfigurationHistoryView<T extends
AbstractConfigu
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
@@ -173,8 +171,7 @@ public abstract class AbstractConfigurationHistoryView<T extends
AbstractConfigu
ViewLink detailsViewLink = createDetailsViewLink(record, value);
hLayout.addMember(detailsViewLink);
- vLayout.addMember(hLayout);
- return vLayout;
+ return hLayout;
}
};
}
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 f8dcdb4..e26d3ef 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,6 @@ 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.VLayout;
import org.rhq.core.domain.alert.AlertDefinition;
import org.rhq.core.domain.criteria.AlertDefinitionCriteria;
import org.rhq.core.domain.criteria.ResourceCriteria;
@@ -145,8 +144,6 @@ public class AlertDefinitionReportView extends
Table<AlertDefinitionReportView.D
// add more columns
CanvasField parentField = new CanvasField(FIELD_PARENT,
MSG.view_alerts_field_parent(), 100) {
protected Canvas createCanvas(ListGrid grid, final ListGridRecord record,
Object value) {
- VLayout vLayout = createVLayout(grid);
-
final AlertDefinition alertDef = copyValues(record);
boolean hasParent;
String linkText;
@@ -162,11 +159,12 @@ public class AlertDefinitionReportView extends
Table<AlertDefinitionReportView.D
hasParent = false;
linkText = null;
}
+ Canvas canvas;
if (hasParent) {
// we only display a link if we really have a parent.
// if we have a template parent, we have to get the
resource's type and go to the template page for that type
// if we have a group parent, we can directly go to the
group's alert def page
- Link link = new Link("Link", linkText, new
ClickHandler() {
+ canvas = new Link("Link", linkText, new ClickHandler()
{
public void onClick(ClickEvent event) {
if (alertDef.getParentId() != null &&
alertDef.getParentId() > 0) {
// has a parent template alertdef
@@ -206,12 +204,11 @@ public class AlertDefinitionReportView extends
Table<AlertDefinitionReportView.D
}
}
});
- vLayout.addMember(link);
} else {
- vLayout.addMember(new HTMLFlow(MSG.common_val_na()));
+ canvas = new HTMLFlow(MSG.common_val_na());
}
- return vLayout;
+ return canvas;
}
};
parentField.setShowHover(true);
@@ -227,14 +224,10 @@ public class AlertDefinitionReportView extends
Table<AlertDefinitionReportView.D
CanvasField resourceField = new CanvasField(FIELD_RESOURCE,
MSG.common_title_resource()) {
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);
- vLayout.addMember(viewLink);
- return vLayout;
+ return new ViewLink(StringUtility.escapeHtml(resourceName), url);
}
};
resourceField.setShowHover(true);
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 d03c62a..6ab2b2a 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,6 @@ 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.VLayout;
import org.rhq.core.domain.resource.ResourceCategory;
import org.rhq.core.domain.resource.composite.ResourceInstallCount;
import org.rhq.enterprise.gui.coregui.client.BookmarkableView;
@@ -119,17 +118,16 @@ public class ResourceInstallReport extends LocatableVLayout
implements Bookmarka
protected void configureTable() {
CanvasField fieldTypeName = new CanvasField(DataSource.Field.TYPENAME,
MSG.common_title_resource_type()) {
protected Canvas createCanvas(ListGrid grid, ListGridRecord record,
Object value) {
- VLayout vLayout = createVLayout(grid);
String typeName = record.getAttribute(DataSource.Field.TYPENAME);
String url = getResourceTypeTableUrl(record);
+ Canvas canvas;
if (url != null) {
ViewLink viewLink = new
ViewLink(extendLocatorId("ViewLink"), typeName, url);
- vLayout.addMember(viewLink);
+ canvas = viewLink;
} else {
- HTMLFlow html = new HTMLFlow(typeName);
- vLayout.addMember(html);
+ canvas = new HTMLFlow(typeName);
}
- return vLayout;
+ return canvas;
}
};
ListGridField fieldPlugin = new ListGridField(DataSource.Field.TYPEPLUGIN,
MSG.common_title_plugin());