Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCurtis D'Entremont2006-03-15 17:52:22 +0000
committerCurtis D'Entremont2006-03-15 17:52:22 +0000
commit72af481aaaa2477d3151f01fc94a616339c0a06e (patch)
tree78bb5d4396c6c5b53d97c6ccb485cb13dd74a8d4 /org.eclipse.ui.cheatsheets
parentd1503ffb5758331f795d2a1bab9cd2c09b3c6da3 (diff)
downloadeclipse.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')
-rw-r--r--org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/Messages.java1
-rw-r--r--org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/Messages.properties13
-rw-r--r--org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetModel.java4
-rw-r--r--org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetSaveHelper.java31
-rw-r--r--org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/parser/ICompositeCheatsheetTags.java2
-rw-r--r--org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CompositeCheatSheetPage.java24
-rw-r--r--org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/DescriptionPanel.java12
-rw-r--r--org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetPage.java9
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$

Back to the top