diff options
-rw-r--r-- | plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css/src/org/eclipse/papyrus/infra/gmfdiag/css/theme/ThemeManager.java | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css/src/org/eclipse/papyrus/infra/gmfdiag/css/theme/ThemeManager.java b/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css/src/org/eclipse/papyrus/infra/gmfdiag/css/theme/ThemeManager.java index a01d7fdf426..24bf4c6f1eb 100644 --- a/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css/src/org/eclipse/papyrus/infra/gmfdiag/css/theme/ThemeManager.java +++ b/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css/src/org/eclipse/papyrus/infra/gmfdiag/css/theme/ThemeManager.java @@ -109,14 +109,25 @@ public class ThemeManager { } /** - * Returns the theme associated to the given id, or <code>null</code> if it doesn't + * Returns the theme associated to the given id, or {@link EmptyTheme} if it doesn't * exist * * @param themeId * @return */ public Theme getTheme(String themeId) { - return getAllThemes().get(themeId); + Theme registeredTheme = null; + + if(getAllThemes().containsKey(themeId)) { + registeredTheme = getAllThemes().get(themeId); + } + + // Bug 434956 : Patch to ensure that one theme is returned. + if(registeredTheme == null) { + registeredTheme = EmptyTheme.instance; + } + + return registeredTheme; } /** @@ -477,8 +488,7 @@ public class ThemeManager { if(store.contains(ThemePreferences.CURRENT_THEME)) { String themeId = store.getString(ThemePreferences.CURRENT_THEME); - Theme theme = getAllThemes().containsKey(themeId) ? getAllThemes().get(themeId) : EmptyTheme.instance; - return theme; + return getTheme(themeId); } //The theme has not been defined: return the first one, and store it |