From 6485ef7547e0efaf86cb8233b2704ab0b9827128 Mon Sep 17 00:00:00 2001 From: lparsons Date: Tue, 22 Jun 2004 21:11:02 +0000 Subject: Fix for Bug 68060 --- .../cheatsheets/views/CheatSheetViewer.java | 32 ++++++++++++++++------ 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetViewer.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetViewer.java index 9cbbad112..9082d1ac9 100644 --- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetViewer.java +++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetViewer.java @@ -35,8 +35,10 @@ public class CheatSheetViewer implements ICheatSheetViewer { private String currentID; private int currentItemNum; private boolean hascontent = false; - // Use tp indicate if an invalid cheat sheet id was specified via setInput. + // Used to indicate if an invalid cheat sheet id was specified via setInput. private boolean invalidCheatSheetId = false; + // Used to indicate if a null cheat sheet id was specified via setInput. + private boolean nullCheatSheetId = false; private CheatSheetParser parser; private CheatSheet cheatSheet; @@ -623,6 +625,11 @@ public class CheatSheetViewer implements ICheatSheetViewer { boolean parsedOK = readFile(); CheatSheetStopWatch.printLapTime("CheatSheetViewer.initCheatSheetView()", "Time in CheatSheetViewer.initCheatSheetView() after readFile() call: "); //$NON-NLS-1$ //$NON-NLS-2$ if(!parsedOK){ + // If a null cheat sheet id was specified, return leaving the cheat sheet empty. + if(nullCheatSheetId) { + return; + } + // Exception thrown during parsing. // Something is wrong with the Cheat sheet content file at the xml level. if(invalidCheatSheetId) { @@ -836,14 +843,22 @@ public class CheatSheetViewer implements ICheatSheetViewer { public void setInput(String id) { CheatSheetStopWatch.startStopWatch("CheatSheetViewer.setInput(String id)"); //$NON-NLS-1$ - CheatSheetElement element = CheatSheetRegistryReader.getInstance().findCheatSheet(id); - if(element == null) { - String message = CheatSheetPlugin.formatResourceString(ICheatSheetResource.ERROR_INVALID_CHEATSHEET_ID, new Object[] {id}); - IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, null); - CheatSheetPlugin.getPlugin().getLog().log(status); - invalidCheatSheetId = true; + CheatSheetElement element = null; + + if(id == null) { + nullCheatSheetId = true; } else { - invalidCheatSheetId = false; + nullCheatSheetId = false; + + element = CheatSheetRegistryReader.getInstance().findCheatSheet(id); + if(element == null) { + String message = CheatSheetPlugin.formatResourceString(ICheatSheetResource.ERROR_INVALID_CHEATSHEET_ID, new Object[] {id}); + IStatus status = new Status(IStatus.ERROR, ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID, IStatus.OK, message, null); + CheatSheetPlugin.getPlugin().getLog().log(status); + invalidCheatSheetId = true; + } else { + invalidCheatSheetId = false; + } } CheatSheetStopWatch.printLapTime("CheatSheetViewer.setInput(String id)", "Time in CheatSheetViewer.setInput(String id) before setContent() call: "); //$NON-NLS-1$ //$NON-NLS-2$ @@ -866,6 +881,7 @@ public class CheatSheetViewer implements ICheatSheetViewer { element.setID(id); element.setContentFile(url.toString()); + nullCheatSheetId = false; invalidCheatSheetId = false; setContent(element); } -- cgit v1.2.3