diff options
author | Wim Jongman | 2018-04-30 17:15:52 +0000 |
---|---|---|
committer | Wim Jongman | 2018-04-30 17:24:51 +0000 |
commit | 7571f6fc8d4fd47cf1ed32fa078630ba8e2ed92d (patch) | |
tree | 190872129e266d24f7530d7055bf1a1787dd7155 | |
parent | 0042755f51c37aa19cf5f0cfea5259ef71437683 (diff) | |
download | eclipse.platform.ua-7571f6fc8d4fd47cf1ed32fa078630ba8e2ed92d.tar.gz eclipse.platform.ua-7571f6fc8d4fd47cf1ed32fa078630ba8e2ed92d.tar.xz eclipse.platform.ua-7571f6fc8d4fd47cf1ed32fa078630ba8e2ed92d.zip |
Bug 532012: [Tips] NLS Support
* Added NLS
Change-Id: Idecc14956591869eb17278015ec0b45b893c5882
Signed-off-by: Wim Jongman <wim.jongman@remainsoftware.com>
51 files changed, 436 insertions, 189 deletions
diff --git a/org.eclipse.tips.core/META-INF/MANIFEST.MF b/org.eclipse.tips.core/META-INF/MANIFEST.MF index 201ad389f..e769edbb4 100644 --- a/org.eclipse.tips.core/META-INF/MANIFEST.MF +++ b/org.eclipse.tips.core/META-INF/MANIFEST.MF @@ -1,9 +1,9 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 -Bundle-Name: Tip of the Day core plugin +Bundle-Name: %Bundle-Name Bundle-SymbolicName: org.eclipse.tips.core;singleton:=true Bundle-Version: 0.1.0.qualifier -Bundle-Vendor: Eclipse Foundation +Bundle-Vendor: %Bundle-Vendor Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Export-Package: org.eclipse.tips.core, org.eclipse.tips.core.internal;x-internal:=true diff --git a/org.eclipse.tips.core/OSGI-INF/l10n/bundle.properties b/org.eclipse.tips.core/OSGI-INF/l10n/bundle.properties new file mode 100644 index 000000000..3648aed3b --- /dev/null +++ b/org.eclipse.tips.core/OSGI-INF/l10n/bundle.properties @@ -0,0 +1,4 @@ +#Properties file for org.eclipse.tips.core +extension-point.name = Tips +Bundle-Vendor = Eclipse.org +Bundle-Name = Tip of the Day core plugin
\ No newline at end of file diff --git a/org.eclipse.tips.core/build.properties b/org.eclipse.tips.core/build.properties index 39b31f3b5..b2c97aefd 100644 --- a/org.eclipse.tips.core/build.properties +++ b/org.eclipse.tips.core/build.properties @@ -13,5 +13,6 @@ output.. = bin/ bin.includes = META-INF/,\ .,\ plugin.xml,\ - images/ + images/,\ + OSGI-INF/ src.includes = schema/ diff --git a/org.eclipse.tips.core/plugin.xml b/org.eclipse.tips.core/plugin.xml index b29e93cdb..26f0fe91d 100644 --- a/org.eclipse.tips.core/plugin.xml +++ b/org.eclipse.tips.core/plugin.xml @@ -12,5 +12,5 @@ --> <plugin> - <extension-point id="tips" name="Tips" schema="schema/tips.exsd"/> + <extension-point id="tips" name="%extension-point.name" schema="schema/tips.exsd"/> </plugin> diff --git a/org.eclipse.tips.core/src/org/eclipse/tips/core/Messages.java b/org.eclipse.tips.core/src/org/eclipse/tips/core/Messages.java new file mode 100644 index 000000000..e42a34b2a --- /dev/null +++ b/org.eclipse.tips.core/src/org/eclipse/tips/core/Messages.java @@ -0,0 +1,16 @@ +package org.eclipse.tips.core; + +import org.eclipse.osgi.util.NLS; + +public class Messages extends NLS { + private static final String BUNDLE_NAME = "org.eclipse.tips.core.messages"; //$NON-NLS-1$ + public static String TipImage_5; + public static String TipProvider_0; + static { + // initialize resource bundle + NLS.initializeMessages(BUNDLE_NAME, Messages.class); + } + + private Messages() { + } +} diff --git a/org.eclipse.tips.core/src/org/eclipse/tips/core/TipImage.java b/org.eclipse.tips.core/src/org/eclipse/tips/core/TipImage.java index 18a12e791..e2d917a88 100644 --- a/org.eclipse.tips.core/src/org/eclipse/tips/core/TipImage.java +++ b/org.eclipse.tips.core/src/org/eclipse/tips/core/TipImage.java @@ -64,9 +64,9 @@ public class TipImage { while ((bytesRead = stream.read(chunk)) > 0) { outputStream.write(chunk, 0, bytesRead); } - fBase64Image = "data:image/" // + fBase64Image = "data:image/" // //$NON-NLS-1$ + getExtension() // - + ";base64," // + + ";base64," // //$NON-NLS-1$ + Base64.getEncoder().encodeToString(outputStream.toByteArray()); } @@ -96,15 +96,15 @@ public class TipImage { public TipImage(String base64Image) { Assert.isNotNull(base64Image); fURL = null; - if (base64Image.matches("^data:image\\/.*?;base64,.*$")) { + if (base64Image.matches("^data:image\\/.*?;base64,.*$")) { //$NON-NLS-1$ fBase64Image = base64Image; - int from = base64Image.indexOf("/") + 1; - int to = base64Image.indexOf(";"); + int from = base64Image.indexOf("/") + 1; //$NON-NLS-1$ + int to = base64Image.indexOf(";"); //$NON-NLS-1$ setExtension(base64Image.substring(from, to).trim()); setExtension(base64Image.substring(from, to).trim()); } else { int length = base64Image.length(); - throw new RuntimeException("Wrong base64 data " + base64Image.substring(0, length < 50 ? length : 50)); + throw new RuntimeException(Messages.TipImage_5 + base64Image.substring(0, length < 50 ? length : 50)); } } @@ -260,17 +260,17 @@ public class TipImage { int width = ImageUtil.getWidth(fAspectRatio, myWidthHint, myHeightHint); int height = ImageUtil.getHeight(fAspectRatio, myWidthHint, myHeightHint); - String result = ""; + String result = ""; //$NON-NLS-1$ if (fMaxWidth == UNDEFINED) { - result += " width=\"" + width + "\""; + result += " width=\"" + width + "\""; //$NON-NLS-1$ //$NON-NLS-2$ } else { - result += " width=\"" + Math.min(fMaxWidth, width) + "\""; + result += " width=\"" + Math.min(fMaxWidth, width) + "\""; //$NON-NLS-1$ //$NON-NLS-2$ } if (fMaxHeight == UNDEFINED) { - result += " height=\"" + height + "\""; + result += " height=\"" + height + "\""; //$NON-NLS-1$ //$NON-NLS-2$ } else { - result += " height=\"" + Math.min(fMaxHeight, height) + "\""; + result += " height=\"" + Math.min(fMaxHeight, height) + "\""; //$NON-NLS-1$ //$NON-NLS-2$ } return result; } @@ -287,11 +287,11 @@ public class TipImage { if (fExtension != null) { return fExtension; } - String[] split = fURL.getPath().split("\\."); + String[] split = fURL.getPath().split("\\."); //$NON-NLS-1$ if (split.length > 1) { fExtension = split[split.length - 1]; } else { - fExtension = "png"; + fExtension = "png"; //$NON-NLS-1$ } return fExtension; } diff --git a/org.eclipse.tips.core/src/org/eclipse/tips/core/TipProvider.java b/org.eclipse.tips.core/src/org/eclipse/tips/core/TipProvider.java index caa79cbf1..b5d0dff41 100644 --- a/org.eclipse.tips.core/src/org/eclipse/tips/core/TipProvider.java +++ b/org.eclipse.tips.core/src/org/eclipse/tips/core/TipProvider.java @@ -53,7 +53,7 @@ public abstract class TipProvider { /** * Ready property. */ - public static final String PROP_READY = "PR"; + public static final String PROP_READY = "PR"; //$NON-NLS-1$ private ITipManager fTipManager; private int fTipIndex; @@ -272,7 +272,7 @@ public abstract class TipProvider { // if (!getManager().isOpen()) { // return this; // } - getManager().log(LogUtil.info(String.format("Setting tips"))); + getManager().log(LogUtil.info(Messages.TipProvider_0)); doSetTips(tips, true); fReady = true; fChangeSupport.firePropertyChange(PROP_READY, false, true); diff --git a/org.eclipse.tips.core/src/org/eclipse/tips/core/internal/FinalTip.java b/org.eclipse.tips.core/src/org/eclipse/tips/core/internal/FinalTip.java index c752a82f8..581b24b1b 100644 --- a/org.eclipse.tips.core/src/org/eclipse/tips/core/internal/FinalTip.java +++ b/org.eclipse.tips.core/src/org/eclipse/tips/core/internal/FinalTip.java @@ -26,6 +26,9 @@ import org.osgi.framework.FrameworkUtil; */ public class FinalTip extends Tip implements IHtmlTip { + private static final String EH1 = "</h1>"; //$NON-NLS-1$ + private static final String H1 = "<h1>"; //$NON-NLS-1$ + /** * Constructor. */ @@ -41,21 +44,20 @@ public class FinalTip extends Tip implements IHtmlTip { @Override public String getSubject() { - return "No more tips"; + return Messages.FinalTip_2; } @Override public String getHTML() { - return "<h1>There are no more tips</h1>" // - + "This provider has no more new tips. You can toggle the " // - + "<b>Unread</b> checkbox below or select another provider."; + return H1 + Messages.FinalTip_3 + EH1 // + + Messages.FinalTip_4; } @Override public TipImage getImage() { Bundle bundle = FrameworkUtil.getBundle(getClass()); try { - return new TipImage(bundle.getEntry("images/nomoretips.png")).setAspectRatio(417, 640, false); + return new TipImage(bundle.getEntry("images/nomoretips.png")).setAspectRatio(417, 640, false); //$NON-NLS-1$ } catch (IOException e) { // getManager().log(LogUtil.error(getClass(), e)); } diff --git a/org.eclipse.tips.core/src/org/eclipse/tips/core/internal/LogUtil.java b/org.eclipse.tips.core/src/org/eclipse/tips/core/internal/LogUtil.java index 976f4e03e..7d76881da 100644 --- a/org.eclipse.tips.core/src/org/eclipse/tips/core/internal/LogUtil.java +++ b/org.eclipse.tips.core/src/org/eclipse/tips/core/internal/LogUtil.java @@ -21,15 +21,15 @@ public class LogUtil { } public static IStatus error(Throwable throwable) { - return getStatus(IStatus.ERROR, "org.eclipse.tips.core", throwable.getMessage(), throwable); + return getStatus(IStatus.ERROR, "org.eclipse.tips.core", throwable.getMessage(), throwable); //$NON-NLS-1$ } public static IStatus warn(Throwable throwable) { - return getStatus(IStatus.WARNING, "org.eclipse.tips.core", throwable.getMessage(), throwable); + return getStatus(IStatus.WARNING, "org.eclipse.tips.core", throwable.getMessage(), throwable); //$NON-NLS-1$ } public static IStatus info(Throwable throwable) { - return getStatus(IStatus.INFO, "org.eclipse.tips.core", throwable.getMessage(), throwable); + return getStatus(IStatus.INFO, "org.eclipse.tips.core", throwable.getMessage(), throwable); //$NON-NLS-1$ } public static IStatus error(Class<?> clazz, Throwable throwable) { @@ -60,10 +60,10 @@ public class LogUtil { if (FrameworkUtil.getBundle(clazz) != null) { return FrameworkUtil.getBundle(clazz).getSymbolicName(); } - return "osgi.not.running"; + return "osgi.not.running"; //$NON-NLS-1$ } public static IStatus info(String message) { - return getStatus(IStatus.INFO, "org.eclipse.tips.core", message, null); + return getStatus(IStatus.INFO, "org.eclipse.tips.core", message, null); //$NON-NLS-1$ } }
\ No newline at end of file diff --git a/org.eclipse.tips.core/src/org/eclipse/tips/core/internal/Messages.java b/org.eclipse.tips.core/src/org/eclipse/tips/core/internal/Messages.java new file mode 100644 index 000000000..2173f3777 --- /dev/null +++ b/org.eclipse.tips.core/src/org/eclipse/tips/core/internal/Messages.java @@ -0,0 +1,19 @@ +package org.eclipse.tips.core.internal; + +import org.eclipse.osgi.util.NLS; + +public class Messages extends NLS { + private static final String BUNDLE_NAME = "org.eclipse.tips.core.internal.messages"; //$NON-NLS-1$ + public static String FinalTip_2; + public static String FinalTip_3; + public static String FinalTip_4; + public static String TipManager_0; + public static String TipManager_2; + static { + // initialize resource bundle + NLS.initializeMessages(BUNDLE_NAME, Messages.class); + } + + private Messages() { + } +} diff --git a/org.eclipse.tips.core/src/org/eclipse/tips/core/internal/TipManager.java b/org.eclipse.tips.core/src/org/eclipse/tips/core/internal/TipManager.java index 2c1be0d8b..564813b1c 100644 --- a/org.eclipse.tips.core/src/org/eclipse/tips/core/internal/TipManager.java +++ b/org.eclipse.tips.core/src/org/eclipse/tips/core/internal/TipManager.java @@ -12,6 +12,7 @@ package org.eclipse.tips.core.internal; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeSupport; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -73,7 +74,8 @@ public abstract class TipManager implements ITipManager { @Override public ITipManager register(TipProvider provider) { checkDisposed(); - log(LogUtil.info("Registering provider: " + provider.getID() + " : " + provider.getDescription())); + String message = MessageFormat.format(Messages.TipManager_0, provider.getID() ,provider.getDescription()); + log(LogUtil.info(message)); provider.setManager(this); addToMaps(provider, Integer.valueOf(getPriority(provider))); provider.getChangeSupport().addPropertyChangeListener(event -> { @@ -92,7 +94,7 @@ public abstract class TipManager implements ITipManager { private void checkDisposed() { if (isDisposed()) { - throw new RuntimeException("This TipManager is disposed."); + throw new RuntimeException(Messages.TipManager_2); } } diff --git a/org.eclipse.tips.core/src/org/eclipse/tips/core/internal/messages.properties b/org.eclipse.tips.core/src/org/eclipse/tips/core/internal/messages.properties new file mode 100644 index 000000000..75f6c7491 --- /dev/null +++ b/org.eclipse.tips.core/src/org/eclipse/tips/core/internal/messages.properties @@ -0,0 +1,5 @@ +FinalTip_2=No more tips +FinalTip_3=There are no more tips +FinalTip_4=This provider has no more new tips. You can toggle the <b>Unread</b> checkbox below or select another provider. +TipManager_0=Registering provider ID {0} with description {1}. +TipManager_2=This TipManager is disposed. diff --git a/org.eclipse.tips.core/src/org/eclipse/tips/core/messages.properties b/org.eclipse.tips.core/src/org/eclipse/tips/core/messages.properties new file mode 100644 index 000000000..d955a21dc --- /dev/null +++ b/org.eclipse.tips.core/src/org/eclipse/tips/core/messages.properties @@ -0,0 +1,2 @@ +TipImage_5=Wrong base64 data +TipProvider_0=Setting tips diff --git a/org.eclipse.tips.ide/META-INF/MANIFEST.MF b/org.eclipse.tips.ide/META-INF/MANIFEST.MF index 6e09db3a6..8a40c4301 100644 --- a/org.eclipse.tips.ide/META-INF/MANIFEST.MF +++ b/org.eclipse.tips.ide/META-INF/MANIFEST.MF @@ -1,6 +1,6 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 -Bundle-Name: IDE Enablement for Tip of the Day +Bundle-Name: %Bundle-Name Bundle-SymbolicName: org.eclipse.tips.ide;singleton:=true Bundle-Version: 0.1.0.qualifier Bundle-RequiredExecutionEnvironment: JavaSE-1.8 @@ -13,3 +13,4 @@ Require-Bundle: org.eclipse.ui;bundle-version="3.109.0", org.eclipse.tips.json Export-Package: org.eclipse.tips.ide.internal;x-internal:=true Automatic-Module-Name: org.eclipse.tips.ide +Bundle-Vendor: %Bundle-Vendor diff --git a/org.eclipse.tips.ide/OSGI-INF/l10n/bundle.properties b/org.eclipse.tips.ide/OSGI-INF/l10n/bundle.properties new file mode 100644 index 000000000..a9b3df1ff --- /dev/null +++ b/org.eclipse.tips.ide/OSGI-INF/l10n/bundle.properties @@ -0,0 +1,3 @@ +#Properties file for org.eclipse.tips.ide +Bundle-Name = IDE Enablement for Tip of the Day +Bundle-Vendor = Eclipse.org
\ No newline at end of file diff --git a/org.eclipse.tips.ide/build.properties b/org.eclipse.tips.ide/build.properties index acbb37a1e..1b7dc5d80 100644 --- a/org.eclipse.tips.ide/build.properties +++ b/org.eclipse.tips.ide/build.properties @@ -13,4 +13,5 @@ output.. = bin/ bin.includes = META-INF/,\ .,\ plugin.xml,\ - icons/ + icons/,\ + OSGI-INF/ diff --git a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Constants.java b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Constants.java index ffe557322..e43af22d0 100644 --- a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Constants.java +++ b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Constants.java @@ -19,15 +19,15 @@ public class Constants { /** * The ID of this bundle */ - public static final String BUNDLE_ID = "org.eclipse.tips.ide"; + public static final String BUNDLE_ID = "org.eclipse.tips.ide"; //$NON-NLS-1$ /** * Dialog. menu and tool item icon. */ - public static final String ICON = "icons/lightbulb.png"; + public static final String ICON = "icons/lightbulb.png"; //$NON-NLS-1$ /** * The workbench variable to be used on core expressions. */ - public static final String SOURCE_UNREAD_TIPS = "newtips"; + public static final String SOURCE_UNREAD_TIPS = "newtips"; //$NON-NLS-1$ }
\ No newline at end of file diff --git a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/IDETipManager.java b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/IDETipManager.java index a7e64f51a..65a3b6b6c 100644 --- a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/IDETipManager.java +++ b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/IDETipManager.java @@ -13,6 +13,7 @@ package org.eclipse.tips.ide.internal; import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -47,6 +48,8 @@ import org.w3c.dom.Element; @SuppressWarnings("restriction") public class IDETipManager extends DefaultTipManager { + private static final String EMPTY = ""; //$NON-NLS-1$ + private TipSourceProvider fSourceProvider = new TipSourceProvider(this); private Map<String, List<Integer>> fReadTips = new HashMap<>(); @@ -72,14 +75,14 @@ public class IDETipManager extends DefaultTipManager { @Override public ITipManager register(TipProvider provider) { - log(LogUtil.info("Registering provider " + provider.getID())); + log(LogUtil.info(Messages.IDETipManager_0 + provider.getID())); super.register(provider); load(provider); return this; } private void load(TipProvider provider) { - Job job = new Job("Loading " + provider.getID()) { + Job job = new Job(Messages.IDETipManager_1 + provider.getID()) { @Override protected IStatus run(IProgressMonitor monitor) { return provider.loadNewTips(monitor); @@ -87,7 +90,7 @@ public class IDETipManager extends DefaultTipManager { }; job.addJobChangeListener(new ProviderLoadJobChangeListener(this, provider)); job.schedule(); - provider.getManager().log(LogUtil.info(String.format("Load new tips job started for %s", provider.getID()))); + provider.getManager().log(LogUtil.info(MessageFormat.format(Messages.IDETipManager_2, provider.getID()))); } @Override @@ -111,11 +114,11 @@ public class IDETipManager extends DefaultTipManager { * */ private void saveReadState(Map<String, List<Integer>> pReadTips) { - Job job = new Job("Tips save read state..") { + Job job = new Job(Messages.IDETipManager_3) { @Override protected IStatus run(IProgressMonitor monitor) { SubMonitor subMonitor = SubMonitor.convert(monitor, IProgressMonitor.UNKNOWN); - subMonitor.setTaskName("Saving read tips.."); + subMonitor.setTaskName(Messages.IDETipManager_4); IStatus status = TipsPreferences.saveReadState(pReadTips); subMonitor.done(); return status; @@ -132,7 +135,7 @@ public class IDETipManager extends DefaultTipManager { */ private void refreshUI() { boolean newTips = getProviders().stream().filter(p -> !p.getTips().isEmpty()).count() > 0; - Job job = new Job("Tips status bar refresh..") { + Job job = new Job(Messages.IDETipManager_5) { @Override protected IStatus run(IProgressMonitor monitor) { setNewTips(newTips); @@ -193,7 +196,7 @@ public class IDETipManager extends DefaultTipManager { } protected synchronized IDETipManager setNewTips(boolean newTips) { - log(LogUtil.info(String.format("New tips %s", newTips + ""))); + log(LogUtil.info(MessageFormat.format(Messages.IDETipManager_6, newTips + EMPTY))); if (fNewTips != newTips) { fNewTips = newTips; fSourceProvider.setStatus(fNewTips); @@ -225,9 +228,9 @@ public class IDETipManager extends DefaultTipManager { */ @Override public int getPriority(TipProvider provider) { - log(LogUtil.info("Evaluating expression: " + provider.getExpression())); + log(LogUtil.info(MessageFormat.format(Messages.IDETipManager_8, provider.getExpression()))); int priority = doGetPriority(provider.getExpression()); - log(LogUtil.info("Evaluating expression done. Priority: " + priority)); + log(LogUtil.info(MessageFormat.format(Messages.IDETipManager_9, Integer.valueOf(priority)))); return priority; } @@ -236,11 +239,11 @@ public class IDETipManager extends DefaultTipManager { return 20; } try { - String myExpression = "<enablement>" + expression + "</enablement>"; - myExpression = "<?xml version=\"1.0\"?>" + myExpression; + String myExpression = "<enablement>" + expression + "</enablement>"; //$NON-NLS-1$ //$NON-NLS-2$ + myExpression = "<?xml version=\"1.0\"?>" + myExpression; //$NON-NLS-1$ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); Document doc = factory.newDocumentBuilder().parse(new ByteArrayInputStream(myExpression.getBytes())); - Element element = (Element) doc.getElementsByTagName("enablement").item(0); + Element element = (Element) doc.getElementsByTagName("enablement").item(0); //$NON-NLS-1$ Expression expressionObj = ExpressionConverter.getDefault().perform(element); final EvaluationResult result = expressionObj.evaluate(getEvaluationContext()); if (result == EvaluationResult.TRUE) { @@ -273,10 +276,10 @@ public class IDETipManager extends DefaultTipManager { * @throws Exception if something went wrong */ public static File getStateLocation() throws Exception { - String stateLocation = System.getProperty("org.eclipse.tips.statelocation"); + String stateLocation = System.getProperty("org.eclipse.tips.statelocation"); //$NON-NLS-1$ if (stateLocation == null) { - stateLocation = System.getProperty("user.home") + File.separator + ".eclipse" + File.separator - + "org.eclipse.tips.state"; + stateLocation = System.getProperty("user.home") + File.separator + ".eclipse" + File.separator //$NON-NLS-1$ //$NON-NLS-2$ + + "org.eclipse.tips.state"; //$NON-NLS-1$ } File locationDir = new File(stateLocation); if (!locationDir.exists()) { @@ -284,7 +287,7 @@ public class IDETipManager extends DefaultTipManager { } if (!locationDir.canRead() || !locationDir.canWrite()) { - throw new IOException("Could not read or write the state location: " + locationDir.getAbsolutePath()); + throw new IOException(MessageFormat.format(Messages.IDETipManager_18, locationDir.getAbsolutePath())); } return locationDir; } diff --git a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Messages.java b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Messages.java new file mode 100644 index 000000000..0db117147 --- /dev/null +++ b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Messages.java @@ -0,0 +1,31 @@ +package org.eclipse.tips.ide.internal; + +import org.eclipse.osgi.util.NLS; + +public class Messages extends NLS { + private static final String BUNDLE_NAME = "org.eclipse.tips.ide.internal.messages"; //$NON-NLS-1$ + public static String IDETipManager_0; + public static String IDETipManager_1; + public static String IDETipManager_18; + public static String IDETipManager_2; + public static String IDETipManager_3; + public static String IDETipManager_4; + public static String IDETipManager_5; + public static String IDETipManager_6; + public static String IDETipManager_8; + public static String IDETipManager_9; + public static String Startup_0; + public static String Startup_18; + public static String Startup_19; + public static String Startup_20; + public static String Startup_3; + public static String TipSourceProvider_0; + public static String TipSourceProvider_1; + static { + // initialize resource bundle + NLS.initializeMessages(BUNDLE_NAME, Messages.class); + } + + private Messages() { + } +} diff --git a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Startup.java b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Startup.java index 96a7e55aa..36bfbd96c 100644 --- a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Startup.java +++ b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Startup.java @@ -33,6 +33,14 @@ import org.osgi.framework.FrameworkUtil; @SuppressWarnings("restriction") public class Startup implements IStartup { + private static final String BCKSLASH = "\""; //$NON-NLS-1$ + private static final String EQ = "="; //$NON-NLS-1$ + private static final String SLASH = "/"; //$NON-NLS-1$ + private static final String LT = "<"; //$NON-NLS-1$ + private static final String EMPTY = ""; //$NON-NLS-1$ + private static final String GT = ">"; //$NON-NLS-1$ + private static final String SPACE = " "; //$NON-NLS-1$ + @Override public void earlyStartup() { loadProviders(); @@ -52,20 +60,20 @@ public class Startup implements IStartup { } private static Job getInternalProvidersJob() { - Job job = new Job("Load default IDE Tip Providers") { + Job job = new Job(Messages.Startup_0) { @Override protected IStatus run(IProgressMonitor pArg0) { - String baseURL = System.getProperty("org.eclipse.tips.ide.provider.url"); + String baseURL = System.getProperty("org.eclipse.tips.ide.provider.url"); //$NON-NLS-1$ if (baseURL == null) { - baseURL = "http://www.eclipse.org/downloads/download.php?r=1&file=/e4/tips/"; + baseURL = "http://www.eclipse.org/downloads/download.php?r=1&file=/e4/tips/"; //$NON-NLS-1$ } try { ProviderLoader.loadProviderData(IDETipManager.getInstance(), baseURL, IDETipManager.getStateLocation()); } catch (Exception e) { Status status = new Status(IStatus.ERROR, FrameworkUtil.getBundle(Startup.class).getSymbolicName(), - "Failure getting the Tips state location.", e); + Messages.Startup_3, e); IDETipManager.getInstance().log(status); return status; } @@ -77,11 +85,11 @@ public class Startup implements IStartup { private static void loadExternalProviders() { IConfigurationElement[] elements = Platform.getExtensionRegistry() - .getConfigurationElementsFor("org.eclipse.tips.core.tips"); + .getConfigurationElementsFor("org.eclipse.tips.core.tips"); //$NON-NLS-1$ for (IConfigurationElement element : elements) { - if (element.getName().equals("provider")) { + if (element.getName().equals("provider")) { //$NON-NLS-1$ try { - TipProvider provider = (TipProvider) element.createExecutableExtension("class"); + TipProvider provider = (TipProvider) element.createExecutableExtension("class"); //$NON-NLS-1$ provider.setExpression(getExpression(element)); IDETipManager.getInstance().register(provider); } catch (CoreException e) { @@ -95,7 +103,7 @@ public class Startup implements IStartup { * @return the core expression */ private static String getExpression(IConfigurationElement element) { - IConfigurationElement[] enablements = element.getChildren("enablement"); + IConfigurationElement[] enablements = element.getChildren("enablement"); //$NON-NLS-1$ if (enablements.length == 0) { return null; } @@ -105,28 +113,28 @@ public class Startup implements IStartup { } private static String getXML(IConfigurationElement[] children) { - String result = ""; + String result = EMPTY; for (IConfigurationElement element : children) { IConfigurationElement[] myChildren = element.getChildren(); - result += "<" + element.getName() + " " + getXMLAttributes(element) + ">"; + result += LT + element.getName() + SPACE + getXMLAttributes(element) + GT; if (myChildren.length > 0) { result += getXML(myChildren); } else { String value = element.getValue(); - result += value == null ? "" : value; + result += value == null ? EMPTY : value; } - result += "</" + element.getName() + ">"; + result += LT + SLASH + element.getName() + GT; } return result; } private static String getXMLAttributes(IConfigurationElement element) { - String result = ""; + String result = EMPTY; for (String name : element.getAttributeNames()) { result += name; - result += "=\""; + result += EQ + BCKSLASH; result += element.getAttribute(name); - result += "\" "; + result += BCKSLASH + SPACE; } return result; } @@ -140,14 +148,14 @@ public class Startup implements IStartup { } private static Job getWaitJob() { - Job waitJob = new Job("Tip Delay") { + Job waitJob = new Job(Messages.Startup_18) { @Override protected IStatus run(IProgressMonitor pMonitor) { int attempts = 3; SubMonitor monitor = SubMonitor.convert(pMonitor, attempts); for (int i = 0; i < attempts; i++) { - monitor.setTaskName("Checking for content " + i); + monitor.setTaskName(Messages.Startup_19 + i); if (openOrSleep(monitor)) { if (monitor.isCanceled()) { return Status.CANCEL_STATUS; @@ -187,7 +195,7 @@ public class Startup implements IStartup { } private static UIJob getOpenUIJob() { - UIJob uiJob = new UIJob(PlatformUI.getWorkbench().getDisplay(), "Tip of the Day") { + UIJob uiJob = new UIJob(PlatformUI.getWorkbench().getDisplay(), Messages.Startup_20) { @Override public IStatus runInUIThread(IProgressMonitor monitor) { IDETipManager.getInstance().open(true); diff --git a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/TipSourceProvider.java b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/TipSourceProvider.java index 60f0a8664..ed3aaf01e 100644 --- a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/TipSourceProvider.java +++ b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/TipSourceProvider.java @@ -69,14 +69,14 @@ public class TipSourceProvider extends AbstractSourceProvider { } private void layoutWorkbench(boolean changed) { - UIJob job = new UIJob(PlatformUI.getWorkbench().getDisplay(), "Tip of the Day. Layout Shell") { + UIJob job = new UIJob(PlatformUI.getWorkbench().getDisplay(), Messages.TipSourceProvider_0) { @Override public IStatus runInUIThread(IProgressMonitor monitor) { if (changed) { fireSourceChanged(ISources.ACTIVE_WORKBENCH_WINDOW, getCurrentState()); } for (IWorkbenchWindow window : PlatformUI.getWorkbench().getWorkbenchWindows()) { - fManager.log(LogUtil.info("Layout on " + window + " -> " + fNewTips)); + fManager.log(LogUtil.info(Messages.TipSourceProvider_1 + window + " -> " + fNewTips)); //$NON-NLS-1$ window.getShell().layout(true, true); } return Status.OK_STATUS; diff --git a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/TipsPreferences.java b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/TipsPreferences.java index 144e9f912..4b4a85628 100644 --- a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/TipsPreferences.java +++ b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/TipsPreferences.java @@ -35,15 +35,17 @@ import org.osgi.service.prefs.BackingStoreException; */ public class TipsPreferences extends AbstractPreferenceInitializer { + private static final String FALSE = "false"; //$NON-NLS-1$ + /** * Preference store key to indicate showing tips at startup. */ - public static final String PREF_RUN_AT_STARTUP = "activate_at_startup"; + public static final String PREF_RUN_AT_STARTUP = "activate_at_startup"; //$NON-NLS-1$ /** * Preference store key to indicate serving tips that the user as already seen. */ - public static final String PREF_SERVE_READ_TIPS = "serve_read_tips"; + public static final String PREF_SERVE_READ_TIPS = "serve_read_tips"; //$NON-NLS-1$ public TipsPreferences() { } @@ -75,14 +77,14 @@ public class TipsPreferences extends AbstractPreferenceInitializer { store.load(); ArrayList<Integer> tips = new ArrayList<>(); for (String tipKey : store.preferenceNames()) { - if (!"provider".equals(tipKey)) { + if (!"provider".equals(tipKey)) { //$NON-NLS-1$ tips.add(Integer.valueOf(store.getInt(tipKey))); } } - result.put(store.getString("provider"), tips); + result.put(store.getString("provider"), tips); //$NON-NLS-1$ } } catch (Exception e) { - Status status = new Status(IStatus.ERROR, "org.eclipse.tips.ide", e.getMessage(), e); + Status status = new Status(IStatus.ERROR, "org.eclipse.tips.ide", e.getMessage(), e); //$NON-NLS-1$ log(status); } return result; @@ -92,7 +94,7 @@ public class TipsPreferences extends AbstractPreferenceInitializer { return new FilenameFilter() { @Override public boolean accept(File pDir, String pName) { - if (pDir.equals(stateLocation) && pName.endsWith(".state")) { + if (pDir.equals(stateLocation) && pName.endsWith(".state")) { //$NON-NLS-1$ return true; } return false; @@ -101,7 +103,7 @@ public class TipsPreferences extends AbstractPreferenceInitializer { } private static File getStateLocation() throws Exception { - File file = new File(IDETipManager.getStateLocation(), "org.eclipse.tips.ide.state"); + File file = new File(IDETipManager.getStateLocation(), "org.eclipse.tips.ide.state"); //$NON-NLS-1$ if (!file.exists()) { file.mkdirs(); } @@ -119,15 +121,15 @@ public class TipsPreferences extends AbstractPreferenceInitializer { File stateLocation = getStateLocation(); for (String child : pReadTips.keySet()) { PreferenceStore store = new PreferenceStore( - new File(stateLocation, child.trim() + ".state").getAbsolutePath()); + new File(stateLocation, child.trim() + ".state").getAbsolutePath()); //$NON-NLS-1$ pReadTips.get(child).forEach(value -> store.setValue(value.toString(), value.intValue())); - store.setValue("provider", child); + store.setValue("provider", child); //$NON-NLS-1$ store.save(); } return Status.OK_STATUS; } catch (Exception e) { e.printStackTrace(); - return new Status(IStatus.ERROR, "org.eclipse.tips.ide", e.getMessage(), e); + return new Status(IStatus.ERROR, "org.eclipse.tips.ide", e.getMessage(), e); //$NON-NLS-1$ } } @@ -143,7 +145,7 @@ public class TipsPreferences extends AbstractPreferenceInitializer { } if (isConsoleLog()) { System.out.println( - String.format("%1$tR:%1$tS:%1$tN - %2$s", Calendar.getInstance().getTime(), status.toString())); + String.format("%1$tR:%1$tS:%1$tN - %2$s", Calendar.getInstance().getTime(), status.toString())); //$NON-NLS-1$ } } @@ -179,13 +181,13 @@ public class TipsPreferences extends AbstractPreferenceInitializer { * @return true if tips are in debug mode. */ public static boolean isDebug() { - return !System.getProperty("org.eclipse.tips.debug", "false").equals("false"); + return !System.getProperty("org.eclipse.tips.debug", FALSE).equals(FALSE); //$NON-NLS-1$ } /** * @return true if console logging is required */ public static boolean isConsoleLog() { - return !System.getProperty("org.eclipse.tips.consolelog", "false").equals("false"); + return !System.getProperty("org.eclipse.tips.consolelog", FALSE).equals(FALSE); //$NON-NLS-1$ } }
\ No newline at end of file diff --git a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/messages.properties b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/messages.properties new file mode 100644 index 000000000..d20960b65 --- /dev/null +++ b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/messages.properties @@ -0,0 +1,17 @@ +IDETipManager_0=Registering provider +IDETipManager_1=Loading +IDETipManager_18=Could not read or write the state location {0} +IDETipManager_2=Load new tips job started for {0} +IDETipManager_3=Tips save read state.. +IDETipManager_4=Saving read tips.. +IDETipManager_5=Tips status bar refresh.. +IDETipManager_6=New tips {0} +IDETipManager_8=Evaluating expression {0} +IDETipManager_9=Evaluating expression done. Priority: {0} +Startup_0=Load default IDE Tip Providers +Startup_18=Tip Delay +Startup_19=Checking for content +Startup_20=Tip of the Day +Startup_3=Failure getting the Tips state location. +TipSourceProvider_0=Tip of the Day. Layout Shell +TipSourceProvider_1=Layout on diff --git a/org.eclipse.tips.json/META-INF/MANIFEST.MF b/org.eclipse.tips.json/META-INF/MANIFEST.MF index c88a38f11..b29575c6e 100644 --- a/org.eclipse.tips.json/META-INF/MANIFEST.MF +++ b/org.eclipse.tips.json/META-INF/MANIFEST.MF @@ -1,6 +1,6 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 -Bundle-Name: Tip of the Day Json Provider +Bundle-Name: %Bundle-Name Bundle-SymbolicName: org.eclipse.tips.json;singleton:=true Bundle-Version: 0.1.0.qualifier Bundle-RequiredExecutionEnvironment: JavaSE-1.8 @@ -12,3 +12,4 @@ Export-Package: org.eclipse.tips.json, Bundle-ClassPath: . Automatic-Module-Name: org.eclipse.tips.json Import-Package: com.google.gson;version="[2.0.0,3.0.0)" +Bundle-Vendor: %Bundle-Vendor diff --git a/org.eclipse.tips.json/OSGI-INF/l10n/bundle.properties b/org.eclipse.tips.json/OSGI-INF/l10n/bundle.properties new file mode 100644 index 000000000..3405dc219 --- /dev/null +++ b/org.eclipse.tips.json/OSGI-INF/l10n/bundle.properties @@ -0,0 +1,3 @@ +#Properties file for org.eclipse.tips.json +Bundle-Vendor = Eclipse.org +Bundle-Name = Tip of the Day Json Provider
\ No newline at end of file diff --git a/org.eclipse.tips.json/build.properties b/org.eclipse.tips.json/build.properties index 07f663ae2..9c02061d4 100644 --- a/org.eclipse.tips.json/build.properties +++ b/org.eclipse.tips.json/build.properties @@ -11,4 +11,5 @@ source.. = src/ output.. = bin/ bin.includes = META-INF/,\ - . + .,\ + OSGI-INF/ diff --git a/org.eclipse.tips.json/src/org/eclipse/tips/json/JsonTipProvider.java b/org.eclipse.tips.json/src/org/eclipse/tips/json/JsonTipProvider.java index 9f76231ee..3a1a8dd78 100644 --- a/org.eclipse.tips.json/src/org/eclipse/tips/json/JsonTipProvider.java +++ b/org.eclipse.tips.json/src/org/eclipse/tips/json/JsonTipProvider.java @@ -15,6 +15,7 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; +import java.text.MessageFormat; import java.text.ParseException; import java.util.ArrayList; @@ -43,6 +44,7 @@ import com.google.gson.JsonParser; @SuppressWarnings("restriction") public abstract class JsonTipProvider extends TipProvider { + private static final String SPACE = " "; //$NON-NLS-1$ private URL fJsonUrl; private String fDescription; private String fImage; @@ -97,21 +99,21 @@ public abstract class JsonTipProvider extends TipProvider { SubMonitor subMonitor = SubMonitor.convert(monitor); ArrayList<Tip> result = new ArrayList<>(); try { - subMonitor.beginTask(getDescription() + " Loading Tips", -1); + subMonitor.beginTask(getDescription() + SPACE + Messages.JsonTipProvider_1, -1); fJsonObject = loadJsonObject(); JsonObject provider = fJsonObject.getAsJsonObject(JsonConstants.P_PROVIDER); - fDescription = Util.getValueOrDefault(provider, JsonConstants.P_DESCRIPTION, "not set"); + fDescription = Util.getValueOrDefault(provider, JsonConstants.P_DESCRIPTION, "not set"); //$NON-NLS-1$ fImage = Util.getValueOrDefault(provider, JsonConstants.P_IMAGE, null); setExpression(Util.getValueOrDefault(provider, JsonConstants.P_EXPRESSION, null)); JsonArray tips = provider.getAsJsonArray(JsonConstants.P_TIPS); - subMonitor.beginTask(getDescription() + " Creating Tips", -1); + subMonitor.beginTask(getDescription() + SPACE + Messages.JsonTipProvider_2, -1); tips.forEach(parm -> result.add(createJsonTip(parm))); } catch (Exception e) { - Status status = new Status(IStatus.ERROR, "org.eclipse.tips.json", e.getMessage(), e); + Status status = new Status(IStatus.ERROR, "org.eclipse.tips.json", e.getMessage(), e); //$NON-NLS-1$ getManager().log(status); return status; } - getManager().log(LogUtil.info(String.format("%s Tips loaded ", result.size() + ""))); + getManager().log(LogUtil.info(MessageFormat.format(Messages.JsonTipProvider_4, result.size() + ""))); //$NON-NLS-1$ setTips(result); subMonitor.done(); return Status.OK_STATUS; diff --git a/org.eclipse.tips.json/src/org/eclipse/tips/json/Messages.java b/org.eclipse.tips.json/src/org/eclipse/tips/json/Messages.java new file mode 100644 index 000000000..5b7ed51dc --- /dev/null +++ b/org.eclipse.tips.json/src/org/eclipse/tips/json/Messages.java @@ -0,0 +1,17 @@ +package org.eclipse.tips.json; + +import org.eclipse.osgi.util.NLS; + +public class Messages extends NLS { + private static final String BUNDLE_NAME = "org.eclipse.tips.json.messages"; //$NON-NLS-1$ + public static String JsonTipProvider_1; + public static String JsonTipProvider_2; + public static String JsonTipProvider_4; + static { + // initialize resource bundle + NLS.initializeMessages(BUNDLE_NAME, Messages.class); + } + + private Messages() { + } +} diff --git a/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/JsonConstants.java b/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/JsonConstants.java index 5a4a7b095..1b67e08ca 100644 --- a/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/JsonConstants.java +++ b/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/JsonConstants.java @@ -39,70 +39,70 @@ public class JsonConstants { /** * Provider description field */ - public static final String P_DESCRIPTION = "description"; + public static final String P_DESCRIPTION = "description"; //$NON-NLS-1$ /** * Provider core expression field */ - public static final String P_EXPRESSION = "expression"; + public static final String P_EXPRESSION = "expression"; //$NON-NLS-1$ /** * Provider image field */ - public static final String P_IMAGE = "image"; + public static final String P_IMAGE = "image"; //$NON-NLS-1$ /** * Provider provider field */ - public static final String P_PROVIDER = "provider"; + public static final String P_PROVIDER = "provider"; //$NON-NLS-1$ /** * The provider tips array */ - public static final String P_TIPS = "tips"; + public static final String P_TIPS = "tips"; //$NON-NLS-1$ /** * Tip date field */ - public static final String T_DATE = "date"; + public static final String T_DATE = "date"; //$NON-NLS-1$ /** * Tip HTML */ - public static final String T_HTML = "html"; + public static final String T_HTML = "html"; //$NON-NLS-1$ /** * Tip image field */ - public static final String T_IMAGE = "image"; + public static final String T_IMAGE = "image"; //$NON-NLS-1$ /** * Tip image maximum height (int) */ - public static final String T_MAXHEIGHT = "maxHeight"; + public static final String T_MAXHEIGHT = "maxHeight"; //$NON-NLS-1$ /** * Tip image maximum width (int) */ - public static final String T_MAXWIDTH = "maxWidth"; + public static final String T_MAXWIDTH = "maxWidth"; //$NON-NLS-1$ /** * Tip image ratio field (double) */ - public static final String T_RATIO = "ratio"; + public static final String T_RATIO = "ratio"; //$NON-NLS-1$ /** * Tip subject field */ - public static final String T_SUBJECT = "subject"; + public static final String T_SUBJECT = "subject"; //$NON-NLS-1$ /** * Tip URL */ - public static final String T_URL = "url"; + public static final String T_URL = "url"; //$NON-NLS-1$ /** * Tip variables */ - public static final String T_VARIABLES = "variables"; + public static final String T_VARIABLES = "variables"; //$NON-NLS-1$ }
\ No newline at end of file diff --git a/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/JsonHTMLTip.java b/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/JsonHTMLTip.java index 91d2aafd0..aa5fd9bcb 100644 --- a/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/JsonHTMLTip.java +++ b/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/JsonHTMLTip.java @@ -43,7 +43,7 @@ public class JsonHTMLTip extends Tip implements IJsonTip, IHtmlTip { public JsonHTMLTip(String providerId, JsonObject jsonObject) throws ParseException { super(providerId); fJsonObject = jsonObject; - fSubject = Util.getValueOrDefault(jsonObject, JsonConstants.T_SUBJECT, "Not set"); + fSubject = Util.getValueOrDefault(jsonObject, JsonConstants.T_SUBJECT, "Not set"); //$NON-NLS-1$ fDate = getDate(jsonObject); fHtml = Util.getValueOrDefault(jsonObject, JsonConstants.T_HTML, null); String base64Img = Util.getValueOrDefault(jsonObject, JsonConstants.T_IMAGE, null); @@ -65,8 +65,8 @@ public class JsonHTMLTip extends Tip implements IJsonTip, IHtmlTip { } private static Date getDate(JsonObject jsonObject) throws ParseException { - String date = Util.getValueOrDefault(jsonObject, JsonConstants.T_DATE, "1970-01-01"); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String date = Util.getValueOrDefault(jsonObject, JsonConstants.T_DATE, "1970-01-01"); //$NON-NLS-1$ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //$NON-NLS-1$ return sdf.parse(date); } diff --git a/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/JsonUrlTip.java b/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/JsonUrlTip.java index 558063ffe..f2393413c 100644 --- a/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/JsonUrlTip.java +++ b/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/JsonUrlTip.java @@ -40,14 +40,14 @@ public class JsonUrlTip extends Tip implements IUrlTip, IJsonTip { public JsonUrlTip(String providerId, JsonObject jsonObject) throws ParseException { super(providerId); fJsonObject = jsonObject; - fSubject = Util.getValueOrDefault(jsonObject, JsonConstants.T_SUBJECT, "Not set"); + fSubject = Util.getValueOrDefault(jsonObject, JsonConstants.T_SUBJECT, "Not set"); //$NON-NLS-1$ fDate = getDate(jsonObject); fUrl = Util.getValueOrDefault(jsonObject, JsonConstants.T_URL, null); } private static Date getDate(JsonObject jsonObject) throws ParseException { - String date = Util.getValueOrDefault(jsonObject, JsonConstants.T_DATE, "1970-01-01"); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String date = Util.getValueOrDefault(jsonObject, JsonConstants.T_DATE, "1970-01-01"); //$NON-NLS-1$ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //$NON-NLS-1$ return sdf.parse(date); } diff --git a/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/Messages.java b/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/Messages.java new file mode 100644 index 000000000..ffce6c94a --- /dev/null +++ b/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/Messages.java @@ -0,0 +1,23 @@ +package org.eclipse.tips.json.internal; + +import org.eclipse.osgi.util.NLS; + +public class Messages extends NLS { + private static final String BUNDLE_NAME = "org.eclipse.tips.json.internal.messages"; //$NON-NLS-1$ + public static String ProviderLoader_0; + public static String ProviderLoader_1; + public static String ProviderLoader_10; + public static String ProviderLoader_14; + public static String ProviderLoader_15; + public static String ProviderLoader_17; + public static String ProviderLoader_2; + public static String ProviderLoader_3; + public static String ProviderLoader_4; + static { + // initialize resource bundle + NLS.initializeMessages(BUNDLE_NAME, Messages.class); + } + + private Messages() { + } +} diff --git a/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/ProviderLoader.java b/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/ProviderLoader.java index db2aad371..3874ad03d 100644 --- a/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/ProviderLoader.java +++ b/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/ProviderLoader.java @@ -59,16 +59,16 @@ public class ProviderLoader { private static void loadProviders(ITipManager pManager, String pBaseURL, File stateLocation) { try { - URL webFile = new URL(pBaseURL + "index.json"); - File target = new File(stateLocation, "index.json"); + URL webFile = new URL(pBaseURL + "index.json"); //$NON-NLS-1$ + File target = new File(stateLocation, "index.json"); //$NON-NLS-1$ try (InputStream in = webFile.openStream()) { Files.copy(in, target.toPath(), StandardCopyOption.REPLACE_EXISTING); } - pManager.log(LogUtil.info("Internal Providers index file loaded to " + target.toPath())); + pManager.log(LogUtil.info(String.format(Messages.ProviderLoader_1, target.toPath()))); createProviders(pManager, target, pBaseURL, stateLocation); } catch (Exception e) { String symbolicName = FrameworkUtil.getBundle(ProviderLoader.class).getSymbolicName(); - pManager.log(new Status(IStatus.ERROR, symbolicName, "Error loading provider file", e)); + pManager.log(new Status(IStatus.ERROR, symbolicName, Messages.ProviderLoader_3, e)); } } @@ -83,15 +83,15 @@ public class ProviderLoader { private static void loadProvider(ITipManager pManager, JsonElement pProvider, String pBaseURL, File userLocation) { JsonObject provider = pProvider.getAsJsonObject(); - String version = Util.getValueOrDefault(provider, "version", null); - String location = Util.getValueOrDefault(provider, "location", null); - String bundleName = Util.getValueOrDefault(provider, "require-bundle", null); + String version = Util.getValueOrDefault(provider, "version", null); //$NON-NLS-1$ + String location = Util.getValueOrDefault(provider, "location", null); //$NON-NLS-1$ + String bundleName = Util.getValueOrDefault(provider, "require-bundle", null); //$NON-NLS-1$ if (version == null || bundleName == null) { logInvalidProvider(pManager, provider); return; } pManager.log(LogUtil - .info(String.format("Provider points to location %s. Last fetched version %s. Requires bundle %s", + .info(String.format(Messages.ProviderLoader_0, location, version, bundleName))); Bundle bundle = Platform.getBundle(bundleName); if (bundle == null) { @@ -105,7 +105,7 @@ public class ProviderLoader { fileLocation.mkdirs(); } - File versionFile = new File(fileLocation, "version.txt"); + File versionFile = new File(fileLocation, "version.txt"); //$NON-NLS-1$ if (!versionFile.exists()) { versionFile.createNewFile(); try (FileOutputStream fos = new FileOutputStream(versionFile)) { @@ -114,10 +114,10 @@ public class ProviderLoader { } String existingVersion = getFileContent(versionFile); - File providerFile = new File(fileLocation, "provider.json"); + File providerFile = new File(fileLocation, "provider.json"); //$NON-NLS-1$ if (!version.equals(existingVersion) || !providerFile.exists()) { - pManager.log(LogUtil.info(String.format("Old version: %s. New version %s", existingVersion, version))); - URL webFile = new URL(pBaseURL + "/" + location); + pManager.log(LogUtil.info(String.format(Messages.ProviderLoader_10, existingVersion, version))); + URL webFile = new URL(pBaseURL + "/" + location); //$NON-NLS-1$ try (InputStream in = webFile.openStream()) { Files.copy(in, providerFile.toPath(), StandardCopyOption.REPLACE_EXISTING); } @@ -130,7 +130,8 @@ public class ProviderLoader { } catch (IOException e) { String symbolicName = FrameworkUtil.getBundle(ProviderLoader.class).getSymbolicName(); pManager.log( - new Status(IStatus.ERROR, symbolicName, "Error loading provider from: " + pProvider.toString(), e)); + new Status(IStatus.ERROR, symbolicName, + String.format(Messages.ProviderLoader_2, pProvider.toString()), e)); } } @@ -140,23 +141,23 @@ public class ProviderLoader { @Override public String getID() { - return bundleName + ".json.provider"; + return bundleName + ".json.provider"; //$NON-NLS-1$ } @Override public synchronized IStatus loadNewTips(IProgressMonitor pMonitor) { - getManager().log(LogUtil.info(String.format("Load new tips START for %s", getID()))); + getManager().log(LogUtil.info(String.format(Messages.ProviderLoader_14, getID()))); IStatus status = super.loadNewTips(pMonitor); getManager().log(status); - getManager().log(LogUtil.info(String.format("Load new tips END for %s", getID()))); + getManager().log(LogUtil.info(String.format(Messages.ProviderLoader_15, getID()))); return status; } }; - File providerFile = new File(pFileLocation, "provider.json"); + File providerFile = new File(pFileLocation, "provider.json"); //$NON-NLS-1$ String fileLocation = providerFile.toURI().toURL().toString(); tipProvider.setJsonUrl(fileLocation); - pManager.log(LogUtil.info(String.format("Provider file stored at %s", fileLocation))); + pManager.log(LogUtil.info(String.format(Messages.ProviderLoader_17, fileLocation))); pManager.register(tipProvider); } @@ -170,6 +171,7 @@ public class ProviderLoader { private static void logInvalidProvider(ITipManager pManager, JsonObject pProvider) { String symbolicName = FrameworkUtil.getBundle(ProviderLoader.class).getSymbolicName(); - pManager.log(new Status(IStatus.ERROR, symbolicName, "Error loading provider from: " + pProvider.toString())); + pManager.log(new Status(IStatus.ERROR, symbolicName, + String.format(Messages.ProviderLoader_4, pProvider.toString()))); } }
\ No newline at end of file diff --git a/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/Util.java b/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/Util.java index 7e69ea58c..a998a4dfb 100644 --- a/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/Util.java +++ b/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/Util.java @@ -93,7 +93,7 @@ public class Util { for (String key : object.keySet()) { JsonElement jsonElement = object.get(key); if (jsonElement.isJsonPrimitive()) { - String search = "${" + key + "}"; + String search = "${" + key + "}"; //$NON-NLS-1$ //$NON-NLS-2$ String replace = jsonElement.getAsString(); int index = result.indexOf(search); while (index > -1) { diff --git a/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/messages.properties b/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/messages.properties new file mode 100644 index 000000000..424f64ed9 --- /dev/null +++ b/org.eclipse.tips.json/src/org/eclipse/tips/json/internal/messages.properties @@ -0,0 +1,9 @@ +ProviderLoader_0=Provider points to location %s. Last fetched version %s. Requires bundle %s +ProviderLoader_1=Internal Providers index file loaded from %s. +ProviderLoader_10=Old version: %s. New version %s +ProviderLoader_14=Load new tips START for %s +ProviderLoader_15=Load new tips END for %s +ProviderLoader_17=Provider file stored at %s +ProviderLoader_2=Error loading provider from $s. +ProviderLoader_3=Error loading provider file +ProviderLoader_4=Error loading provider from %s diff --git a/org.eclipse.tips.json/src/org/eclipse/tips/json/messages.properties b/org.eclipse.tips.json/src/org/eclipse/tips/json/messages.properties new file mode 100644 index 000000000..dc0689287 --- /dev/null +++ b/org.eclipse.tips.json/src/org/eclipse/tips/json/messages.properties @@ -0,0 +1,3 @@ +JsonTipProvider_1=Loading Tips +JsonTipProvider_2=Creating Tips +JsonTipProvider_4={0} Tips loaded diff --git a/org.eclipse.tips.ui/META-INF/MANIFEST.MF b/org.eclipse.tips.ui/META-INF/MANIFEST.MF index 9cbcb0b51..a1e3037c2 100644 --- a/org.eclipse.tips.ui/META-INF/MANIFEST.MF +++ b/org.eclipse.tips.ui/META-INF/MANIFEST.MF @@ -1,6 +1,6 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 -Bundle-Name: Tip of the Day UI +Bundle-Name: %Bundle-Name Bundle-SymbolicName: org.eclipse.tips.ui;singleton:=true Bundle-Version: 0.1.0.qualifier Bundle-RequiredExecutionEnvironment: JavaSE-1.8 @@ -11,3 +11,4 @@ Export-Package: org.eclipse.tips.ui, org.eclipse.tips.ui.internal, org.eclipse.tips.ui.internal.util;x-friends:="org.eclipse.tips.tests" Automatic-Module-Name: org.eclipse.tips.ui +Bundle-Vendor: %Bundle-Vendor diff --git a/org.eclipse.tips.ui/OSGI-INF/l10n/bundle.properties b/org.eclipse.tips.ui/OSGI-INF/l10n/bundle.properties new file mode 100644 index 000000000..405af813b --- /dev/null +++ b/org.eclipse.tips.ui/OSGI-INF/l10n/bundle.properties @@ -0,0 +1,3 @@ +#Properties file for org.eclipse.tips.ui +Bundle-Vendor = Eclipse.org +Bundle-Name = Tip of the Day UI
\ No newline at end of file diff --git a/org.eclipse.tips.ui/build.properties b/org.eclipse.tips.ui/build.properties index da4f2d034..0f0aca45b 100644 --- a/org.eclipse.tips.ui/build.properties +++ b/org.eclipse.tips.ui/build.properties @@ -12,4 +12,5 @@ source.. = src/ output.. = bin/ bin.includes = META-INF/,\ .,\ - icons/ + icons/,\ + OSGI-INF/ diff --git a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/DefaultTipManager.java b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/DefaultTipManager.java index 78ce7658f..22de17dfc 100644 --- a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/DefaultTipManager.java +++ b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/DefaultTipManager.java @@ -39,7 +39,7 @@ public abstract class DefaultTipManager extends TipManager { @Override public ITipManager open(boolean startUp) { try { - Assert.isTrue(!isOpen(), "Tip of the Day already open."); + Assert.isTrue(!isOpen(), Messages.DefaultTipManager_0); } catch (Exception e) { log(LogUtil.error(getClass(), e)); throw e; diff --git a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/Messages.java b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/Messages.java new file mode 100644 index 000000000..3f9e51bc0 --- /dev/null +++ b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/Messages.java @@ -0,0 +1,29 @@ +package org.eclipse.tips.ui.internal; + +import org.eclipse.osgi.util.NLS; + +public class Messages extends NLS { + private static final String BUNDLE_NAME = "org.eclipse.tips.ui.internal.messages"; //$NON-NLS-1$ + public static String DefaultTipManager_0; + public static String Slider_13; + public static String TipComposite_0; + public static String TipComposite_1; + public static String TipComposite_10; + public static String TipComposite_11; + public static String TipComposite_12; + public static String TipComposite_16; + public static String TipComposite_2; + public static String TipComposite_3; + public static String TipComposite_4; + public static String TipComposite_7; + public static String TipComposite_8; + public static String TipComposite_9; + public static String TipDialog_0; + static { + // initialize resource bundle + NLS.initializeMessages(BUNDLE_NAME, Messages.class); + } + + private Messages() { + } +} diff --git a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/Slider.java b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/Slider.java index 6640d4178..07651a35c 100644 --- a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/Slider.java +++ b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/Slider.java @@ -70,7 +70,7 @@ public class Slider extends Composite { gd_leftButton.widthHint = fIconSize / 2 + 8; gd_leftButton.heightHint = fIconSize; fLeftButton.setLayoutData(gd_leftButton); - fLeftButton.setImage(getImage("icons/" + fIconSize + "/aleft.png")); + fLeftButton.setImage(getImage("icons/" + fIconSize + "/aleft.png")); //$NON-NLS-1$ //$NON-NLS-2$ fLeftButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { @@ -88,7 +88,7 @@ public class Slider extends Composite { gd_rightButton.widthHint = fIconSize / 2 + 8; gd_rightButton.heightHint = fIconSize; fRightButton.setLayoutData(gd_rightButton); - fRightButton.setImage(getImage("icons/" + fIconSize + "/aright.png")); + fRightButton.setImage(getImage("icons/" + fIconSize + "/aright.png")); //$NON-NLS-1$ //$NON-NLS-2$ fRightButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { @@ -119,7 +119,7 @@ public class Slider extends Composite { } private static Image getImage(String icon) { - return ResourceManager.getPluginImage("org.eclipse.tips.ui", icon); + return ResourceManager.getPluginImage("org.eclipse.tips.ui", icon); //$NON-NLS-1$ } /** @@ -146,15 +146,15 @@ public class Slider extends Composite { if (fRightButton.isEnabled()) { fRightButton.setEnabled(false); fLeftButton.setEnabled(false); - fLeftButton.setImage(getImage("icons/" + fIconSize + "/aright.png")); - fRightButton.setImage(getImage("icons/" + fIconSize + "/aleft.png")); + fLeftButton.setImage(getImage("icons/" + fIconSize + "/aright.png")); //$NON-NLS-1$ //$NON-NLS-2$ + fRightButton.setImage(getImage("icons/" + fIconSize + "/aleft.png")); //$NON-NLS-1$ //$NON-NLS-2$ } } else { if (!fRightButton.isEnabled()) { fRightButton.setEnabled(true); fLeftButton.setEnabled(true); - fLeftButton.setImage(getImage("icons/" + fIconSize + "/aleft.png")); - fRightButton.setImage(getImage("icons/" + fIconSize + "/aright.png")); + fLeftButton.setImage(getImage("icons/" + fIconSize + "/aleft.png")); //$NON-NLS-1$ //$NON-NLS-2$ + fRightButton.setImage(getImage("icons/" + fIconSize + "/aright.png")); //$NON-NLS-1$ //$NON-NLS-2$ } } @@ -318,7 +318,7 @@ public class Slider extends Composite { private void paintButton(GC gc, Composite providerButton, TipProvider provider) { gc.setAdvanced(true); if (!gc.getAdvanced()) { - throw new RuntimeException("not advanced"); + throw new RuntimeException(Messages.Slider_13); } if (provider.equals(fSelectedProvider)) { gc.setForeground(getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION_TEXT)); @@ -390,10 +390,10 @@ public class Slider extends Composite { gc.setTextAntialias(SWT.ON); if (tipCount > 9) { gc.fillOval(0, 0, textExtent.x + 8, textExtent.y + 5); - gc.drawText(tipCount + "", 4, 2, true); + gc.drawText(tipCount + "", 4, 2, true); //$NON-NLS-1$ } else { gc.fillOval(0, 0, textExtent.x + 15, textExtent.y + 5); - gc.drawText(tipCount + "", 8, 2, true); + gc.drawText(tipCount + "", 8, 2, true); //$NON-NLS-1$ } Image result = ResourceManager.decorateImage(getProviderImage(provider, selectProviderImage(provider)), image, SWTResourceManager.TOP_RIGHT); @@ -406,7 +406,7 @@ public class Slider extends Composite { GC gc2 = new GC(providerButton); gc2.setAdvanced(true); gc2.setFont(SWTResourceManager.getBoldFont(gc2.getFont())); - Point textExtent = gc2.textExtent(tipCount + ""); + Point textExtent = gc2.textExtent(tipCount + ""); //$NON-NLS-1$ gc2.dispose(); return textExtent; } diff --git a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/TipComposite.java b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/TipComposite.java index ae36efb51..5791b677d 100644 --- a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/TipComposite.java +++ b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/TipComposite.java @@ -12,6 +12,7 @@ package org.eclipse.tips.ui.internal; import java.io.IOException; import java.net.URL; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.List; import java.util.Timer; @@ -58,6 +59,7 @@ import org.eclipse.tips.ui.internal.util.ResourceManager; @SuppressWarnings("restriction") public class TipComposite extends Composite implements ProviderSelectionListener { + private static final String EMTPY = ""; //$NON-NLS-1$ private static final int READ_TIMER = 2000; private TipProvider fProvider; private Browser fBrowser; @@ -67,7 +69,7 @@ public class TipComposite extends Composite implements ProviderSelectionListener private Button fShowAtStart; private Button fUnreadOnly; private Button fPreviousTipButton; - private Pattern fGtkHackPattern = Pattern.compile("(.*?)([0-9]+)(.*?)([0-9]+)(.*?)"); + private Pattern fGtkHackPattern = Pattern.compile("(.*?)([0-9]+)(.*?)([0-9]+)(.*?)"); //$NON-NLS-1$ private Composite fSWTComposite; private Composite fBrowserComposite; private StackLayout fContentStack; @@ -131,7 +133,7 @@ public class TipComposite extends Composite implements ProviderSelectionListener preferenceBar.setLayout(fl_composite_3); fShowAtStart = new Button(preferenceBar, SWT.CHECK); - fShowAtStart.setText("Show tips at startup"); + fShowAtStart.setText(Messages.TipComposite_1); fShowAtStart.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { @@ -140,7 +142,7 @@ public class TipComposite extends Composite implements ProviderSelectionListener }); fUnreadOnly = new Button(preferenceBar, SWT.CHECK); - fUnreadOnly.setText("Unread only"); + fUnreadOnly.setText(Messages.TipComposite_2); fUnreadOnly.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { @@ -169,7 +171,7 @@ public class TipComposite extends Composite implements ProviderSelectionListener fSingleActionButton = new Button(fSingleActionComposite, SWT.NONE); fSingleActionButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); - fSingleActionButton.setText("More..."); + fSingleActionButton.setText(Messages.TipComposite_3); fSingleActionButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { @@ -185,7 +187,7 @@ public class TipComposite extends Composite implements ProviderSelectionListener fMultiActionComposite.setLayout(gl_MultiActionComposite); fMultiActionButton = new Button(fMultiActionComposite, SWT.NONE); - fMultiActionButton.setText("New Button"); + fMultiActionButton.setText(Messages.TipComposite_4); fMultiActionButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { @@ -194,7 +196,7 @@ public class TipComposite extends Composite implements ProviderSelectionListener }); fMultiActionMenuButton = new Button(fMultiActionComposite, SWT.NONE); - fMultiActionMenuButton.setImage(ResourceManager.getPluginImage("org.eclipse.tips.ui", "icons/popup_menu.gif")); + fMultiActionMenuButton.setImage(ResourceManager.getPluginImage("org.eclipse.tips.ui", "icons/popup_menu.gif")); //$NON-NLS-1$ //$NON-NLS-2$ fMultiActionMenuButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { @@ -207,7 +209,7 @@ public class TipComposite extends Composite implements ProviderSelectionListener fPreviousTipButton = new Button(buttonBar, SWT.NONE); fPreviousTipButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); - fPreviousTipButton.setText("Previous Tip"); + fPreviousTipButton.setText(Messages.TipComposite_7); fPreviousTipButton.addSelectionListener(new SelectionAdapter() { @Override @@ -219,7 +221,7 @@ public class TipComposite extends Composite implements ProviderSelectionListener Button btnNextTip = new Button(buttonBar, SWT.NONE); btnNextTip.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); - btnNextTip.setText("Next Tip"); + btnNextTip.setText(Messages.TipComposite_8); btnNextTip.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { @@ -235,7 +237,7 @@ public class TipComposite extends Composite implements ProviderSelectionListener } }); btnClose.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); - btnClose.setText("Close"); + btnClose.setText(Messages.TipComposite_9); Label label_1 = new Label(this, SWT.SEPARATOR | SWT.HORIZONTAL); label_1.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); @@ -259,7 +261,7 @@ public class TipComposite extends Composite implements ProviderSelectionListener } private void runTipAction(TipAction tipAction) { - Job job = new Job("Running " + tipAction.getTooltip()) { + Job job = new Job(Messages.TipComposite_10 + tipAction.getTooltip()) { @Override protected IStatus run(IProgressMonitor monitor) { try { @@ -293,7 +295,7 @@ public class TipComposite extends Composite implements ProviderSelectionListener */ private void hitTimer() { Tip timerTip = fCurrentTip; - Timer timer = new Timer("Tip read timer"); + Timer timer = new Timer(Messages.TipComposite_11); timer.schedule(new TimerTask() { @Override public void run() { @@ -343,7 +345,7 @@ public class TipComposite extends Composite implements ProviderSelectionListener } else if (tip instanceof IUrlTip) { loadContentUrl((IUrlTip) tip); } else { - fTipManager.log(LogUtil.error(getClass(), "Unknown Tip implementation: " + tip)); + fTipManager.log(LogUtil.error(getClass(), Messages.TipComposite_12 + tip)); } fContentComposite.requestLayout(); } @@ -476,9 +478,13 @@ public class TipComposite extends Composite implements ProviderSelectionListener * @return the script */ private static String getLoadingScript(int timeout) { - return "<style>div{position:fixed;top:50%;left:40%}</style>" + "<div id=\"txt\"></div>" - + "<script>var wss=function(){document.getElementById(\"txt\").innerHTML=\"Loading next Tip...\"};window.setTimeout(wss," - + timeout + ");</script>"; + return "<style>div{position:fixed;top:50%;left:40%}</style>" //$NON-NLS-1$ + + "<div id=\"txt\"></div>" //$NON-NLS-1$ + + "<script>var wss=function(){document.getElementById(\"txt\").innerHTML=\"" //$NON-NLS-1$ + + Messages.TipComposite_0 // + + "\"};window.setTimeout(wss," //$NON-NLS-1$ + + timeout // + + ");</script>"; //$NON-NLS-1$ } private String getHTML(IHtmlTip tip) throws IOException { @@ -487,18 +493,17 @@ public class TipComposite extends Composite implements ProviderSelectionListener } private static String getScaling() { - if (Platform.isRunning() && Platform.getWS().startsWith("gtk")) { - int deviceZoom = DPIUtil.getDeviceZoom(); - int zoom = deviceZoom; - return "<style>" + "body {" + " zoom: " + zoom + "%;" + "}</style> "; + if (Platform.isRunning() && Platform.getWS().startsWith("gtk")) { //$NON-NLS-1$ + Integer zoom = Integer.valueOf(DPIUtil.getDeviceZoom()); + return MessageFormat.format("<style>body { zoom: {0}%;}</style> ", zoom); //$NON-NLS-1$ } - return ""; + return EMTPY; } private String encodeImage(IHtmlTip tip) throws IOException { TipImage image = tip.getImage(); if (image == null) { - return ""; + return EMTPY; } return encodeImageFromBase64(image); } @@ -507,12 +512,11 @@ public class TipComposite extends Composite implements ProviderSelectionListener int width = fBrowser.getClientArea().width; int height = Math.min(fBrowser.getClientArea().height / 2, (2 * (width / 3))); String attributes = gtkHack(image.getIMGAttributes(width, height).trim()); - String encoded = "" // - + "<center> <img " // + String encoded = EMTPY + "<center> <img " // //$NON-NLS-1$ + attributes // - + " src=\"" // + + " src=\"" // //$NON-NLS-1$ + image.getBase64Image() // - + "\"></center><br/>"; + + "\"></center><br/>"; //$NON-NLS-1$ return encoded; } @@ -520,7 +524,7 @@ public class TipComposite extends Composite implements ProviderSelectionListener if (!Platform.isRunning()) { return imageAttribute; } - if (!Platform.getWS().startsWith("gtk")) { + if (!Platform.getWS().startsWith("gtk")) { //$NON-NLS-1$ return imageAttribute; } Matcher m = fGtkHackPattern.matcher(imageAttribute); diff --git a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/TipDialog.java b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/TipDialog.java index e1dbe7912..dc13405b9 100644 --- a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/TipDialog.java +++ b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/TipDialog.java @@ -52,7 +52,7 @@ public class TipDialog extends Dialog { fixLayout(fTipComposite); getShell().setLocation(getShell().getMonitor().getClientArea().width / 2 - parent.getSize().x / 2, getShell().getMonitor().getClientArea().height / 2 - parent.getSize().y / 2); - getShell().setText("Tip of the Day"); + getShell().setText(Messages.TipDialog_0); fTipComposite.addDisposeListener(event -> close()); return area; } diff --git a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/messages.properties b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/messages.properties new file mode 100644 index 000000000..6350de6ee --- /dev/null +++ b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/messages.properties @@ -0,0 +1,15 @@ +DefaultTipManager_0=Tip of the Day already open. +Slider_13=not advanced graphics system +TipComposite_0=Loading next Tip... +TipComposite_1=Show tips at startup +TipComposite_10=Running +TipComposite_11=Tip read timer +TipComposite_12=Unknown Tip implementation: +TipComposite_16=);</script> +TipComposite_2=Unread only +TipComposite_3=More... +TipComposite_4=New Button +TipComposite_7=Previous Tip +TipComposite_8=Next Tip +TipComposite_9=Close +TipDialog_0=Tip of the Day diff --git a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/DateUtil.java b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/DateUtil.java index 46ff7d643..77a7d13bb 100644 --- a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/DateUtil.java +++ b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/DateUtil.java @@ -30,7 +30,7 @@ public class DateUtil { * if the date is not correct */ public static Date getDateFromYYMMDD(String dateYYMMDD) { - SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); //$NON-NLS-1$ try { return sdf.parse(dateYYMMDD); } catch (ParseException e) { diff --git a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/ImageUtil.java b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/ImageUtil.java index 7598d0956..418d019c6 100644 --- a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/ImageUtil.java +++ b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/ImageUtil.java @@ -28,7 +28,7 @@ import org.eclipse.swt.graphics.ImageLoader; */ public class ImageUtil { - private static final String COMMA = ","; + private static final String COMMA = ","; //$NON-NLS-1$ /** * Calculate a height that will fit in the proposed rectangle given the passed @@ -106,23 +106,23 @@ public class ImageUtil { } private static String getHeader(int format) { - return "data:image/" + getExtension(format) + ";base64,"; + return "data:image/" + getExtension(format) + ";base64,"; //$NON-NLS-1$ //$NON-NLS-2$ } private static String getExtension(int format) { switch (format) { case SWT.IMAGE_BMP: - return "bmp"; + return "bmp"; //$NON-NLS-1$ case SWT.IMAGE_BMP_RLE: - return "bmp"; + return "bmp"; //$NON-NLS-1$ case SWT.IMAGE_GIF: - return "gif"; + return "gif"; //$NON-NLS-1$ case SWT.IMAGE_ICO: - return "ico"; + return "ico"; //$NON-NLS-1$ case SWT.IMAGE_JPEG: - return "jpeg"; + return "jpeg"; //$NON-NLS-1$ default: - return "png"; + return "png"; //$NON-NLS-1$ } } diff --git a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/Messages.java b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/Messages.java new file mode 100644 index 000000000..5e5510f84 --- /dev/null +++ b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/Messages.java @@ -0,0 +1,15 @@ +package org.eclipse.tips.ui.internal.util; + +import org.eclipse.osgi.util.NLS; + +public class Messages extends NLS { + private static final String BUNDLE_NAME = "org.eclipse.tips.ui.internal.util.messages"; //$NON-NLS-1$ + public static String ResourceManager_0; + static { + // initialize resource bundle + NLS.initializeMessages(BUNDLE_NAME, Messages.class); + } + + private Messages() { + } +} diff --git a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/ResourceManager.java b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/ResourceManager.java index 31e4919cb..c5e6a3317 100644 --- a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/ResourceManager.java +++ b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/ResourceManager.java @@ -130,7 +130,7 @@ public class ResourceManager extends SWTResourceManager { */ public static Image decorateImage(final Image baseImage, final Image decorator, final int corner) { if (corner <= 0 || corner >= LAST_CORNER_KEY) { - throw new IllegalArgumentException("Wrong decorate corner"); + throw new IllegalArgumentException(Messages.ResourceManager_0); } Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner]; if (cornerDecoratedImageMap == null) { diff --git a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/SWTResourceManager.java b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/SWTResourceManager.java index e3f0cd524..290ac822c 100644 --- a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/SWTResourceManager.java +++ b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/SWTResourceManager.java @@ -253,7 +253,7 @@ public class SWTResourceManager { */ public static Image decorateImage(final Image baseImage, final Image decorator, final int corner) { if (corner <= 0 || corner >= LAST_CORNER_KEY) { - throw new IllegalArgumentException("Wrong decorate corner"); + throw new IllegalArgumentException("Wrong decorate corner"); //$NON-NLS-1$ } Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner]; if (cornerDecoratedImageMap == null) { @@ -479,10 +479,10 @@ public class SWTResourceManager { } public static void report() { - System.out.println("Colormap : " + m_colorMap.size()); - System.out.println("DecoratedImageMap : " + m_decoratedImageMap.length); - System.out.println("Fontmap : " + m_fontMap.size()); - System.out.println("CursorMap : " + m_idToCursorMap.size()); - System.out.println("ImageMap : " + m_imageMap.size()); + System.out.println("Colormap : " + m_colorMap.size()); //$NON-NLS-1$ + System.out.println("DecoratedImageMap : " + m_decoratedImageMap.length); //$NON-NLS-1$ + System.out.println("Fontmap : " + m_fontMap.size()); //$NON-NLS-1$ + System.out.println("CursorMap : " + m_idToCursorMap.size()); //$NON-NLS-1$ + System.out.println("ImageMap : " + m_imageMap.size()); //$NON-NLS-1$ } }
\ No newline at end of file diff --git a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/messages.properties b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/messages.properties new file mode 100644 index 000000000..130ebd2dc --- /dev/null +++ b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/util/messages.properties @@ -0,0 +1 @@ +ResourceManager_0=Wrong decorate corner |