/** * author: Marcel Genzmehr * 27.12.2011 */ package org.freeplane.plugin.workspace.controller; import java.util.HashMap; import javax.swing.Icon; import org.freeplane.plugin.workspace.model.AWorkspaceTreeNode; /** * */ public class DefaultNodeTypeIconManager implements INodeTypeIconManager { private final HashMap<Class<? extends AWorkspaceTreeNode>, INodeTypeIconHandler> handlers= new HashMap<Class<? extends AWorkspaceTreeNode>, INodeTypeIconHandler>(); /*********************************************************************************** * CONSTRUCTORS **********************************************************************************/ /*********************************************************************************** * METHODS **********************************************************************************/ /*********************************************************************************** * REQUIRED METHODS FOR INTERFACES **********************************************************************************/ /* (non-Javadoc) * @see org.freeplane.plugin.workspace.controller.INodeTypeIconManager#getIconForNode(org.freeplane.plugin.workspace.model.node.AWorkspaceTreeNode) */ public Icon getIconForNode(AWorkspaceTreeNode node) { INodeTypeIconHandler handler = handlers.get(node.getClass()); if(handler != null) { return handler.getIconForNode(node); } return null; } public void addNodeTypeIconHandler(Class<? extends AWorkspaceTreeNode> type, INodeTypeIconHandler handler) { if(type == null || handler == null) { return; } handlers.put(type, handler); } public INodeTypeIconHandler removeNodeTypeIconHandler(Class<? extends AWorkspaceTreeNode> type) { if(type == null) { return null; } return handlers.remove(type); } }