modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesListView.java | 21 -- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java | 83 +++++----- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupsDataSource.java | 20 ++ modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/wizard/GroupCreateStep.java | 39 +++- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/wizard/GroupCreateWizard.java | 13 + modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/wizard/GroupMembersStep.java | 11 - modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java | 33 ++- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/selection/ResourceSelector.java | 57 +++++- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/type/ResourceTypePluginTreeDataSource.java | 79 ++++----- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/MenuBarView.java | 44 +---- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java | 46 ++--- modules/enterprise/gui/portal-war/src/main/webapp/index.html | 18 +- 12 files changed, 264 insertions(+), 200 deletions(-)
New commits: commit 14cb5621315e2cfecdad8bb54c8d995b95340820 Author: Jay Shaughnessy jshaughn@redhat.com Date: Tue Aug 10 12:26:56 2010 -0400
Group List View and Create Wizard Work - converted group list view to extend Table instead of VLayout with single table - added group delete to list view - changed button and confirm text for consistency (now like bundle buttons) - removed checkboxes from list view - added some core gui refresh to list view - simplified wizard invoke style - left justify create step and increase text box sizes - improve Next/Previous handling - respect selected compatible type on member selection page - fetch only the required resources for compatible group member select - fix issues with member filtering
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 f29a064..8171d96 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 @@ -18,51 +18,52 @@ */ package org.rhq.enterprise.gui.coregui.client.inventory.groups;
+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.types.SelectionAppearance; import com.smartgwt.client.types.SelectionStyle; import com.smartgwt.client.widgets.grid.CellFormatter; 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.group.ResourceGroup; +import org.rhq.enterprise.gui.coregui.client.CoreGUI; import org.rhq.enterprise.gui.coregui.client.components.table.Table; import org.rhq.enterprise.gui.coregui.client.components.table.TableAction; -import org.rhq.enterprise.gui.coregui.client.components.wizard.WizardView; +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; -import org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceSearchView; +import org.rhq.enterprise.gui.coregui.client.util.message.Message; +import org.rhq.enterprise.gui.coregui.client.util.message.Message.Severity;
/** * @author Greg Hinkle */ -public class ResourceGroupListView extends VLayout { - - private Table table; +public class ResourceGroupListView extends Table {
public ResourceGroupListView() { - this(null); - + super("Resource Groups"); + setWidth100(); + setHeight100(); }
- /** - * Resource Group list filtered by a given criteria - * @param criteria - */ public ResourceGroupListView(Criteria criteria) { + super("Resource Groups", criteria); + }
- setWidth100(); - setHeight100(); + @Override + protected void onInit() { + super.onInit();
- final ResourceGroupsDataSource datasource = ResourceGroupsDataSource.getInstance(); + // setHeaderIcon("?_24.png");
- table = new Table("Resource Groups", criteria); - table.setDataSource(datasource); + final ResourceGroupsDataSource datasource = ResourceGroupsDataSource.getInstance(); + setDataSource(datasource);
- table.getListGrid().setSelectionType(SelectionStyle.SIMPLE); - table.getListGrid().setSelectionAppearance(SelectionAppearance.CHECKBOX); - table.getListGrid().setResizeFieldsInRealTime(true); + getListGrid().setSelectionType(SelectionStyle.SIMPLE); + //table.getListGrid().setSelectionAppearance(SelectionAppearance.CHECKBOX); + getListGrid().setResizeFieldsInRealTime(true);
ListGridField idField = new ListGridField("id", "Id", 55); idField.setType(ListGridFieldType.INTEGER); @@ -81,26 +82,38 @@ public class ResourceGroupListView extends VLayout { ListGridField availabilityField = new ListGridField("currentAvailability", "Availability", 55);
availabilityField.setAlign(Alignment.CENTER); - table.getListGrid().setFields(idField, nameField, descriptionField, typeNameField, pluginNameField, - categoryField, availabilityField); - - table.addTableAction("Delete Groups", Table.SelectionEnablement.ANY, - "Are you sure you want to delete # groups?", new TableAction() { - public void executeAction(ListGridRecord[] selection) { - // TODO: Implement this method. + getListGrid().setFields(idField, nameField, descriptionField, typeNameField, pluginNameField, categoryField, + availabilityField); + + addTableAction("Delete", Table.SelectionEnablement.ANY, "Delete the selected resource groups?", + new TableAction() { + public void executeAction(ListGridRecord[] selections) { + ResourceGroupsDataSource ds = (ResourceGroupsDataSource) getDataSource(); + for (ListGridRecord selection : selections) { + ResourceGroupGWTServiceAsync resourceGroupManager = GWTServiceLookup.getResourceGroupService(); + final ResourceGroup object = ds.copyValues(selection); + resourceGroupManager.deleteResourceGroup(object.getId(), new AsyncCallback<Void>() { + public void onFailure(Throwable caught) { + CoreGUI.getErrorHandler().handleError( + "Failed to delete resource group [" + object.getName() + "]", caught); + } + + public void onSuccess(Void result) { + CoreGUI.getMessageCenter().notify( + new Message("Deleted resource group [" + object.getName() + "]", Severity.Info)); + + CoreGUI.refresh(); + } + }); + } } });
- table.addTableAction("New Group", new TableAction() { + addTableAction("New", new TableAction() { public void executeAction(ListGridRecord[] selection) { - WizardView view = new WizardView(new GroupCreateWizard()); - view.displayDialog(); + new GroupCreateWizard().startBundleWizard(); } }); - - - addMember(table); - }
} \ No newline at end of file diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupsDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupsDataSource.java index debe24d..aaaaeaa 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupsDataSource.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupsDataSource.java @@ -28,6 +28,7 @@ import com.smartgwt.client.rpc.RPCResponse; import com.smartgwt.client.widgets.grid.ListGridRecord;
import org.rhq.core.domain.criteria.ResourceGroupCriteria; +import org.rhq.core.domain.resource.ResourceType; import org.rhq.core.domain.resource.group.GroupCategory; import org.rhq.core.domain.resource.group.ResourceGroup; import org.rhq.core.domain.util.PageList; @@ -115,7 +116,24 @@ public class ResourceGroupsDataSource extends RPCDataSource<ResourceGroup> {
@Override public ResourceGroup copyValues(ListGridRecord from) { - return null; // TODO: Implement this method. + Integer idAttrib = from.getAttributeAsInt("id"); + String nameAttrib = from.getAttribute("name"); + String descriptionAttrib = from.getAttribute("description"); + String typeNameAttrib = from.getAttribute("typeName"); + String pluginNameAttrib = from.getAttribute("pluginName"); + ResourceType rt = null; + + ResourceGroup rg = new ResourceGroup(nameAttrib); + rg.setId(idAttrib); + rg.setDescription(descriptionAttrib); + if (null != typeNameAttrib) { + rt = new ResourceType(); + rt.setName(typeNameAttrib); + rt.setPlugin(pluginNameAttrib); + rg.setResourceType(rt); + } + + return rg; }
@Override diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/wizard/GroupCreateStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/wizard/GroupCreateStep.java index 96b6017..032cc75 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/wizard/GroupCreateStep.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/wizard/GroupCreateStep.java @@ -52,19 +52,22 @@ public class GroupCreateStep extends AbstractWizardStep {
form = new DynamicForm(); form.setValuesManager(new ValuesManager()); - form.setNumCols(4); + form.setWidth100(); + form.setNumCols(2);
TextItem name = new TextItem("name", "Name"); name.setRequired(true); - - TextItem location = new TextItem("location", "Location"); + name.setWidth(300);
TextAreaItem description = new AutoFitTextAreaItem("description", "Description"); + description.setWidth(300); + + TextItem location = new TextItem("location", "Location"); + location.setWidth(300);
CheckboxItem recursive = new CheckboxItem("recursive", "Recursive");
LinkedHashMap<String, Canvas> options = new LinkedHashMap<String, Canvas>(); - options.put("Mixed", null);
IPickTreeItem typeSelectItem = new IPickTreeItem("type", "Type"); @@ -81,16 +84,25 @@ public class GroupCreateStep extends AbstractWizardStep { options.put("Compatible", form2);
RadioGroupWithComponentsItem kind = new RadioGroupWithComponentsItem("kind", "Group Type", options, form); - kind.setValue("Mixed Resources"); + kind.setValue("Mixed");
- form.setFields(name, location, description, recursive, kind); + form.setFields(name, description, location, recursive, kind);
} return form; }
public boolean nextPage() { - return form.validate(); + boolean valid = form.validate(); + if (valid) { + RadioGroupWithComponentsItem kind = (RadioGroupWithComponentsItem) form.getField("kind"); + if ("Compatible".equals(kind.getSelected())) { + DynamicForm form2 = (DynamicForm) kind.getSelectedComponent(); + valid = (null != form2.getValue("type")); + } + } + + return valid; }
public String getName() { @@ -103,11 +115,16 @@ public class GroupCreateStep extends AbstractWizardStep { group.setLocation(form.getValueAsString("location")); group.setRecursive(form.getValue("recursive") != null ? true : false);
- if (form.getValue("type") != null) { - ResourceType type = new ResourceType(); - type.setId(Integer.parseInt(form.getValueAsString("type"))); - group.setResourceType(type); + RadioGroupWithComponentsItem kind = (RadioGroupWithComponentsItem) form.getField("kind"); + if ("Compatible".equals(kind.getSelected())) { + DynamicForm form2 = (DynamicForm) kind.getSelectedComponent(); + if (null != form2.getValue("type")) { + ResourceType rt = new ResourceType(); + rt.setId(Integer.parseInt(form2.getValueAsString("type"))); + group.setResourceType(rt); + } } + return group; } } diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/wizard/GroupCreateWizard.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/wizard/GroupCreateWizard.java index 4c8b074..55d1588 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/wizard/GroupCreateWizard.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/wizard/GroupCreateWizard.java @@ -28,6 +28,7 @@ import java.util.List; import com.google.gwt.user.client.rpc.AsyncCallback; import com.smartgwt.client.widgets.IButton;
+import org.rhq.core.domain.resource.ResourceType; import org.rhq.core.domain.resource.group.ResourceGroup; import org.rhq.enterprise.gui.coregui.client.CoreGUI; import org.rhq.enterprise.gui.coregui.client.components.wizard.AbstractWizard; @@ -68,6 +69,18 @@ public class GroupCreateWizard extends AbstractWizard { return null; // TODO: Implement this method. }
+ /** + * @return only the rt id is set + */ + public ResourceType getCompatibleGroupResourceType() { + ResourceGroup rg = createStep.getGroup(); + ResourceType rt = null; + if (null != rg) { + rt = rg.getResourceType(); + } + return rt; + } + public void cancel() { // TODO: Implement this method. } diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/wizard/GroupMembersStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/wizard/GroupMembersStep.java index 5f13657..cc79abc 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/wizard/GroupMembersStep.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/wizard/GroupMembersStep.java @@ -26,6 +26,7 @@ import java.util.HashSet;
import com.smartgwt.client.widgets.Canvas;
+import org.rhq.core.domain.resource.ResourceType; import org.rhq.enterprise.gui.coregui.client.components.wizard.AbstractWizardStep; import org.rhq.enterprise.gui.coregui.client.inventory.resource.selection.ResourceSelector;
@@ -34,16 +35,20 @@ import org.rhq.enterprise.gui.coregui.client.inventory.resource.selection.Resour */ public class GroupMembersStep extends AbstractWizardStep {
- private GroupCreateWizard wizard; - private ResourceSelector selector; + private GroupCreateWizard wizard = null; + private ResourceSelector selector = null; + private ResourceType requireType = null;
public GroupMembersStep(GroupCreateWizard wizard) { this.wizard = wizard; }
public Canvas getCanvas() { - if (selector == null) { + ResourceType rt = wizard.getCompatibleGroupResourceType(); + if ((selector == null) || (rt != requireType)) { selector = new ResourceSelector(); + requireType = rt; + selector.setRequireType(rt); } return selector; } diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java index af8931b..c0731b8 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java @@ -98,6 +98,24 @@ public class ResourceDatasource extends RPCDataSource<Resource> {
public void executeFetch(final DSRequest request, final DSResponse response) {
+ ResourceCriteria criteria = getFetchCriteria(request); + + resourceService.findResourcesByCriteria(criteria, new AsyncCallback<PageList<Resource>>() { + public void onFailure(Throwable caught) { + CoreGUI.getErrorHandler().handleError("Failed to fetch resource data", caught); + response.setStatus(RPCResponse.STATUS_FAILURE); + processResponse(request.getRequestId(), response); + } + + public void onSuccess(PageList<Resource> result) { + + dataRetrieved(result, response, request); + } + }); + } + + protected ResourceCriteria getFetchCriteria(final DSRequest request) { + ResourceCriteria criteria = new ResourceCriteria(); criteria.setPageControl(getPageControl(request));
@@ -164,18 +182,7 @@ public class ResourceDatasource extends RPCDataSource<Resource> { criteria.addFilterTagName((String) request.getCriteria().getValues().get("tagName")); }
- resourceService.findResourcesByCriteria(criteria, new AsyncCallback<PageList<Resource>>() { - public void onFailure(Throwable caught) { - CoreGUI.getErrorHandler().handleError("Failed to fetch resource data", caught); - response.setStatus(RPCResponse.STATUS_FAILURE); - processResponse(request.getRequestId(), response); - } - - public void onSuccess(PageList<Resource> result) { - - dataRetrieved(result, response, request); - } - }); + return criteria; }
@Override @@ -221,7 +228,7 @@ public class ResourceDatasource extends RPCDataSource<Resource> { record.setAttribute("id", from.getId()); record.setAttribute(NAME.propertyName(), from.getName()); record.setAttribute(DESCRIPTION.propertyName(), from.getDescription()); - record.setAttribute(TYPE.propertyName(), from.getResourceType().getName()); + record.setAttribute(TYPE.propertyName(), from.getResourceType().getId()); record.setAttribute(PLUGIN.propertyName(), from.getResourceType().getPlugin()); record.setAttribute(CATEGORY.propertyName(), from.getResourceType().getCategory().getDisplayName()); record.setAttribute("icon", from.getResourceType().getCategory().getDisplayName() + "_" diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/selection/ResourceSelector.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/selection/ResourceSelector.java index 1274e14..0d25f38 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/selection/ResourceSelector.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/selection/ResourceSelector.java @@ -18,12 +18,18 @@ */ package org.rhq.enterprise.gui.coregui.client.inventory.resource.selection;
+import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDataSourceField.CATEGORY; +import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDataSourceField.NAME; +import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDataSourceField.PLUGIN; +import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDataSourceField.TYPE; + import java.util.ArrayList; import java.util.Collection;
import com.smartgwt.client.data.AdvancedCriteria; import com.smartgwt.client.data.Criteria; import com.smartgwt.client.data.Criterion; +import com.smartgwt.client.data.DSRequest; import com.smartgwt.client.types.OperatorId; import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.IPickTreeItem; @@ -31,7 +37,9 @@ import com.smartgwt.client.widgets.form.fields.SelectItem; import com.smartgwt.client.widgets.form.fields.TextItem; import com.smartgwt.client.widgets.grid.ListGridRecord;
+import org.rhq.core.domain.criteria.ResourceCriteria; import org.rhq.core.domain.resource.Resource; +import org.rhq.core.domain.resource.ResourceType; import org.rhq.enterprise.gui.coregui.client.components.selector.AbstractSelector; import org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDatasource; import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypePluginTreeDataSource; @@ -42,18 +50,18 @@ import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource; */ public class ResourceSelector extends AbstractSelector<Resource> {
- private Integer requireTypeId; + private ResourceType requireType;
public ResourceSelector() { super(); }
- public Integer getRequireTypeId() { - return requireTypeId; + public ResourceType getRequireType() { + return requireType; }
- public void setRequireTypeId(Integer requireTypeId) { - this.requireTypeId = requireTypeId; + public void setRequireType(ResourceType requireType) { + this.requireType = requireType; markForRedraw(); }
@@ -70,10 +78,15 @@ public class ResourceSelector extends AbstractSelector<Resource> { typeSelectItem.setEmptyMenuMessage("Loading..."); typeSelectItem.setShowIcons(true);
- if (requireTypeId != null) { - typeSelectItem.setValue(requireTypeId); - typeSelectItem.setDisabled(true); - availableFilterForm.setItems(search, typeSelectItem); + if (requireType != null) { + // TODO: Currently ignore the typeSelectItem widget because we already know the type. + // Alternatively, we could display it disabled but we'd want the type name to be displayed as the + // value. To get this to display the type name I think we need to pre-fetch the type tree here. We could + // potentially optimize typeSelectItem.setValue(requireType.getId()) to build a tree that includes only + // this single type. + //typeSelectItem.setValue(requireType.getId()); + //typeSelectItem.setDisabled(true); + availableFilterForm.setItems(search); } else { SelectItem categorySelect = new SelectItem("category", "Category"); categorySelect.setValueMap("Platform", "Server", "Service"); @@ -91,23 +104,23 @@ public class ResourceSelector extends AbstractSelector<Resource> {
protected Criteria getLatestCriteria(DynamicForm availableFilterForm) { String search = (String) availableFilterForm.getValue("search"); - String type = (String) availableFilterForm.getValue("type"); + String type = availableFilterForm.getValueAsString("type"); String category = (String) availableFilterForm.getValue("category"); ArrayList<Criterion> criteria = new ArrayList<Criterion>(3); if (null != search) { - criteria.add(new Criterion("name", OperatorId.CONTAINS, search)); + criteria.add(new Criterion(NAME.propertyName(), OperatorId.CONTAINS, search)); } if (null != type) { // If type is a number its a typeId, otherwise a plugin name try { Integer.parseInt(type); - criteria.add(new Criterion("type", OperatorId.EQUALS, type)); + criteria.add(new Criterion(TYPE.propertyName(), OperatorId.EQUALS, type)); } catch (NumberFormatException nfe) { - criteria.add(new Criterion("plugin", OperatorId.EQUALS, type)); + criteria.add(new Criterion(PLUGIN.propertyName(), OperatorId.EQUALS, type)); } } if (null != category) { - criteria.add(new Criterion("category", OperatorId.EQUALS, category)); + criteria.add(new Criterion(CATEGORY.propertyName(), OperatorId.EQUALS, category)); } AdvancedCriteria latestCriteria = new AdvancedCriteria(OperatorId.AND, criteria.toArray(new Criterion[criteria .size()])); @@ -127,5 +140,21 @@ public class ResourceSelector extends AbstractSelector<Resource> { } return records; } + + @Override + protected ResourceCriteria getFetchCriteria(final DSRequest request) { + ResourceCriteria result = super.getFetchCriteria(request); + + // additional filters + if (null != requireType) { + result.addFilterResourceTypeId(requireType.getId()); + } + + // additional return data + result.fetchResourceType(true); + + return result; + } + } } diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/index.html b/modules/enterprise/gui/portal-war/src/main/webapp/index.html index c6499a3..156119e 100644 --- a/modules/enterprise/gui/portal-war/src/main/webapp/index.html +++ b/modules/enterprise/gui/portal-war/src/main/webapp/index.html @@ -1,9 +1,9 @@ -<html> - <head> - <meta http-equiv="Refresh" content="0; URL=/coregui/CoreGUI.html#Dashboard"/> - </head> - <body> - <p>Redirecting to <a href="/coregui/CoreGUI.html#Dashboard">coregui.war</a>...</p> - </body> -</html> - +<html> + <head> + <meta http-equiv="Refresh" content="0; URL=/coregui/CoreGUI.html#Dashboard"/> + </head> + <body> + <p>Redirecting to <a href="/coregui/CoreGUI.html#Dashboard">coregui.war</a>...</p> + </body> +</html> +
commit ab5237ba41268de18da049c127ad1d83a380378b Author: Jay Shaughnessy jshaughn@redhat.com Date: Tue Aug 10 12:18:03 2010 -0400
cosmetic changes only
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/type/ResourceTypePluginTreeDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/type/ResourceTypePluginTreeDataSource.java index 227e783..03a2198 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/type/ResourceTypePluginTreeDataSource.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/type/ResourceTypePluginTreeDataSource.java @@ -22,8 +22,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; -import java.util.HashSet; -import java.util.ListIterator;
import com.google.gwt.user.client.rpc.AsyncCallback; import com.smartgwt.client.data.DSRequest; @@ -48,7 +46,6 @@ import org.rhq.enterprise.gui.coregui.client.gwt.ResourceTypeGWTServiceAsync; */ public class ResourceTypePluginTreeDataSource extends DataSource {
- private ResourceTypeGWTServiceAsync resourceTypeService = GWTServiceLookup.getResourceTypeGWTService();
public ResourceTypePluginTreeDataSource() { @@ -57,7 +54,6 @@ public class ResourceTypePluginTreeDataSource extends DataSource { setDataProtocol(DSProtocol.CLIENTCUSTOM); setDataFormat(DSDataFormat.CUSTOM);
- DataSourceTextField idField = new DataSourceTextField("id", "ID"); idField.setPrimaryKey(true);
@@ -70,7 +66,6 @@ public class ResourceTypePluginTreeDataSource extends DataSource {
DataSourceTextField resourceTypeField = new DataSourceTextField("category", "Category");
- setFields(idField, parentIdField, resourceNameField, resourceKeyField, resourceTypeField); }
@@ -80,17 +75,16 @@ public class ResourceTypePluginTreeDataSource extends DataSource { // Asume success response.setStatus(0); switch (request.getOperationType()) { - case FETCH: - executeFetch(request, response); - break; - default: - break; + case FETCH: + executeFetch(request, response); + break; + default: + break; }
return request.getData(); }
- protected void executeFetch(final DSRequest request, final DSResponse response) {
String parentIdString = request.getCriteria().getAttributeAsString("parentId"); @@ -98,26 +92,23 @@ public class ResourceTypePluginTreeDataSource extends DataSource { processResponse(request.getRequestId(), response); } else {
- ResourceTypeCriteria criteria = new ResourceTypeCriteria(); criteria.fetchParentResourceTypes(true); criteria.setPageControl(PageControl.getUnlimitedInstance());
- resourceTypeService.findResourceTypesByCriteria(criteria, - new AsyncCallback<PageList<ResourceType>>() { - public void onFailure(Throwable caught) { - CoreGUI.getErrorHandler().handleError("Failed to load resource type tree data", caught); - } - - public void onSuccess(PageList<ResourceType> result) { - response.setData(buildNodes(result)); - processResponse(request.getRequestId(), response); - } - }); + resourceTypeService.findResourceTypesByCriteria(criteria, new AsyncCallback<PageList<ResourceType>>() { + public void onFailure(Throwable caught) { + CoreGUI.getErrorHandler().handleError("Failed to load resource type tree data", caught); + } + + public void onSuccess(PageList<ResourceType> result) { + response.setData(buildNodes(result)); + processResponse(request.getRequestId(), response); + } + }); } }
- public static TreeNode[] buildNodes(PageList<ResourceType> result) {
HashMap<String, PluginTreeNode> pluginNodes = new HashMap<String, PluginTreeNode>(); @@ -127,12 +118,11 @@ public class ResourceTypePluginTreeDataSource extends DataSource { if (type.getParentResourceTypes() == null || type.getParentResourceTypes().isEmpty()) {
PluginTreeNode pluginNode = pluginNodes.get(type.getPlugin()); - if (pluginNode == null) { - pluginNode = new PluginTreeNode(type.getPlugin()); - pluginNodes.put(type.getPlugin(), pluginNode); - nodes.add(pluginNode); - } - + if (pluginNode == null) { + pluginNode = new PluginTreeNode(type.getPlugin()); + pluginNodes.put(type.getPlugin(), pluginNode); + nodes.add(pluginNode); + }
nodes.add(new ResourceTypeTreeNode(type, type.getPlugin())); } else { @@ -152,7 +142,6 @@ public class ResourceTypePluginTreeDataSource extends DataSource { return treeNodes; }
- /** * Returns a prepopulated PageControl based on the provided DSRequest. This will set sort fields, * pagination, but *not* filter fields. @@ -166,7 +155,8 @@ public class ResourceTypePluginTreeDataSource extends DataSource { if (request.getStartRow() == null || request.getEndRow() == null) { pageControl = new PageControl(); } else { - pageControl = PageControl.getExplicitPageControl(request.getStartRow(), request.getEndRow() - request.getStartRow()); + pageControl = PageControl.getExplicitPageControl(request.getStartRow(), request.getEndRow() + - request.getStartRow()); }
// Initialize sorting. @@ -183,7 +173,6 @@ public class ResourceTypePluginTreeDataSource extends DataSource { return pageControl; }
- public static class PluginTreeNode extends TreeNode {
String id; @@ -195,19 +184,22 @@ public class ResourceTypePluginTreeDataSource extends DataSource { setParentID(null);
setAttribute("name", pluginName + " Plugin"); -// setAttribute("plugin",pluginName); + // setAttribute("plugin",pluginName); setIcon("types/plugin_16.png"); // todo doesn't work setEnabled(true); }
@Override public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false;
PluginTreeNode that = (PluginTreeNode) o;
- if (!id.equals(that.id)) return false; + if (!id.equals(that.id)) + return false;
return true; } @@ -245,20 +237,23 @@ public class ResourceTypePluginTreeDataSource extends DataSource { setIsFolder(true); }
- public ResourceType getResourceType() { return resourceType; }
@Override public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false;
ResourceTypeTreeNode that = (ResourceTypeTreeNode) o;
- if (!id.equals(that.id)) return false; - if (parentId != null ? !parentId.equals(that.parentId) : that.parentId != null) return false; + if (!id.equals(that.id)) + return false; + if (parentId != null ? !parentId.equals(that.parentId) : that.parentId != null) + return false;
return true; } 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 9d354f4..d761dbd 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 @@ -18,36 +18,16 @@ */ package org.rhq.enterprise.gui.coregui.client.menu;
-import com.google.gwt.dom.client.Document; import com.google.gwt.event.logical.shared.ValueChangeEvent; import com.google.gwt.event.logical.shared.ValueChangeHandler; import com.google.gwt.user.client.History; -import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Hyperlink; -import com.smartgwt.client.types.ContentsType; -import com.smartgwt.client.types.VerticalAlignment; -import com.smartgwt.client.util.SC; import com.smartgwt.client.widgets.HTMLFlow; import com.smartgwt.client.widgets.Img; -import com.smartgwt.client.widgets.Label; -import com.smartgwt.client.widgets.events.ClickEvent; -import com.smartgwt.client.widgets.events.ClickHandler; -import com.smartgwt.client.widgets.events.DrawEvent; -import com.smartgwt.client.widgets.events.DrawHandler; -import com.smartgwt.client.widgets.events.ShowContextMenuEvent; -import com.smartgwt.client.widgets.events.ShowContextMenuHandler; -import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.layout.LayoutSpacer; import com.smartgwt.client.widgets.layout.VLayout; -import com.smartgwt.client.widgets.menu.Menu; -import com.smartgwt.client.widgets.menu.MenuBar; -import com.smartgwt.client.widgets.menu.MenuItem; -import com.smartgwt.client.widgets.menu.MenuItemSeparator; -import com.smartgwt.client.widgets.menu.events.MenuItemClickEvent; import com.smartgwt.client.widgets.toolbar.ToolStrip;
-import org.rhq.enterprise.gui.coregui.client.CoreGUI; -import org.rhq.enterprise.gui.coregui.client.LinkManager; import org.rhq.enterprise.gui.coregui.client.components.AboutModalWindow;
/** @@ -57,13 +37,12 @@ public class MenuBarView extends VLayout {
private AboutModalWindow aboutModalWindow;
- public static final String[] SECTIONS = {"Dashboard", "Inventory", "Reports", "Bundles", "Administration"}; + public static final String[] SECTIONS = { "Dashboard", "Inventory", "Reports", "Bundles", "Administration" };
private String selected = "Dashboard";
private HTMLFlow linksPane;
- protected void onDraw() { super.onDraw();
@@ -81,7 +60,6 @@ public class MenuBarView extends VLayout { } });
- ToolStrip topStrip = new ToolStrip(); topStrip.setHeight(34); topStrip.setWidth100(); @@ -104,16 +82,16 @@ public class MenuBarView extends VLayout {
topStrip.addMember(new LayoutSpacer());
- HLayout helpLayout = new HLayout(); -// Label loggedInAs = new Label("Logged in as " + CoreGUI.getSessionSubject().getName()); -// loggedInAs.setWrap(false); -// loggedInAs.setValign(VerticalAlignment.CENTER); -// helpLayout.addMember(loggedInAs); + //HLayout helpLayout = new HLayout(); + // Label loggedInAs = new Label("Logged in as " + CoreGUI.getSessionSubject().getName()); + // loggedInAs.setWrap(false); + // loggedInAs.setValign(VerticalAlignment.CENTER); + // helpLayout.addMember(loggedInAs); topStrip.addMember(new Hyperlink("Help", "Help")); topStrip.addMember(new Hyperlink("Preferences", "Preferences")); topStrip.addMember(new Hyperlink("Log Out", "LogOut")); -// helpLayout.setLayoutAlign(VerticalAlignment.CENTER); -// topStrip.addMember(helpLayout); + // helpLayout.setLayoutAlign(VerticalAlignment.CENTER); + // topStrip.addMember(helpLayout);
/* DynamicForm links = new DynamicForm(); links.setNumCols(SECTIONS.length * 2); @@ -148,7 +126,7 @@ public class MenuBarView extends VLayout {
private String setupLinks() { StringBuilder headerString = new StringBuilder( - "<table style="height: 34px;" cellpadding="0" cellspacing="0"><tr>"); + "<table style="height: 34px;" cellpadding="0" cellspacing="0"><tr>");
boolean first = true; for (String section : SECTIONS) { @@ -162,7 +140,8 @@ public class MenuBarView extends VLayout { styleClass += "Selected"; }
- headerString.append("<td class="" + styleClass + "" onclick="document.location='#" + section + "'" >"); + headerString.append("<td id="" + section + "" class="" + styleClass + + "" onclick="document.location='#" + section + "'" >"); headerString.append(section); headerString.append("</td>\n");
@@ -174,5 +153,4 @@ public class MenuBarView extends VLayout { return headerString.toString(); }
- } diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java index a288517..95436d4 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java @@ -20,11 +20,6 @@ package org.rhq.enterprise.gui.coregui.client.util;
import java.util.Collection;
-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 com.smartgwt.client.data.DSRequest; import com.smartgwt.client.data.DSResponse; import com.smartgwt.client.data.DataSource; @@ -32,6 +27,10 @@ import com.smartgwt.client.types.DSDataFormat; import com.smartgwt.client.types.DSProtocol; import com.smartgwt.client.widgets.grid.ListGridRecord;
+import org.rhq.core.domain.util.PageControl; +import org.rhq.core.domain.util.PageOrdering; +import org.rhq.enterprise.gui.coregui.client.CoreGUI; + /** * Base GWT-RPC oriented DataSource class. * @@ -59,21 +58,21 @@ public abstract class RPCDataSource<T> extends DataSource { DSResponse response = createResponse(request);
switch (request.getOperationType()) { - case FETCH: - executeFetch(request, response); - break; - case ADD: - executeAdd(request, response); - break; - case UPDATE: - executeUpdate(request, response); - break; - case REMOVE: - executeRemove(request, response); - break; - default: - super.transformRequest(request); - break; + case FETCH: + executeFetch(request, response); + break; + case ADD: + executeAdd(request, response); + break; + case UPDATE: + executeUpdate(request, response); + break; + case REMOVE: + executeRemove(request, response); + break; + default: + super.transformRequest(request); + break; } } catch (Throwable t) { CoreGUI.getErrorHandler().handleError("Failure in datasource [" + request.getOperationType() + "]", t); @@ -95,7 +94,8 @@ public abstract class RPCDataSource<T> extends DataSource { if (request.getStartRow() == null || request.getEndRow() == null) { pageControl = new PageControl(); } else { - pageControl = PageControl.getExplicitPageControl(request.getStartRow(), request.getEndRow() - request.getStartRow()); + pageControl = PageControl.getExplicitPageControl(request.getStartRow(), request.getEndRow() + - request.getStartRow()); }
// Initialize sorting. @@ -112,7 +112,6 @@ public abstract class RPCDataSource<T> extends DataSource { return pageControl; }
- public ListGridRecord[] buildRecords(Collection<T> list) { if (list == null) { return null; @@ -126,7 +125,6 @@ public abstract class RPCDataSource<T> extends DataSource { return records; }
- /** * Extensions should implement this method to retrieve data. Paging solutions should use * {@link #getPageControl(com.smartgwt.client.data.DSRequest)}. All implementations should call processResponse() @@ -138,12 +136,10 @@ public abstract class RPCDataSource<T> extends DataSource { */ protected abstract void executeFetch(final DSRequest request, final DSResponse response);
- public abstract T copyValues(ListGridRecord from);
public abstract ListGridRecord copyValues(T from);
- /** * Executed on <code>REMOVE</code> operation. <code>processResponse (requestId, response)</code> * should be called when operation completes (either successful or failure).
commit 622cb7544ac6e28d4557a68e9f57420387d9c5de Author: Jay Shaughnessy jshaughn@redhat.com Date: Tue Aug 10 12:14:32 2010 -0400
cosmetic changes only
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 3dc9f4c..8b2726c 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 @@ -18,15 +18,11 @@ */ package org.rhq.enterprise.gui.coregui.client.bundle.list;
-import com.google.gwt.user.client.History; import com.google.gwt.user.client.rpc.AsyncCallback; import com.smartgwt.client.data.Criteria; import com.smartgwt.client.types.ListGridFieldType; -import com.smartgwt.client.types.SelectionAppearance; import com.smartgwt.client.types.SelectionStyle; -import com.smartgwt.client.widgets.grid.CellFormatter; import com.smartgwt.client.widgets.grid.ListGridRecord; -import com.smartgwt.client.widgets.layout.VLayout;
import org.rhq.core.domain.bundle.Bundle; import org.rhq.core.domain.bundle.composite.BundleWithLatestVersionComposite; @@ -63,7 +59,6 @@ public class BundlesListView extends Table {
setHeaderIcon("subsystems/bundle/Bundle_24.png");
- setDataSource(new BundlesWithLatestVersionDataSource());
getListGrid().getField("id").setWidth("60"); @@ -71,27 +66,26 @@ public class BundlesListView extends Table { getListGrid().getField("link").setType(ListGridFieldType.LINK); getListGrid().getField("link").setTarget("_self");
-// getListGrid().getField("name").setCellFormatter(new CellFormatter() { -// public String format(Object o, ListGridRecord listGridRecord, int i, int i1) { -// return "";//<a href="#Bundles/Bundle/" + listGridRecord.getAttribute("id") + "">" + o + "</a>"; -// } -// }); + // getListGrid().getField("name").setCellFormatter(new CellFormatter() { + // public String format(Object o, ListGridRecord listGridRecord, int i, int i1) { + // return "";//<a href="#Bundles/Bundle/" + listGridRecord.getAttribute("id") + "">" + o + "</a>"; + // } + // });
getListGrid().getField("description").setWidth("25%"); getListGrid().getField("latestVersion").setWidth("25%"); getListGrid().getField("versionsCount").setWidth("*");
getListGrid().setSelectionType(SelectionStyle.SIMPLE); -// getListGrid().setSelectionAppearance(SelectionAppearance.CHECKBOX); + // getListGrid().setSelectionAppearance(SelectionAppearance.CHECKBOX);
addTableAction("New", Table.SelectionEnablement.ALWAYS, null, new TableAction() { public void executeAction(ListGridRecord[] selection) { new BundleCreateWizard().startBundleWizard(); - } });
- addTableAction("Delete", Table.SelectionEnablement.ANY, "Delete the selected bundle?", new TableAction() { + addTableAction("Delete", Table.SelectionEnablement.ANY, "Delete the selected bundles?", new TableAction() { public void executeAction(ListGridRecord[] selections) { BundlesWithLatestVersionDataSource ds = (BundlesWithLatestVersionDataSource) getDataSource(); for (ListGridRecord selection : selections) { @@ -148,7 +142,6 @@ public class BundlesListView extends Table { }); }
- public int getMatches() { return this.getListGrid().getTotalRows(); }
rhq-commits@lists.fedorahosted.org