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

Reply via email to