modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/history/OperationHistoryDataSource.java | 24 +-- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java | 9 - modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/operation/history/GroupOperationHistoryDataSource.java | 79 ++++++++++ modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/operation/history/GroupOperationHistoryListView.java | 54 ++++++ modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/history/ResourceOperationHistoryDataSource.java | 16 +- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/history/ResourceOperationHistoryListView.java | 41 ----- 6 files changed, 162 insertions(+), 61 deletions(-)
New commits: commit bf649fa1066cd6d7b261c942f6527ba1ca7e4872 Author: Ian Springer ian.springer@redhat.com Date: Tue Jan 25 19:25:29 2011 -0500
implement group Operations>History subtab; remove ability to schedule new operations off Resource Operations>History subtab (may add back later depending on feedback from UXD team)
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/history/OperationHistoryDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/history/OperationHistoryDataSource.java index 1152459..c320d10 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/history/OperationHistoryDataSource.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/history/OperationHistoryDataSource.java @@ -18,29 +18,22 @@ */ package org.rhq.enterprise.gui.coregui.client.inventory.common.detail.operation.history;
-import java.util.Date; -import java.util.List; - -import com.google.gwt.user.client.rpc.AsyncCallback; -import com.smartgwt.client.data.DSRequest; -import com.smartgwt.client.data.DSResponse; import com.smartgwt.client.data.DataSourceField; import com.smartgwt.client.data.Record; import com.smartgwt.client.data.fields.DataSourceTextField; import com.smartgwt.client.widgets.grid.ListGridRecord; - -import org.rhq.core.domain.criteria.ResourceOperationHistoryCriteria; -import org.rhq.core.domain.operation.ResourceOperationHistory; -import org.rhq.core.domain.util.PageList; -import org.rhq.enterprise.gui.coregui.client.CoreGUI; +import org.rhq.core.domain.operation.OperationHistory; 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.util.RPCDataSource;
+import java.util.Date; +import java.util.List; + /** * @author Greg Hinkle */ -public abstract class OperationHistoryDataSource extends RPCDataSource<ResourceOperationHistory> { +public abstract class OperationHistoryDataSource<T extends OperationHistory> extends RPCDataSource<T> {
public static abstract class Field { public static final String ID = "id"; @@ -92,18 +85,17 @@ public abstract class OperationHistoryDataSource extends RPCDataSource<ResourceO }
@Override - public ResourceOperationHistory copyValues(Record from) { - throw new UnsupportedOperationException("ResourceOperationHistory is read only."); + public T copyValues(Record from) { + throw new UnsupportedOperationException("OperationHistory is read only."); }
@Override - public ListGridRecord copyValues(ResourceOperationHistory from) { + public ListGridRecord copyValues(T from) { ListGridRecord record = new ListGridRecord(); record.setAttribute(Field.ID, from.getId()); record.setAttribute(Field.CREATED_TIME, from.getCreatedTime()); record.setAttribute(Field.STARTED_TIME, new Date(from.getStartedTime())); record.setAttribute(Field.DURATION, from.getDuration()); - record.setAttribute(Field.RESOURCE, from.getResource()); record.setAttribute(Field.SUBJECT, from.getSubjectName()); record.setAttribute(Field.OPERATION_DEFINITION, from.getOperationDefinition()); record.setAttribute(Field.OPERATION_NAME, from.getOperationDefinition().getDisplayName()); diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java index 9b18b47..cca83f5 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java @@ -57,6 +57,7 @@ import org.rhq.enterprise.gui.coregui.client.inventory.groups.detail.inventory.H import org.rhq.enterprise.gui.coregui.client.inventory.groups.detail.inventory.MembersView; import org.rhq.enterprise.gui.coregui.client.inventory.groups.detail.monitoring.schedules.SchedulesView; import org.rhq.enterprise.gui.coregui.client.inventory.groups.detail.monitoring.traits.TraitsView; +import org.rhq.enterprise.gui.coregui.client.inventory.groups.detail.operation.history.GroupOperationHistoryListView; import org.rhq.enterprise.gui.coregui.client.inventory.groups.detail.operation.schedule.GroupOperationScheduleListView; import org.rhq.enterprise.gui.coregui.client.inventory.groups.detail.summary.ActivityView; import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository; @@ -233,7 +234,7 @@ public class ResourceGroupDetailView extends AbstractTwoLevelTabSetView<Resource updateSummaryTab(); updateMonitoringTab(groupId, groupCategory, facets); updateInventoryTab(groupId, facets); - updateOperationsTab(groupId, groupCategory, facets); + updateOperationsTab(groupCategory, facets); updateAlertsTab(groupComposite, groupCategory); updateConfigurationTab(groupId, groupCategory, facets); updateEventsTab(groupComposite, groupCategory, facets); @@ -293,14 +294,14 @@ public class ResourceGroupDetailView extends AbstractTwoLevelTabSetView<Resource .contains(ResourceTypeFacet.PLUGIN_CONFIGURATION), true); }
- private void updateOperationsTab(int groupId, GroupCategory groupCategory, Set<ResourceTypeFacet> facets) { + private void updateOperationsTab(GroupCategory groupCategory, Set<ResourceTypeFacet> facets) { if (updateTab(this.operationsTab, groupCategory == GroupCategory.COMPATIBLE && facets.contains(ResourceTypeFacet.OPERATION), true)) { updateSubTab(this.operationsTab, this.operationsSchedule, new GroupOperationScheduleListView(this.operationsSchedule.extendLocatorId("View"), this.groupComposite), true, true); - updateSubTab(this.operationsTab, this.operationsHistory, new FullHTMLPane(this.operationsHistory.extendLocatorId("View"), - "/rhq/group/operation/groupOperationHistory-plain.xhtml?groupId=" + groupId), true, true); + updateSubTab(this.operationsTab, this.operationsHistory, new GroupOperationHistoryListView( + this.operationsHistory.extendLocatorId("View"), this.groupComposite), true, true); } }
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/operation/history/GroupOperationHistoryDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/operation/history/GroupOperationHistoryDataSource.java new file mode 100644 index 0000000..d02949a --- /dev/null +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/operation/history/GroupOperationHistoryDataSource.java @@ -0,0 +1,79 @@ +/* + * RHQ Management Platform + * Copyright 2010, Red Hat Middleware LLC, and individual contributors + * as indicated by the @author tags. See the copyright.txt file in the + * distribution for a full listing of individual contributors. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * 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.inventory.groups.detail.operation.history; + +import com.google.gwt.user.client.rpc.AsyncCallback; +import com.smartgwt.client.data.DSRequest; +import com.smartgwt.client.data.DSResponse; +import com.smartgwt.client.widgets.grid.ListGridRecord; +import org.rhq.core.domain.criteria.GroupOperationHistoryCriteria; +import org.rhq.core.domain.operation.GroupOperationHistory; +import org.rhq.core.domain.util.PageList; +import org.rhq.enterprise.gui.coregui.client.CoreGUI; +import org.rhq.enterprise.gui.coregui.client.inventory.common.detail.operation.history.OperationHistoryDataSource; + +import java.util.Arrays; + +/** + * @author Ian Springer + */ +public class GroupOperationHistoryDataSource extends OperationHistoryDataSource<GroupOperationHistory> { + + public static abstract class Field extends OperationHistoryDataSource.Field { + public static final String GROUP = "group"; + } + + public static abstract class CriteriaField { + public static final String GROUP_ID = "groupId"; + } + + @Override + protected void executeFetch(final DSRequest request, final DSResponse response) { + GroupOperationHistoryCriteria criteria = new GroupOperationHistoryCriteria(); + + if (request.getCriteria().getValues().containsKey(CriteriaField.GROUP_ID)) { + int groupId = Integer.parseInt((String)request.getCriteria().getValues().get( + CriteriaField.GROUP_ID)); + criteria.addFilterResourceGroupIds(Arrays.asList(groupId)); + } + + criteria.setPageControl(getPageControl(request)); + + operationService.findGroupOperationHistoriesByCriteria(criteria, + new AsyncCallback<PageList<GroupOperationHistory>>() { + public void onFailure(Throwable caught) { + CoreGUI.getErrorHandler().handleError(MSG.dataSource_operationHistory_error_fetchFailure(), caught); + } + + public void onSuccess(PageList<GroupOperationHistory> result) { + response.setData(buildRecords(result)); + processResponse(request.getRequestId(), response); + } + }); + } + + @Override + public ListGridRecord copyValues(GroupOperationHistory from) { + ListGridRecord record = super.copyValues(from); + record.setAttribute(Field.GROUP, from.getGroup()); + return record; + } + +} diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/operation/history/GroupOperationHistoryListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/operation/history/GroupOperationHistoryListView.java new file mode 100644 index 0000000..9206e4f --- /dev/null +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/operation/history/GroupOperationHistoryListView.java @@ -0,0 +1,54 @@ +/* + * RHQ Management Platform + * Copyright 2010, Red Hat Middleware LLC, and individual contributors + * as indicated by the @author tags. See the copyright.txt file in the + * distribution for a full listing of individual contributors. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * 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.inventory.groups.detail.operation.history; + +import com.smartgwt.client.data.Criteria; +import com.smartgwt.client.widgets.Canvas; +import org.rhq.core.domain.resource.group.composite.ResourceGroupComposite; +import org.rhq.enterprise.gui.coregui.client.inventory.common.detail.operation.history.AbstractOperationHistoryListView; +import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.operation.history.ResourceOperationHistoryDataSource; + +/** + * @author Ian Springer + */ +public class GroupOperationHistoryListView extends AbstractOperationHistoryListView { + + private ResourceGroupComposite groupComposite; + + public GroupOperationHistoryListView(String locatorId, ResourceGroupComposite groupComposite) { + super(locatorId, new ResourceOperationHistoryDataSource(), null, + new Criteria(GroupOperationHistoryDataSource.CriteriaField.GROUP_ID, + String.valueOf(groupComposite.getResourceGroup().getId()))); + this.groupComposite = groupComposite; + } + + @Override + protected void configureTable() { + super.configureTable(); + + // TODO: Add Delete button. + } + + @Override + public Canvas getDetailsView(int id) { + return new Canvas(); + } + +} diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/history/ResourceOperationHistoryDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/history/ResourceOperationHistoryDataSource.java index e350042..447ec17 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/history/ResourceOperationHistoryDataSource.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/history/ResourceOperationHistoryDataSource.java @@ -23,8 +23,12 @@ import com.google.gwt.user.client.rpc.AsyncCallback; import com.smartgwt.client.data.DSRequest; import com.smartgwt.client.data.DSResponse;
+import com.smartgwt.client.data.Record; +import com.smartgwt.client.widgets.grid.ListGridRecord; import org.rhq.core.domain.criteria.ResourceOperationHistoryCriteria; +import org.rhq.core.domain.operation.OperationHistory; import org.rhq.core.domain.operation.ResourceOperationHistory; +import org.rhq.core.domain.resource.Resource; import org.rhq.core.domain.util.PageList; import org.rhq.enterprise.gui.coregui.client.CoreGUI; import org.rhq.enterprise.gui.coregui.client.inventory.common.detail.operation.history.OperationHistoryDataSource; @@ -32,7 +36,11 @@ import org.rhq.enterprise.gui.coregui.client.inventory.common.detail.operation.h /** * @author Ian Springer */ -public class ResourceOperationHistoryDataSource extends OperationHistoryDataSource { +public class ResourceOperationHistoryDataSource extends OperationHistoryDataSource<ResourceOperationHistory> { + + public static abstract class Field extends OperationHistoryDataSource.Field { + public static final String RESOURCE = "resource"; + }
public static abstract class CriteriaField { public static final String RESOURCE_ID = "resourceId"; @@ -63,5 +71,11 @@ public class ResourceOperationHistoryDataSource extends OperationHistoryDataSour }); }
+ @Override + public ListGridRecord copyValues(ResourceOperationHistory from) { + ListGridRecord record = super.copyValues(from); + record.setAttribute(Field.RESOURCE, from.getResource()); + return record; + }
} diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/history/ResourceOperationHistoryListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/history/ResourceOperationHistoryListView.java index 172da98..086b39d 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/history/ResourceOperationHistoryListView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/history/ResourceOperationHistoryListView.java @@ -19,26 +19,11 @@ */ package org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.operation.history;
-import java.util.EnumSet; - import com.smartgwt.client.data.Criteria; import com.smartgwt.client.widgets.Canvas; -import com.smartgwt.client.widgets.menu.IMenuButton; -import com.smartgwt.client.widgets.menu.Menu; -import com.smartgwt.client.widgets.menu.MenuItem; -import com.smartgwt.client.widgets.menu.events.ClickHandler; -import com.smartgwt.client.widgets.menu.events.MenuItemClickEvent; - -import org.rhq.core.domain.operation.OperationDefinition; -import org.rhq.core.domain.resource.Resource; -import org.rhq.core.domain.resource.ResourceType; import org.rhq.core.domain.resource.composite.ResourceComposite; import org.rhq.enterprise.gui.coregui.client.inventory.common.detail.operation.history.AbstractOperationHistoryListView; import org.rhq.enterprise.gui.coregui.client.inventory.common.detail.operation.history.ResourceOperationHistoryDetailsView; -import org.rhq.enterprise.gui.coregui.client.inventory.common.detail.operation.schedule.OperationCreateWizard; -import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository; -import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableIMenuButton; -import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableMenu;
/** * @author Ian Springer @@ -58,31 +43,7 @@ public class ResourceOperationHistoryListView extends AbstractOperationHistoryLi protected void configureTable() { super.configureTable();
- if (this.resourceComposite.getResourcePermission().isControl()) { - final Resource resource = this.resourceComposite.getResource(); - final Menu operationMenu = new LocatableMenu(this.extendLocatorId("Operation")); - ResourceTypeRepository.Cache.getInstance().getResourceTypes(resource.getResourceType().getId(), - EnumSet.of(ResourceTypeRepository.MetadataType.operations), - new ResourceTypeRepository.TypeLoadedCallback() { - public void onTypesLoaded(ResourceType type) { - for (final OperationDefinition operationDefinition : type.getOperationDefinitions()) { - MenuItem menuItem = new MenuItem(operationDefinition.getDisplayName()); - operationMenu.addItem(menuItem); - menuItem.addClickHandler(new ClickHandler() { - public void onClick(MenuItemClickEvent event) { - new OperationCreateWizard(resource, operationDefinition).startOperationWizard(); - } - }); - } - } - }); - - IMenuButton operationsButton = new LocatableIMenuButton(this.extendLocatorId("Run"), - MSG.view_operationHistoryList_button_runOperation(), operationMenu); - operationsButton.setShowMenuBelow(false); - operationsButton.setAutoFit(true); - addExtraWidget(operationsButton); - } + // TODO: Add Delete button. }
@Override
rhq-commits@lists.fedorahosted.org