Sergey Gotliv has uploaded a new change for review.

Change subject: webadmin: Allow to configure disk as read only when attach it 
to VM
......................................................................

webadmin: Allow to configure disk as read only when attach it to VM

Change-Id: I7bf1408371958d8522c5e6f486c75d1e32788f48
Bug-Url: https://bugzilla.redhat.com/878705
Signed-off-by: Sergey Gotliv <sgot...@redhat.com>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java
M 
frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/popup/vm/VmDiskPopupView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmDiskPopupView.java
4 files changed, 55 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/54/20454/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java
index 0fc0c86..d0dadf1 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java
@@ -2,6 +2,7 @@
 
 import java.util.Date;
 
+import com.google.gwt.cell.client.FieldUpdater;
 import com.google.gwt.i18n.client.DateTimeFormat;
 
 import org.ovirt.engine.core.common.businessentities.Disk;
@@ -15,6 +16,7 @@
 import org.ovirt.engine.ui.common.CommonApplicationConstants;
 import org.ovirt.engine.ui.common.CommonApplicationMessages;
 import org.ovirt.engine.ui.common.CommonApplicationResources;
+import org.ovirt.engine.ui.common.widget.table.column.CheckboxColumn;
 import org.ovirt.engine.ui.common.widget.table.column.DiskContainersColumn;
 import org.ovirt.engine.ui.common.widget.table.column.DiskSizeColumn;
 import org.ovirt.engine.ui.common.widget.table.column.DiskStatusColumn;
@@ -23,10 +25,12 @@
 import org.ovirt.engine.ui.common.widget.table.column.ImageResourceColumn;
 import org.ovirt.engine.ui.common.widget.table.column.StorageDomainsColumn;
 import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip;
+import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
 import org.ovirt.engine.ui.uicommonweb.models.SizeConverter;
 
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.resources.client.ImageResource;
+import org.ovirt.engine.ui.uicommonweb.models.vms.DiskModel;
 
 public class DisksViewColumns {
     private static final CommonApplicationResources resources = 
GWT.create(CommonApplicationResources.class);
@@ -236,4 +240,24 @@
                     ((LunDisk) object).getLun().getSerial() : null;
         }
     };
+
+    public static final CheckboxColumn<EntityModel> readOnlyCheckboxColumn = 
new CheckboxColumn<EntityModel>(
+        new FieldUpdater<EntityModel, Boolean>() {
+            @Override
+            public void update(int idx, EntityModel object, Boolean value) {
+                DiskModel diskModel = (DiskModel) object.getEntity();
+                diskModel.getDisk().setReadOnly(value);
+            }
+        }) {
+            @Override
+            protected boolean canEdit(EntityModel object) {
+                    return true;
+                }
+
+            @Override
+            public Boolean getValue(EntityModel object) {
+                DiskModel diskModel = (DiskModel) object.getEntity();
+                return diskModel.getDisk().getReadOnly();
+            }
+    };
 }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java
index da09584..eed51df 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java
@@ -5,9 +5,12 @@
 import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.ClickHandler;
 import com.google.gwt.resources.client.ImageResource;
+import com.google.gwt.safehtml.shared.SafeHtml;
+import com.google.gwt.safehtml.shared.SafeHtmlUtils;
 import com.google.gwt.text.shared.AbstractRenderer;
 import com.google.gwt.uibinder.client.UiBinder;
 import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.ui.AbstractImagePrototype;
 import com.google.gwt.user.client.ui.FlowPanel;
 import com.google.gwt.user.client.ui.HorizontalPanel;
 import com.google.gwt.user.client.ui.Label;
@@ -24,6 +27,7 @@
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.ui.common.CommonApplicationConstants;
 import org.ovirt.engine.ui.common.CommonApplicationResources;
+import org.ovirt.engine.ui.common.CommonApplicationTemplates;
 import org.ovirt.engine.ui.common.idhandler.ElementIdHandler;
 import org.ovirt.engine.ui.common.idhandler.WithElementId;
 import org.ovirt.engine.ui.common.widget.Align;
@@ -40,6 +44,7 @@
 import org.ovirt.engine.ui.common.widget.table.column.EnumColumn;
 import org.ovirt.engine.ui.common.widget.table.column.ImageResourceColumn;
 import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip;
+import org.ovirt.engine.ui.common.widget.uicommon.disks.DisksViewColumns;
 import 
org.ovirt.engine.ui.common.widget.uicommon.popup.AbstractModelBoundPopupWidget;
 import org.ovirt.engine.ui.common.widget.uicommon.storage.AbstractStorageView;
 import org.ovirt.engine.ui.common.widget.uicommon.storage.FcpStorageView;
@@ -223,8 +228,10 @@
     FcpStorageModel fcpStorageModel;
     SanStorageModel sanStorageModel;
 
-    public VmDiskPopupWidget(CommonApplicationConstants constants, 
CommonApplicationResources resources,
-            boolean isLunDiskEnabled) {
+    public VmDiskPopupWidget(CommonApplicationConstants constants,
+                             CommonApplicationResources resources,
+                             CommonApplicationTemplates templates,
+                             boolean isLunDiskEnabled) {
         this.isNewLunDiskEnabled = isLunDiskEnabled;
         this.progressContent = createProgressContentWidget();
         initManualWidgets();
@@ -232,8 +239,8 @@
         localize(constants);
         ViewIdHandler.idHandler.generateAndSetIds(this);
         initAttachPanelWidget();
-        initInternalDiskTable(constants, resources);
-        initExternalDiskTable(constants, resources);
+        initInternalDiskTable(constants, resources, templates);
+        initExternalDiskTable(constants, resources, templates);
         driver.initialize(this);
     }
 
@@ -311,7 +318,8 @@
     }
 
     private void initInternalDiskTable(final CommonApplicationConstants 
constants,
-            final CommonApplicationResources resources) {
+            final CommonApplicationResources resources,
+            final CommonApplicationTemplates templates) {
         internalDiskTable.enableColumnResizing();
 
         TextColumnWithTooltip<EntityModel> aliasColumn = new 
TextColumnWithTooltip<EntityModel>() {
@@ -377,6 +385,11 @@
         };
         internalDiskTable.addColumn(interfaceColumn, 
constants.interfaceVmDiskPopup(), "95px"); //$NON-NLS-1$
 
+        SafeHtml readOnlyColumnHeader = 
templates.imageWithTitle(SafeHtmlUtils.fromTrustedString(
+                
AbstractImagePrototype.create(resources.readOnlyDiskIcon()).getHTML()), 
constants.readOnly()
+        );
+        internalDiskTable.addColumn(DisksViewColumns.readOnlyCheckboxColumn, 
readOnlyColumnHeader, "30px"); //$NON-NLS-1$
+
         internalDiskTable.addColumn(new ImageResourceColumn<EntityModel>() {
             @Override
             public ImageResource getValue(EntityModel object) {
@@ -400,7 +413,8 @@
     }
 
     private void initExternalDiskTable(final CommonApplicationConstants 
constants,
-            final CommonApplicationResources resources) {
+            final CommonApplicationResources resources,
+            final CommonApplicationTemplates templates) {
         externalDiskTable.enableColumnResizing();
 
         TextColumnWithTooltip<EntityModel> aliasColumn = new 
TextColumnWithTooltip<EntityModel>() {
@@ -493,6 +507,11 @@
         };
         externalDiskTable.addColumn(interfaceColumn, 
constants.interfaceVmDiskPopup(), "90px"); //$NON-NLS-1$
 
+        SafeHtml readOnlyColumnHeader = 
templates.imageWithTitle(SafeHtmlUtils.fromTrustedString(
+                
AbstractImagePrototype.create(resources.readOnlyDiskIcon()).getHTML()), 
constants.readOnly()
+        );
+        externalDiskTable.addColumn(DisksViewColumns.readOnlyCheckboxColumn, 
readOnlyColumnHeader, "30px"); //$NON-NLS-1$
+
         externalDiskTable.addColumn(new ImageResourceColumn<EntityModel>() {
             @Override
             public ImageResource getValue(EntityModel object) {
diff --git 
a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/popup/vm/VmDiskPopupView.java
 
b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/popup/vm/VmDiskPopupView.java
index 758438a..11fdb86 100644
--- 
a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/popup/vm/VmDiskPopupView.java
+++ 
b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/popup/vm/VmDiskPopupView.java
@@ -6,6 +6,7 @@
 import org.ovirt.engine.ui.uicommonweb.models.vms.AbstractDiskModel;
 import org.ovirt.engine.ui.userportal.ApplicationConstants;
 import org.ovirt.engine.ui.userportal.ApplicationResources;
+import org.ovirt.engine.ui.userportal.ApplicationTemplates;
 import 
org.ovirt.engine.ui.userportal.section.main.presenter.popup.vm.VmDiskPopupPresenterWidget;
 
 import com.google.gwt.core.client.GWT;
@@ -19,8 +20,8 @@
     }
 
     @Inject
-    public VmDiskPopupView(EventBus eventBus, ApplicationResources resources, 
ApplicationConstants constants) {
-        super(eventBus, resources, new VmDiskPopupWidget(constants, resources, 
false), "785px", "615px"); //$NON-NLS-1$ //$NON-NLS-2$
+    public VmDiskPopupView(EventBus eventBus, ApplicationResources resources, 
ApplicationConstants constants, ApplicationTemplates templates) {
+        super(eventBus, resources, new VmDiskPopupWidget(constants, resources, 
templates, false), "815px", "615px"); //$NON-NLS-1$ //$NON-NLS-2$
         ViewIdHandler.idHandler.generateAndSetIds(this);
         asWidget().enableResizeSupport(true);
     }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmDiskPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmDiskPopupView.java
index 9ec24c0..1e1abd0 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmDiskPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmDiskPopupView.java
@@ -6,6 +6,7 @@
 import org.ovirt.engine.ui.uicommonweb.models.vms.AbstractDiskModel;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
 import org.ovirt.engine.ui.webadmin.ApplicationResources;
+import org.ovirt.engine.ui.webadmin.ApplicationTemplates;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.vm.VmDiskPopupPresenterWidget;
 
 import com.google.gwt.core.client.GWT;
@@ -19,8 +20,8 @@
     }
 
     @Inject
-    public VmDiskPopupView(EventBus eventBus, ApplicationResources resources, 
ApplicationConstants constants) {
-        super(eventBus, resources, new VmDiskPopupWidget(constants, resources, 
true), "785px", "615px"); //$NON-NLS-1$ //$NON-NLS-2$
+    public VmDiskPopupView(EventBus eventBus, ApplicationResources resources, 
ApplicationConstants constants, ApplicationTemplates templates) {
+        super(eventBus, resources, new VmDiskPopupWidget(constants, resources, 
templates, true), "815px", "615px"); //$NON-NLS-1$ //$NON-NLS-2$
         ViewIdHandler.idHandler.generateAndSetIds(this);
         asWidget().enableResizeSupport(true);
     }


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

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

Reply via email to