modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/ImageManager.java | 13 ++ modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/event/EventCompositeDetailsView.java | 22 +++ modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/event/EventCompositeHistoryView.java | 63 +++++++++- modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties | 8 + 4 files changed, 99 insertions(+), 7 deletions(-)
New commits: commit 0846d3579e9e5c16617493a370ba6db998572b49 Author: John Mazzitelli mazz@redhat.com Date: Mon Mar 14 15:23:27 2011 -0400
fix the events history ui - provide i18n with icons - show hover for full name of source, pretty up details view
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/ImageManager.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/ImageManager.java index 1894c09..8b7cb0b 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/ImageManager.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/ImageManager.java @@ -405,6 +405,19 @@ public class ImageManager { return "subsystems/event/Events" + icon + "_16.png"; }
+ /** + * This returns an icon of the badge (e.g. the red X or the blue I) without the + * event icon. This is used if you have a table of events and the user knows they are + * events so there is no need to show the event icon itself- showing a bigger badge + * to indicate severity is more useful. + * + * @param severity + * @return badge icon + */ + public static String getEventSeverityBadge(EventSeverity severity) { + return "subsystems/event/" + severity.name() + "_16.png"; + } + public static String getEventLargeIcon() { return "subsystems/event/Events_24.png"; } diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/event/EventCompositeDetailsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/event/EventCompositeDetailsView.java index ea01164..40a342f 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/event/EventCompositeDetailsView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/event/EventCompositeDetailsView.java @@ -34,6 +34,7 @@ import org.rhq.core.domain.event.composite.EventComposite; import org.rhq.core.domain.util.PageList; import org.rhq.enterprise.gui.coregui.client.BookmarkableView; import org.rhq.enterprise.gui.coregui.client.CoreGUI; +import org.rhq.enterprise.gui.coregui.client.ImageManager; import org.rhq.enterprise.gui.coregui.client.ViewPath; import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup; import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm; @@ -83,12 +84,31 @@ public class EventCompositeDetailsView extends LocatableVLayout implements Bookm DynamicForm form = new LocatableDynamicForm(extendLocatorId("form")); form.setWidth100(); form.setHeight100(); + form.setWrapItemTitles(false);
StaticTextItem id = new StaticTextItem("id", MSG.common_title_id()); id.setValue(composite.getEventId());
StaticTextItem severity = new StaticTextItem("severity", MSG.view_inventory_eventHistory_severity()); - severity.setValue(composite.getSeverity().name()); + String severityValue = Canvas.imgHTML(ImageManager.getEventSeverityBadge(composite.getSeverity())); + switch (composite.getSeverity()) { + case DEBUG: + severityValue += MSG.common_severity_debug(); + break; + case INFO: + severityValue += MSG.common_severity_info(); + break; + case WARN: + severityValue += MSG.common_severity_warn(); + break; + case ERROR: + severityValue += MSG.common_severity_error(); + break; + case FATAL: + severityValue += MSG.common_severity_fatal(); + break; + } + severity.setValue(severityValue);
StaticTextItem source = new StaticTextItem("source", MSG.view_inventory_eventHistory_sourceLocation()); source.setValue(composite.getSourceLocation()); 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 7209c17..0657f04 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 @@ -27,10 +27,12 @@ import java.util.List;
import com.google.gwt.user.client.rpc.AsyncCallback; import com.smartgwt.client.data.SortSpecifier; +import com.smartgwt.client.types.Alignment; import com.smartgwt.client.types.SortDirection; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.form.fields.TextItem; import com.smartgwt.client.widgets.grid.CellFormatter; +import com.smartgwt.client.widgets.grid.HoverCustomizer; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord;
@@ -39,6 +41,7 @@ import org.rhq.core.domain.event.EventSeverity; 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.form.EnumSelectItem; import org.rhq.enterprise.gui.coregui.client.components.table.AbstractTableAction; import org.rhq.enterprise.gui.coregui.client.components.table.TableActionEnablement; @@ -50,7 +53,7 @@ import org.rhq.enterprise.gui.coregui.client.util.message.Message.Severity; /** * @author Joseph Marques */ -public class EventCompositeHistoryView extends TableSection { +public class EventCompositeHistoryView extends TableSection<EventCompositeDatasource> {
private static SortSpecifier DEFAULT_SORT_SPECIFIER = new SortSpecifier("timestamp", SortDirection.DESCENDING); private EntityContext context; @@ -97,18 +100,53 @@ public class EventCompositeHistoryView extends TableSection {
@Override protected void configureTable() { - ListGridField timestampField = new ListGridField("timestamp", MSG.view_inventory_eventHistory_timestamp(), 125); - ListGridField severityField = new ListGridField("severity", MSG.view_inventory_eventHistory_severity(), 75); + ListGridField timestampField = new ListGridField("timestamp", MSG.view_inventory_eventHistory_timestamp()); + + ListGridField severityField = new ListGridField("severity", MSG.view_inventory_eventHistory_severity()); + severityField.setAlign(Alignment.CENTER); severityField.setCellFormatter(new CellFormatter() { public String format(Object o, ListGridRecord listGridRecord, int i, int i1) { - return Canvas.imgHTML("subsystems/event/" + o + "_16.png", 16, 16) + o; + String icon = ImageManager.getEventSeverityBadge(EventSeverity.valueOf(o.toString())); + return Canvas.imgHTML(icon); + } + }); + severityField.setShowHover(true); + severityField.setHoverCustomizer(new HoverCustomizer() { + @Override + public String hoverHTML(Object value, ListGridRecord record, int rowNum, int colNum) { + EventSeverity severity = EventSeverity.valueOf(record.getAttribute("severity")); + switch (severity) { + case DEBUG: + return MSG.common_severity_debug(); + case INFO: + return MSG.common_severity_info(); + case WARN: + return MSG.common_severity_warn(); + case ERROR: + return MSG.common_severity_error(); + case FATAL: + return MSG.common_severity_fatal(); + } + return null; } }); + ListGridField detailsField = new ListGridField("details-highlight", MSG.view_inventory_eventHistory_details()); - ListGridField sourceField = new ListGridField("source", MSG.view_inventory_eventHistory_sourceLocation(), 275); + detailsField.setCellFormatter(new CellFormatter() { + @Override + public String format(Object value, ListGridRecord record, int rowNum, int colNum) { + if (((String) value).length() <= 200) { + return (String) value; + } else { + return ((String) value).substring(0, 200); // first 200 chars + } + } + }); + + ListGridField sourceField = new ListGridField("source", MSG.view_inventory_eventHistory_sourceLocation()); sourceField.setCellFormatter(new CellFormatter() { public String format(Object o, ListGridRecord listGridRecord, int i, int i1) { - String sourceLocation = (String) o; + String sourceLocation = listGridRecord.getAttribute("source"); int length = sourceLocation.length(); if (length > 40) { return "..." + sourceLocation.substring(length - 40); // the last 40 chars @@ -116,6 +154,19 @@ public class EventCompositeHistoryView extends TableSection { return sourceLocation; } }); + sourceField.setShowHover(true); + sourceField.setHoverCustomizer(new HoverCustomizer() { + @Override + public String hoverHTML(Object value, ListGridRecord record, int rowNum, int colNum) { + String sourceLocation = record.getAttribute("source"); + return (sourceLocation.length() > 40) ? sourceLocation : null; + } + }); + + timestampField.setWidth("20%"); + severityField.setWidth("25"); + detailsField.setWidth("*"); + sourceField.setWidth("20%");
setListGridFields(timestampField, severityField, detailsField, sourceField);
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties index 8293144..a6b9716 100644 --- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties +++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties @@ -81,6 +81,14 @@ common_unit_weeks = weeks common_unit_months = months common_unit_years = years
+# Common Severities +#------------------ +common_severity_debug = Debug +common_severity_info = Info +common_severity_warn = Warn +common_severity_error = Error +common_severity_fatal = Fatal + # Common Titles #-------------- common_title_address = Address