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 <[email protected]>
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 <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches