Lior Vernia has uploaded a new change for review. Change subject: webadmin: Render Network/Templates subtab columns sortable ......................................................................
webadmin: Render Network/Templates subtab columns sortable Implemented client-side sorting for the aforementioned columns. Change-Id: I9d230e7a62ef5132a5a1bfb7eac915f48453c608 Signed-off-by: Lior Vernia <[email protected]> --- A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/InterfaceTemplateComparator.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkTemplateListModel.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkTemplateView.java 3 files changed, 79 insertions(+), 29 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/55/28555/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/InterfaceTemplateComparator.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/InterfaceTemplateComparator.java new file mode 100644 index 0000000..152c66f --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/InterfaceTemplateComparator.java @@ -0,0 +1,57 @@ +package org.ovirt.engine.ui.uicommonweb.comparators; + +import java.util.Comparator; + +import org.ovirt.engine.core.common.businessentities.VmTemplate; +import org.ovirt.engine.core.common.businessentities.comparators.LexoNumericComparator; +import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; +import org.ovirt.engine.core.common.utils.PairQueryable; + +public class InterfaceTemplateComparator { + + public static class ByName implements Comparator<PairQueryable<VmNetworkInterface, VmTemplate>> { + + private LexoNumericComparator lexoNumeric = new LexoNumericComparator(); + + @Override + public int compare(PairQueryable<VmNetworkInterface, VmTemplate> arg0, + PairQueryable<VmNetworkInterface, VmTemplate> arg1) { + return lexoNumeric.compare(arg0.getSecond().getName(), arg1.getSecond().getName()); + } + } + + public static class ByStatus implements Comparator<PairQueryable<VmNetworkInterface, VmTemplate>> { + + private LexoNumericComparator lexoNumeric = new LexoNumericComparator(); + + @Override + public int compare(PairQueryable<VmNetworkInterface, VmTemplate> arg0, + PairQueryable<VmNetworkInterface, VmTemplate> arg1) { + return lexoNumeric.compare(arg0.getSecond().getStatus().toString(), arg1.getSecond().getStatus().toString()); + } + } + + public static class ByCluster implements Comparator<PairQueryable<VmNetworkInterface, VmTemplate>> { + + private LexoNumericComparator lexoNumeric = new LexoNumericComparator(); + + @Override + public int compare(PairQueryable<VmNetworkInterface, VmTemplate> arg0, + PairQueryable<VmNetworkInterface, VmTemplate> arg1) { + return lexoNumeric.compare(arg0.getSecond().getVdsGroupName(), arg1.getSecond().getVdsGroupName()); + } + } + + public static class ByInterfaceName implements Comparator<PairQueryable<VmNetworkInterface, VmTemplate>> { + + InterfaceComparator.ByInterfaceName<VmNetworkInterface> interfaceComparator = + new InterfaceComparator.ByInterfaceName<VmNetworkInterface>(); + + @Override + public int compare(PairQueryable<VmNetworkInterface, VmTemplate> arg0, + PairQueryable<VmNetworkInterface, VmTemplate> arg1) { + return interfaceComparator.compare(arg0, arg1); + } + } + +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkTemplateListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkTemplateListModel.java index d6a595e..49242fe 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkTemplateListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkTemplateListModel.java @@ -2,9 +2,7 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.Comparator; -import java.util.List; import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.common.businessentities.network.NetworkView; @@ -22,7 +20,6 @@ import org.ovirt.engine.ui.uicommonweb.models.vms.RemoveVmTemplateInterfaceModel; import org.ovirt.engine.ui.uicompat.ConstantsManager; -@SuppressWarnings("unused") public class NetworkTemplateListModel extends SearchableListModel { private UICommand removeCommand; @@ -42,6 +39,21 @@ setTitle(ConstantsManager.getInstance().getConstants().templatesTitle()); setHelpTag(HelpTag.templates); setHashName("templates"); //$NON-NLS-1$ + setComparator(new Comparator<PairQueryable<VmNetworkInterface, VmTemplate>>() { + + @Override + public int compare(PairQueryable<VmNetworkInterface, VmTemplate> paramT1, + PairQueryable<VmNetworkInterface, VmTemplate> paramT2) { + int compareValue = + paramT1.getSecond().getVdsGroupName().compareTo(paramT2.getSecond().getVdsGroupName()); + + if (compareValue != 0) { + return compareValue; + } + + return paramT1.getSecond().getName().compareTo(paramT2.getSecond().getName()); + } + }); setRemoveCommand(new UICommand("Remove", this)); //$NON-NLS-1$ updateActionAvailability(); @@ -75,30 +87,6 @@ } @Override - public void setItems(Collection value) { - if (value != null) { - List<PairQueryable<VmNetworkInterface, VmTemplate>> itemList = - (List<PairQueryable<VmNetworkInterface, VmTemplate>>) value; - Collections.sort(itemList, new Comparator<PairQueryable<VmNetworkInterface, VmTemplate>>() { - - @Override - public int compare(PairQueryable<VmNetworkInterface, VmTemplate> paramT1, - PairQueryable<VmNetworkInterface, VmTemplate> paramT2) { - int compareValue = - paramT1.getSecond().getVdsGroupName().compareTo(paramT2.getSecond().getVdsGroupName()); - - if (compareValue != 0) { - return compareValue; - } - - return paramT1.getSecond().getName().compareTo(paramT2.getSecond().getName()); - } - }); - } - super.setItems(value); - } - - @Override public void search() { if (getEntity() != null) @@ -121,7 +109,7 @@ @Override public void onSuccess(Object model, Object ReturnValue) { - NetworkTemplateListModel.this.setItems((List<PairQueryable<VmNetworkInterface, VmTemplate>>) ((VdcQueryReturnValue) ReturnValue).getReturnValue()); + setItems((Collection<PairQueryable<VmNetworkInterface, VmTemplate>>) ((VdcQueryReturnValue) ReturnValue).getReturnValue()); } }; @@ -157,7 +145,7 @@ return; } - List<VmNetworkInterface> vnics = new ArrayList<VmNetworkInterface>(); + ArrayList<VmNetworkInterface> vnics = new ArrayList<VmNetworkInterface>(); for (Object item : getSelectedItems()) { PairQueryable<VmNetworkInterface, VmTemplate> pair = (PairQueryable<VmNetworkInterface, VmTemplate>) item; diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkTemplateView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkTemplateView.java index 7557d62..386f053 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkTemplateView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/network/SubTabNetworkTemplateView.java @@ -12,6 +12,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.InterfaceTemplateComparator; import org.ovirt.engine.ui.uicommonweb.models.networks.NetworkListModel; import org.ovirt.engine.ui.uicommonweb.models.networks.NetworkTemplateListModel; import org.ovirt.engine.ui.webadmin.ApplicationConstants; @@ -45,6 +46,7 @@ return object.getSecond().getName(); } }; + nameColumn.makeSortable(new InterfaceTemplateComparator.ByName()); getTable().addColumn(nameColumn, constants.nameTemplate(), "400px"); //$NON-NLS-1$ TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VmTemplate>> statusColumn = new EnumColumn<PairQueryable<VmNetworkInterface, VmTemplate>, VmTemplateStatus>() { @@ -53,6 +55,7 @@ return object.getSecond().getStatus(); } }; + statusColumn.makeSortable(new InterfaceTemplateComparator.ByStatus()); getTable().addColumn(statusColumn, constants.statusTemplate(), "100px"); //$NON-NLS-1$ TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VmTemplate>> clusterColumn = new TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VmTemplate>>() { @@ -61,6 +64,7 @@ return object.getSecond().getVdsGroupName(); } }; + clusterColumn.makeSortable(new InterfaceTemplateComparator.ByCluster()); getTable().addColumn(clusterColumn, constants.clusterTemplate(), "150px"); //$NON-NLS-1$ TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VmTemplate>> vnicNameColumn = new TextColumnWithTooltip<PairQueryable<VmNetworkInterface, VmTemplate>>() { @@ -69,6 +73,7 @@ return object.getFirst().getName(); } }; + vnicNameColumn.makeSortable(new InterfaceTemplateComparator.ByInterfaceName()); getTable().addColumn(vnicNameColumn, constants.vnicNetworkTemplate(), "150px"); //$NON-NLS-1$ getTable().addActionButton(new WebAdminButtonDefinition<PairQueryable<VmNetworkInterface, VmTemplate>>(constants.removeInterface()) { -- To view, visit http://gerrit.ovirt.org/28555 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I9d230e7a62ef5132a5a1bfb7eac915f48453c608 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Lior Vernia <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
