Frank Kobzik has uploaded a new change for review. Change subject: frontend: Sorting columns in VM subtabs ......................................................................
frontend: Sorting columns in VM subtabs This patch contains sorting columns in "Network Interface" VM subtab. Change-Id: I6b55d40f4978f994cc2c84f3a99d46294b7928fc Signed-off-by: Frantisek Kobzik <[email protected]> Bug-Url: https://bugzilla.redhat.com/1103715 --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/CheckboxColumn.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/SafeHtmlWithSafeHtmlTooltipColumn.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmInterfaceListModelTable.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/VmNetworkInterfaceComparator.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SnapshotModel.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineNetworkInterfaceView.java 7 files changed, 100 insertions(+), 18 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/60/28360/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/CheckboxColumn.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/CheckboxColumn.java index 5c0e20f..ce7d2a7 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/CheckboxColumn.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/CheckboxColumn.java @@ -11,10 +11,9 @@ import com.google.gwt.safehtml.shared.SafeHtml; import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.google.gwt.safehtml.shared.SafeHtmlUtils; -import com.google.gwt.user.cellview.client.Column; import com.google.gwt.view.client.CellPreviewEvent; -public abstract class CheckboxColumn<T> extends Column<T, Boolean> { +public abstract class CheckboxColumn<T> extends SortableColumn<T, Boolean> { private boolean isCentralized = false; private boolean multipleSelectionAllowed = true; diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/SafeHtmlWithSafeHtmlTooltipColumn.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/SafeHtmlWithSafeHtmlTooltipColumn.java index d439923..78ff4f7 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/SafeHtmlWithSafeHtmlTooltipColumn.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/column/SafeHtmlWithSafeHtmlTooltipColumn.java @@ -12,7 +12,7 @@ import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.google.gwt.user.cellview.client.Column; -public abstract class SafeHtmlWithSafeHtmlTooltipColumn<T> extends Column<T, SafeHtml>{ +public abstract class SafeHtmlWithSafeHtmlTooltipColumn<T> extends SortableColumn<T, SafeHtml>{ private final TooltipPanel tooltipPanel = new TooltipPanel(); diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmInterfaceListModelTable.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmInterfaceListModelTable.java index b585e28..5f88cbe 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmInterfaceListModelTable.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmInterfaceListModelTable.java @@ -16,6 +16,7 @@ import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip; import org.ovirt.engine.ui.common.widget.uicommon.AbstractModelBoundTableWidget; import org.ovirt.engine.ui.uicommonweb.UICommand; +import org.ovirt.engine.ui.uicommonweb.comparators.VmNetworkInterfaceComparator; import org.ovirt.engine.ui.uicommonweb.models.vms.VmInterfaceListModel; import org.ovirt.engine.ui.uicompat.Event; import org.ovirt.engine.ui.uicompat.EventArgs; @@ -74,7 +75,9 @@ public void initTable(final CommonApplicationConstants constants) { getTable().enableColumnResizing(); - getTable().addColumn(new NicActivateStatusColumn<VmNetworkInterface>(), constants.empty(), "30px"); //$NON-NLS-1$ + NicActivateStatusColumn<VmNetworkInterface> statusColumn = new NicActivateStatusColumn<VmNetworkInterface>(); + statusColumn.makeSortable(VmNetworkInterfaceComparator.BY_PLUGGED_AND_LINKED); + getTable().addColumn(statusColumn, constants.empty(), "30px"); //$NON-NLS-1$ TextColumnWithTooltip<VmNetworkInterface> nameColumn = new TextColumnWithTooltip<VmNetworkInterface>() { @Override @@ -82,6 +85,7 @@ return object.getName(); } }; + nameColumn.makeSortable(VmNetworkInterfaceComparator.BY_NAME); getTable().addColumn(nameColumn, constants.nameInterface(), "150px"); //$NON-NLS-1$ CheckboxColumn<VmNetworkInterface> pluggedColumn = new CheckboxColumn<VmNetworkInterface>() { @@ -95,7 +99,7 @@ return false; } }; - + pluggedColumn.makeSortable(VmNetworkInterfaceComparator.BY_PLUGGED); getTable().addColumnWithHtmlHeader(pluggedColumn, constants.plugged(), "60px"); //$NON-NLS-1$ TextColumnWithTooltip<VmNetworkInterface> networkNameColumn = new TextColumnWithTooltip<VmNetworkInterface>() { @@ -104,6 +108,7 @@ return object.getNetworkName(); } }; + networkNameColumn.makeSortable(VmNetworkInterfaceComparator.BY_NETWORK_NAME); getTable().addColumn(networkNameColumn, constants.networkNameInterface(), "150px"); //$NON-NLS-1$ TextColumnWithTooltip<VmNetworkInterface> profileNameColumn = new TextColumnWithTooltip<VmNetworkInterface>() { @@ -112,6 +117,7 @@ return object.getVnicProfileName(); } }; + profileNameColumn.makeSortable(VmNetworkInterfaceComparator.BY_PROFILE_NAME); getTable().addColumn(profileNameColumn, constants.profileNameInterface(), "150px"); //$NON-NLS-1$ BooleanColumn<VmNetworkInterface> linkStateColumn = @@ -122,7 +128,7 @@ return object.isLinked(); } }; - + linkStateColumn.makeSortable(VmNetworkInterfaceComparator.BY_LINK_STATE); getTable().addColumnWithHtmlHeader(linkStateColumn, constants.linkStateNetworkInterface(), "65px"); //$NON-NLS-1$ TextColumnWithTooltip<VmNetworkInterface> typeColumn = new EnumColumn<VmNetworkInterface, VmInterfaceType>() { @@ -131,6 +137,7 @@ return VmInterfaceType.forValue(object.getType()); } }; + typeColumn.makeSortable(VmNetworkInterfaceComparator.BY_TYPE); getTable().addColumn(typeColumn, constants.typeInterface(), "100px"); //$NON-NLS-1$ TextColumnWithTooltip<VmNetworkInterface> macColumn = new TextColumnWithTooltip<VmNetworkInterface>() { @@ -139,6 +146,7 @@ return object.getMacAddress(); } }; + macColumn.makeSortable(VmNetworkInterfaceComparator.BY_MAC_ADDRESS); getTable().addColumn(macColumn, constants.macInterface(), "150px"); //$NON-NLS-1$ TextColumnWithTooltip<VmNetworkInterface> speedColumn = new TextColumnWithTooltip<VmNetworkInterface>() { @@ -151,6 +159,7 @@ } } }; + speedColumn.makeSortable(VmNetworkInterfaceComparator.BY_SPEED); getTable().addColumnWithHtmlHeader(speedColumn, templates.sub(constants.speedInterface(), constants.mbps()).asString(), "150px"); //$NON-NLS-1$ diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java index 6b399e9..38bf4a2 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java @@ -1141,17 +1141,6 @@ } } - - - public final static class VmInterfaceComparer implements Comparator<VmNetworkInterface>, Serializable { - LexoNumericComparator lexoNumeric = new LexoNumericComparator(); - - @Override - public int compare(VmNetworkInterface nic1, VmNetworkInterface nic2) { - return lexoNumeric.compare(nic1.getName(), nic2.getName()); - } - } - public final static class InterfaceComparator implements Comparator<VdsNetworkInterface>, Serializable { private static final long serialVersionUID = -6806871048546270786L; diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/VmNetworkInterfaceComparator.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/VmNetworkInterfaceComparator.java new file mode 100644 index 0000000..48f64e7 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/comparators/VmNetworkInterfaceComparator.java @@ -0,0 +1,82 @@ +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.businessentities.network.VmNetworkInterface; + +public class VmNetworkInterfaceComparator { + + public static final Comparator<VmNetworkInterface> BY_NAME = new Comparator<VmNetworkInterface>() { + @Override + public int compare(VmNetworkInterface vmNetworkInterface, VmNetworkInterface vmNetworkInterface2) { + return LexoNumericComparator.comp(vmNetworkInterface.getName(), vmNetworkInterface2.getName()); + } + }; + + public static final Comparator<VmNetworkInterface> BY_PLUGGED = new Comparator<VmNetworkInterface>() { + @Override + public int compare(VmNetworkInterface vmNetworkInterface, VmNetworkInterface vmNetworkInterface2) { + return Boolean.valueOf(vmNetworkInterface.isPlugged()).compareTo(vmNetworkInterface2.isPlugged()); + } + }; + + public static final Comparator<VmNetworkInterface> BY_NETWORK_NAME = new Comparator<VmNetworkInterface>() { + @Override + public int compare(VmNetworkInterface vmNetworkInterface, VmNetworkInterface vmNetworkInterface2) { + return LexoNumericComparator.comp(vmNetworkInterface.getNetworkName(), vmNetworkInterface2.getNetworkName()); + } + }; + + public static final Comparator<VmNetworkInterface> BY_PROFILE_NAME = new Comparator<VmNetworkInterface>() { + @Override + public int compare(VmNetworkInterface vmNetworkInterface, VmNetworkInterface vmNetworkInterface2) { + return LexoNumericComparator.comp(vmNetworkInterface.getVnicProfileName(), vmNetworkInterface2.getVnicProfileName()); + } + }; + + public static final Comparator<VmNetworkInterface> BY_LINK_STATE = new Comparator<VmNetworkInterface>() { + @Override + public int compare(VmNetworkInterface vmNetworkInterface, VmNetworkInterface vmNetworkInterface2) { + return Boolean.valueOf(vmNetworkInterface.isLinked()).compareTo(vmNetworkInterface2.isLinked()); + } + }; + + public static final Comparator<VmNetworkInterface> BY_TYPE = new Comparator<VmNetworkInterface>() { + @Override + public int compare(VmNetworkInterface vmNetworkInterface, VmNetworkInterface vmNetworkInterface2) { + return vmNetworkInterface.getType().compareTo(vmNetworkInterface.getType()); + } + }; + + public static final Comparator<VmNetworkInterface> BY_MAC_ADDRESS = new Comparator<VmNetworkInterface>() { + @Override + public int compare(VmNetworkInterface vmNetworkInterface, VmNetworkInterface vmNetworkInterface2) { + return LexoNumericComparator.comp(vmNetworkInterface.getMacAddress(), vmNetworkInterface2.getMacAddress()); + } + }; + + public static final Comparator<VmNetworkInterface> BY_SPEED = new Comparator<VmNetworkInterface>() { + @Override + public int compare(VmNetworkInterface vmNetworkInterface, VmNetworkInterface vmNetworkInterface2) { + return vmNetworkInterface.getSpeed().compareTo(vmNetworkInterface2.getSpeed()); + } + }; + + public static final Comparator<VmNetworkInterface> BY_PORT_MIRRORING = new Comparator<VmNetworkInterface>() { + @Override + public int compare(VmNetworkInterface vmNetworkInterface, VmNetworkInterface vmNetworkInterface2) { + return Boolean.valueOf(vmNetworkInterface.isPortMirroring()).compareTo(vmNetworkInterface2.isPortMirroring()); + } + }; + + public static final Comparator<VmNetworkInterface> BY_PLUGGED_AND_LINKED = new Comparator<VmNetworkInterface>() { + @Override + public int compare(VmNetworkInterface vmNetworkInterface, VmNetworkInterface vmNetworkInterface2) { + Boolean fstPluggedLinked = vmNetworkInterface.isPlugged() && vmNetworkInterface.isLinked(); + Boolean sndPluggedLinked = vmNetworkInterface2.isPlugged() && vmNetworkInterface2.isLinked(); + + return fstPluggedLinked.compareTo(sndPluggedLinked); + } + }; + +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SnapshotModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SnapshotModel.java index b19b6d4..a3ab769 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SnapshotModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SnapshotModel.java @@ -23,6 +23,7 @@ import org.ovirt.engine.ui.uicommonweb.ICommandTarget; import org.ovirt.engine.ui.uicommonweb.Linq; import org.ovirt.engine.ui.uicommonweb.UICommand; +import org.ovirt.engine.ui.uicommonweb.comparators.VmNetworkInterfaceComparator; import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; import org.ovirt.engine.ui.uicommonweb.help.HelpTag; import org.ovirt.engine.ui.uicommonweb.models.EntityModel; @@ -275,7 +276,7 @@ snapshot.getAppList().split(",") : new String[]{})); //$NON-NLS-1$ Collections.sort(snapshotModel.getDisks(), new Linq.DiskByAliasComparer()); - Collections.sort(snapshotModel.getNics(), new Linq.VmInterfaceComparer()); + Collections.sort(snapshotModel.getNics(), VmNetworkInterfaceComparator.BY_NAME); } onUpdateAsyncCallback.onSuccess(snapshotModel, null); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineNetworkInterfaceView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineNetworkInterfaceView.java index f23e649..cf42a1d 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineNetworkInterfaceView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineNetworkInterfaceView.java @@ -9,6 +9,7 @@ import org.ovirt.engine.ui.common.view.AbstractSubTabTableWidgetView; import org.ovirt.engine.ui.common.widget.table.column.BooleanColumn; import org.ovirt.engine.ui.common.widget.uicommon.vm.VmInterfaceListModelTable; +import org.ovirt.engine.ui.uicommonweb.comparators.VmNetworkInterfaceComparator; import org.ovirt.engine.ui.uicommonweb.models.vms.VmInterfaceListModel; import org.ovirt.engine.ui.uicommonweb.models.vms.VmListModel; import org.ovirt.engine.ui.webadmin.ApplicationConstants; @@ -48,6 +49,7 @@ return object.isPortMirroring(); } }; + portMirroringColumn.makeSortable(VmNetworkInterfaceComparator.BY_PORT_MIRRORING); getTable().addColumnWithHtmlHeader(portMirroringColumn, constants.portMirroring(), "85px"); //$NON-NLS-1$ } }); -- To view, visit http://gerrit.ovirt.org/28360 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I6b55d40f4978f994cc2c84f3a99d46294b7928fc Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Frank Kobzik <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
