modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/operations/OperationsPortlet.java
| 83 ++++------
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/OperationGWTService.java
| 6
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/operation/RecentOperationsDataSource.java
| 55 ++++++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/operation/ScheduledOperationsDataSource.java
| 53 +++++-
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/OperationGWTServiceImpl.java
| 10 -
5 files changed, 141 insertions(+), 66 deletions(-)
New commits:
commit fc50175d9159e90c52b8839283d7baba4323336e
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Mon Sep 13 20:46:27 2010 -0400
enable server side operations portlet.
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/operations/OperationsPortlet.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/operations/OperationsPortlet.java
index ce381ce..54647a1 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/operations/OperationsPortlet.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/operations/OperationsPortlet.java
@@ -64,14 +64,15 @@ public class OperationsPortlet extends LocatableVLayout implements
CustomSetting
private static final String TITLE = KEY;
private static String recentOperations = "Recent Operations";
private static String scheduledOperations = "Scheduled Operations";
- private boolean operationsRangeLastEnabled = false;
- private boolean operationsRangeNextEnabled = false;
- private int operationsRangeScheduled = -1;
- private int operationsRangeCompleted = -1;
+ public static String RANGE_DISABLED_MESSAGE = "(Results currently disabled.
Change settings to enable results.)";
+ //TODO: change this to use the Smart GWT default value.
+ public static String RANGE_DISABLED_MESSAGE_DEFAULT = "No items to show.";
//ListGrids for operations
private LocatableListGrid recentOperationsGrid = null;
private LocatableListGrid scheduledOperationsGrid = null;
private DashboardPortlet storedPortlet = null;
+ private RecentOperationsDataSource dataSourceCompleted;
+ private ScheduledOperationsDataSource dataSourceScheduled;
public static String unlimited = "unlimited";
public static String defaultValue = unlimited;
public static boolean defaultEnabled = true;
@@ -83,17 +84,18 @@ public class OperationsPortlet extends LocatableVLayout implements
CustomSetting
public OperationsPortlet(String locatorId) {
super(locatorId);
+ this.dataSourceCompleted = new RecentOperationsDataSource(this);
+ this.dataSourceScheduled = new ScheduledOperationsDataSource(this);
}
@Override
protected void onInit() {
super.onInit();
-
//set title for larger container
setTitle(TITLE);
this.recentOperationsGrid = new LocatableListGrid(recentOperations);
- recentOperationsGrid.setDataSource(new RecentOperationsDataSource());
+ recentOperationsGrid.setDataSource(getDataSourceCompleted());
recentOperationsGrid.setAutoFetchData(true);
recentOperationsGrid.setTitle(recentOperations);
recentOperationsGrid.setWidth100();
@@ -111,7 +113,7 @@ public class OperationsPortlet extends LocatableVLayout implements
CustomSetting
// Add the list table as the top half of the view.
this.scheduledOperationsGrid = new LocatableListGrid(scheduledOperations);
- scheduledOperationsGrid.setDataSource(new ScheduledOperationsDataSource());
+ scheduledOperationsGrid.setDataSource(getDataSourceScheduled());
scheduledOperationsGrid.setAutoFetchData(true);
scheduledOperationsGrid.setTitle(scheduledOperations);
scheduledOperationsGrid.setWidth100();
@@ -140,42 +142,44 @@ public class OperationsPortlet extends LocatableVLayout implements
CustomSetting
//retrieve and translate to int
String retrieved = property.getStringValue();
if (retrieved.equals(unlimited)) {
- setOperationsRangeCompleted(-1);
+ getDataSourceCompleted().setOperationsRangeCompleted(-1);
} else {
- setOperationsRangeCompleted(Integer.parseInt(retrieved));
+
getDataSourceCompleted().setOperationsRangeCompleted(Integer.parseInt(retrieved));
}
} else {//create setting
storedPortlet.getConfiguration().put(new
PropertySimple(OPERATIONS_RANGE_COMPLETED, defaultValue));
- setOperationsRangeCompleted(-1);
+ getDataSourceCompleted().setOperationsRangeCompleted(-1);
}
+
property =
storedPortlet.getConfiguration().getSimple(OPERATIONS_RANGE_SCHEDULED);
if ((property != null) && (property.getStringValue() != null)) {
//retrieve and translate to int
String retrieved = property.getStringValue();
if (retrieved.equals(unlimited)) {
- setOperationsRangeScheduled(-1);
+ getDataSourceScheduled().setOperationsRangeScheduled(-1);
} else {
- setOperationsRangeScheduled(Integer.parseInt(retrieved));
+
getDataSourceScheduled().setOperationsRangeScheduled(Integer.parseInt(retrieved));
}
} else {//create setting
storedPortlet.getConfiguration().put(new
PropertySimple(OPERATIONS_RANGE_SCHEDULED, defaultValue));
- setOperationsRangeScheduled(-1);
+ getDataSourceScheduled().setOperationsRangeScheduled(-1);
}
//Checkbox settings property
property =
storedPortlet.getConfiguration().getSimple(OPERATIONS_RANGE_SCHEDULED_ENABLED);
if ((property != null) && (property.getBooleanValue() != null)) {
-
setOperationsRangeScheduleEnabled(property.getBooleanValue().booleanValue());
+
getDataSourceScheduled().setOperationsRangeScheduleEnabled(property.getBooleanValue().booleanValue());
} else {//create setting
storedPortlet.getConfiguration()
.put(new PropertySimple(OPERATIONS_RANGE_SCHEDULED_ENABLED,
defaultEnabled));
- setOperationsRangeScheduleEnabled(defaultEnabled);
+ getDataSourceScheduled().setOperationsRangeScheduleEnabled(defaultEnabled);
}
property =
storedPortlet.getConfiguration().getSimple(OPERATIONS_RANGE_COMPLETED_ENABLED);
if ((property != null) && (property.getBooleanValue() != null)) {
-
setOperationsRangeScheduleEnabled(property.getBooleanValue().booleanValue());
+
getDataSourceCompleted().setOperationsRangeCompleteEnabled(property.getBooleanValue().booleanValue());
} else {//create setting
storedPortlet.getConfiguration()
.put(new PropertySimple(OPERATIONS_RANGE_COMPLETED_ENABLED,
defaultEnabled));
+ getDataSourceCompleted().setOperationsRangeCompleteEnabled(defaultEnabled);
}
}
@@ -359,38 +363,6 @@ public class OperationsPortlet extends LocatableVLayout implements
CustomSetting
}
}
- public boolean isOperationsRangeCompletedEnabled() {
- return operationsRangeLastEnabled;
- }
-
- public void setOperationsRangeCompleteEnabled(boolean operationsRangeLastEnabled) {
- this.operationsRangeLastEnabled = operationsRangeLastEnabled;
- }
-
- public boolean isOperationsRangeScheduleEnabled() {
- return operationsRangeNextEnabled;
- }
-
- public void setOperationsRangeScheduleEnabled(boolean operationsRangeNextEnabled) {
- this.operationsRangeNextEnabled = operationsRangeNextEnabled;
- }
-
- public int getOperationsRangeScheduled() {
- return operationsRangeScheduled;
- }
-
- public void setOperationsRangeScheduled(int operationsRangeScheduled) {
- this.operationsRangeScheduled = operationsRangeScheduled;
- }
-
- public int getOperationsRangeCompleted() {
- return operationsRangeCompleted;
- }
-
- public void setOperationsRangeCompleted(int operationsRangeCompleted) {
- this.operationsRangeCompleted = operationsRangeCompleted;
- }
-
/** Custom refresh operation as we cannot directly extend Table because it only
* contains one ListGrid while the OperationsPortlet displays two tables.
*/
@@ -424,4 +396,19 @@ public class OperationsPortlet extends LocatableVLayout implements
CustomSetting
return definition;
}
+ public RecentOperationsDataSource getDataSourceCompleted() {
+ return this.dataSourceCompleted;
+ }
+
+ public ScheduledOperationsDataSource getDataSourceScheduled() {
+ return this.dataSourceScheduled;
+ }
+
+ public LocatableListGrid getCompletedOperationsGrid() {
+ return this.recentOperationsGrid;
+ }
+
+ public LocatableListGrid getScheduledOperationsGrid() {
+ return this.scheduledOperationsGrid;
+ }
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/OperationGWTService.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/OperationGWTService.java
index 72f2fb9..b74efea 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/OperationGWTService.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/OperationGWTService.java
@@ -24,7 +24,6 @@ import com.google.gwt.user.client.rpc.RemoteService;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.criteria.GroupOperationHistoryCriteria;
-import org.rhq.core.domain.criteria.ResourceCriteria;
import org.rhq.core.domain.criteria.ResourceOperationHistoryCriteria;
import org.rhq.core.domain.operation.GroupOperationHistory;
import org.rhq.core.domain.operation.ResourceOperationHistory;
@@ -44,10 +43,9 @@ public interface OperationGWTService extends RemoteService {
PageList<GroupOperationHistory>
findGroupOperationHistoriesByCriteria(GroupOperationHistoryCriteria criteria);
- List<DisambiguationReport<ResourceOperationLastCompletedComposite>>
findRecentCompletedOperations(
- ResourceCriteria criteria);
+ List<DisambiguationReport<ResourceOperationLastCompletedComposite>>
findRecentCompletedOperations(int pageSize);
- List<DisambiguationReport<ResourceOperationScheduleComposite>>
findScheduledOperations(ResourceCriteria criteria);
+ List<DisambiguationReport<ResourceOperationScheduleComposite>>
findScheduledOperations(int pageSize);
void scheduleResourceOperation(int resourceId, String operationName, Configuration
parameters,
ExecutionSchedule schedule, String description, int timeout) throws
RuntimeException;
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/operation/RecentOperationsDataSource.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/operation/RecentOperationsDataSource.java
index e53708c..2c02f25 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/operation/RecentOperationsDataSource.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/operation/RecentOperationsDataSource.java
@@ -31,11 +31,12 @@ import com.smartgwt.client.types.DSDataFormat;
import com.smartgwt.client.types.DSProtocol;
import com.smartgwt.client.widgets.grid.ListGridRecord;
-import org.rhq.core.domain.criteria.ResourceCriteria;
import org.rhq.core.domain.operation.OperationRequestStatus;
import org.rhq.core.domain.operation.composite.ResourceOperationLastCompletedComposite;
import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
+import
org.rhq.enterprise.gui.coregui.client.dashboard.portlets.recent.operations.OperationsPortlet;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.resource.disambiguation.ReportDecorator;
import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
@@ -52,10 +53,18 @@ public class RecentOperationsDataSource extends
public static final String operation = "operation";
public static final String time = "time";
public static final String status = "status";
+ private Portlet portlet;
+
+ //config attributes
+ private boolean operationsRangeLastEnabled = false;
+ private int operationsRangeCompleted = -1;
+ private boolean dataRangeDisabled = true;
+ public static String RANGE_DISABLED_MESSAGE = "(Results currently disabled.
Change settings to enable results.)";
/** Build list of fields for the datasource and then adds them to it.
*/
- public RecentOperationsDataSource() {
+ public RecentOperationsDataSource(Portlet portlet) {
+ this.portlet = portlet;
setClientOnly(false);
setDataProtocol(DSProtocol.CLIENTCUSTOM);
setDataFormat(DSDataFormat.CUSTOM);
@@ -100,9 +109,30 @@ public class RecentOperationsDataSource extends
* @param response outgoing response
*/
public void executeFetch(final DSRequest request, final DSResponse response) {
+ int pageSize = -1;
+ //retrieve current portlet display settings
+ if ((this.portlet != null) && (this.portlet instanceof
OperationsPortlet)) {
+ OperationsPortlet operationsPortlet = (OperationsPortlet) this.portlet;
+ //populate criteria with portlet preferences defined.
+ if (operationsPortlet != null) {
+ if (isOperationsRangeCompletedEnabled()) {
+ pageSize = getOperationsRangeCompleted();
+ operationsPortlet.getCompletedOperationsGrid().setEmptyMessage(
+ OperationsPortlet.RANGE_DISABLED_MESSAGE_DEFAULT);
+ } else {//show the component, return no results and indicate that
you've disabled this display
+ pageSize = 0;
+ operationsPortlet.getCompletedOperationsGrid().setEmptyMessage(
+ OperationsPortlet.RANGE_DISABLED_MESSAGE);
+ response.setData(null);
+ response.setTotalRows(0);
+ //pass off for processing
+ processResponse(request.getRequestId(), response);
+ return;
+ }
+ }
+ }
- ResourceCriteria c = new ResourceCriteria();
- GWTServiceLookup.getOperationService().findRecentCompletedOperations(c,
+ GWTServiceLookup.getOperationService().findRecentCompletedOperations(pageSize,
new
AsyncCallback<List<DisambiguationReport<ResourceOperationLastCompletedComposite>>>()
{
public void onFailure(Throwable throwable) {
@@ -204,4 +234,21 @@ public class RecentOperationsDataSource extends
return record;
}
+
+ public boolean isOperationsRangeCompletedEnabled() {
+ return operationsRangeLastEnabled;
+ }
+
+ public void setOperationsRangeCompleteEnabled(boolean operationsRangeLastEnabled) {
+ this.operationsRangeLastEnabled = operationsRangeLastEnabled;
+ }
+
+ public int getOperationsRangeCompleted() {
+ return operationsRangeCompleted;
+ }
+
+ public void setOperationsRangeCompleted(int operationsRangeCompleted) {
+ this.operationsRangeCompleted = operationsRangeCompleted;
+ }
+
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/operation/ScheduledOperationsDataSource.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/operation/ScheduledOperationsDataSource.java
index 4f58644..ebb1185 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/operation/ScheduledOperationsDataSource.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/operation/ScheduledOperationsDataSource.java
@@ -30,10 +30,11 @@ import com.smartgwt.client.types.DSDataFormat;
import com.smartgwt.client.types.DSProtocol;
import com.smartgwt.client.widgets.grid.ListGridRecord;
-import org.rhq.core.domain.criteria.ResourceCriteria;
import org.rhq.core.domain.operation.composite.ResourceOperationScheduleComposite;
import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
+import
org.rhq.enterprise.gui.coregui.client.dashboard.portlets.recent.operations.OperationsPortlet;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.resource.disambiguation.ReportDecorator;
import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
@@ -49,10 +50,15 @@ public class ScheduledOperationsDataSource extends
public static final String location = "location";
public static final String operation = "operation";
public static final String time = "time";
+ //config settings
+ private boolean operationsRangeNextEnabled = false;
+ private int operationsRangeScheduled = -1;
+ private Portlet portlet;
/** Build list of fields for the datasource and then adds them to it.
*/
- public ScheduledOperationsDataSource() {
+ public ScheduledOperationsDataSource(Portlet portlet) {
+ this.portlet = portlet;
setClientOnly(false);
setDataProtocol(DSProtocol.CLIENTCUSTOM);
setDataFormat(DSDataFormat.CUSTOM);
@@ -96,8 +102,30 @@ public class ScheduledOperationsDataSource extends
*/
public void executeFetch(final DSRequest request, final DSResponse response) {
- ResourceCriteria c = new ResourceCriteria();
- GWTServiceLookup.getOperationService().findScheduledOperations(c,
+ int pageSize = -1;
+ //retrieve current portlet display settings
+ if ((this.portlet != null) && (this.portlet instanceof
OperationsPortlet)) {
+ OperationsPortlet operationsPortlet = (OperationsPortlet) this.portlet;
+ //populate criteria with portlet preferences defined.
+ if (operationsPortlet != null) {
+ if (isOperationsRangeScheduleEnabled()) {
+ pageSize = getOperationsRangeScheduled();
+ operationsPortlet.getScheduledOperationsGrid().setEmptyMessage(
+ OperationsPortlet.RANGE_DISABLED_MESSAGE_DEFAULT);
+ } else {//show the component, return no results and indicate that
you've disabled this display
+ pageSize = 0;
+ operationsPortlet.getScheduledOperationsGrid().setEmptyMessage(
+ OperationsPortlet.RANGE_DISABLED_MESSAGE);
+ response.setData(null);
+ response.setTotalRows(0);
+ //pass off for processing
+ processResponse(request.getRequestId(), response);
+ return;
+ }
+ }
+ }
+
+ GWTServiceLookup.getOperationService().findScheduledOperations(pageSize,
new
AsyncCallback<List<DisambiguationReport<ResourceOperationScheduleComposite>>>()
{
public void onFailure(Throwable throwable) {
@@ -172,4 +200,21 @@ public class ScheduledOperationsDataSource extends
return record;
}
+
+ public boolean isOperationsRangeScheduleEnabled() {
+ return operationsRangeNextEnabled;
+ }
+
+ public void setOperationsRangeScheduleEnabled(boolean operationsRangeNextEnabled) {
+ this.operationsRangeNextEnabled = operationsRangeNextEnabled;
+ }
+
+ public int getOperationsRangeScheduled() {
+ return operationsRangeScheduled;
+ }
+
+ public void setOperationsRangeScheduled(int operationsRangeScheduled) {
+ this.operationsRangeScheduled = operationsRangeScheduled;
+ }
+
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/OperationGWTServiceImpl.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/OperationGWTServiceImpl.java
index e44c086..a7f72ed 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/OperationGWTServiceImpl.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/OperationGWTServiceImpl.java
@@ -24,7 +24,6 @@ import org.quartz.CronTrigger;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.criteria.GroupOperationHistoryCriteria;
-import org.rhq.core.domain.criteria.ResourceCriteria;
import org.rhq.core.domain.criteria.ResourceOperationHistoryCriteria;
import org.rhq.core.domain.operation.GroupOperationHistory;
import org.rhq.core.domain.operation.ResourceOperationHistory;
@@ -88,9 +87,9 @@ public class OperationGWTServiceImpl extends AbstractGWTServiceImpl
implements O
*
*/
public
List<DisambiguationReport<ResourceOperationLastCompletedComposite>>
findRecentCompletedOperations(
- ResourceCriteria criteria) {
+ int pageSize) {
- PageControl pageControl = new PageControl(0, -1);
+ PageControl pageControl = new PageControl(0, pageSize);
PageList<ResourceOperationLastCompletedComposite> lastCompletedResourceOps
= operationManager
.findRecentlyCompletedResourceOperations(getSessionSubject(), null,
pageControl);
@@ -105,10 +104,9 @@ public class OperationGWTServiceImpl extends AbstractGWTServiceImpl
implements O
/** Find scheduled operations, disambiguate them and return that list.
*
*/
- public List<DisambiguationReport<ResourceOperationScheduleComposite>>
findScheduledOperations(
- ResourceCriteria criteria) {
+ public List<DisambiguationReport<ResourceOperationScheduleComposite>>
findScheduledOperations(int pageSize) {
- PageControl pageControl = new PageControl(0, -1);
+ PageControl pageControl = new PageControl(0, pageSize);
PageList<ResourceOperationScheduleComposite> scheduledResourceOps =
operationManager
.findCurrentlyScheduledResourceOperations(getSessionSubject(), pageControl);