modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java
| 9 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/OperationScheduleDataSource.java
| 24 ++-
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/OperationScheduleListView.java
| 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/ResourceOperationScheduleDetailsView.java
| 72 ++++++++++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
| 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/schedule/ResourceOperationScheduleDataSource.java
| 14 +
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/schedule/ResourceOperationScheduleListView.java
| 9 -
7 files changed, 116 insertions(+), 18 deletions(-)
New commits:
commit 930cd482ebf00702f399b8faa10b504b5ce4a35a
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Fri Dec 17 18:08:58 2010 -0500
start of details view for Resource operation schedules (view and new modes)
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java
index e30a6bb..199ca19 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java
@@ -74,8 +74,12 @@ public class EnhancedDynamicForm extends LocatableDynamicForm {
setWrapItemTitles(false);
// Other Display Settings
- setHiliteRequiredFields(true);
- setRequiredTitleSuffix(" <span
class='requiredFieldMarker'>*</span> :");
+ if (readOnly) {
+ setHiliteRequiredFields(false);
+ } else {
+ setHiliteRequiredFields(true);
+ setRequiredTitleSuffix(" <span
class='requiredFieldMarker'>*</span> :");
+ }
// DataSource Settings
setUseAllDataSourceFields(false);
@@ -106,6 +110,7 @@ public class EnhancedDynamicForm extends LocatableDynamicForm {
StaticTextItem staticItem = new StaticTextItem(item.getName(),
item.getTitle());
staticItem.setTooltip(item.getTooltip());
staticItem.setValue(item.getValue());
+ staticItem.setColSpan(item.getAttribute("colSpan"));
// TODO: Any other fields we should copy? icons?
if (item instanceof BooleanItem) {
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 06e68e5..1e0d4a8 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
@@ -19,7 +19,9 @@
*/
package
org.rhq.enterprise.gui.coregui.client.inventory.common.detail.operation.schedule;
+import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Set;
import com.smartgwt.client.data.DataSourceField;
import com.smartgwt.client.data.Record;
@@ -30,7 +32,9 @@ import com.smartgwt.client.widgets.grid.ListGridRecord;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.common.JobTrigger;
import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.operation.OperationDefinition;
import org.rhq.core.domain.operation.bean.OperationSchedule;
+import org.rhq.core.domain.resource.ResourceType;
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;
@@ -38,7 +42,7 @@ import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
/**
* @author Ian Springer
*/
-public abstract class OperationScheduleDataSource<T extends OperationSchedule>
extends RPCDataSource<T> {
+public abstract class OperationScheduleDataSource<T extends OperationSchedule>
extends RPCDataSource<T> {
public static abstract class Field {
public static final String ID = "id";
@@ -54,8 +58,11 @@ public abstract class OperationScheduleDataSource<T extends
OperationSchedule> e
protected OperationGWTServiceAsync operationService =
GWTServiceLookup.getOperationService();
- public OperationScheduleDataSource() {
+ private ResourceType resourceType;
+
+ public OperationScheduleDataSource(ResourceType resourceType) {
super();
+ this.resourceType = resourceType;
List<DataSourceField> fields = addDataSourceFields();
addFields(fields);
}
@@ -70,13 +77,24 @@ public abstract class OperationScheduleDataSource<T extends
OperationSchedule> e
idField.setCanEdit(false);
fields.add(idField);
+ DataSourceTextField operationNameField = createTextField(Field.OPERATION_NAME,
"Operation", null, 100, true);
+ fields.add(operationNameField);
+
DataSourceTextField operationDisplayNameField =
createTextField(Field.OPERATION_DISPLAY_NAME, "Operation", null, 100, true);
fields.add(operationDisplayNameField);
+ Set<OperationDefinition> operationDefinitions =
this.resourceType.getOperationDefinitions();
+ LinkedHashMap<String, String> valueMap = new LinkedHashMap<String,
String>();
+ for (OperationDefinition operationDefinition : operationDefinitions) {
+ valueMap.put(operationDefinition.getName(),
operationDefinition.getDisplayName());
+ }
+ operationNameField.setValueMap(valueMap);
+
DataSourceTextField subjectField = createTextField(Field.SUBJECT,
"Owner", null, 100, true);
+ subjectField.setCanEdit(false);
fields.add(subjectField);
- DataSourceTextField descriptionField = createTextField(Field.DESCRIPTION,
"Description", null, 100, true);
+ DataSourceTextField descriptionField = createTextField(Field.DESCRIPTION,
"Notes", null, 100, false);
fields.add(descriptionField);
DataSourceTextField jobTriggerField = createTextField(Field.JOB_TRIGGER,
"Schedule", null, 100, true);
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/OperationScheduleListView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/OperationScheduleListView.java
index d658acc..d615316 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/OperationScheduleListView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/OperationScheduleListView.java
@@ -58,7 +58,7 @@ public abstract class OperationScheduleListView extends
TableSection<OperationSc
}
public void executeAction(ListGridRecord[] selection, Object actionValue) {
- // TODO: wizard or details view
+ newDetails();
}
});
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
new file mode 100644
index 0000000..12df23e
--- /dev/null
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/ResourceOperationScheduleDetailsView.java
@@ -0,0 +1,72 @@
+/*
+ * 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.common.detail.operation.schedule;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.smartgwt.client.widgets.form.fields.FormItem;
+import com.smartgwt.client.widgets.form.fields.SelectItem;
+import com.smartgwt.client.widgets.form.fields.TextAreaItem;
+
+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;
+import org.rhq.enterprise.gui.coregui.client.components.form.EnhancedDynamicForm;
+import
org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.operation.schedule.ResourceOperationScheduleDataSource;
+
+/**
+ * @author Ian Springer
+ */
+public class ResourceOperationScheduleDetailsView extends AbstractRecordEditor {
+
+ public ResourceOperationScheduleDetailsView(String locatorId, ResourceComposite
resourceComposite, int scheduleId) {
+ super(locatorId, new ResourceOperationScheduleDataSource(resourceComposite),
scheduleId, "Scheduled Operation", null);
+ }
+
+ @Override
+ public void renderView(ViewPath viewPath) {
+ super.renderView(viewPath);
+
+ // Existing schedules are not editable. This may change in the future.
+ boolean isReadOnly = (getRecordId() != 0);
+ init(isReadOnly);
+ }
+
+ @Override
+ protected List<FormItem> createFormItems(EnhancedDynamicForm form) {
+ List<FormItem> items = new ArrayList<FormItem>();
+
+ SelectItem operationNameItem = new
SelectItem(ResourceOperationScheduleDataSource.Field.OPERATION_NAME);
+ items.add(operationNameItem);
+
+ TextAreaItem descriptionItem = new
TextAreaItem(ResourceOperationScheduleDataSource.Field.DESCRIPTION);
+ descriptionItem.setColSpan(form.getNumCols());
+ items.add(descriptionItem);
+
+ return items;
+ }
+
+ @Override
+ protected String getTitleFieldName() {
+ return ResourceOperationScheduleDataSource.Field.OPERATION_DISPLAY_NAME;
+ }
+
+}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
index 9cbf3e2..ffc4ca5 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
@@ -347,8 +347,8 @@ public class ResourceDetailView extends
AbstractTwoLevelTabSetView<ResourceCompo
updateSubTab(this.operationsTab, this.operationsHistory, new
ResourceOperationHistoryListView(operationsTab
.extendLocatorId("HistoryView"), this.resourceComposite), true,
true);
- updateSubTab(this.operationsTab, this.operationsSchedule,new
ResourceOperationScheduleListView(operationsTab.extendLocatorId("SchedulesView"),
this.resourceComposite),
- true, true);
+ updateSubTab(this.operationsTab, this.operationsSchedule,new
ResourceOperationScheduleListView(
+ operationsTab.extendLocatorId("SchedulesView"),
this.resourceComposite), true, true);
}
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/schedule/ResourceOperationScheduleDataSource.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/schedule/ResourceOperationScheduleDataSource.java
index e044f51..6e9c744 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/schedule/ResourceOperationScheduleDataSource.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/schedule/ResourceOperationScheduleDataSource.java
@@ -28,6 +28,7 @@ import com.smartgwt.client.data.Record;
import org.rhq.core.domain.operation.bean.ResourceOperationSchedule;
import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.domain.resource.composite.ResourceComposite;
import
org.rhq.enterprise.gui.coregui.client.inventory.common.detail.operation.schedule.OperationScheduleDataSource;
/**
@@ -37,10 +38,11 @@ import
org.rhq.enterprise.gui.coregui.client.inventory.common.detail.operation.s
*/
public class ResourceOperationScheduleDataSource extends
OperationScheduleDataSource<ResourceOperationSchedule> {
- private int resourceId;
+ private ResourceComposite resourceComposite;
- public ResourceOperationScheduleDataSource(int resourceId) {
- this.resourceId = resourceId;
+ public ResourceOperationScheduleDataSource(ResourceComposite resourceComposite) {
+ super(resourceComposite.getResource().getResourceType());
+ this.resourceComposite = resourceComposite;
}
@Override
@@ -50,7 +52,7 @@ public class ResourceOperationScheduleDataSource extends
OperationScheduleDataSo
@Override
protected void executeFetch(final DSRequest request, final DSResponse response) {
- operationService.findScheduledResourceOperations(this.resourceId,
+
operationService.findScheduledResourceOperations(this.resourceComposite.getResource().getId(),
new AsyncCallback<List<ResourceOperationSchedule>>() {
public void onSuccess(List<ResourceOperationSchedule> result) {
Record[] records = buildRecords(result);
@@ -59,8 +61,8 @@ public class ResourceOperationScheduleDataSource extends
OperationScheduleDataSo
}
public void onFailure(Throwable caught) {
- throw new RuntimeException("Failed to find scheduled operations
for Resource with id ["
- + resourceId + "].", caught);
+ throw new RuntimeException("Failed to find scheduled operations
for "
+ + resourceComposite.getResource() + ".", caught);
}
});
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/schedule/ResourceOperationScheduleListView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/schedule/ResourceOperationScheduleListView.java
index 03de2a6..14bb294 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/schedule/ResourceOperationScheduleListView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/schedule/ResourceOperationScheduleListView.java
@@ -22,8 +22,8 @@ package
org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.operatio
import com.smartgwt.client.widgets.Canvas;
import org.rhq.core.domain.resource.composite.ResourceComposite;
-import
org.rhq.enterprise.gui.coregui.client.inventory.common.detail.operation.schedule.OperationScheduleDataSource;
import
org.rhq.enterprise.gui.coregui.client.inventory.common.detail.operation.schedule.OperationScheduleListView;
+import
org.rhq.enterprise.gui.coregui.client.inventory.common.detail.operation.schedule.ResourceOperationScheduleDetailsView;
/**
* @author Ian Springer
@@ -35,7 +35,7 @@ public class ResourceOperationScheduleListView extends
OperationScheduleListView
private ResourceComposite resourceComposite;
public ResourceOperationScheduleListView(String locatorId, ResourceComposite
resourceComposite) {
- super(locatorId, new
ResourceOperationScheduleDataSource(resourceComposite.getResource().getId()), TITLE);
+ super(locatorId, new ResourceOperationScheduleDataSource(resourceComposite),
TITLE);
this.resourceComposite = resourceComposite;
}
@@ -45,8 +45,9 @@ public class ResourceOperationScheduleListView extends
OperationScheduleListView
}
@Override
- public Canvas getDetailsView(int id) {
- return new Canvas(); // TODO
+ public Canvas getDetailsView(int scheduleId) {
+ return new
ResourceOperationScheduleDetailsView(extendLocatorId("DetailsView"),
+ this.resourceComposite, scheduleId);
}
}