]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.eclipse.ui.rap/src/org/argeo/eclipse/ui/specific/ThreadNLS.java
New project conventions
[lgpl/argeo-commons.git] / org.argeo.eclipse.ui.rap / src / org / argeo / eclipse / ui / specific / ThreadNLS.java
diff --git a/org.argeo.eclipse.ui.rap/src/org/argeo/eclipse/ui/specific/ThreadNLS.java b/org.argeo.eclipse.ui.rap/src/org/argeo/eclipse/ui/specific/ThreadNLS.java
new file mode 100644 (file)
index 0000000..8b8837f
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2007-2012 Argeo GmbH
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.argeo.eclipse.ui.specific;
+
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.rap.rwt.RWT;
+
+/** NLS attached to a given thread */
+public class ThreadNLS<T extends NLS> extends InheritableThreadLocal<T> {
+       public final static String DEFAULT_BUNDLE_LOCATION = "/properties/plugin";
+
+       private final String bundleLocation;
+
+       private Class<T> type;
+       private Boolean utf8 = false;
+
+       public ThreadNLS(String bundleLocation, Class<T> type, Boolean utf8) {
+               this.bundleLocation = bundleLocation;
+               this.type = type;
+               this.utf8 = utf8;
+       }
+
+       public ThreadNLS(Class<T> type) {
+               this(DEFAULT_BUNDLE_LOCATION, type, false);
+       }
+
+       @SuppressWarnings("unchecked")
+       @Override
+       protected T initialValue() {
+               if (utf8)
+                       return (T) RWT.NLS.getUTF8Encoded(bundleLocation, type);
+               else
+                       return (T) RWT.NLS.getISO8859_1Encoded(bundleLocation, type);
+       }
+}