package org.docear.plugin.core.ui.wizard; import java.util.LinkedHashMap; import java.util.Map; import javax.swing.AbstractButton; /** * @author genzmehr@docear.org * */ public abstract class WizardSession { private Map<Class<? extends Object>, Object> properties = new LinkedHashMap<Class<? extends Object>, Object>(); private WizardTraverseLog traversalLog; /*********************************************************************************** * CONSTRUCTORS **********************************************************************************/ /*********************************************************************************** * METHODS **********************************************************************************/ public void set(Class<? extends Object> key, Object value) { if(key != null) { if(value == null) { properties.remove(key); } else { properties.put(key, value); } } } public <T> T get(Class<T> key) { return (T) properties.get(key); } public WizardTraverseLog getTraversalLog() { if(traversalLog == null) { traversalLog = new WizardTraverseLog(); } return traversalLog; } /*********************************************************************************** * REQUIRED METHODS FOR INTERFACES **********************************************************************************/ public abstract WizardPageDescriptor getCurrentDescriptor(); public abstract WizardModel getModel(); public abstract void setWizardTitle(String title); public abstract void gotoPage(String identifier); public abstract AbstractButton getNextButton(); public abstract AbstractButton getBackButton(); public abstract AbstractButton getSkipButton(); public abstract void finish(); public abstract void cancel(); }