Frank Kobzik has uploaded a new change for review. Change subject: frontend: Client shortcuts for VNC sessions ......................................................................
frontend: Client shortcuts for VNC sessions This patch - adds client shortcut mapping for toggling fullscreen and releasing cursor to VNC descriptor file (.vv file), - sets VNC client window name in the same way SPICE does it, i.e.: (<vm name>:<display number> - <release cursor shortcut>) Change-Id: Ic292e62743debf3c7af11497b74c607ebbaa98bb Signed-off-by: Frantisek Kobzik <fkob...@redhat.com> Bug-Url: https://bugzilla.redhat.com/1083766 --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractVnc.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/VncNativeImpl.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ConsoleModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/IVnc.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VncConsoleModel.java 6 files changed, 67 insertions(+), 27 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/81/26881/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractVnc.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractVnc.java index eb541ad..9fbb42b 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractVnc.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractVnc.java @@ -13,6 +13,8 @@ private final ConsoleUtils consoleUtils = (ConsoleUtils) TypeResolver.getInstance().resolve(ConsoleUtils.class); private int ticketValiditySeconds; + private String toggleFullscreenHotKey; + private String releaseCursorHotKey; public AbstractVnc() { setRemapCtrlAltDelete(true); @@ -68,4 +70,22 @@ public void setTicketValiditySeconds(int ticketValiditySeconds) { this.ticketValiditySeconds = ticketValiditySeconds; - }} + } + + public String getToggleFullscreenHotKey() { + return toggleFullscreenHotKey; + } + + public void setToggleFullscreenHotKey(String toggleFullscreenHotKey) { + this.toggleFullscreenHotKey = toggleFullscreenHotKey; + } + + public String getReleaseCursorHotKey() { + return releaseCursorHotKey; + } + + public void setReleaseCursorHotKey(String releaseCursorHotKey) { + this.releaseCursorHotKey = releaseCursorHotKey; + } + +} diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/VncNativeImpl.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/VncNativeImpl.java index 403af64..9d57e6e 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/VncNativeImpl.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/VncNativeImpl.java @@ -17,6 +17,14 @@ .append("\ndelete-this-file=1") //$NON-NLS-1$ .append("\ntitle=").append(getTitle()); //$NON-NLS-1$ + if (!StringHelper.isNullOrEmpty(getToggleFullscreenHotKey())) { + configBuilder.append("\ntoggle-fullscreen=").append(getToggleFullscreenHotKey()); //$NON-NLS-1$ + } + + if (!StringHelper.isNullOrEmpty(getReleaseCursorHotKey())) { + configBuilder.append("\nrelease-cursor=").append(getReleaseCursorHotKey()); //$NON-NLS-1$ + } + if (isRemapCtrlAltDelete() && !StringHelper.isNullOrEmpty(getSecureAttentionMapping())) { configBuilder.append("\nsecure-attention=").append(getSecureAttentionMapping()); //$NON-NLS-1$ } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ConsoleModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ConsoleModel.java index 49e5005..0858664 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ConsoleModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ConsoleModel.java @@ -9,15 +9,18 @@ import com.google.gwt.user.client.ui.TextArea; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VMStatus; +import org.ovirt.engine.core.common.queries.ConfigurationValues; import org.ovirt.engine.core.common.queries.HasAdElementReconnectPermissionParameters; import org.ovirt.engine.core.common.queries.VdcQueryReturnValue; import org.ovirt.engine.core.common.queries.VdcQueryType; +import org.ovirt.engine.core.compat.StringHelper; import org.ovirt.engine.ui.frontend.AsyncQuery; import org.ovirt.engine.ui.frontend.Frontend; import org.ovirt.engine.ui.frontend.INewAsyncCallback; import org.ovirt.engine.ui.frontend.utils.BaseContextPathData; import org.ovirt.engine.ui.uicommonweb.BaseCommandTarget; import org.ovirt.engine.ui.uicommonweb.UICommand; +import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; import org.ovirt.engine.ui.uicommonweb.help.HelpTag; import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel; import org.ovirt.engine.ui.uicommonweb.models.EntityModel; @@ -290,4 +293,28 @@ return textArea; } + protected String getToggleFullScreenKeys() { + return (String) AsyncDataProvider.getConfigValuePreConverted(ConfigurationValues.ConsoleToggleFullScreenKeys); + } + + protected String getReleaseCursorKeys() { + return (String) AsyncDataProvider.getConfigValuePreConverted(ConfigurationValues.ConsoleReleaseCursorKeys); + } + + protected String getClientTitle() { + String releaseCursorKeys = getReleaseCursorKeys(); + String releaseCursorKeysTranslated = + AsyncDataProvider.getComplexValueFromSpiceRedKeysResource((releaseCursorKeys != null) ? releaseCursorKeys + : "shift+f12"); //$NON-NLS-1$ + + String releaseCursorMsg = ""; //$NON-NLS-1$ + + if (!StringHelper.isNullOrEmpty(releaseCursorKeysTranslated)) { + releaseCursorMsg = " - " + ConstantsManager.getInstance() //$NON-NLS-1$ + .getMessages().pressKeyToReleaseCursor(releaseCursorKeysTranslated); + } + + return getEntity().getName() + ":%d" + releaseCursorMsg; //$NON-NLS-1$ + } + } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/IVnc.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/IVnc.java index 2de2556..b7716c2 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/IVnc.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/IVnc.java @@ -10,7 +10,8 @@ void setRemapCtrlAltDelete(boolean remapCtrlAltDelete); void setTicketValiditySeconds(int seconds); int getTicketValiditySeconds(); - + void setToggleFullscreenHotKey(String toggleFullscreenHotKey); + void setReleaseCursorHotKey(String releaseCursorHotKey); void invokeClient(); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java index d1062bd..4f0d31c 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java @@ -300,8 +300,6 @@ queryTypeList.add(VdcQueryType.GetConfigurationValue); queryTypeList.add(VdcQueryType.GetVdsCertificateSubjectByVmId); queryTypeList.add(VdcQueryType.GetCACertificate); - queryTypeList.add(VdcQueryType.GetConfigurationValue); - queryTypeList.add(VdcQueryType.GetConfigurationValue); ArrayList<VdcQueryParametersBase> parametersList = new ArrayList<VdcQueryParametersBase>(); @@ -312,9 +310,6 @@ parametersList.add(new GetConfigurationValueParameters(ConfigurationValues.EnableSpiceRootCertificateValidation, AsyncDataProvider.getDefaultConfigurationVersion())); parametersList.add(new IdQueryParameters(thisVm.getId())); parametersList.add(new VdcQueryParametersBase()); - parametersList.add(new GetConfigurationValueParameters(ConfigurationValues.ConsoleToggleFullScreenKeys, AsyncDataProvider.getDefaultConfigurationVersion())); - parametersList.add(new GetConfigurationValueParameters(ConfigurationValues.ConsoleReleaseCursorKeys, - AsyncDataProvider.getDefaultConfigurationVersion())); if (isoDomain != null) { queryTypeList.add(VdcQueryType.GetImagesListByStoragePoolId); @@ -399,18 +394,7 @@ getspice().setHostSubject(certificateSubject); getspice().setTrustStore(caCertificate); - String toggleFullScreenKeys = (String) returnValues.get(6).getReturnValue(); - String releaseCursorKeys = (String) returnValues.get(7).getReturnValue(); - String releaseCursorKeysTranslated = - AsyncDataProvider.getComplexValueFromSpiceRedKeysResource((releaseCursorKeys != null) ? releaseCursorKeys - : "shift+f12"); //$NON-NLS-1$ - - getspice().setTitle(getEntity().getName() - + ":%d" //$NON-NLS-1$ - + (StringHelper.isNullOrEmpty(releaseCursorKeysTranslated) ? "" : (" - " + //$NON-NLS-1$ //$NON-NLS-2$ - ConstantsManager.getInstance() - .getMessages() - .pressKeyToReleaseCursor(releaseCursorKeysTranslated)))); + getspice().setTitle(getClientTitle()); getspice().setSpiceProxy(determineSpiceProxy()); @@ -423,8 +407,8 @@ && getEntity().getUsbPolicy() == UsbPolicy.ENABLED_LEGACY ? getConfigurator().getSpiceDefaultUsbPort() : getConfigurator().getSpiceDisableUsbListenPort()); - getspice().setToggleFullscreenHotKey(toggleFullScreenKeys); - getspice().setReleaseCursorHotKey(releaseCursorKeys); + getspice().setToggleFullscreenHotKey(getToggleFullScreenKeys()); + getspice().setReleaseCursorHotKey(getReleaseCursorKeys()); getspice().setLocalizedStrings(new String[] { ConstantsManager.getInstance().getConstants().usb(), @@ -442,9 +426,8 @@ ArrayList<String> isos = new ArrayList<String>(); - if (returnValues.size() > 8) { - ArrayList<RepoImage> repoList = - (ArrayList<RepoImage>) returnValues.get(8).getReturnValue(); + if (returnValues.size() > 6) { + ArrayList<RepoImage> repoList = returnValues.get(6).getReturnValue(); for (RepoImage repoImage : repoList) { isos.add(repoImage.getRepoImageId()); } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VncConsoleModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VncConsoleModel.java index 4adb409..b58c6f8 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VncConsoleModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VncConsoleModel.java @@ -91,8 +91,7 @@ } @Override - protected void connect() - { + protected void connect() { if (getEntity() == null || getEntity().getRunOnVds() == null) { return; } @@ -161,7 +160,9 @@ vncImpl.setVncHost(getHost()); vncImpl.setVncPort(getPort()); vncImpl.setTicket(getOtp64()); - vncImpl.setTitle(getTitle()); + vncImpl.setTitle(getClientTitle()); + vncImpl.setToggleFullscreenHotKey(getToggleFullScreenKeys()); + vncImpl.setReleaseCursorHotKey(getReleaseCursorKeys()); vncImpl.setTicketValiditySeconds(TICKET_VALIDITY_SECONDS); vncImpl.invokeClient(); -- To view, visit http://gerrit.ovirt.org/26881 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic292e62743debf3c7af11497b74c607ebbaa98bb Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Frank Kobzik <fkob...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches