Tomas Jelinek has uploaded a new change for review.

Change subject: frontend: added support for attach/detach of instance types
......................................................................

frontend: added support for attach/detach of instance types

The VM can be attached/detached to/from the instance type and there is a visual
indication which says if the specific VM is or is not attached.

This patch bridges the UnitVmModel's attachedToInstanceType property to
HasDetachable widgets setAttached method.

feature page: http://www.ovirt.org/Features/Instance_Types
Change-Id: Ibb4366376750ee4564fa6ff1e42bdfa4a8730d0f
Signed-off-by: Tomas Jelinek <[email protected]>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/AbstractVmPopupView.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/popup/AbstractVmBasedPopupPresenterWidget.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractModeSwitchingPopupWidget.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/PopupWidgetConfig.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/PopupWidgetConfigMap.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
6 files changed, 50 insertions(+), 16 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/75/25575/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/AbstractVmPopupView.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/AbstractVmPopupView.java
index d58e651..b54617a 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/AbstractVmPopupView.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/AbstractVmPopupView.java
@@ -25,6 +25,13 @@
     }
 
     @Override
+    public void switchAttachToInstanceType(boolean isAttached) {
+        if (getContentWidget() instanceof AbstractVmPopupWidget) {
+            ((AbstractVmPopupWidget) 
getContentWidget()).switchAttachToInstanceType(isAttached);
+        }
+    }
+
+    @Override
     public void switchMode(boolean isAdvanced) {
         if (getContentWidget() instanceof AbstractVmPopupWidget) {
             ((AbstractVmPopupWidget) 
getContentWidget()).switchMode(isAdvanced);
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/popup/AbstractVmBasedPopupPresenterWidget.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/popup/AbstractVmBasedPopupPresenterWidget.java
index 12b92aa..9a970c8 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/popup/AbstractVmBasedPopupPresenterWidget.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/popup/AbstractVmBasedPopupPresenterWidget.java
@@ -2,6 +2,7 @@
 
 import 
org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget;
 import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel;
+import org.ovirt.engine.ui.uicompat.Event;
 import org.ovirt.engine.ui.uicompat.EventArgs;
 import org.ovirt.engine.ui.uicompat.IEventListener;
 
@@ -14,6 +15,8 @@
         void switchMode(boolean isAdvanced);
 
         void setSpiceProxyOverrideExplanation(String explanation);
+
+        void switchAttachToInstanceType(boolean isAttached);
     }
 
     @Inject
@@ -38,10 +41,21 @@
             }
 
         });
+
+        
model.getAttachedToInstanceType().getPropertyChangedEvent().addListener(new 
IEventListener() {
+            @Override
+            public void eventRaised(Event ev, Object sender, EventArgs args) {
+                swithAttachToInstanceType(model);
+            }
+        });
+    }
+
+    private void swithAttachToInstanceType(final UnitVmModel model) {
+        
getView().switchAttachToInstanceType(model.getAttachedToInstanceType().getEntity());
     }
 
     private void swithAccordingToMode(final UnitVmModel model) {
-        getView().switchMode((Boolean) model.getAdvancedMode().getEntity());
+        getView().switchMode(model.getAdvancedMode().getEntity());
     }
 
 }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractModeSwitchingPopupWidget.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractModeSwitchingPopupWidget.java
index 20b21a7..0f3cc1c 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractModeSwitchingPopupWidget.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractModeSwitchingPopupWidget.java
@@ -1,7 +1,6 @@
 package org.ovirt.engine.ui.common.widget.uicommon.popup;
 
-import java.util.Set;
-
+import com.google.gwt.user.client.ui.Widget;
 import org.ovirt.engine.ui.common.widget.VisibilityRenderer;
 import org.ovirt.engine.ui.common.widget.dialog.tab.DialogTab;
 import org.ovirt.engine.ui.common.widget.dialog.tab.DialogTabPanel;
@@ -9,7 +8,7 @@
 import 
org.ovirt.engine.ui.common.widget.uicommon.popup.vm.PopupWidgetConfigMap;
 import org.ovirt.engine.ui.uicommonweb.models.Model;
 
-import com.google.gwt.user.client.ui.Widget;
+import java.util.Set;
 
 public abstract class AbstractModeSwitchingPopupWidget<T extends Model> 
extends AbstractModelBoundPopupWidget<T> {
 
@@ -86,4 +85,8 @@
         }
 
     }
+
+    public PopupWidgetConfigMap getWidgetConfiguration() {
+        return widgetConfiguration;
+    }
 }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/PopupWidgetConfig.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/PopupWidgetConfig.java
index a339675..9776944 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/PopupWidgetConfig.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/PopupWidgetConfig.java
@@ -6,7 +6,7 @@
 
     private final boolean alwaysHidden;
 
-    private final boolean markedAsSpecial;
+    private final boolean detachable;
 
     private final boolean adminOnly;
 
@@ -17,12 +17,12 @@
 
     private PopupWidgetConfig(boolean advancedOnly,
                               boolean alwaysHidden,
-                              boolean markedAsSpecial,
+                              boolean detachable,
                               boolean adminOnly) {
         super();
         this.advancedOnly = advancedOnly;
         this.alwaysHidden = alwaysHidden;
-        this.markedAsSpecial = markedAsSpecial;
+        this.detachable = detachable;
         this.adminOnly = adminOnly;
     }
 
@@ -34,20 +34,20 @@
         return new PopupWidgetConfig(false, true, false, false);
     }
 
-    public PopupWidgetConfig withSpecialMark() {
+    public PopupWidgetConfig detachable() {
         return new PopupWidgetConfig(advancedOnly, alwaysHidden, true, 
adminOnly);
     }
 
     public PopupWidgetConfig visibleInAdvancedModeOnly() {
-        return new PopupWidgetConfig(true, alwaysHidden, markedAsSpecial, 
adminOnly);
+        return new PopupWidgetConfig(true, alwaysHidden, detachable, 
adminOnly);
     }
 
     public PopupWidgetConfig visibleForAdminOnly() {
-        return new PopupWidgetConfig(advancedOnly, alwaysHidden, 
markedAsSpecial, true);
+        return new PopupWidgetConfig(advancedOnly, alwaysHidden, detachable, 
true);
     }
 
     public PopupWidgetConfig copy() {
-        PopupWidgetConfig copy = new PopupWidgetConfig(advancedOnly, 
alwaysHidden, markedAsSpecial, adminOnly);
+        PopupWidgetConfig copy = new PopupWidgetConfig(advancedOnly, 
alwaysHidden, detachable, adminOnly);
         copy.setApplicationLevelVisible(isApplicationLevelVisible());
         return copy;
     }
@@ -60,8 +60,8 @@
         return alwaysHidden;
     }
 
-    public boolean isMarkedAsSpecial() {
-        return markedAsSpecial;
+    public boolean isDetachable() {
+        return detachable;
     }
 
     public boolean isAdminOnly() {
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/PopupWidgetConfigMap.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/PopupWidgetConfigMap.java
index b9c249c..9ae7263 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/PopupWidgetConfigMap.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/PopupWidgetConfigMap.java
@@ -66,12 +66,11 @@
         });
     }
 
-    // will be used as soon as the corresponding widgets will support this flag
-    public PopupWidgetConfigMap getMarkedAsSpecial() {
+    public PopupWidgetConfigMap getDetachables() {
         return filter(new Predicate() {
             @Override
             public boolean apply(PopupWidgetConfig config) {
-                return config.isMarkedAsSpecial();
+                return config.isDetachable();
             }
         });
     }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
index c5c0436..8718b8b 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
@@ -70,6 +70,16 @@
 
     private boolean privateIsNew;
 
+    private EntityModel<Boolean> attachedToInstanceType;
+
+    public EntityModel<Boolean> getAttachedToInstanceType() {
+        return attachedToInstanceType;
+    }
+
+    public void setAttachedToInstanceType(EntityModel<Boolean> 
attachedToInstanceType) {
+        this.attachedToInstanceType = attachedToInstanceType;
+    }
+
     private EntityModel<String> spiceProxy;
 
     public EntityModel<String> getSpiceProxy() {
@@ -1275,6 +1285,7 @@
 
         setNicsWithLogicalNetworks(new VnicInstancesModel());
         setAdvancedMode(new EntityModel<Boolean>(false));
+        setAttachedToInstanceType(new EntityModel<Boolean>(true));
         setStorageDomain(new 
NotChangableForVmInPoolListModel<StorageDomain>());
         setName(new NotChangableForVmInPoolEntityModel<String>());
         setNumOfMonitors(new NotChangableForVmInPoolListModel<Integer>());


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibb4366376750ee4564fa6ff1e42bdfa4a8730d0f
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Tomas Jelinek <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to