Alexander Wels has uploaded a new change for review. Change subject: webadmin: cluster sorting ......................................................................
webadmin: cluster sorting - Implemented sorting in cluster main tab - Implemented sorting in cluster sub tabs. - Fixed bug that would cause invalid SQL to be generated when sorting. - Fixed bug that caused sorting to be ignored when updating hosts and VMs for clusters. Change-Id: Ib7b2d9938a7e9b7e32238a284c0ddca6568b3bdc Signed-off-by: Alexander Wels <[email protected]> --- M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java M backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ClusterConditionFieldAutoCompleter.java M backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/AffinityGroupComparator.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/NetworkComparator.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/VDSComparator.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/VMComparator.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/AbstractSubTabAffinityGroupsView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabClusterView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterHostView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterNetworkView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterVmView.java 13 files changed, 231 insertions(+), 12 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/61/28361/1 diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java index fa4e9ff..35f80f3 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java @@ -4,7 +4,6 @@ import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; @@ -187,6 +186,7 @@ parameterSource); } + @Override public List<VDSGroup> getTrustedClusters() { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("trusted_service", true); @@ -327,7 +327,9 @@ for (VDSGroupHostsAndVMs groupDetail : dataList) { groupsById.get(groupDetail.getVdsGroupId()).setGroupHostsAndVms(groupDetail); } - return new ArrayList<VDSGroup>(groupsById.values()); + //The VDS groups have been updated, but we want to keep the order, so return the original list which is + //in the right order. + return vdsGroups; } } diff --git a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ClusterConditionFieldAutoCompleter.java b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ClusterConditionFieldAutoCompleter.java index 76a67fd..70a5452 100644 --- a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ClusterConditionFieldAutoCompleter.java +++ b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ClusterConditionFieldAutoCompleter.java @@ -3,24 +3,27 @@ import org.ovirt.engine.core.common.businessentities.ArchitectureType; public class ClusterConditionFieldAutoCompleter extends BaseConditionFieldAutoCompleter { + public static final String NAME = "NAME"; + public static final String DESCRIPTION = "DESCRIPTION"; + public ClusterConditionFieldAutoCompleter() { // Building the basic vervs Dict - mVerbs.add("NAME"); - mVerbs.add("DESCRIPTION"); + mVerbs.add(NAME); + mVerbs.add(DESCRIPTION); mVerbs.add("COMMENT"); mVerbs.add("ARCHITECTURE"); // Building the autoCompletion Dict buildCompletions(); // Building the types dict - getTypeDictionary().put("NAME", String.class); - getTypeDictionary().put("DESCRIPTION", String.class); + getTypeDictionary().put(NAME, String.class); + getTypeDictionary().put(DESCRIPTION, String.class); getTypeDictionary().put("COMMENT", String.class); getTypeDictionary().put("ARCHITECTURE", ArchitectureType.class); // building the ColumnName Dict - columnNameDict.put("NAME", "name"); - columnNameDict.put("DESCRIPTION", "description"); + columnNameDict.put(NAME, "name"); + columnNameDict.put(DESCRIPTION, "description"); columnNameDict.put("COMMENT", "free_text_comment"); columnNameDict.put("ARCHITECTURE", "architecture"); diff --git a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java index 4ac5e05..e0d9926 100644 --- a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java +++ b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java @@ -245,7 +245,7 @@ "vds_groups_view", "vds_groups_storage_domain", "vds_group_id", - "name ASC ")); + "name ASC")); put(SearchObjects.QUOTA_OBJ_NAME, new EntitySearchInfo(new QuotaConditionFieldAutoCompleter(), new QuotaConditionFieldAutoCompleter(), "quota_view", diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/AffinityGroupComparator.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/AffinityGroupComparator.java new file mode 100644 index 0000000..cccaee7 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/AffinityGroupComparator.java @@ -0,0 +1,52 @@ +package org.ovirt.engine.ui.uicommonweb.comparators; + +import java.util.Comparator; + +import org.ovirt.engine.core.common.businessentities.comparators.LexoNumericComparator; +import org.ovirt.engine.core.common.scheduling.AffinityGroup; + +public class AffinityGroupComparator { + private static final LexoNumericComparator lexoNumeric = new LexoNumericComparator(); + + /** + * Comparator for the name field in {@code AffinityGroup}. + */ + public static final Comparator<AffinityGroup> NAME = new Comparator<AffinityGroup>() { + @Override + public int compare(AffinityGroup group1, AffinityGroup group2) { + return lexoNumeric.compare(group1.getName(), group2.getName()); + } + }; + + /** + * Comparator for the description field in {@code AffinityGroup}. + */ + public static final Comparator<AffinityGroup> DESCRIPTION = new Comparator<AffinityGroup>() { + @Override + public int compare(AffinityGroup group1, AffinityGroup group2) { + return lexoNumeric.compare(group1.getDescription(), group2.getDescription()); + } + }; + + /** + * Comparator for the positive field in {@code AffinityGroup}. + */ + public static final Comparator<AffinityGroup> POLARITY = new Comparator<AffinityGroup>() { + @Override + public int compare(AffinityGroup group1, AffinityGroup group2) { + return ((Boolean)group1.isPositive()).compareTo(group2.isPositive()); + } + }; + + /** + * Comparator for the enforcing field in {@code AffinityGroup}. + */ + public static final Comparator<AffinityGroup> ENFORCING = new Comparator<AffinityGroup>() { + @Override + public int compare(AffinityGroup group1, AffinityGroup group2) { + return ((Boolean)group1.isEnforcing()).compareTo(group2.isEnforcing()); + } + }; + + //TODO sort on members, which is a list of strings, comma separated? +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/NetworkComparator.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/NetworkComparator.java index 4587655..b6e6142 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/NetworkComparator.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/NetworkComparator.java @@ -4,15 +4,40 @@ import org.ovirt.engine.core.common.businessentities.comparators.LexoNumericComparator; import org.ovirt.engine.core.common.businessentities.network.Network; +import org.ovirt.engine.ui.uicompat.EnumTranslator; public class NetworkComparator { + private static final LexoNumericComparator lexoNumeric = new LexoNumericComparator(); + /** * Comparator for the description field in {@code Network}. */ public static final Comparator<Network> DESCRIPTION = new Comparator<Network>() { @Override public int compare(Network network1, Network network2) { - return new LexoNumericComparator().compare(network1.getDescription(), network2.getDescription()); + return lexoNumeric.compare(network1.getDescription(), network2.getDescription()); } }; + + /** + * Comparator for the name field in {@code Network}. + */ + public static final Comparator<Network> NAME = new Comparator<Network>() { + @Override + public int compare(Network network1, Network network2) { + return lexoNumeric.compare(network1.getName(), network2.getName()); + } + }; + + /** + * Comparator for the status field in {@code Network}. + */ + public static final Comparator<Network> STATUS = new Comparator<Network>() { + @Override + public int compare(Network network1, Network network2) { + return lexoNumeric.compare(EnumTranslator.createAndTranslate(network1.getCluster().getStatus()), + EnumTranslator.createAndTranslate(network2.getCluster().getStatus())); + } + }; + } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/VDSComparator.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/VDSComparator.java new file mode 100644 index 0000000..03c3b5f --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/VDSComparator.java @@ -0,0 +1,65 @@ +package org.ovirt.engine.ui.uicommonweb.comparators; + +import java.util.Comparator; + +import org.ovirt.engine.core.common.businessentities.VDS; +import org.ovirt.engine.core.common.businessentities.comparators.LexoNumericComparator; +import org.ovirt.engine.ui.uicompat.EnumTranslator; + +public class VDSComparator { + private static final LexoNumericComparator lexoNumeric = new LexoNumericComparator(); + + /** + * Comparator for the name field in {@code VDS}. + */ + public static final Comparator<VDS> NAME = new Comparator<VDS>() { + @Override + public int compare(VDS host1, VDS host2) { + return lexoNumeric.compare(host1.getName(), host2.getName()); + } + }; + + /** + * Comparator for the host name field in {@code VDS}. + */ + public static final Comparator<VDS> HOST = new Comparator<VDS>() { + @Override + public int compare(VDS host1, VDS host2) { + return lexoNumeric.compare(host1.getHostName(), host2.getHostName()); + } + }; + + /** + * Comparator for the status name field in {@code VDS}. + */ + public static final Comparator<VDS> STATUS = new Comparator<VDS>() { + @Override + public int compare(VDS host1, VDS host2) { + return lexoNumeric.compare(EnumTranslator.createAndTranslate(host1.getStatus()), + EnumTranslator.createAndTranslate(host2.getStatus())); + } + }; + + /** + * Comparator for the number of active VMs field in {@code VDS}. + */ + public static final Comparator<VDS> LOAD = new Comparator<VDS>() { + @Override + public int compare(VDS host1, VDS host2) { + Integer numOfActiveVMs1 = host1.getVmActive() != null ? host1.getVmActive() : 0; + Integer numOfActiveVMs2 = host2.getVmActive() != null ? host2.getVmActive() : 0; + return numOfActiveVMs1.compareTo(numOfActiveVMs2); + } + }; + + /** + * Comparator for the console address field in {@code VDS}. + */ + public static final Comparator<VDS> CONSOLE_OVERRIDE = new Comparator<VDS>() { + @Override + public int compare(VDS host1, VDS host2) { + return lexoNumeric.compare(host1.getConsoleAddress(), host2.getConsoleAddress()); + } + }; + +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/VMComparator.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/VMComparator.java new file mode 100644 index 0000000..6f25113 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/VMComparator.java @@ -0,0 +1,43 @@ +package org.ovirt.engine.ui.uicommonweb.comparators; + +import java.util.Comparator; + +import org.ovirt.engine.core.common.businessentities.VM; +import org.ovirt.engine.core.common.businessentities.comparators.LexoNumericComparator; +import org.ovirt.engine.ui.uicompat.EnumTranslator; + +public class VMComparator { + private static final LexoNumericComparator lexoNumeric = new LexoNumericComparator(); + + /** + * Comparator for the name field in {@code VM}. + */ + public static final Comparator<VM> NAME = new Comparator<VM>() { + @Override + public int compare(VM vm1, VM vm2) { + return lexoNumeric.compare(vm1.getName(), vm2.getName()); + } + }; + + /** + * Comparator for the status field in {@code VM}. + */ + public static final Comparator<VM> STATUS = new Comparator<VM>() { + @Override + public int compare(VM vm1, VM vm2) { + return lexoNumeric.compare(EnumTranslator.createAndTranslate(vm1.getStatus()), + EnumTranslator.createAndTranslate(vm2.getStatus())); + } + }; + + /** + * Comparator for the name field in {@code VM}. + */ + public static final Comparator<VM> UPTIME = new Comparator<VM>() { + @Override + public int compare(VM vm1, VM vm2) { + //Convert to long so there is drift due to comparing doubles. + return ((Long)vm1.getRoundedElapsedTime().longValue()).compareTo(vm2.getRoundedElapsedTime().longValue()); + } + }; +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java index 0a69594..35818c4 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java @@ -286,11 +286,17 @@ @Override protected void syncSearch() { - SearchParameters tempVar = new SearchParameters(getSearchString(), SearchType.Cluster, isCaseSensitiveSearch()); + SearchParameters tempVar = new SearchParameters(applySortOptions(getSearchString()), SearchType.Cluster, + isCaseSensitiveSearch()); tempVar.setMaxCount(getSearchPageSize()); super.syncSearch(VdcQueryType.Search, tempVar); } + @Override + public boolean supportsServerSideSorting() { + return true; + } + public void newEntity() { if (getWindow() != null) diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/AbstractSubTabAffinityGroupsView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/AbstractSubTabAffinityGroupsView.java index f0bc0ce..526ddd6 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/AbstractSubTabAffinityGroupsView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/AbstractSubTabAffinityGroupsView.java @@ -7,6 +7,7 @@ import org.ovirt.engine.ui.common.widget.table.column.BooleanColumn; import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip; import org.ovirt.engine.ui.uicommonweb.UICommand; +import org.ovirt.engine.ui.uicommonweb.comparators.AffinityGroupComparator; import org.ovirt.engine.ui.uicommonweb.models.ListWithDetailsModel; import org.ovirt.engine.ui.uicommonweb.models.configure.scheduling.affinity_groups.list.AffinityGroupListModel; import org.ovirt.engine.ui.webadmin.ApplicationConstants; @@ -32,6 +33,7 @@ return object.getName(); } }; + nameColumn.makeSortable(AffinityGroupComparator.NAME); getTable().addColumn(nameColumn, constants.nameAffinityGroup(), "150px"); //$NON-NLS-1$ TextColumnWithTooltip<AffinityGroup> descColumn = new TextColumnWithTooltip<AffinityGroup>() { @@ -40,6 +42,7 @@ return object.getDescription(); } }; + descColumn.makeSortable(AffinityGroupComparator.DESCRIPTION); getTable().addColumn(descColumn, constants.descriptionAffinityGroup(), "150px"); //$NON-NLS-1$ BooleanColumn<AffinityGroup> polarityColumn = @@ -50,6 +53,7 @@ return object.isPositive(); } }; + polarityColumn.makeSortable(AffinityGroupComparator.POLARITY); getTable().addColumn(polarityColumn, constants.polarityAffinityGroup(), "100px"); //$NON-NLS-1$ BooleanColumn<AffinityGroup> enforceColumn = @@ -60,6 +64,7 @@ return object.isEnforcing(); } }; + enforceColumn.makeSortable(AffinityGroupComparator.ENFORCING); getTable().addColumn(enforceColumn, constants.enforceAffinityGroup(), "100px"); //$NON-NLS-1$ getTable().addColumn(new TextColumnWithTooltip<AffinityGroup>() { diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabClusterView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabClusterView.java index 079d747..1d3677f 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabClusterView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabClusterView.java @@ -4,6 +4,7 @@ import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.mode.ApplicationMode; +import org.ovirt.engine.core.searchbackend.ClusterConditionFieldAutoCompleter; import org.ovirt.engine.ui.common.idhandler.ElementIdHandler; import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider; import org.ovirt.engine.ui.common.widget.action.ActionButtonDefinition; @@ -25,7 +26,8 @@ import com.google.gwt.core.client.GWT; import com.google.inject.Inject; -public class MainTabClusterView extends AbstractMainTabWithDetailsTableView<VDSGroup, ClusterListModel> implements MainTabClusterPresenter.ViewDef { +public class MainTabClusterView extends AbstractMainTabWithDetailsTableView<VDSGroup, ClusterListModel> implements + MainTabClusterPresenter.ViewDef { interface ViewIdHandler extends ElementIdHandler<MainTabClusterView> { ViewIdHandler idHandler = GWT.create(ViewIdHandler.class); @@ -49,6 +51,7 @@ return object.getName(); } }; + nameColumn.makeSortable(ClusterConditionFieldAutoCompleter.NAME); getTable().addColumn(nameColumn, constants.nameCluster(), "150px"); //$NON-NLS-1$ CommentColumn<VDSGroup> commentColumn = new CommentColumn<VDSGroup>(); @@ -78,6 +81,7 @@ return object.getdescription(); } }; + descColumn.makeSortable(ClusterConditionFieldAutoCompleter.DESCRIPTION); getTable().addColumn(descColumn, constants.descriptionCluster(), "300px"); //$NON-NLS-1$ if (ApplicationModeHelper.getUiMode() != ApplicationMode.GlusterOnly) { diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterHostView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterHostView.java index f649b0f..dfe00cf 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterHostView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterHostView.java @@ -10,6 +10,7 @@ import org.ovirt.engine.ui.common.widget.table.column.EnumColumn; import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip; import org.ovirt.engine.ui.uicommonweb.UICommand; +import org.ovirt.engine.ui.uicommonweb.comparators.VDSComparator; import org.ovirt.engine.ui.uicommonweb.models.ApplicationModeHelper; import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterHostListModel; import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterListModel; @@ -41,6 +42,7 @@ return object.getName(); } }; + nameColumn.makeSortable(VDSComparator.NAME); getTable().addColumn(nameColumn, constants.nameClusterHost(), "220px"); //$NON-NLS-1$ TextColumnWithTooltip<VDS> hostColumn = new TextColumnWithTooltip<VDS>() { @@ -49,6 +51,7 @@ return object.getHostName(); } }; + hostColumn.makeSortable(VDSComparator.HOST); getTable().addColumn(hostColumn, constants.hostIpClusterHost(), "220px"); //$NON-NLS-1$ TextColumnWithTooltip<VDS> statusColumn = new EnumColumn<VDS, VDSStatus>() { @@ -57,6 +60,7 @@ return object.getStatus(); } }; + statusColumn.makeSortable(VDSComparator.STATUS); getTable().addColumn(statusColumn, constants.statusClusterHost(), "120px"); //$NON-NLS-1$ if (ApplicationModeHelper.isModeSupported(ApplicationMode.VirtOnly)) { @@ -67,6 +71,7 @@ return ConstantsManager.getInstance().getMessages().numberOfVmsForHostsLoad(numOfActiveVMs); } }; + loadColumn.makeSortable(VDSComparator.LOAD); getTable().addColumn(loadColumn, constants.loadClusterHost(), "120px"); //$NON-NLS-1$ } @@ -78,6 +83,7 @@ } }; + consoleColumn.makeSortable(VDSComparator.CONSOLE_OVERRIDE); getTable().addColumn(consoleColumn, constants.overriddenConsoleAddress(), "220px"); //$NON-NLS-1$ } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterNetworkView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterNetworkView.java index 4f350c4..8903625 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterNetworkView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterNetworkView.java @@ -15,6 +15,7 @@ import org.ovirt.engine.ui.common.widget.table.column.SafeHtmlWithSafeHtmlTooltipColumn; import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip; import org.ovirt.engine.ui.uicommonweb.UICommand; +import org.ovirt.engine.ui.uicommonweb.comparators.NetworkComparator; import org.ovirt.engine.ui.uicommonweb.models.ApplicationModeHelper; import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterListModel; import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterNetworkListModel; @@ -71,6 +72,7 @@ return object.getName(); } }; + nameColumn.makeSortable(NetworkComparator.NAME); getTable().addColumn(nameColumn, constants.nameNetwork(), "400px"); //$NON-NLS-1$ TextColumnWithTooltip<Network> statusColumn = new EnumColumn<Network, NetworkStatus>() { @@ -79,6 +81,7 @@ return object.getCluster().getStatus(); } }; + statusColumn.makeSortable(NetworkComparator.STATUS); getTable().addColumn(statusColumn, constants.statusNetwork(), "100px"); //$NON-NLS-1$ SafeHtmlWithSafeHtmlTooltipColumn<Network> roleColumn = @@ -131,6 +134,7 @@ return object.getDescription(); } }; + descColumn.makeSortable(NetworkComparator.DESCRIPTION); getTable().addColumn(descColumn, constants.descriptionNetwork(), "400px"); //$NON-NLS-1$ if (ApplicationModeHelper.isModeSupported(ApplicationMode.VirtOnly)) { diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterVmView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterVmView.java index 9c42829..760b118 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterVmView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterVmView.java @@ -8,6 +8,7 @@ import org.ovirt.engine.ui.common.uicommon.model.SearchableDetailModelProvider; import org.ovirt.engine.ui.common.widget.table.column.EnumColumn; import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip; +import org.ovirt.engine.ui.uicommonweb.comparators.VMComparator; import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterListModel; import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterVmListModel; import org.ovirt.engine.ui.webadmin.ApplicationConstants; @@ -38,6 +39,7 @@ return object.getName(); } }; + nameColumn.makeSortable(VMComparator.NAME); getTable().addColumn(nameColumn, constants.nameVm(), "220px"); //$NON-NLS-1$ getTable().addColumn(new VmTypeColumn(), constants.empty(), "30px"); //$NON-NLS-1$ @@ -48,6 +50,7 @@ return object.getStatus(); } }; + statusColumn.makeSortable(VMComparator.STATUS); getTable().addColumn(statusColumn, constants.statusVm(), "220px"); //$NON-NLS-1$ TextColumnWithTooltip<VM> uptimeColumn = new UptimeColumn<VM>() { @@ -56,6 +59,7 @@ return object.getRoundedElapsedTime(); } }; + uptimeColumn.makeSortable(VMComparator.UPTIME); getTable().addColumn(uptimeColumn, constants.uptimeVm(), "220px"); //$NON-NLS-1$ } -- To view, visit http://gerrit.ovirt.org/28361 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib7b2d9938a7e9b7e32238a284c0ddca6568b3bdc Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Alexander Wels <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
