Arik Hadas has uploaded a new change for review.

Change subject: frontend: snapshot sub-tab
......................................................................

frontend: snapshot sub-tab

Change-Id: Id1590dac534b7e23e79a1062ea7204c0074b07c2
Signed-off-by: Arik Hadas <aha...@redhat.com>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/AbstractActionTable.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/resize/ColumnResizeCellTable.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmSnapshotListModelTable.java
3 files changed, 39 insertions(+), 18 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/44/25544/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/AbstractActionTable.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/AbstractActionTable.java
index 73f8155..1a46234 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/AbstractActionTable.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/AbstractActionTable.java
@@ -507,6 +507,16 @@
     }
 
     /**
+     * Ensures that the given column is added (or removed), unless it's 
already present (or absent).
+     * <p>
+     * This method also sets the column width in case the column needs to be 
added.
+     */
+    public void ensureColumnPresent(Column<T, ?> column, int beforeIndex, 
String headerText, boolean present, String width) {
+        table.ensureColumnPresent(column, headerText, present, width);
+        tableHeader.ensureColumnPresent(column, headerText, present, width);
+    }
+
+    /**
      * Allows table columns to be resized by dragging their right-hand border 
using mouse.
      * <p>
      * This method should be called before calling any {@code addColumn} 
methods.
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/resize/ColumnResizeCellTable.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/resize/ColumnResizeCellTable.java
index d700cdd..bf61a6f 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/resize/ColumnResizeCellTable.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/resize/ColumnResizeCellTable.java
@@ -214,7 +214,7 @@
     public void ensureColumnPresent(Column<T, ?> column, String headerText, 
boolean present, String width) {
         if (present) {
             // Remove the column first
-            if (getColumnIndex(column) != -1) {
+            if (isColumnExists(column)) {
                 removeColumn(column);
             }
 
@@ -224,12 +224,16 @@
             } else {
                 addColumnWithHtmlHeader(column, headerText, width);
             }
-        } else if (!present && getColumnIndex(column) != -1) {
+        } else if (!present && isColumnExists(column)) {
             // Remove the column
             removeColumn(column);
         }
     }
 
+    private boolean isColumnExists(Column<T, ?> column) {
+        return getColumnIndex(column) != -1;
+    }
+
     @Override
     public void setColumnWidth(Column<T, ?> column, String width) {
         if (columnResizePersistenceEnabled && 
!initializedColumns.contains(column)) {
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmSnapshotListModelTable.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmSnapshotListModelTable.java
index 5d82132..682666f 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmSnapshotListModelTable.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmSnapshotListModelTable.java
@@ -52,6 +52,7 @@
     private final CommonApplicationConstants constants;
 
     VmSnapshotInfoPanel vmSnapshotInfoPanel;
+    private int numOfColumnsBeforeMemoryColumn;
 
     public VmSnapshotListModelTable(DataBoundTabModelProvider<Snapshot, L> 
modelProvider,
             EventBus eventBus, ClientStorage clientStorage,
@@ -83,12 +84,13 @@
         getTable().setMultiSelectionDisabled(true);
 
         initActionButtons(constants);
+        initTableColumns();
 
         // Add event listeners
-        getModel().getEntityChangedEvent().addListener(new IEventListener() {
+        getModel().getItemsChangedEvent().addListener(new IEventListener() {
             @Override
             public void eventRaised(Event ev, Object sender, EventArgs args) {
-                updateMemoryColumnVisibility();
+                addOrRemoveMemoryColumn();
             }
         });
         getModel().getSelectedItemChangedEvent().addListener(new 
IEventListener() {
@@ -120,28 +122,33 @@
         }
     }
 
-    private void updateMemoryColumnVisibility() {
+    private void initTableColumns() {
+        getTable().addColumn(SnapshotsViewColumns.dateColumn,
+                constants.dateSnapshot(), "150px"); //$NON-NLS-1$
+        ++numOfColumnsBeforeMemoryColumn;
+
+        getTable().addColumn(SnapshotsViewColumns.statusColumn,
+                constants.statusSnapshot(), "75px"); //$NON-NLS-1$
+        ++numOfColumnsBeforeMemoryColumn;
+
+        addOrRemoveMemoryColumn();
+
+        getTable().addColumn(SnapshotsViewColumns.descriptionColumn,
+                constants.descriptionSnapshot(), "185px"); //$NON-NLS-1$
+    }
+
+    private void addOrRemoveMemoryColumn() {
         VM vm = (VM) getModel().getEntity();
-        if (vm == null) {
-            return;
-        }
-
-        getTable().ensureColumnPresent(SnapshotsViewColumns.dateColumn,
-                constants.dateSnapshot(), true, "150px"); //$NON-NLS-1$
-
-        getTable().ensureColumnPresent(SnapshotsViewColumns.statusColumn,
-                constants.statusSnapshot(), true, "75px"); //$NON-NLS-1$
 
         boolean memorySnapshotSupported =
+                vm == null ||
                 (Boolean) AsyncDataProvider.getConfigValuePreConverted(
                         ConfigurationValues.MemorySnapshotSupported,
                         vm.getVdsGroupCompatibilityVersion().toString());
 
         getTable().ensureColumnPresent(SnapshotsViewColumns.memoryColumn,
-                constants.memorySnapshot(), memorySnapshotSupported, "55px"); 
//$NON-NLS-1$
-
-        getTable().ensureColumnPresent(SnapshotsViewColumns.descriptionColumn,
-                constants.descriptionSnapshot(), true, "185px"); //$NON-NLS-1$
+                numOfColumnsBeforeMemoryColumn, constants.memorySnapshot(),
+                memorySnapshotSupported, "55px"); //$NON-NLS-1$
     }
 
     private void initActionButtons(final CommonApplicationConstants constants) 
{


-- 
To view, visit http://gerrit.ovirt.org/25544
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id1590dac534b7e23e79a1062ea7204c0074b07c2
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Arik Hadas <aha...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to