diff options
author | Curtis D'Entremont | 2006-03-15 17:52:22 +0000 |
---|---|---|
committer | Curtis D'Entremont | 2006-03-15 17:52:22 +0000 |
commit | 72af481aaaa2477d3151f01fc94a616339c0a06e (patch) | |
tree | 78bb5d4396c6c5b53d97c6ccb485cb13dd74a8d4 /org.eclipse.ui.cheatsheets | |
parent | d1503ffb5758331f795d2a1bab9cd2c09b3c6da3 (diff) | |
download | eclipse.platform.ua-72af481aaaa2477d3151f01fc94a616339c0a06e.tar.gz eclipse.platform.ua-72af481aaaa2477d3151f01fc94a616339c0a06e.tar.xz eclipse.platform.ua-72af481aaaa2477d3151f01fc94a616339c0a06e.zip |
131980 [CheatSheet] Composite cheatsheet layout improvements
Diffstat (limited to 'org.eclipse.ui.cheatsheets')
8 files changed, 74 insertions, 22 deletions
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/Messages.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/Messages.java index 0b4712460..25fdc2bfc 100644 --- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/Messages.java +++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/Messages.java @@ -119,6 +119,7 @@ public final class Messages extends NLS { public static String COMPOSITE_PAGE_GOTO_TASK; public static String COMPOSITE_PAGE_START_TASK; public static String COMPOSITE_PAGE_SKIP_TASK; + public static String COMPOSITE_PAGE_SKIP_TASK_GROUP; public static String COMPOSITE_PAGE_BLOCKED; public static String COMPOSITE_PAGE_TASK_NOT_COMPLETE; public static String EXPLORER_PULLDOWN_MENU; diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/Messages.properties b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/Messages.properties index 01445f42c..7bb693b50 100644 --- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/Messages.properties +++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/Messages.properties @@ -33,10 +33,10 @@ RESTORE_ALL_TOOLTIP = Expand To Previous Expansion States CATEGORY_OTHER = Other # CheatSheetMenu -CHEAT_SHEET_OTHER_MENU = Launch Other... -EXPLORER_PULLDOWN_MENU = Explorer -RESTART_ALL_MENU = Restart all tasks -RESTART_MENU = Restart +CHEAT_SHEET_OTHER_MENU = Launch &Other... +EXPLORER_PULLDOWN_MENU = &Layout +RESTART_ALL_MENU = &Restart all tasks +RESTART_MENU = &Restart # CoreItem PERFORM_TASK_TOOLTIP = Click to Perform @@ -178,10 +178,11 @@ PARENT_COMPLETED = This task cannot be started because parent task ''{0}'' has b PARENT_BLOCKED = This task cannot be started until all prerequisite tasks for parent task ''{0}'' are completed. COMPOSITE_PAGE_REVIEW_TASK = Review this task -COMPOSITE_PAGE_GOTO_TASK = Go to task ''{0}'' +COMPOSITE_PAGE_GOTO_TASK = Go to ''{0}'' COMPOSITE_PAGE_START_TASK = Start working on this task +COMPOSITE_PAGE_SKIP_TASK_GROUP = Skip this group of tasks COMPOSITE_PAGE_SKIP_TASK = Skip this task COMPOSITE_PAGE_BLOCKED = This task cannot be started until all prerequisite tasks are completed. -COMPOSITE_PAGE_TASK_NOT_COMPLETE = Task ''{0}'' is not complete +COMPOSITE_PAGE_TASK_NOT_COMPLETE = ''{0}'' has not been completed. COMPOSITE_RESTART_DIALOG_TITLE = Restart Composite Cheat Sheet COMPOSITE_RESTART_CONFIRM_MESSAGE = This will reset the state of all tasks. diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetModel.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetModel.java index 423b94e2c..73b6ac2ec 100644 --- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetModel.java +++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetModel.java @@ -107,8 +107,8 @@ public class CompositeCheatSheetModel extends Observable implements ICompositeCh this.manager = manager; } - public void loadState() { - saveHelper.loadCompositeState(this); + public void loadState(Map layoutData) { + saveHelper.loadCompositeState(this, layoutData); } /* diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetSaveHelper.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetSaveHelper.java index e485e6046..75b453af1 100644 --- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetSaveHelper.java +++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetSaveHelper.java @@ -45,7 +45,7 @@ public class CompositeCheatSheetSaveHelper extends CheatSheetSaveHelper { super(); } - public IStatus loadCompositeState(CompositeCheatSheetModel model) { + public IStatus loadCompositeState(CompositeCheatSheetModel model, Map layoutData) { XMLMemento readMemento = CheatSheetPlugin.getPlugin().readMemento(model.getId() + DOT_XML); if (readMemento == null) { return Status.OK_STATUS; @@ -53,6 +53,7 @@ public class CompositeCheatSheetSaveHelper extends CheatSheetSaveHelper { taskMementoMap = createTaskMap(readMemento); loadTaskState(taskMementoMap, (AbstractTask)model.getRootTask()); loadCheatsheetManagerData(readMemento, model.getCheatSheetManager()); + loadLayoutData(readMemento, layoutData); return Status.OK_STATUS; } @@ -97,18 +98,36 @@ public class CompositeCheatSheetSaveHelper extends CheatSheetSaveHelper { manager.setData(key, value); } } + + private void loadLayoutData(XMLMemento readMemento, Map layoutData) { + if (layoutData == null) { + return; + } + IMemento[] children = readMemento.getChildren(ICompositeCheatsheetTags.LAYOUT_DATA); + for (int i = 0; i < children.length; i++) { + IMemento childMemento = children[i]; + String key = childMemento.getString(ICompositeCheatsheetTags.KEY); + String value = childMemento.getString(ICompositeCheatsheetTags.VALUE); + layoutData.put(key, value); + } + } /** * Save the state of a composite cheat sheet model * @param model + * @param selectedTask + * @param layoutData Will contain pairs of name/value Strings used to save and restore layout * @return */ - public IStatus saveCompositeState(CompositeCheatSheetModel model) { + public IStatus saveCompositeState(CompositeCheatSheetModel model, Map layoutData) { XMLMemento writeMemento = XMLMemento.createWriteRoot(ICompositeCheatsheetTags.COMPOSITE_CHEATSHEET_STATE); writeMemento.putString(IParserTags.ID, model.getId()); saveTaskState(writeMemento, (AbstractTask)model.getRootTask()); saveCheatSheetManagerData(writeMemento, model.getCheatSheetManager()); taskMementoMap = createTaskMap(writeMemento); + if (layoutData != null) { + saveMap(writeMemento, layoutData, ICompositeCheatsheetTags.LAYOUT_DATA); + } return CheatSheetPlugin.getPlugin().saveMemento(writeMemento, model.getId() + DOT_XML); } @@ -117,10 +136,14 @@ public class CompositeCheatSheetSaveHelper extends CheatSheetSaveHelper { return; } Map data = ((CheatSheetManager)manager).getData(); + saveMap(writeMemento, data, ICompositeCheatsheetTags.CHEAT_SHEET_MANAGER); + } + + private void saveMap(XMLMemento writeMemento, Map data, String tag) { for (Iterator iter = data.keySet().iterator(); iter.hasNext();) { String key = (String)iter.next(); - String value = manager.getData(key); - IMemento childMemento = writeMemento.createChild(ICompositeCheatsheetTags.CHEAT_SHEET_MANAGER); + String value = (String) data.get(key); + IMemento childMemento = writeMemento.createChild(tag); childMemento.putString(ICompositeCheatsheetTags.KEY, key); childMemento.putString(ICompositeCheatsheetTags.VALUE, value); } diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/ICompositeCheatsheetTags.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/ICompositeCheatsheetTags.java index 9f62d0235..d2f1270e5 100644 --- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/ICompositeCheatsheetTags.java +++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/ICompositeCheatsheetTags.java @@ -43,5 +43,7 @@ public interface ICompositeCheatsheetTags { public static final String CHEAT_SHEET_MANAGER = "cheatSheetManager"; //$NON-NLS-1$ public static final String KEY = "key"; //$NON-NLS-1$ public static final String TASK_ID = "id"; //$NON-NLS-1$ + public static final String SELECTED_TASK = "selectedTask"; //$NON-NLS-1$ + public static final String LAYOUT_DATA = "layout"; //$NON-NLS-1$ } diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CompositeCheatSheetPage.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CompositeCheatSheetPage.java index 8f0e9279c..b8b41a4c9 100644 --- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CompositeCheatSheetPage.java +++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CompositeCheatSheetPage.java @@ -11,6 +11,7 @@ package org.eclipse.ui.internal.cheatsheets.composite.views; +import java.util.HashMap; import java.util.Map; import java.util.Observable; import java.util.Observer; @@ -41,6 +42,7 @@ import org.eclipse.ui.cheatsheets.IEditableTask; import org.eclipse.ui.cheatsheets.TaskEditor; import org.eclipse.ui.cheatsheets.TaskExplorer; import org.eclipse.ui.forms.FormColors; +import org.eclipse.ui.forms.HyperlinkSettings; import org.eclipse.ui.forms.ManagedForm; import org.eclipse.ui.forms.events.HyperlinkAdapter; import org.eclipse.ui.forms.events.HyperlinkEvent; @@ -87,6 +89,7 @@ public class CompositeCheatSheetPage extends Page implements ISelectionChangedLi public void createPart(Composite parent) { init(parent.getDisplay()); + toolkit.getHyperlinkGroup().setHyperlinkUnderlineMode(HyperlinkSettings.UNDERLINE_HOVER); form = toolkit.createScrolledForm(parent); form.setLayoutData(new GridData(GridData.FILL_BOTH)); FormColors colors = toolkit.getColors(); @@ -169,7 +172,7 @@ public class CompositeCheatSheetPage extends Page implements ISelectionChangedLi super.dispose(); } - private void setInputModel(CompositeCheatSheetModel model) { + private void setInputModel(CompositeCheatSheetModel model, Map layout) { this.model = model; mform.getForm().setText(model.getName()); String explorerId = model.getTaskExplorerId(); @@ -182,6 +185,14 @@ public class CompositeCheatSheetPage extends Page implements ISelectionChangedLi updateTask(task); } }); + String selectedTaskId = (String) layout.get(ICompositeCheatsheetTags.SELECTED_TASK); + if (selectedTaskId != null) { + AbstractTask selectedTask = + model.getDependencies().getTask(selectedTaskId); + if (selectedTask != null) { + currentExplorer.setSelection(new StructuredSelection(selectedTask), true); + } + } } private void setCurrentExplorerFromId(String explorerId) { @@ -272,7 +283,11 @@ public class CompositeCheatSheetPage extends Page implements ISelectionChangedLi } public void saveState() { - saveHelper.saveCompositeState(model); + Map layout = new HashMap(); + if (selectedTask != null) { + layout.put(ICompositeCheatsheetTags.SELECTED_TASK, selectedTask.getId()); + } + saveHelper.saveCompositeState(model, layout); } private void showDescription(final ICompositeCheatSheetTask task) { @@ -376,8 +391,9 @@ public class CompositeCheatSheetPage extends Page implements ISelectionChangedLi public void initialized() { // Open the model model.setSaveHelper(saveHelper); - model.loadState(); - setInputModel(model); + Map layout = new HashMap(); + model.loadState(layout); + setInputModel(model, layout); } public int contributeToViewMenu(Menu menu, int index) { diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/DescriptionPanel.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/DescriptionPanel.java index 628334155..bab3c5a56 100644 --- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/DescriptionPanel.java +++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/DescriptionPanel.java @@ -17,6 +17,7 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.ui.cheatsheets.ICompositeCheatSheetTask; import org.eclipse.ui.cheatsheets.IEditableTask; +import org.eclipse.ui.cheatsheets.ITaskGroup; import org.eclipse.ui.forms.FormColors; import org.eclipse.ui.forms.ManagedForm; import org.eclipse.ui.forms.events.IHyperlinkListener; @@ -121,7 +122,13 @@ public class DescriptionPanel { } if (isSkippable) { - addHyperlink(buf, CompositeCheatSheetPage.SKIP_HREF, SKIP_IMAGE, Messages.COMPOSITE_PAGE_SKIP_TASK); + String skipMessage; + if (task instanceof ITaskGroup) { + skipMessage = Messages.COMPOSITE_PAGE_SKIP_TASK_GROUP; + } else { + skipMessage = Messages.COMPOSITE_PAGE_SKIP_TASK; + } + addHyperlink(buf, CompositeCheatSheetPage.SKIP_HREF, SKIP_IMAGE, skipMessage); } if (!startable && !isBlocked) { @@ -153,9 +160,7 @@ public class DescriptionPanel { private void showBlockingTasks(String message, final ICompositeCheatSheetTask task, StringBuffer buf) { buf.append("<p/>"); //$NON-NLS-1$ buf.append("<p>"); //$NON-NLS-1$ - buf.append("<b>"); //$NON-NLS-1$ buf.append(message); - buf.append("</b>"); //$NON-NLS-1$ buf.append("</p>"); //$NON-NLS-1$// Add the list of blocking tasks ICompositeCheatSheetTask[] requiredTasks = task.getRequiredTasks(); @@ -167,7 +172,6 @@ public class DescriptionPanel { } private void addHyperlink(StringBuffer buf, String href, String imageRef, String message) { - buf.append("<p/>"); //$NON-NLS-1$ buf.append("<p><a href=\""); //$NON-NLS-1$ buf.append(href); buf.append("\">"); //$NON-NLS-1$ diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetPage.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetPage.java index fe2be766c..655824620 100644 --- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetPage.java +++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetPage.java @@ -23,6 +23,8 @@ import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.ui.forms.FormColors; +import org.eclipse.ui.forms.HyperlinkGroup; +import org.eclipse.ui.forms.HyperlinkSettings; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.ScrolledForm; import org.eclipse.ui.internal.cheatsheets.CheatSheetStopWatch; @@ -55,8 +57,11 @@ public class CheatSheetPage extends Page implements IMenuContributor { public void createPart(Composite parent) { CheatSheetStopWatch.startStopWatch("CheatSheetPage.createPart()"); //$NON-NLS-1$ super.createPart(parent); - toolkit.getHyperlinkGroup().setActiveBackground(null); - toolkit.getHyperlinkGroup().setBackground(null); + HyperlinkGroup hyperlinkGroup = toolkit.getHyperlinkGroup(); + hyperlinkGroup.setActiveBackground(null); + hyperlinkGroup.setBackground(null); + hyperlinkGroup.setHyperlinkUnderlineMode(HyperlinkSettings.UNDERLINE_HOVER); + CheatSheetStopWatch .printLapTime( "CheatSheetPage.createPart()", "Time in CheatSheetPage.createInfoArea() after super.createInfoArea(): "); //$NON-NLS-1$ //$NON-NLS-2$ |