modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/OperationScheduleDataSource.java | 4 modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/ResourceOperationScheduleDetailsView.java | 58 ++++++++-- modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java | 5 3 files changed, 54 insertions(+), 13 deletions(-)
New commits: commit 9dcbc0553d66f9c0031076aab6d4516cf1cd0565 Author: Ian Springer ian.springer@redhat.com Date: Mon Dec 20 13:15:42 2010 -0500
more work on operation schedule detail view
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/OperationScheduleDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/OperationScheduleDataSource.java index 1e0d4a8..8450214 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/OperationScheduleDataSource.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/OperationScheduleDataSource.java @@ -77,7 +77,7 @@ public abstract class OperationScheduleDataSource<T extends OperationSchedule> e idField.setCanEdit(false); fields.add(idField);
- DataSourceTextField operationNameField = createTextField(Field.OPERATION_NAME, "Operation", null, 100, true); + DataSourceTextField operationNameField = createTextField(Field.OPERATION_NAME, "Operation Name", null, 100, true); fields.add(operationNameField);
DataSourceTextField operationDisplayNameField = createTextField(Field.OPERATION_DISPLAY_NAME, "Operation", null, 100, true); @@ -88,7 +88,7 @@ public abstract class OperationScheduleDataSource<T extends OperationSchedule> e for (OperationDefinition operationDefinition : operationDefinitions) { valueMap.put(operationDefinition.getName(), operationDefinition.getDisplayName()); } - operationNameField.setValueMap(valueMap); + operationNameField.setValueMap(valueMap);
DataSourceTextField subjectField = createTextField(Field.SUBJECT, "Owner", null, 100, true); subjectField.setCanEdit(false); diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/ResourceOperationScheduleDetailsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/ResourceOperationScheduleDetailsView.java index 12df23e..263c3ae 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/ResourceOperationScheduleDetailsView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/ResourceOperationScheduleDetailsView.java @@ -20,12 +20,20 @@ package org.rhq.enterprise.gui.coregui.client.inventory.common.detail.operation.schedule;
import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.Set;
import com.smartgwt.client.widgets.form.fields.FormItem; import com.smartgwt.client.widgets.form.fields.SelectItem; +import com.smartgwt.client.widgets.form.fields.StaticTextItem; import com.smartgwt.client.widgets.form.fields.TextAreaItem; +import com.smartgwt.client.widgets.form.fields.events.ChangedEvent; +import com.smartgwt.client.widgets.form.fields.events.ChangedHandler;
+import org.rhq.core.domain.operation.OperationDefinition; +import org.rhq.core.domain.resource.ResourceType; import org.rhq.core.domain.resource.composite.ResourceComposite; import org.rhq.enterprise.gui.coregui.client.ViewPath; import org.rhq.enterprise.gui.coregui.client.components.form.AbstractRecordEditor; @@ -37,8 +45,21 @@ import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.operation */ public class ResourceOperationScheduleDetailsView extends AbstractRecordEditor {
+ private static final String FIELD_OPERATION_DESCRIPTION = "operationDescription"; + + private ResourceComposite resourceComposite; + private Map<String, String> operationNameToDescriptionMap = new HashMap<String, String>(); + private SelectItem operationNameItem; + private StaticTextItem operationDescriptionItem; + public ResourceOperationScheduleDetailsView(String locatorId, ResourceComposite resourceComposite, int scheduleId) { super(locatorId, new ResourceOperationScheduleDataSource(resourceComposite), scheduleId, "Scheduled Operation", null); + this.resourceComposite = resourceComposite; + ResourceType resourceType = this.resourceComposite.getResource().getResourceType(); + Set<OperationDefinition> operationDefinitions = resourceType.getOperationDefinitions(); + for (OperationDefinition operationDefinition : operationDefinitions) { + this.operationNameToDescriptionMap.put(operationDefinition.getName(), operationDefinition.getDescription()); + } }
@Override @@ -54,19 +75,44 @@ public class ResourceOperationScheduleDetailsView extends AbstractRecordEditor { protected List<FormItem> createFormItems(EnhancedDynamicForm form) { List<FormItem> items = new ArrayList<FormItem>();
- SelectItem operationNameItem = new SelectItem(ResourceOperationScheduleDataSource.Field.OPERATION_NAME); - items.add(operationNameItem); + this.operationNameItem = new SelectItem(ResourceOperationScheduleDataSource.Field.OPERATION_NAME); + items.add(this.operationNameItem); + this.operationNameItem.addChangedHandler(new ChangedHandler() { + public void onChanged(ChangedEvent event) { + updateOperationDescriptionItem(); + } + }); + + this.operationDescriptionItem = new StaticTextItem(FIELD_OPERATION_DESCRIPTION, "Operation Description"); + items.add(this.operationDescriptionItem);
- TextAreaItem descriptionItem = new TextAreaItem(ResourceOperationScheduleDataSource.Field.DESCRIPTION); - descriptionItem.setColSpan(form.getNumCols()); - items.add(descriptionItem); + TextAreaItem notesItem = new TextAreaItem(ResourceOperationScheduleDataSource.Field.DESCRIPTION, "Notes"); + notesItem.setColSpan(form.getNumCols()); + items.add(notesItem);
return items; }
@Override + protected void onDraw() { + super.onDraw(); + updateOperationDescriptionItem(); + } + + @Override protected String getTitleFieldName() { return ResourceOperationScheduleDataSource.Field.OPERATION_DISPLAY_NAME; } - + + private void updateOperationDescriptionItem() { + String operationName = this.operationNameItem.getValueAsString(); + String value; + if (operationName == null) { + value = "<i>Select an operation to view its description.</i>"; + } else { + value = this.operationNameToDescriptionMap.get(operationName); + } + this.operationDescriptionItem.setValue(value); + } + }
commit 8a242842c5e41f945cc3e0da64365b0a74fe5f6b Author: Ian Springer ian.springer@redhat.com Date: Mon Dec 20 10:51:59 2010 -0500
remove some faulty code that was trying to lookup an OperationScheduleEntity by its old primary key (https://bugzilla.redhat.com/show_bug.cgi?id=664350)
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java index 5d62695..b54dc27 100644 --- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java +++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java @@ -1356,7 +1356,6 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan * the time this group operation was kicked off), the group operation was a success by definition */ groupHistory.setStatus(OperationRequestStatus.SUCCESS); - continue; } } catch (Throwable t) { LOG.warn("Failed to check for memberless group operations. Cause: " + t); @@ -1794,7 +1793,6 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan * @return a managed entity, attached to this bean's entity manager */ private OperationScheduleEntity findOperationScheduleEntity(ScheduleJobId jobId) { - OperationScheduleEntity entity = entityManager.find(OperationScheduleEntity.class, jobId); Query query = entityManager.createNamedQuery(OperationScheduleEntity.QUERY_FIND_BY_JOB_ID); String jobName = jobId.getJobName(); query.setParameter("jobName", jobName); @@ -1838,7 +1836,6 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan public List<OperationDefinition> findOperationDefinitionsByCriteria(Subject subject, OperationDefinitionCriteria criteria) { CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria); - ;
CriteriaQueryRunner<OperationDefinition> queryRunner = new CriteriaQueryRunner(criteria, generator, entityManager); @@ -1849,7 +1846,6 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan public PageList<ResourceOperationHistory> findResourceOperationHistoriesByCriteria(Subject subject, ResourceOperationHistoryCriteria criteria) { CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria); - ; if (authorizationManager.isInventoryManager(subject) == false) { generator.setAuthorizationResourceFragment(CriteriaQueryGenerator.AuthorizationTokenType.RESOURCE, subject .getId()); @@ -1864,7 +1860,6 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan public PageList<GroupOperationHistory> findGroupOperationHistoriesByCriteria(Subject subject, GroupOperationHistoryCriteria criteria) { CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria); - ; if (authorizationManager.isInventoryManager(subject) == false) { generator.setAuthorizationResourceFragment(CriteriaQueryGenerator.AuthorizationTokenType.GROUP, subject .getId());