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