Martin Betak has uploaded a new change for review.

Change subject: frontend: Refactor Vm Behavior classes
......................................................................

frontend: Refactor Vm Behavior classes

Change-Id: I10a67a8b63e2c8c0eda0f59c88be11dadbe9872e
Signed-off-by: Martin Betak <[email protected]>
---
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/CoreVmBaseToUnitBuilder.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/KernelParamsVmBaseToUnitBuilder.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PoolModelBehaviorBase.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
8 files changed, 69 insertions(+), 61 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/13/28213/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/CoreVmBaseToUnitBuilder.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/CoreVmBaseToUnitBuilder.java
new file mode 100644
index 0000000..2a9b314
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/CoreVmBaseToUnitBuilder.java
@@ -0,0 +1,21 @@
+package org.ovirt.engine.ui.uicommonweb.builders.vm;
+
+import org.ovirt.engine.core.common.businessentities.VmBase;
+import org.ovirt.engine.ui.uicommonweb.builders.CompositeBuilder;
+import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel;
+
+public class CoreVmBaseToUnitBuilder extends CompositeBuilder<VmBase, 
UnitVmModel> {
+    public CoreVmBaseToUnitBuilder() {
+        super(
+                new SerialNumberPolicyVmBaseToUnitBuilder()
+        );
+    }
+
+    @Override
+    protected void postBuild(VmBase vm, UnitVmModel model) {
+        model.getBootMenuEnabled().setEntity(vm.isBootMenuEnabled());
+        
model.getVncKeyboardLayout().setSelectedItem(vm.getVncKeyboardLayout());
+        model.getIsDeleteProtected().setEntity(vm.isDeleteProtected());
+        model.selectSsoMethod(vm.getSsoMethod());
+    }
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/KernelParamsVmBaseToUnitBuilder.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/KernelParamsVmBaseToUnitBuilder.java
new file mode 100644
index 0000000..b283f37
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/KernelParamsVmBaseToUnitBuilder.java
@@ -0,0 +1,14 @@
+package org.ovirt.engine.ui.uicommonweb.builders.vm;
+
+import org.ovirt.engine.core.common.businessentities.VmBase;
+import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder;
+import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel;
+
+public class KernelParamsVmBaseToUnitBuilder extends BaseSyncBuilder<VmBase, 
UnitVmModel> {
+    @Override
+    protected void build(VmBase vm, UnitVmModel model) {
+        model.getInitrd_path().setEntity(vm.getInitrdUrl());
+        model.getKernel_path().setEntity(vm.getKernelUrl());
+        model.getKernel_parameters().setEntity(vm.getKernelParams());
+    }
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
index 3b05ccc..f2774e5 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
@@ -12,7 +12,8 @@
 import org.ovirt.engine.ui.frontend.AsyncQuery;
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
 import org.ovirt.engine.ui.uicommonweb.builders.BuilderExecutor;
-import 
org.ovirt.engine.ui.uicommonweb.builders.vm.SerialNumberPolicyVmBaseToUnitBuilder;
+import org.ovirt.engine.ui.uicommonweb.builders.vm.CoreVmBaseToUnitBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.KernelParamsVmBaseToUnitBuilder;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemModel;
 import 
org.ovirt.engine.ui.uicommonweb.models.vms.instancetypes.ExistingVmInstanceTypeManager;
@@ -128,6 +129,10 @@
     {
         // This method will be called even if a VM created from Blank template.
 
+        BuilderExecutor.build(vm.getStaticData(), getModel(),
+                              new CoreVmBaseToUnitBuilder(),
+                              new KernelParamsVmBaseToUnitBuilder());
+
         // Update model state according to VM properties.
         getModel().getName().setEntity(vm.getName());
         getModel().getDescription().setEntity(vm.getVmDescription());
@@ -141,17 +146,8 @@
         getModel().getIsRunAndPause().setEntity(vm.isRunAndPause());
         getModel().getIsRunAndPause().setIsAvailable(vm.getVmPoolId() == null);
 
-        getModel().getIsDeleteProtected().setEntity(vm.isDeleteProtected());
-        getModel().selectSsoMethod(vm.getSsoMethod());
-
-        getModel().getKernel_parameters().setEntity(vm.getKernelParams());
-        getModel().getKernel_path().setEntity(vm.getKernelUrl());
-        getModel().getInitrd_path().setEntity(vm.getInitrdUrl());
-
         getModel().getCpuSharesAmount().setEntity(vm.getCpuShares());
         updateCpuSharesSelection();
-
-        
getModel().getVncKeyboardLayout().setSelectedItem(vm.getDefaultVncKeyboardLayout());
 
         updateRngDevice(getVm().getId());
         updateTimeZone(vm.getTimeZone());
@@ -181,10 +177,6 @@
                 }
             }), vm.getRunOnVds());
         }
-
-        BuilderExecutor.build(vm.getStaticData(), getModel(), new 
SerialNumberPolicyVmBaseToUnitBuilder());
-
-        getModel().getBootMenuEnabled().setEntity(vm.isBootMenuEnabled());
     }
 
     private int calculateHostCpus() {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java
index 407fa04..beb9bd8 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java
@@ -23,7 +23,7 @@
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
 import org.ovirt.engine.ui.uicommonweb.Linq;
 import org.ovirt.engine.ui.uicommonweb.builders.BuilderExecutor;
-import 
org.ovirt.engine.ui.uicommonweb.builders.vm.SerialNumberPolicyVmBaseToUnitBuilder;
+import org.ovirt.engine.ui.uicommonweb.builders.vm.CoreVmBaseToUnitBuilder;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
 import org.ovirt.engine.ui.uicommonweb.models.ListModel;
@@ -303,6 +303,8 @@
 
     private void initTemplate()
     {
+        BuilderExecutor.build(vm.getStaticData(), getModel(), new 
CoreVmBaseToUnitBuilder());
+
         // Update model state according to VM properties.
         getModel().getMemSize().setEntity(this.vm.getVmMemSizeMb());
         
getModel().getMinAllocatedMemory().setEntity(this.vm.getMinAllocatedMem());
@@ -314,8 +316,6 @@
         
getModel().getNumOfSockets().setSelectedItem(this.vm.getNumOfSockets());
         getModel().getIsStateless().setEntity(this.vm.isStateless());
         getModel().getIsRunAndPause().setEntity(this.vm.isRunAndPause());
-        
getModel().getIsDeleteProtected().setEntity(this.vm.isDeleteProtected());
-        getModel().selectSsoMethod(this.vm.getSsoMethod());
 
         updateSelectedCdImage(this.vm.getStaticData());
         updateTimeZone(this.vm.getTimeZone());
@@ -338,14 +338,9 @@
 
         getModel().getUsbPolicy().setSelectedItem(this.vm.getUsbPolicy());
         
getModel().getIsSmartcardEnabled().setEntity(this.vm.isSmartcardEnabled());
-        
getModel().getVncKeyboardLayout().setSelectedItem(this.vm.getDefaultVncKeyboardLayout());
         
getModel().setSelectedMigrationDowntime(this.vm.getMigrationDowntime());
 
         initPriority(this.vm.getPriority());
-
-        BuilderExecutor.build(vm.getStaticData(), getModel(), new 
SerialNumberPolicyVmBaseToUnitBuilder());
-
-        getModel().getBootMenuEnabled().setEntity(vm.isBootMenuEnabled());
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java
index 0d31e28..20ea510 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java
@@ -14,7 +14,8 @@
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
 import org.ovirt.engine.ui.uicommonweb.Linq;
 import org.ovirt.engine.ui.uicommonweb.builders.BuilderExecutor;
-import 
org.ovirt.engine.ui.uicommonweb.builders.vm.SerialNumberPolicyVmBaseToUnitBuilder;
+import org.ovirt.engine.ui.uicommonweb.builders.vm.CoreVmBaseToUnitBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.KernelParamsVmBaseToUnitBuilder;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemModel;
 import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemType;
@@ -88,11 +89,13 @@
         if (template != null)
         {
             // Copy VM parameters from template.
+
+            BuilderExecutor.build(template, getModel(),
+                                  new CoreVmBaseToUnitBuilder(),
+                                  new KernelParamsVmBaseToUnitBuilder());
+
             setSelectedOSType(template, 
getModel().getSelectedCluster().getArchitecture());
             doChangeDefautlHost(template.getDedicatedVmForVds());
-
-            
getModel().getIsDeleteProtected().setEntity(template.isDeleteProtected());
-            getModel().selectSsoMethod(template.getSsoMethod());
 
             getModel().getIsStateless().setEntity(template.isStateless());
 
@@ -105,13 +108,6 @@
             }
 
             updateTimeZone(template.getTimeZone());
-
-            
getModel().getVncKeyboardLayout().setSelectedItem(template.getVncKeyboardLayout());
-
-            // By default, take kernel params from template.
-            getModel().getKernel_path().setEntity(template.getKernelUrl());
-            
getModel().getKernel_parameters().setEntity(template.getKernelParams());
-            getModel().getInitrd_path().setEntity(template.getInitrdUrl());
 
             if (!template.getId().equals(Guid.Empty))
             {
@@ -150,10 +146,6 @@
 
             getModel().getVmInitModel().init(template);
             getModel().getVmInitEnabled().setEntity(template.getVmInit() != 
null);
-
-            BuilderExecutor.build(template, getModel(), new 
SerialNumberPolicyVmBaseToUnitBuilder());
-
-            
getModel().getBootMenuEnabled().setEntity(template.isBootMenuEnabled());
         }
     }
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PoolModelBehaviorBase.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PoolModelBehaviorBase.java
index f673bd2..6d755d1 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PoolModelBehaviorBase.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PoolModelBehaviorBase.java
@@ -11,7 +11,8 @@
 import org.ovirt.engine.ui.frontend.AsyncQuery;
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
 import org.ovirt.engine.ui.uicommonweb.builders.BuilderExecutor;
-import 
org.ovirt.engine.ui.uicommonweb.builders.vm.SerialNumberPolicyVmBaseToUnitBuilder;
+import org.ovirt.engine.ui.uicommonweb.builders.vm.CoreVmBaseToUnitBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.KernelParamsVmBaseToUnitBuilder;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemModel;
 import org.ovirt.engine.ui.uicommonweb.models.pools.PoolModel;
@@ -109,10 +110,13 @@
             updateQuotaByCluster(vmBase.getQuotaId(), vmBase.getQuotaName());
 
             // Copy VM parameters from template.
+
+            BuilderExecutor.build(vmBase, getModel(),
+                                  new CoreVmBaseToUnitBuilder(),
+                                  new KernelParamsVmBaseToUnitBuilder());
+
             setSelectedOSType(vmBase, 
getModel().getSelectedCluster().getArchitecture());
             getModel().getVmType().setSelectedItem(vmBase.getVmType());
-            
getModel().getIsDeleteProtected().setEntity(vmBase.isDeleteProtected());
-            getModel().selectSsoMethod(vmBase.getSsoMethod());
             getModel().getIsRunAndPause().setEntity(false);
 
             boolean hasCd = !StringHelper.isNullOrEmpty(vmBase.getIsoPath());
@@ -124,13 +128,6 @@
             }
 
             updateTimeZone(vmBase.getTimeZone());
-
-            
getModel().getVncKeyboardLayout().setSelectedItem(vmBase.getVncKeyboardLayout());
-
-            // By default, take kernel params from template.
-            getModel().getKernel_path().setEntity(vmBase.getKernelUrl());
-            
getModel().getKernel_parameters().setEntity(vmBase.getKernelParams());
-            getModel().getInitrd_path().setEntity(vmBase.getInitrdUrl());
 
             if (!vmBase.getId().equals(Guid.Empty))
             {
@@ -164,10 +161,6 @@
 
             getModel().getVmInitModel().init(vmBase);
             getModel().getVmInitEnabled().setEntity(vmBase.getVmInit() != 
null);
-
-            BuilderExecutor.build(vmBase, getModel(), new 
SerialNumberPolicyVmBaseToUnitBuilder());
-
-            
getModel().getBootMenuEnabled().setEntity(vmBase.isBootMenuEnabled());
         }
     }
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java
index f7e8b05..e3ee926 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java
@@ -15,7 +15,8 @@
 import org.ovirt.engine.ui.frontend.AsyncQuery;
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
 import org.ovirt.engine.ui.uicommonweb.builders.BuilderExecutor;
-import 
org.ovirt.engine.ui.uicommonweb.builders.vm.SerialNumberPolicyVmBaseToUnitBuilder;
+import org.ovirt.engine.ui.uicommonweb.builders.vm.CoreVmBaseToUnitBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.KernelParamsVmBaseToUnitBuilder;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
 import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemModel;
@@ -169,6 +170,11 @@
     private void initTemplate()
     {
         // Update model state according to VM properties.
+
+        BuilderExecutor.build(template, getModel(),
+                              new CoreVmBaseToUnitBuilder(),
+                              new KernelParamsVmBaseToUnitBuilder());
+
         getModel().getName().setEntity(template.getName());
         getModel().getDescription().setEntity(template.getDescription());
         getModel().getComment().setEntity(template.getComment());
@@ -185,15 +191,8 @@
         
getModel().getNumOfSockets().setSelectedItem(template.getNumOfSockets());
         getModel().getIsStateless().setEntity(template.isStateless());
         getModel().getIsRunAndPause().setEntity(template.isRunAndPause());
-        
getModel().getIsDeleteProtected().setEntity(template.isDeleteProtected());
-        getModel().selectSsoMethod(template.getSsoMethod());
         
getModel().getIsSmartcardEnabled().setEntity(template.isSmartcardEnabled());
-        
getModel().getVncKeyboardLayout().setSelectedItem(template.getVncKeyboardLayout());
         
getModel().setSelectedMigrationDowntime(template.getMigrationDowntime());
-
-        
getModel().getKernel_parameters().setEntity(template.getKernelParams());
-        getModel().getKernel_path().setEntity(template.getKernelUrl());
-        getModel().getInitrd_path().setEntity(template.getInitrdUrl());
 
         
getModel().getIsSingleQxlEnabled().setEntity(template.getSingleQxlPci());
 
@@ -221,8 +220,6 @@
         
getModel().getTemplateVersionName().setEntity(template.getTemplateVersionName());
 
         initPriority(template.getPriority());
-
-        BuilderExecutor.build(template, getModel(), new 
SerialNumberPolicyVmBaseToUnitBuilder());
     }
 
     private void initCdImage()
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
index 064cf6f..8d2a6c7 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
@@ -31,6 +31,10 @@
 import org.ovirt.engine.ui.frontend.Frontend;
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
 import org.ovirt.engine.ui.uicommonweb.Linq;
+import org.ovirt.engine.ui.uicommonweb.builders.Builder;
+import org.ovirt.engine.ui.uicommonweb.builders.BuilderExecutor;
+import org.ovirt.engine.ui.uicommonweb.builders.vm.CoreUnitToVmBaseBuilder;
+import org.ovirt.engine.ui.uicommonweb.builders.vm.CoreVmBaseToUnitBuilder;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
 import org.ovirt.engine.ui.uicommonweb.models.ListModel;


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

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

Reply via email to