Lior Vernia has uploaded a new change for review.

Change subject: webadmin: Add MAC pool per DC
......................................................................

webadmin: Add MAC pool per DC

Added tabs to the add/edit DC dialog.

Change-Id: I338a5647ded866c6b7b07542e9a95ea3dc3a2594
Signed-off-by: Lior Vernia <[email protected]>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterModel.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/macpool/DcBoundMacPoolModel.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/datacenter/DataCenterPopupPresenterWidget.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/DataCenterPopupView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/DataCenterPopupView.ui.xml
7 files changed, 88 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/92/27792/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterListModel.java
index fac733d..2b2498d 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterListModel.java
@@ -312,6 +312,7 @@
         model.setHelpTag(HelpTag.edit_data_center);
         model.setHashName("edit_data_center"); //$NON-NLS-1$
         model.getName().setEntity(dataCenter.getName());
+        model.getMacPoolModel().setEntity(dataCenter.getMacPool());
 
         if (getSystemTreeSelectedItem() != null
                 && getSystemTreeSelectedItem().getType() == 
SystemTreeItemType.DataCenter)
@@ -754,6 +755,7 @@
         
dataCenter.setcompatibility_version(model.getVersion().getSelectedItem());
         dataCenter.setQuotaEnforcementType(model.getQuotaEnforceTypeListModel()
                 .getSelectedItem());
+        dataCenter.setMacPool(model.getMacPoolModel().flush());
 
         model.startProgress(null);
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterModel.java
index 24b99a4..d1cb2fc 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterModel.java
@@ -16,6 +16,7 @@
 import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
 import org.ovirt.engine.ui.uicommonweb.models.ListModel;
 import org.ovirt.engine.ui.uicommonweb.models.Model;
+import org.ovirt.engine.ui.uicommonweb.models.macpool.MacPoolModel;
 import org.ovirt.engine.ui.uicommonweb.validation.AsciiNameValidation;
 import org.ovirt.engine.ui.uicommonweb.validation.AsciiOrNoneValidation;
 import org.ovirt.engine.ui.uicommonweb.validation.IValidation;
@@ -158,12 +159,23 @@
         this.quotaEnforceTypeListModel = quotaEnforceTypeListModel;
     }
 
+    private MacPoolModel macPoolModel;
+
+    public MacPoolModel getMacPoolModel() {
+        return macPoolModel;
+    }
+
+    private void setMacPoolModel(MacPoolModel macPoolModel) {
+        this.macPoolModel = macPoolModel;
+    }
+
     public DataCenterModel()
     {
         setName(new EntityModel<String>());
         setDescription(new EntityModel<String>());
         setComment(new EntityModel<String>());
         setVersion(new ListModel<Version>());
+        setMacPoolModel(new MacPoolModel());
 
         setStoragePoolType(new ListModel<Boolean>());
         getStoragePoolType().getSelectedItemChangedEvent().addListener(this);
@@ -295,6 +307,8 @@
 
         getComment().validateEntity(new IValidation[] { new 
SpecialAsciiI18NOrNoneValidation() });
 
+        getMacPoolModel().validate();
+
         // TODO: add this code to async validate.
         // string name = (string)Name.Entity;
         // if (String.Compare(name, OriginalName, true) != 0 && 
!DataProvider.IsDataCenterNameUnique(name))
@@ -304,7 +318,7 @@
         // }
 
         return getName().getIsValid() && getDescription().getIsValid() && 
getComment().getIsValid()
-                && getVersion().getIsValid();
+                && getVersion().getIsValid() && getMacPoolModel().getIsValid();
     }
 
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/macpool/DcBoundMacPoolModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/macpool/DcBoundMacPoolModel.java
new file mode 100644
index 0000000..aaf149a
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/macpool/DcBoundMacPoolModel.java
@@ -0,0 +1,7 @@
+package org.ovirt.engine.ui.uicommonweb.models.macpool;
+
+public class DcBoundMacPoolModel extends MacPoolModel {
+
+    ListModel<>
+
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
index cc1eeb1..754d565 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
@@ -2,6 +2,8 @@
 
 import org.ovirt.engine.ui.common.CommonApplicationConstants;
 
+import com.google.gwt.i18n.client.Constants.DefaultStringValue;
+
 public interface ApplicationConstants extends CommonApplicationConstants {
 
     @DefaultStringValue("oVirt Engine Web Administration")
@@ -3584,4 +3586,10 @@
 
     @DefaultStringValue("iSCSI Multipathing")
     String dataCenterIscsiMultipathingSubTabLabel();
+
+    @DefaultStringValue("General")
+    String dataCenterGeneralTab();
+
+    @DefaultStringValue("MAC Address Pool")
+    String dataCenterMacPoolTab();
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/datacenter/DataCenterPopupPresenterWidget.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/datacenter/DataCenterPopupPresenterWidget.java
index 8a5ec08..b259541 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/datacenter/DataCenterPopupPresenterWidget.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/datacenter/DataCenterPopupPresenterWidget.java
@@ -2,6 +2,10 @@
 
 import 
org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget;
 import org.ovirt.engine.ui.uicommonweb.models.datacenters.DataCenterModel;
+import org.ovirt.engine.ui.uicommonweb.models.macpool.MacPoolModel;
+import org.ovirt.engine.ui.uicompat.Event;
+import org.ovirt.engine.ui.uicompat.EventArgs;
+import org.ovirt.engine.ui.uicompat.IEventListener;
 
 import com.google.gwt.event.shared.EventBus;
 import com.google.inject.Inject;
@@ -9,6 +13,7 @@
 public class DataCenterPopupPresenterWidget extends 
AbstractModelBoundPopupPresenterWidget<DataCenterModel, 
DataCenterPopupPresenterWidget.ViewDef> {
 
     public interface ViewDef extends 
AbstractModelBoundPopupPresenterWidget.ViewDef<DataCenterModel> {
+        void updateMacPool(MacPoolModel macPoolModel);
     }
 
     @Inject
@@ -16,4 +21,16 @@
         super(eventBus, view);
     }
 
+    @Override
+    public void init(final DataCenterModel model) {
+        super.init(model);
+        model.getMacPoolModel().getEntityChangedEvent().addListener(new 
IEventListener() {
+
+            @Override
+            public void eventRaised(Event ev, Object sender, EventArgs args) {
+                getView().updateMacPool(model.getMacPoolModel());
+            }
+        });
+    }
+
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/DataCenterPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/DataCenterPopupView.java
index 01463bc..9b5bbe0 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/DataCenterPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/DataCenterPopupView.java
@@ -12,9 +12,11 @@
 import org.ovirt.engine.ui.common.widget.renderer.EnumRenderer;
 import org.ovirt.engine.ui.common.widget.renderer.NullSafeRenderer;
 import org.ovirt.engine.ui.uicommonweb.models.datacenters.DataCenterModel;
+import org.ovirt.engine.ui.uicommonweb.models.macpool.MacPoolModel;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
 import org.ovirt.engine.ui.webadmin.ApplicationResources;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.datacenter.DataCenterPopupPresenterWidget;
+import 
org.ovirt.engine.ui.webadmin.section.main.view.popup.macpool.MacPoolWidget;
 
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.editor.client.SimpleBeanEditorDriver;
@@ -68,6 +70,11 @@
     ListModelListBoxEditor<QuotaEnforcementTypeEnum> quotaEnforceTypeEditor;
 
     @UiField
+    @Path(value = "macPoolModel.entity")
+    @WithElementId
+    MacPoolWidget macPoolWidget;
+
+    @UiField
     Style style;
 
     private final Driver driver = GWT.create(Driver.class);
@@ -108,6 +115,7 @@
     @Override
     public void edit(DataCenterModel object) {
         driver.edit(object);
+        updateMacPool(object.getMacPoolModel());
     }
 
     @Override
@@ -120,6 +128,11 @@
         nameEditor.setFocus(true);
     }
 
+    @Override
+    public void updateMacPool(MacPoolModel macPoolModel) {
+        macPoolWidget.edit(macPoolModel);
+    }
+
     public void addContentStyleName(String styleName) {
         this.asWidget().addContentStyleName(styleName);
     }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/DataCenterPopupView.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/DataCenterPopupView.ui.xml
index 0754ee1..d8c53ce 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/DataCenterPopupView.ui.xml
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/DataCenterPopupView.ui.xml
@@ -2,7 +2,9 @@
 <!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent";>
 <ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" 
xmlns:g="urn:import:com.google.gwt.user.client.ui"
        xmlns:d="urn:import:org.ovirt.engine.ui.common.widget.dialog" 
xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor"
-    xmlns:ge="urn:import:org.ovirt.engine.ui.common.widget.editor.generic">
+    xmlns:ge="urn:import:org.ovirt.engine.ui.common.widget.editor.generic" 
xmlns:t="urn:import:org.ovirt.engine.ui.common.widget.dialog.tab" 
xmlns:dc="urn:import:org.ovirt.engine.ui.webadmin.section.main.view.popup.datacenter">
+
+       <ui:with field='constants' 
type='org.ovirt.engine.ui.webadmin.ApplicationConstants'/>
 
        <ui:style 
type="org.ovirt.engine.ui.webadmin.section.main.view.popup.datacenter.DataCenterPopupView.Style">
                .contentStyle {
@@ -11,14 +13,29 @@
 
        <d:SimpleDialogPanel width="450px" height="320px">
                <d:content>
-                       <g:FlowPanel>
-                               <ge:StringEntityModelTextBoxEditor 
ui:field="nameEditor" />
-                               <ge:StringEntityModelTextBoxEditor 
ui:field="descriptionEditor" />
-                               <e:ListModelListBoxEditor 
ui:field="storagePoolTypeEditor" />
-                               <e:ListModelListBoxEditor 
ui:field="versionEditor" />
-                               <e:ListModelListBoxEditor 
ui:field="quotaEnforceTypeEditor" />
-                               <ge:StringEntityModelTextBoxEditor 
ui:field="commentEditor" />
-                       </g:FlowPanel>
+                       <t:DialogTabPanel>
+                               <t:tab>
+                                       <t:DialogTab 
label="{constants.dataCenterGeneralTab}">
+                                               <t:content>
+                                                       <g:FlowPanel>
+                                                               
<ge:StringEntityModelTextBoxEditor ui:field="nameEditor" />
+                                                               
<ge:StringEntityModelTextBoxEditor ui:field="descriptionEditor" />
+                                                               
<e:ListModelListBoxEditor ui:field="storagePoolTypeEditor" />
+                                                               
<e:ListModelListBoxEditor ui:field="versionEditor" />
+                                                               
<e:ListModelListBoxEditor ui:field="quotaEnforceTypeEditor" />
+                                                               
<ge:StringEntityModelTextBoxEditor ui:field="commentEditor" />
+                                                       </g:FlowPanel>
+                                               </t:content>
+                                       </t:DialogTab>
+                               </t:tab>
+                               <t:tab>
+                                       <t:DialogTab 
label="{constants.dataCenterMacPoolTab}">
+                                               <t:content>
+                                                       <dc:MacPoolWidget 
ui:field="macPoolWidget" />
+                                               </t:content>
+                                       </t:DialogTab>
+                               </t:tab>
+                       </t:DialogTabPanel>
                </d:content>
        </d:SimpleDialogPanel>
 


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I338a5647ded866c6b7b07542e9a95ea3dc3a2594
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

Reply via email to