Skip to content
Snippets Groups Projects
Commit ddbd0010 authored by Florian Hölzl's avatar Florian Hölzl
Browse files

Added categories for tutorials and adapted tutorial menu in RCP application action bar advisor.

refs 2580
parent 407ec456
No related branches found
No related tags found
No related merge requests found
......@@ -37,7 +37,7 @@ public final class TutorialDefinition {
private final List<TutorialStep> steps = new LinkedList<TutorialStep>();
/** Constructor. */
public TutorialDefinition(String title, TutorialStep initialStep) {
public TutorialDefinition(String title, TutorialStep initialStep, String category) {
this.title = title;
addStep(initialStep);
}
......
......@@ -48,7 +48,8 @@ import org.fortiss.tooling.kernel.service.listener.ITutorialServiceListener;
*/
public final class TutorialService implements ITutorialService, CommandStackListener {
/** The collection of all defined tutorials. */
private Map<String, Class<? extends ITutorialProvider>> allTutorials = new HashMap<>();
private Map<String, Map<String, Class<? extends ITutorialProvider>>> allTutorials =
new HashMap<>();
/** The collection of listeners. */
private Collection<ITutorialServiceListener> listeners =
new LinkedList<ITutorialServiceListener>();
......@@ -80,23 +81,29 @@ public final class TutorialService implements ITutorialService, CommandStackList
/** {@inheritDoc} */
@Override
public Map<String, Class<? extends ITutorialProvider>> getAllTutorialProviders() {
return new UnmodifiableMap<String, Class<? extends ITutorialProvider>>(allTutorials);
public Map<String, Map<String, Class<? extends ITutorialProvider>>> getAllTutorialProviders() {
return new UnmodifiableMap<String, Map<String, Class<? extends ITutorialProvider>>>(
allTutorials);
}
/** {@inheritDoc} */
@Override
public void registerTutorialProvider(Class<? extends ITutorialProvider> provider,
String displayName) {
allTutorials.put(displayName, provider);
String displayName, String category) {
if(category == null) {
category = "";
}
Map<String, Class<? extends ITutorialProvider>> categoryMap = allTutorials.get(category);
if(categoryMap == null) {
categoryMap = new HashMap<String, Class<? extends ITutorialProvider>>();
allTutorials.put(category, categoryMap);
}
categoryMap.put(displayName, provider);
}
/** {@inheritDoc} */
@Override
public void startTutorial(Class<? extends ITutorialProvider> provider) {
if(!allTutorials.containsValue(provider)) {
return;
}
try {
activeTutorial = provider.newInstance();
activeStep = activeTutorial.getDefinition().getSteps().get(0);
......
......@@ -65,12 +65,15 @@ public interface ITutorialService extends ITutorialWhitelistProvider {
/** Returns whether the given step is a later step than the current one. */
public boolean isLaterStep(TutorialStep step);
/** Returns all registered tutorial providers. */
public Map<String, Class<? extends ITutorialProvider>> getAllTutorialProviders();
/**
* Returns all registered tutorial providers. The return value is a mapping from category names
* to maps of tutorial names to {@link ITutorialProvider}s.
*/
public Map<String, Map<String, Class<? extends ITutorialProvider>>> getAllTutorialProviders();
/** Programmatically register a tutorial provider. */
public void registerTutorialProvider(Class<? extends ITutorialProvider> provider,
String displayName);
String displayName, String category);
/** Adds a listener with this service. */
public void addTutorialServiceListener(ITutorialServiceListener l);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment