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
