/*
* RHQ Management Platform
* Copyright (C) 2005-2008 Red Hat, Inc.
* All rights reserved.
*
* 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.common.paging;
import org.rhq.core.gui.util.FacesContextUtility;
import org.rhq.enterprise.gui.admin.ListAlertTemplatesUIBean;
import org.rhq.enterprise.gui.alert.ListAlertDefinitionsUIBean;
import org.rhq.enterprise.gui.alert.ListAlertHistoryUIBean;
import org.rhq.enterprise.gui.alert.ListGroupAlertDefinitionsUIBean;
import org.rhq.enterprise.gui.alert.ListGroupAlertHistoryUIBean;
import org.rhq.enterprise.gui.common.framework.PagedDataTableUIBean;
import org.rhq.enterprise.gui.configuration.group.GroupResourceConfigurationHistoryDetailsUIBean;
import org.rhq.enterprise.gui.configuration.group.GroupResourceConfigurationHistoryUIBean;
import org.rhq.enterprise.gui.configuration.history.ListConfigurationUpdateUIBean;
import org.rhq.enterprise.gui.content.AuditTrailUIBean;
import org.rhq.enterprise.gui.content.AvailableResourceReposUIBean;
import org.rhq.enterprise.gui.content.ContentSourceCandidateReposUIBean;
import org.rhq.enterprise.gui.content.ContentSourceReposUIBean;
import org.rhq.enterprise.gui.content.ContentSourceSyncResultsUIBean;
import org.rhq.enterprise.gui.content.DeployPackagesUIBean;
import org.rhq.enterprise.gui.content.ListCompletedContentRequestsUIBean;
import org.rhq.enterprise.gui.content.ListContentSourcesUIBean;
import org.rhq.enterprise.gui.content.ListInProgressContentRequestsUIBean;
import org.rhq.enterprise.gui.content.ListPackageHistoryUIBean;
import org.rhq.enterprise.gui.content.ListPackageTypesUIBean;
import org.rhq.enterprise.gui.content.ListPackagesUIBean;
import org.rhq.enterprise.gui.content.ListReposUIBean;
import org.rhq.enterprise.gui.content.RepoAdvisoryUIBean;
import org.rhq.enterprise.gui.content.RepoAssociationsUIBean;
import org.rhq.enterprise.gui.content.RepoContentSourcesUIBean;
import org.rhq.enterprise.gui.content.RepoDisassociationsUIBean;
import org.rhq.enterprise.gui.content.RepoDistributionUIBean;
import org.rhq.enterprise.gui.content.RepoImportUIBean;
import org.rhq.enterprise.gui.content.RepoPackageVersionsUIBean;
import org.rhq.enterprise.gui.content.RepoResourcesUIBean;
import org.rhq.enterprise.gui.content.RepoSubscriptionsUIBean;
import org.rhq.enterprise.gui.content.RepoUnsubscriptionsUIBean;
import org.rhq.enterprise.gui.content.ResourcePackageVersionsUIBean;
import org.rhq.enterprise.gui.content.ResourceReposUIBean;
import org.rhq.enterprise.gui.content.ResourceUpdatePackageVersionsUIBean;
import org.rhq.enterprise.gui.content.ShowContentServiceRequestUIBean;
import org.rhq.enterprise.gui.definition.group.GroupDefinitionUIBean;
import org.rhq.enterprise.gui.definition.group.ListGroupDefinitionsUIBean;
import org.rhq.enterprise.gui.discovery.AutoDiscoveryQueueUIBean;
import org.rhq.enterprise.gui.event.EventHistoryUIBean;
import org.rhq.enterprise.gui.ha.AffinityGroupSubscribedAgentsUIBean;
import org.rhq.enterprise.gui.ha.AffinityGroupSubscribedServersUIBean;
import org.rhq.enterprise.gui.ha.AffinityGroupUnsubscribedAgentsUIBean;
import org.rhq.enterprise.gui.ha.AffinityGroupUnsubscribedServersUIBean;
import org.rhq.enterprise.gui.ha.ListAffinityGroupsUIBean;
import org.rhq.enterprise.gui.ha.ListAgentsUIBean;
import org.rhq.enterprise.gui.ha.ListPartitionEventsUIBean;
import org.rhq.enterprise.gui.ha.ListServersUIBean;
import org.rhq.enterprise.gui.ha.ViewAffinityGroupAgentMembersUIBean;
import org.rhq.enterprise.gui.ha.ViewAffinityGroupServerMembersUIBean;
import org.rhq.enterprise.gui.ha.ViewAgentUIBean;
import org.rhq.enterprise.gui.ha.ViewPartitionEventUIBean;
import org.rhq.enterprise.gui.ha.ViewServerUIBean;
import org.rhq.enterprise.gui.inventory.browse.BrowseGroupsUIBean;
import org.rhq.enterprise.gui.inventory.browse.BrowseResourcesUIBean;
import org.rhq.enterprise.gui.inventory.group.ListResourceGroupMembersUIBean;
import org.rhq.enterprise.gui.inventory.group.ResourceGroupSummaryUIBean;
import org.rhq.enterprise.gui.inventory.group.ViewGroupConnectionPropertyDetailsUIBean;
import org.rhq.enterprise.gui.inventory.group.ViewGroupConnectionPropertyHistoryUIBean;
import org.rhq.enterprise.gui.inventory.resource.ListChildResourcesUIBean;
import org.rhq.enterprise.gui.inventory.resource.ListContainingGroupsUIBean;
import org.rhq.enterprise.gui.inventory.resource.ListCreateResourceHistoryUIBean;
import org.rhq.enterprise.gui.inventory.resource.ListDeleteResourceHistoryUIBean;
import org.rhq.enterprise.gui.inventory.resource.history.ListAvailabilityHistoryUIBean;
import org.rhq.enterprise.gui.inventory.resource.history.ListPluginConfigurationUpdateUIBean;
import org.rhq.enterprise.gui.measurement.calltime.CallTimeUIBean;
import org.rhq.enterprise.gui.measurement.schedule.group.ListResourceGroupMeasurementScheduleUIBean;
import org.rhq.enterprise.gui.measurement.schedule.resource.ListResourceMeasurementScheduleUIBean;
import org.rhq.enterprise.gui.measurement.tables.group.ResourceGroupMetricsTableUIBean;
import org.rhq.enterprise.gui.operation.history.group.ResourceGroupOperationCompletedHistoryUIBean;
import org.rhq.enterprise.gui.operation.history.group.ResourceGroupOperationHistoryDetailsUIBean;
import org.rhq.enterprise.gui.operation.history.group.ResourceGroupOperationPendingHistoryUIBean;
import org.rhq.enterprise.gui.operation.history.resource.ResourceOperationCompletedHistoryUIBean;
import org.rhq.enterprise.gui.operation.history.resource.ResourceOperationPendingHistoryUIBean;
import org.rhq.enterprise.gui.subsystem.SubsystemAlertDefinitionUIBean;
import org.rhq.enterprise.gui.subsystem.SubsystemAlertHistoryUIBean;
import org.rhq.enterprise.gui.subsystem.SubsystemConfigurationUpdateUIBean;
import org.rhq.enterprise.gui.subsystem.SubsystemOOBHistoryUIBean;
import org.rhq.enterprise.gui.subsystem.SubsystemOperationHistoryUIBean;
/**
* @author Joseph Marques
*/
public enum PageControlView {
// Use this across any view that doesn't want paging of tabular data
NONE, // this is deprecated in favor of using an unlimited PageControlView
// Configuration
/** */
ConfigurationHistory(ListConfigurationUpdateUIBean.class),
/** */
PluginConfigurationHistory(ListPluginConfigurationUpdateUIBean.class),
// Content
/** */
InstalledPackagesList(ListPackagesUIBean.class),
/** */
AllPackageVersionsList(ListPackageHistoryUIBean.class),
/** */
PackageTypesList(ListPackageTypesUIBean.class),
/** */
ContentInProgressRequestsList(ListInProgressContentRequestsUIBean.class),
/** */
ContentCompletedRequestsList(ListCompletedContentRequestsUIBean.class),
/** */
ContentSourcesList(ListContentSourcesUIBean.class),
/** */
ReposToImportList(RepoImportUIBean.class),
/** */
ReposList(ListReposUIBean.class),
/** */
ContentSourceSyncResultsList(ContentSourceSyncResultsUIBean.class),
/** */
ContentSourceReposList(ContentSourceReposUIBean.class),
/** */
RepoContentSourcesList(RepoContentSourcesUIBean.class),
/** */
RepoResourcesList(RepoResourcesUIBean.class),
/** */
ContentSourceCandidateReposList(ContentSourceCandidateReposUIBean.class),
/** */
RepoPackageVersionsList(RepoPackageVersionsUIBean.class),
/** */
RepoDistributionList(RepoDistributionUIBean.class),
/** */
RepoAdvisoryList(RepoAdvisoryUIBean.class),
/** */
RepoAssociationsList(RepoAssociationsUIBean.class),
/** */
RepoDisassociationsList(RepoDisassociationsUIBean.class),
/** */
RepoSubscriptionsList(RepoSubscriptionsUIBean.class),
/** */
RepoUnsubscriptionsList(RepoUnsubscriptionsUIBean.class),
/** */
ResourceReposList(ResourceReposUIBean.class),
/** */
AvailableResourceReposList(AvailableResourceReposUIBean.class),
/** */
ResourcePackageVersionsList(ResourcePackageVersionsUIBean.class),
/** */
ResourceUpdatePackageVersionsList(ResourceUpdatePackageVersionsUIBean.class),
/** */
PackagesToDeployList(DeployPackagesUIBean.class),
/** */
InstalledPackageHistoryList(ShowContentServiceRequestUIBean.class),
/** */
AuditTrailList(AuditTrailUIBean.class),
/** */
//AvailableResourcePackageVersionList(AvailableResourceReposUIBean.class),
// Alerts
/** */
AlertDefinitionsList(ListAlertDefinitionsUIBean.class),
/** */
AlertHistoryList(ListAlertHistoryUIBean.class),
/** */
GroupAlertDefinitionsList(ListGroupAlertDefinitionsUIBean.class),
/** */
GroupAlertHistoryList(ListGroupAlertHistoryUIBean.class),
/** */
AlertTemplatesList(ListAlertTemplatesUIBean.class),
// Resource Control
/** */
ResourceOperationCompletedHistory(ResourceOperationCompletedHistoryUIBean.class),
/** */
ResourceOperationPendingHistory(ResourceOperationPendingHistoryUIBean.class),
// Resource Group Control
/** */
ResourceGroupOperationCompletedHistory(ResourceGroupOperationCompletedHistoryUIBean.class),
/** */
ResourceGroupOperationPendingHistory(ResourceGroupOperationPendingHistoryUIBean.class),
/** */
ResourceGroupOperationHistoryDetails(ResourceGroupOperationHistoryDetailsUIBean.class),
// Group Definition
/** */
GroupDefinitionsList(ListGroupDefinitionsUIBean.class),
/** */
GroupDefinitionMembers(GroupDefinitionUIBean.class),
// Inventory
/** */
ChildResourcesList(ListChildResourcesUIBean.class),
/** */
CreateResourceHistory(ListCreateResourceHistoryUIBean.class),
/** */
DeleteResourceHistory(ListDeleteResourceHistoryUIBean.class),
/** */
ContainingGroupsList(ListContainingGroupsUIBean.class),
// Group Inventory
/** */
ResourceGroupMemberList(ListResourceGroupMembersUIBean.class),
MiniResourceGroupMemberList(ResourceGroupSummaryUIBean.class),
/** */
GroupConnectionPropertyUpdateHistory(ViewGroupConnectionPropertyHistoryUIBean.class),
/** */
GroupConnectionPropertyUpdateDetails(ViewGroupConnectionPropertyDetailsUIBean.class),
/** */
ResourceGroupHealthSummary(ResourceGroupMetricsTableUIBean.class),
// Group Configuration
/** */
GroupResourceConfigurationUpdateHistory(GroupResourceConfigurationHistoryUIBean.class),
/** */
GroupResourceConfigurationUpdateDetails(GroupResourceConfigurationHistoryDetailsUIBean.class),
// Auto Discovery
/** */
AutoDiscoveryPlatformList(AutoDiscoveryQueueUIBean.class),
// High Availability (HA)
/** */
ServersList(ListServersUIBean.class),
/** */
ServerConnectedAgentsView(ViewServerUIBean.class),
/** */
AgentsList(ListAgentsUIBean.class),
/** */
ListAffinityGroups(ListAffinityGroupsUIBean.class),
/** */
AffinityGroupSubscribedAgents(AffinityGroupSubscribedAgentsUIBean.class),
/** */
AffinityGroupUnsubscribedAgents(AffinityGroupUnsubscribedAgentsUIBean.class),
/** */
AffinityGroupSubscribedServers(AffinityGroupSubscribedServersUIBean.class),
/** */
AffinityGroupUnsubscribedServers(AffinityGroupUnsubscribedServersUIBean.class),
/** */
AffinityGroupAgentMembersView(ViewAffinityGroupAgentMembersUIBean.class),
/** */
AffinityGroupServerMembersView(ViewAffinityGroupServerMembersUIBean.class),
/** */
AgentFailoverListView(ViewAgentUIBean.class),
/** */
ListPartitionEventsView(ListPartitionEventsUIBean.class),
/** */
PartitionEventsDetailsView(ViewPartitionEventUIBean.class),
// Monitor
/** */
AutoGroupMeasurementScheduleList(ListResourceGroupMeasurementScheduleUIBean.class, true),
/** */
ResourceMeasurementScheduleList(ListResourceMeasurementScheduleUIBean.class, true),
/** */
ResourceGroupMeasurementScheduleList(ListResourceGroupMeasurementScheduleUIBean.class, true),
/** */
EventsHistoryList(EventHistoryUIBean.class),
/** */
CallTimeHistory(CallTimeUIBean.class),
AvailabilityHistoryList(ListAvailabilityHistoryUIBean.class),
// Subsystem Views
/** */
SubsystemConfigurationHistory(SubsystemConfigurationUpdateUIBean.class),
/** */
SubsystemResourceOperationHistory(SubsystemOperationHistoryUIBean.class),
/** */
SubsystemAlertHistory(SubsystemAlertHistoryUIBean.class),
/** */
SubsystemAlertDefinition(SubsystemAlertDefinitionUIBean.class),
/** */
SubsystemOOBHistory(SubsystemOOBHistoryUIBean.class),
// Inventory Browser
/** */
BrowseResources(BrowseResourcesUIBean.class),
/** */
BrowseGroups(BrowseGroupsUIBean.class);
private Class<? extends PagedDataTableUIBean> beanClass;
private boolean isUnlimited = false;
private PageControlView() {
this.beanClass = null;
}
private <T extends PagedDataTableUIBean> PageControlView(Class<T> beanClass) {
this.beanClass = beanClass;
}
private <T extends PagedDataTableUIBean> PageControlView(Class<T> beanClass, boolean isUnlimited) {
this.beanClass = beanClass;
this.isUnlimited = isUnlimited;
}
public PagedDataTableUIBean getPagedDataTableUIBean() {
PagedDataTableUIBean uiBean = FacesContextUtility.getBean(beanClass);
return uiBean;
}
public boolean isUnlimited() {
return isUnlimited;
}
public String toString() {
return PageControlView.class.getSimpleName() + "["
+ (beanClass == null ? "unlimited" : beanClass.getSimpleName()) + "]";
}
}