Workbench: added language support
git-svn-id: https://svn.apache.org/repos/asf/chemistry/opencmis/trunk@1758765 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/SessionParameterMap.java b/chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/SessionParameterMap.java
index 1defe76..5da53a9 100644
--- a/chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/SessionParameterMap.java
+++ b/chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/SessionParameterMap.java
@@ -600,6 +600,13 @@
}
/**
+ * Sets the JVM default locale of the session.
+ */
+ public void setDefaultLocale() {
+ setLocale(Locale.getDefault());
+ }
+
+ /**
* Sets whether cookies should be managed or not.
*
* @param cookies
diff --git a/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/AbstractSpringLoginTab.java b/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/AbstractSpringLoginTab.java
index 80d8415..ebf9dc4 100644
--- a/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/AbstractSpringLoginTab.java
+++ b/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/AbstractSpringLoginTab.java
@@ -18,7 +18,6 @@
*/
package org.apache.chemistry.opencmis.workbench;
-import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
diff --git a/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/BasicLoginTab.java b/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/BasicLoginTab.java
index 4999809..5c0d777 100644
--- a/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/BasicLoginTab.java
+++ b/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/BasicLoginTab.java
@@ -53,6 +53,7 @@
public static final String SYSPROP_USER = ClientSession.WORKBENCH_PREFIX + "user";
public static final String SYSPROP_PASSWORD = ClientSession.WORKBENCH_PREFIX + "password";
public static final String SYSPROP_CSRF_HEADER = ClientSession.WORKBENCH_PREFIX + "csrfheader";
+ public static final String SYSPROP_LANGUAGE = ClientSession.WORKBENCH_PREFIX + "language";
private JTextField urlField;
private JRadioButton bindingAtomButton;
@@ -71,6 +72,7 @@
private JRadioButton cookiesOnButton;
private JRadioButton cookiesOffButton;
private JTextField csrfHeaderField;
+ private JTextField languageField;
private JFormattedTextField connectTimeoutField;
private JFormattedTextField readTimeoutField;
@@ -106,6 +108,10 @@
+ "If the server needs a CSRF header, enter the name of the header, otherwise leave this field blank.");
csrfHeaderField.setText(System.getProperty(SYSPROP_CSRF_HEADER, ""));
+ languageField = createTextField(this, "Language:", "<html>Enter a <b>ISO 639 language</b> code.<br>"
+ + "The language code is sent to the server but it may not be used by the server.");
+ languageField.setText(System.getProperty(SYSPROP_LANGUAGE, Locale.getDefault().getLanguage()));
+
connectTimeoutField = createIntegerField(this, "Connect timeout (secs):",
"<html>Enter the <b>connect timeout</b> in seconds.<br>This is the time the client waits to connect to the server.");
try {
@@ -122,7 +128,7 @@
readTimeoutField.setValue(600);
}
- makeCompactGrid(11);
+ makeCompactGrid(12);
}
private void createBindingButtons(Container pane) {
@@ -277,6 +283,21 @@
authentication = ClientSession.Authentication.OAUTH_BEARER;
}
+ Locale locale = null;
+ String language = languageField.getText().trim();
+ if (language.length() > 1 && language.charAt(0) != '-' && language.charAt(0) != '_') {
+ int sep1 = language.indexOf('-');
+ int sep2 = language.indexOf('_');
+
+ if (sep1 > 0) {
+ locale = new Locale(language.substring(0, sep1), language.substring(sep1 + 1));
+ } else if (sep2 > 0) {
+ locale = new Locale(language.substring(0, sep2), language.substring(sep2 + 1));
+ } else {
+ locale = new Locale(language);
+ }
+ }
+
long connectTimeout = 0;
if (connectTimeoutField.getValue() instanceof Number) {
connectTimeout = ((Number) connectTimeoutField.getValue()).longValue() * 1000;
@@ -297,7 +318,7 @@
return ClientSession.createSessionParameters(url, binding, username, password, authentication,
compressionOnButton.isSelected(), clientCompressionOnButton.isSelected(), cookiesOnButton.isSelected(),
- csrfHeaderField.getText(), connectTimeout, readTimeout);
+ csrfHeaderField.getText(), locale, connectTimeout, readTimeout);
}
@Override
diff --git a/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientSession.java b/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientSession.java
index fb5617a..3d89add 100644
--- a/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientSession.java
+++ b/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientSession.java
@@ -126,7 +126,7 @@
public static SessionParameterMap createSessionParameters(String url, BindingType binding, String username,
String password, Authentication authentication, boolean compression, boolean clientCompression,
- boolean cookies, String csrfHeader, long connectionTimeout, long readTimeout) {
+ boolean cookies, String csrfHeader, Locale locale, long connectionTimeout, long readTimeout) {
SessionParameterMap parameters = new SessionParameterMap();
switch (binding) {
@@ -171,6 +171,10 @@
}
}
+ if (locale != null) {
+ parameters.setLocale(locale);
+ }
+
if (connectionTimeout > 0) {
parameters.setConnectionTimeout(connectionTimeout);
} else {