From 2753c67345d1be8852755ded9012d41d47f3473e Mon Sep 17 00:00:00 2001 From: Max Schenkelberg Date: Tue, 20 Aug 2013 11:59:49 -0500 Subject: [PATCH] Issue #2033 moved text workstation file into plugin, fixed PlotModelDataDefinition null pointer. Change-Id: I41287c0af4f21dc842f99988f84da476bb6e785b Former-commit-id: 1afd52c5452925d7198fdcfa00fd5a0122ff4674 --- .../pointdata/PlotModelDataDefinition.java | 65 +++++++++++-------- .../textws/gui/TextEditorCfg.xml | 0 2 files changed, 38 insertions(+), 27 deletions(-) rename cave/{build/static/common/cave/etc => com.raytheon.viz.textworkstation/localization}/textws/gui/TextEditorCfg.xml (100%) diff --git a/cave/com.raytheon.viz.pointdata/src/com/raytheon/viz/pointdata/PlotModelDataDefinition.java b/cave/com.raytheon.viz.pointdata/src/com/raytheon/viz/pointdata/PlotModelDataDefinition.java index 4c0128634e..bd23bee9fa 100644 --- a/cave/com.raytheon.viz.pointdata/src/com/raytheon/viz/pointdata/PlotModelDataDefinition.java +++ b/cave/com.raytheon.viz.pointdata/src/com/raytheon/viz/pointdata/PlotModelDataDefinition.java @@ -179,7 +179,6 @@ public class PlotModelDataDefinition extends private void populateModels() { if (models == null) { Map> models = new HashMap>(); - IPathManager pm = PathManagerFactory.getPathManager(); LocalizationFile[] files = pm.listFiles( pm.getLocalSearchHierarchy(LocalizationType.CAVE_STATIC), @@ -194,22 +193,31 @@ public class PlotModelDataDefinition extends for (LocalizationFile file : files) { String fileName = file.getName(); - if (models.containsKey(fileName) == false) { - List fields = new PlotModelFactory2( - fakeDescriptor, fileName).getPlotFields(); - List params = new ArrayList(); - for (PlotModelElement p : fields) { - if (!p.parameter.equals("") - && !p.parameter.contains(",")) { - params.add(p.parameter); - } else if (p.parameter.contains(",")) { - String[] individualParams = p.parameter.split(","); - for (String param : individualParams) { - params.add(param); + fileName = fileName.substring(PLOTLOCATION.length() + 1); + try { + if (models.containsKey(fileName) == false) { + List params = new ArrayList(); + List fields = new PlotModelFactory2( + fakeDescriptor, fileName).getPlotFields(); + for (PlotModelElement p : fields) { + if (!p.parameter.equals("") + && !p.parameter.contains(",")) { + params.add(p.parameter); + } else if (p.parameter.contains(",")) { + String[] individualParams = p.parameter + .split(","); + for (String param : individualParams) { + params.add(param); + } } } + models.put(fileName, params); } - models.put(fileName, params); + } catch (Throwable t) { + // Ignore as some svg files are fonts and not plot models + // and the only way to tell is by catching exceptions thrown + // from PlotModelFactory2 when constructed with the non-plot + // model svg } } PlotModelDataDefinition.models = models; @@ -254,20 +262,23 @@ public class PlotModelDataDefinition extends possibleLevels.retainAll(returnQueue); } } + List validLevels = new ArrayList(); - for (String levelid : possibleLevels) { - try { - Level level = LevelFactory.getInstance().getLevel( - Long.parseLong(levelid)); - validLevels - .add(LevelMappingFactory - .getInstance( - LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE) - .getLevelMappingForLevel(level) - .getDisplayName()); - } catch (CommunicationException e) { - statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), - e); + if (possibleLevels != null) { + for (String levelid : possibleLevels) { + try { + Level level = LevelFactory.getInstance().getLevel( + Long.parseLong(levelid)); + validLevels + .add(LevelMappingFactory + .getInstance( + LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE) + .getLevelMappingForLevel(level) + .getDisplayName()); + } catch (CommunicationException e) { + statusHandler.handle(Priority.PROBLEM, + e.getLocalizedMessage(), e); + } } } return validLevels.toArray(new String[0]); diff --git a/cave/build/static/common/cave/etc/textws/gui/TextEditorCfg.xml b/cave/com.raytheon.viz.textworkstation/localization/textws/gui/TextEditorCfg.xml similarity index 100% rename from cave/build/static/common/cave/etc/textws/gui/TextEditorCfg.xml rename to cave/com.raytheon.viz.textworkstation/localization/textws/gui/TextEditorCfg.xml