Martin Beták has uploaded a new change for review. Change subject: engine: Frontend support for setting per-VM VncKeyboardLayout ......................................................................
engine: Frontend support for setting per-VM VncKeyboardLayout Added combobox to EditVM dialog for setting the VncKeyboardLayout per individual VM. Change-Id: I8f143e5b8425805ea87651ec382f0bc95f584591 Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=916866 Signed-off-by: Martin Betak <[email protected]> --- M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationMessages.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.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/UnitVmModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java 16 files changed, 86 insertions(+), 9 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/87/12787/1 diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java index 836ea6d..98d13d3 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java @@ -81,7 +81,9 @@ GlusterVolumeOptionOwnerGroupVirtValue, CpuPinningEnabled, CpuPinMigrationEnabled, - MigrationSupportForNativeUsb(ConfigAuthType.User) + MigrationSupportForNativeUsb(ConfigAuthType.User), + VncKeyboardLayout(ConfigAuthType.User), + VncKeyboardLayoutValidValues(ConfigAuthType.User) ; public static enum ConfigAuthType { diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java index 3428f34..320db35 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java @@ -370,6 +370,9 @@ @DefaultStringValue("Protocol") String protocolVmPopup(); + @DefaultStringValue("VNC Keyboard Layout") + String vncKeyboardLayoutVmPopup(); + @DefaultStringValue("USB Support") String usbPolicyVmPopup(); diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationMessages.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationMessages.java index b0d7bf9..2c8fecd 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationMessages.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationMessages.java @@ -88,4 +88,7 @@ @DefaultMessage("{0} ({1} GB free of {2} GB)") String storageDomainFreeSpace(String name, int free, int total); + + @DefaultMessage("default [{0}]") + String globalVncKeyboardLayoutCaption(String currentDefault); } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java index 3eeac7f..44b47b5 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java @@ -263,6 +263,11 @@ public ListModelListBoxEditor<Object> displayProtocolEditor; @UiField(provided = true) + @Path(value = "vncKeyboardLayout.selectedItem") + @WithElementId("vncKeyboardLayout") + public ListModelListBoxEditor<Object> vncKeyboardLayoutEditor; + + @UiField(provided = true) @Path(value = "usbPolicy.selectedItem") @WithElementId("usbPolicy") public ListModelListBoxEditor<Object> usbSupportEditor; @@ -640,6 +645,21 @@ } }); + vncKeyboardLayoutEditor = new ListModelListBoxEditor<Object>(new AbstractRenderer<Object>() { + + final String globalLayout = (String)AsyncDataProvider.GetConfigValuePreConverted(ConfigurationValues.VncKeyboardLayout); + + @Override + public String render(Object object) { + if (object == null) { + return messages.globalVncKeyboardLayoutCaption(globalLayout); + } else { + return object.toString(); + } + } + + }); + // Host Tab specificHost = new RadioButton("runVmOnHostGroup"); //$NON-NLS-1$ isAutoAssignEditor = new EntityModelRadioButtonEditor("runVmOnHostGroup"); //$NON-NLS-1$ @@ -718,6 +738,7 @@ // Console Tab consoleTab.setLabel(constants.consoleVmPopup()); displayProtocolEditor.setLabel(constants.protocolVmPopup()); + vncKeyboardLayoutEditor.setLabel(constants.vncKeyboardLayoutVmPopup()); usbSupportEditor.setLabel(constants.usbPolicyVmPopup()); numOfMonitorsEditor.setLabel(constants.monitorsVmPopup()); allowConsoleReconnectEditor.setLabel(constants.allowConsoleReconnect()); @@ -1089,6 +1110,7 @@ // ==Console Tab== nextTabIndex = consoleTab.setTabIndexes(nextTabIndex); displayProtocolEditor.setTabIndex(nextTabIndex++); + vncKeyboardLayoutEditor.setTabIndex(nextTabIndex++); usbSupportEditor.setTabIndex(nextTabIndex++); numOfMonitorsEditor.setTabIndex(nextTabIndex++); isSmartcardEnabledEditor.setTabIndex(nextTabIndex++); diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml index 6aef823..60c8646 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml @@ -303,6 +303,7 @@ <t:content> <g:FlowPanel> <e:ListModelListBoxEditor ui:field="displayProtocolEditor" /> + <e:ListModelListBoxEditor ui:field="vncKeyboardLayoutEditor" /> <e:ListModelListBoxEditor ui:field="usbSupportEditor" /> <e:ListModelListBoxEditor ui:field="numOfMonitorsEditor" /> <e:EntityModelCheckBoxEditor ui:field="isSmartcardEnabledEditor" addStyleNames="{style.checkbox}" /> diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolListModel.java index f955970..1c95b64 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolListModel.java @@ -19,11 +19,11 @@ import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VmOsType; +import org.ovirt.engine.core.common.businessentities.VmPool; import org.ovirt.engine.core.common.businessentities.VmPoolType; import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.common.businessentities.VmType; import org.ovirt.engine.core.common.businessentities.storage_pool; -import org.ovirt.engine.core.common.businessentities.VmPool; import org.ovirt.engine.core.common.interfaces.SearchType; import org.ovirt.engine.core.common.mode.ApplicationMode; import org.ovirt.engine.core.common.queries.GetVmdataByPoolIdParameters; @@ -507,6 +507,7 @@ desktop.setKernelParams((String) model.getKernel_parameters().getEntity()); desktop.setInitrdUrl((String) model.getInitrd_path().getEntity()); desktop.setMigrationSupport(migrationSupport); + desktop.setVncKeyboardLayout((String) model.getVncKeyboardLayout().getSelectedItem()); EntityModel displayProtocolSelectedItem = (EntityModel) model.getDisplayProtocol().getSelectedItem(); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java index e6053ab..52172fd 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java @@ -15,13 +15,13 @@ import org.ovirt.engine.core.common.businessentities.DisplayType; import org.ovirt.engine.core.common.businessentities.MigrationSupport; import org.ovirt.engine.core.common.businessentities.Quota; +import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.UsbPolicy; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.VmOsType; import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.common.businessentities.VmTemplateStatus; -import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.interfaces.SearchType; import org.ovirt.engine.core.common.mode.ApplicationMode; import org.ovirt.engine.core.common.queries.SearchParameters; @@ -526,6 +526,7 @@ template.setKernelUrl((String) model.getKernel_path().getEntity()); template.setKernelParams((String) model.getKernel_parameters().getEntity()); template.setInitrdUrl((String) model.getInitrd_path().getEntity()); + template.setVncKeyboardLayout((String) model.getVncKeyboardLayout().getSelectedItem()); if (model.getQuota().getIsAvailable() && model.getQuota().getSelectedItem() != null) { template.setQuotaId(((Quota) model.getQuota().getSelectedItem()).getId()); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java index 9759ea9..65b7426 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java @@ -22,6 +22,7 @@ import org.ovirt.engine.core.common.businessentities.DisplayType; import org.ovirt.engine.core.common.businessentities.MigrationSupport; import org.ovirt.engine.core.common.businessentities.Quota; +import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.UsbPolicy; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSGroup; @@ -32,7 +33,6 @@ import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.common.businessentities.VmType; import org.ovirt.engine.core.common.businessentities.VolumeType; -import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.storage_pool; import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; import org.ovirt.engine.core.common.queries.GetAllDisksByVmIdParameters; @@ -659,6 +659,7 @@ tempVar.setInitrdUrl(vm.getInitrdUrl()); tempVar.setKernelUrl(vm.getKernelUrl()); tempVar.setKernelParams(vm.getKernelParams()); + tempVar.setVncKeyboardLayout(vm.getVncKeyboardLayout()); VM newvm = tempVar; EntityModel displayProtocolSelectedItem = (EntityModel) model.getDisplayProtocol().getSelectedItem(); @@ -1349,6 +1350,7 @@ gettempVm().setIsoPath(model.getCdImage().getIsChangable() ? (String) model.getCdImage() .getSelectedItem() : ""); //$NON-NLS-1$ gettempVm().setAutoStartup((Boolean) model.getIsHighlyAvailable().getEntity()); + gettempVm().setVncKeyboardLayout((String) model.getVncKeyboardLayout().getSelectedItem()); gettempVm().setInitrdUrl((String) model.getInitrd_path().getEntity()); gettempVm().setKernelUrl((String) model.getKernel_path().getEntity()); 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 5214def..4e0d3b5 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 @@ -144,6 +144,8 @@ getModel().getCustomPropertySheet().setEntity(vm.getCustomProperties()); getModel().getCpuPinning().setEntity(vm.getCpuPinning()); + getModel().getVncKeyboardLayout().setSelectedItem(vm.getVncKeyboardLayout()); + if (vm.isInitialized()) { getModel().getTimeZone() 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 7f0e846..e6c03ec 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 @@ -199,6 +199,7 @@ getModel().getIsStateless().setEntity(this.vm.isStateless()); getModel().getIsDeleteProtected().setEntity(this.vm.isDeleteProtected()); getModel().getIsSmartcardEnabled().setEntity(this.vm.isSmartcardEnabled()); + getModel().getVncKeyboardLayout().setSelectedItem(this.vm.getVncKeyboardLayout()); if (!StringHelper.isNullOrEmpty(this.vm.getTimeZone())) { 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 8d31041..ec72421 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 @@ -4,12 +4,12 @@ import org.ovirt.engine.core.common.businessentities.DisplayType; import org.ovirt.engine.core.common.businessentities.QuotaEnforcementTypeEnum; +import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.StoragePoolStatus; import org.ovirt.engine.core.common.businessentities.StorageType; import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.common.businessentities.VmType; -import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.storage_pool; import org.ovirt.engine.core.compat.NGuid; import org.ovirt.engine.core.compat.StringHelper; @@ -100,6 +100,7 @@ getModel().getIsSmartcardEnabled().setEntity(template.isSmartcardEnabled()); getModel().getIsDeleteProtected().setEntity(template.isDeleteProtected()); + getModel().getVncKeyboardLayout().setSelectedItem(template.getVncKeyboardLayout()); if (getModel().getVmType() == VmType.Desktop) { getModel().getIsStateless().setEntity(template.isStateless()); 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 b3c23a5..e03a696 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 @@ -120,6 +120,7 @@ getModel().getIsHighlyAvailable().setEntity(vmBase.isAutoStartup()); getModel().getIsDeleteProtected().setEntity(vmBase.isDeleteProtected()); getModel().getIsSmartcardEnabled().setEntity(vmBase.isSmartcardEnabled()); + getModel().getVncKeyboardLayout().setSelectedItem(vmBase.getVncKeyboardLayout()); boolean hasCd = !StringHelper.isNullOrEmpty(vmBase.getIsoPath()); 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 8afb12b..5d89002 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 @@ -157,6 +157,7 @@ getModel().getIsStateless().setEntity(this.template.isStateless()); getModel().getIsDeleteProtected().setEntity(this.template.isDeleteProtected()); getModel().getIsSmartcardEnabled().setEntity(this.template.isSmartcardEnabled()); + getModel().getVncKeyboardLayout().setSelectedItem(this.template.getVncKeyboardLayout()); getModel().getKernel_parameters().setEntity(this.template.getKernelParams()); getModel().getKernel_path().setEntity(this.template.getKernelUrl()); 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 6134b47..fb75f17 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 @@ -12,13 +12,14 @@ import org.ovirt.engine.core.common.businessentities.BootSequence; import org.ovirt.engine.core.common.businessentities.DisplayType; import org.ovirt.engine.core.common.businessentities.QuotaEnforcementTypeEnum; +import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.UsbPolicy; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.VmOsType; import org.ovirt.engine.core.common.businessentities.VmType; -import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.storage_pool; +import org.ovirt.engine.core.common.queries.ConfigurationValues; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.NGuid; @@ -115,6 +116,7 @@ getNumOfMonitors().setIsChangable(false); getIsSmartcardEnabled().setIsChangable(false); getAllowConsoleReconnect().setIsChangable(false); + getVncKeyboardLayout().setIsChangable(false); // ==Host Tab== getIsAutoAssign().setIsChangable(false); @@ -1034,6 +1036,17 @@ this.cpuPinning = cpuPinning; } + private ListModel vncKeyboardLayout; + + public ListModel getVncKeyboardLayout() { + return vncKeyboardLayout; + } + + public void setVncKeyboardLayout(ListModel vncKeyboardLayout) { + this.vncKeyboardLayout = vncKeyboardLayout; + } + + public UnitVmModel(VmModelBehaviorBase behavior) { Frontend.getQueryStartedEvent().addListener(this); @@ -1065,6 +1078,7 @@ setIsStateless(new NotChangableForVmInPoolEntityModel()); setIsSmartcardEnabled(new NotChangableForVmInPoolEntityModel()); setIsDeleteProtected(new NotChangableForVmInPoolEntityModel()); + setVncKeyboardLayout(new NotChangableForVmInPoolListModel()); setCdImage(new NotChangableForVmInPoolListModel()); getCdImage().setIsChangable(false); @@ -1228,6 +1242,7 @@ InitAllowConsoleReconnect(); InitMinimalVmMemSize(); InitMaximalVmMemSize32OS(); + initVncKeyboardLayout(); behavior.Initialize(SystemTreeSelectedItem); } @@ -1553,6 +1568,17 @@ getFirstBootDevice().setSelectedItem(hardDiskOption); } + private void initVncKeyboardLayout() { + + final List<String> layouts = (List<String>)AsyncDataProvider.GetConfigValuePreConverted(ConfigurationValues.VncKeyboardLayoutValidValues); + final ArrayList<String> vncKeyboardLayoutItems = new ArrayList<String>(); + vncKeyboardLayoutItems.add(null); // null value means the global VncKeyboardLayout from vdc_options will be used + vncKeyboardLayoutItems.addAll(layouts); + getVncKeyboardLayout().setItems(vncKeyboardLayoutItems); + + getVncKeyboardLayout().setIsAvailable(isVncSelected()); + } + private void DataCenter_SelectedItemChanged(Object sender, EventArgs args) { behavior.DataCenter_SelectedItemChanged(); @@ -1656,6 +1682,8 @@ getUsbPolicy().setIsChangable(type == DisplayType.qxl); getIsSmartcardEnabled().setIsChangable(type == DisplayType.qxl); + getVncKeyboardLayout().setIsAvailable(type == DisplayType.vnc); + UpdateNumOfMonitors(); } @@ -1735,8 +1763,7 @@ behavior.updateCpuPinningVisibility(); } - private void UpdateNumOfMonitors() - { + private boolean isVncSelected() { boolean isVnc = false; if (getDisplayProtocol().getSelectedItem() != null) @@ -1745,7 +1772,12 @@ isVnc = displayType == DisplayType.vnc; } - if (isVnc) + return isVnc; + } + + private void UpdateNumOfMonitors() + { + if (isVncSelected()) { getNumOfMonitors().setSelectedItem(1); getNumOfMonitors().setIsChangable(false); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java index 475b1e2..1f97f77 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java @@ -1841,6 +1841,7 @@ tempVar.setKernelParams(vm.getKernelParams()); tempVar.setDedicatedVmForVds(vm.getDedicatedVmForVds()); tempVar.setMigrationSupport(vm.getMigrationSupport()); + tempVar.setVncKeyboardLayout(vm.getVncKeyboardLayout()); VM newvm = tempVar; @@ -2426,6 +2427,7 @@ getcurrentVm().setCpuPinning((String) model.getCpuPinning() .getEntity()); + getcurrentVm().setVncKeyboardLayout((String) model.getVncKeyboardLayout().getSelectedItem()); VDS defaultHost = (VDS) model.getDefaultHost().getSelectedItem(); if ((Boolean) model.getIsAutoAssign().getEntity()) diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java index 36d10a8..64bd3ed 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java @@ -587,6 +587,8 @@ getcurrentVm().setQuotaId(((Quota) model.getQuota().getSelectedItem()).getId()); } + getcurrentVm().setVncKeyboardLayout((String) model.getVncKeyboardLayout().getSelectedItem()); + EntityModel displayProtocolSelectedItem = (EntityModel) model.getDisplayProtocol().getSelectedItem(); getcurrentVm().setDefaultDisplayType((DisplayType) displayProtocolSelectedItem.getEntity()); -- To view, visit http://gerrit.ovirt.org/12787 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I8f143e5b8425805ea87651ec382f0bc95f584591 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Martin Beták <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
