Daniel Erez has uploaded a new change for review. Change subject: webadmin: Storage main-tab - support column sorting ......................................................................
webadmin: Storage main-tab - support column sorting Applied 'makeSortable' method to columns that are supported by search mechanism. ToDo: implement custom comparators for columns that are not supported by search (e.g. 'Total Space'). Change-Id: I689c86d2fb0e0b9070434d17aa4977a64d660cc1 Signed-off-by: Daniel Erez <[email protected]> --- M backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/StorageDomainFieldAutoCompleter.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabStorageView.java 3 files changed, 54 insertions(+), 32 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/58/27658/1 diff --git a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/StorageDomainFieldAutoCompleter.java b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/StorageDomainFieldAutoCompleter.java index aec46fe..6520e21 100644 --- a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/StorageDomainFieldAutoCompleter.java +++ b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/StorageDomainFieldAutoCompleter.java @@ -5,41 +5,52 @@ import org.ovirt.engine.core.common.businessentities.StorageType; public class StorageDomainFieldAutoCompleter extends BaseConditionFieldAutoCompleter { + public static final String NAME = "NAME"; + public static final String STATUS = "STATUS"; + public static final String DATACENTER = "DATACENTER"; + public static final String TYPE = "TYPE"; + public static final String SIZE = "SIZE"; + public static final String USED = "USED"; + public static final String COMMITTED = "COMMITTED"; + public static final String COMMENT = "COMMENT"; + public static final String DESCRIPTION = "DESCRIPTION"; + + public StorageDomainFieldAutoCompleter() { // Building the basic vervs Dict - mVerbs.add("NAME"); - mVerbs.add("STATUS"); - mVerbs.add("DATACENTER"); - mVerbs.add("TYPE"); - mVerbs.add("SIZE"); - mVerbs.add("USED"); - mVerbs.add("COMMITTED"); - mVerbs.add("COMMENT"); - mVerbs.add("DESCRIPTION"); + mVerbs.add(NAME); + mVerbs.add(STATUS); + mVerbs.add(DATACENTER); + mVerbs.add(TYPE); + mVerbs.add(SIZE); + mVerbs.add(USED); + mVerbs.add(COMMITTED); + mVerbs.add(COMMENT); + mVerbs.add(DESCRIPTION); // Building the autoCompletion Dict buildCompletions(); // Building the types dict - getTypeDictionary().put("NAME", String.class); - getTypeDictionary().put("STATUS", StorageDomainStatus.class); - getTypeDictionary().put("DATACENTER", String.class); - getTypeDictionary().put("TYPE", StorageType.class); - getTypeDictionary().put("SIZE", Integer.class); - getTypeDictionary().put("USED", Integer.class); - getTypeDictionary().put("COMMITTED", Integer.class); - getTypeDictionary().put("COMMENT", String.class); - getTypeDictionary().put("DESCRIPTION", String.class); + getTypeDictionary().put(NAME, String.class); + getTypeDictionary().put(STATUS, StorageDomainStatus.class); + getTypeDictionary().put(DATACENTER, String.class); + getTypeDictionary().put(TYPE, StorageType.class); + getTypeDictionary().put(SIZE, Integer.class); + getTypeDictionary().put(USED, Integer.class); + getTypeDictionary().put(COMMITTED, Integer.class); + getTypeDictionary().put(COMMENT, String.class); + getTypeDictionary().put(DESCRIPTION, String.class); // building the ColumnName Dict - columnNameDict.put("NAME", "storage_name"); - columnNameDict.put("STATUS", "storage_domain_shared_status"); - columnNameDict.put("DATACENTER", "storage_pool_name"); - columnNameDict.put("TYPE", "storage_type"); - columnNameDict.put("SIZE", "available_disk_size"); - columnNameDict.put("USED", "used_disk_size"); - columnNameDict.put("COMMITTED", "commited_disk_size"); - columnNameDict.put("COMMENT", "storage_comment"); - columnNameDict.put("DESCRIPTION", "storage_description"); + columnNameDict.put(NAME, "storage_name"); + columnNameDict.put(STATUS, "storage_domain_shared_status"); + columnNameDict.put(DATACENTER, "storage_pool_name"); + columnNameDict.put(TYPE, "storage_type"); + columnNameDict.put(SIZE, "available_disk_size"); + columnNameDict.put(USED, "used_disk_size"); + columnNameDict.put(COMMITTED, "commited_disk_size"); + columnNameDict.put(COMMENT, "storage_comment"); + columnNameDict.put(DESCRIPTION, "storage_description"); // Building the validation dict buildBasicValidationTable(); @@ -47,8 +58,8 @@ @Override public IAutoCompleter getFieldRelationshipAutoCompleter(String fieldName) { - if ("SIZE".equals(fieldName) || "USED".equals(fieldName) - || "COMMITTED".equals(fieldName)) { + if (SIZE.equals(fieldName) || USED.equals(fieldName) + || COMMITTED.equals(fieldName)) { return NumericConditionRelationAutoCompleter.INSTANCE; } else { return StringConditionRelationAutoCompleter.INSTANCE; @@ -58,10 +69,10 @@ @Override public IConditionValueAutoCompleter getFieldValueAutoCompleter(String fieldName) { IConditionValueAutoCompleter retval = null; - if ("TYPE".equals(fieldName)) { + if (TYPE.equals(fieldName)) { retval = new EnumValueAutoCompleter(StorageType.class); } - else if ("STATUS".equals(fieldName)) { + else if (STATUS.equals(fieldName)) { retval = new EnumValueAutoCompleter(StorageDomainSharedStatus.class); } else { } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java index ce14753..387d5f6 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java @@ -263,11 +263,16 @@ @Override protected void syncSearch() { - SearchParameters tempVar = new SearchParameters(getSearchString(), SearchType.StorageDomain, isCaseSensitiveSearch()); + SearchParameters tempVar = new SearchParameters(applySortOptions(getSearchString()), SearchType.StorageDomain, isCaseSensitiveSearch()); tempVar.setMaxCount(getSearchPageSize()); super.syncSearch(VdcQueryType.Search, tempVar); } + @Override + public boolean supportsServerSideSorting() { + return true; + } + private void newDomain() { if (getWindow() != null) diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabStorageView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabStorageView.java index 2a06fd1..8e65f7a 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabStorageView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabStorageView.java @@ -6,6 +6,7 @@ import org.ovirt.engine.core.common.businessentities.StorageDomainType; import org.ovirt.engine.core.common.businessentities.StorageFormatType; import org.ovirt.engine.core.common.businessentities.StorageType; +import org.ovirt.engine.core.searchbackend.StorageDomainFieldAutoCompleter; 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; @@ -55,6 +56,7 @@ return object.getStorageName(); } }; + nameColumn.makeSortable(StorageDomainFieldAutoCompleter.NAME); getTable().addColumn(nameColumn, constants.domainNameStorage(), "150px"); //$NON-NLS-1$ CommentColumn<StorageDomain> commentColumn = new CommentColumn<StorageDomain>(); @@ -74,6 +76,7 @@ return object.getStorageType(); } }; + storageTypeColumn.makeSortable(StorageDomainFieldAutoCompleter.TYPE); getTable().addColumn(storageTypeColumn, constants.storageTypeStorage(), "150px"); //$NON-NLS-1$ TextColumnWithTooltip<StorageDomain> formatColumn = new EnumColumn<StorageDomain, StorageFormatType>() { @@ -95,6 +98,7 @@ } } }; + crossDataCenterStatusColumn.makeSortable(StorageDomainFieldAutoCompleter.STATUS); getTable().addColumn(crossDataCenterStatusColumn, constants.crossDcStatusStorage(), "210px"); //$NON-NLS-1$ StorageSizeColumn<StorageDomain> totalSpaceColumn = new StorageSizeColumn<StorageDomain>() { @@ -113,6 +117,7 @@ return (long) availableDiskSize; } }; + freeSpaceColumn.makeSortable(StorageDomainFieldAutoCompleter.SIZE); getTable().addColumn(freeSpaceColumn, constants.freeSpaceStorage(), "130px"); //$NON-NLS-1$ TextColumnWithTooltip<StorageDomain> descriptionColumn = new TextColumnWithTooltip<StorageDomain>() { @@ -121,6 +126,7 @@ return object.getDescription(); } }; + descriptionColumn.makeSortable(StorageDomainFieldAutoCompleter.DESCRIPTION); getTable().addColumn(descriptionColumn, constants.domainDescriptionStorage(), "200px"); //$NON-NLS-1$ getTable().addActionButton(new WebAdminButtonDefinition<StorageDomain>(constants.newDomainStorage()) { -- To view, visit http://gerrit.ovirt.org/27658 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I689c86d2fb0e0b9070434d17aa4977a64d660cc1 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Daniel Erez <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
