Package org.freeplane.plugin.workspace.creator

Source Code of org.freeplane.plugin.workspace.creator.ActionCreator

/**
* author: Marcel Genzmehr
* 16.08.2011
*/
package org.freeplane.plugin.workspace.creator;

import java.util.Hashtable;

import org.freeplane.n3.nanoxml.XMLElement;
import org.freeplane.plugin.workspace.model.AWorkspaceNodeCreator;
import org.freeplane.plugin.workspace.model.AWorkspaceTreeNode;

/**
*
*/
public class ActionCreator extends AWorkspaceNodeCreator {

  private Hashtable<String, AWorkspaceNodeCreator> creatorTable = new Hashtable<String, AWorkspaceNodeCreator>();
  /***********************************************************************************
   * CONSTRUCTORS
   **********************************************************************************/

  /***********************************************************************************
   * METHODS
   **********************************************************************************/
  public void addTypeCreator(final String typeName, final AWorkspaceNodeCreator creator) {
    if(creatorTable.containsKey(typeName)) {
      creatorTable.remove(typeName);
    }
    creatorTable.put(typeName, creator);
  }
 
 
  public void endElement(final Object parent, final String tag, final Object userObject, final XMLElement lastBuiltElement) {
    String type = lastBuiltElement.getAttribute("type", null);
    if(type == null || !creatorTable.containsKey(type)) {
      return;
    }
   
    AWorkspaceNodeCreator creator = creatorTable.get(type);
    creator.endElement(parent, tag, userObject, lastBuiltElement);
  }
  /***********************************************************************************
   * REQUIRED METHODS FOR INTERFACES
   **********************************************************************************/
  public AWorkspaceTreeNode getNode(XMLElement data) {
    String type = data.getAttribute("type", null);
    if(type == null || !creatorTable.containsKey(type)) {
      return null;
    }
   
    AWorkspaceNodeCreator creator = creatorTable.get(type);
    AWorkspaceTreeNode node = creator.getNode(data);
    return node;
  }
 
 
}
TOP

Related Classes of org.freeplane.plugin.workspace.creator.ActionCreator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.