package com.hp.tcp.shaleresearch.controller.orgview;

import javax.faces.context.FacesContext;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.ActionEvent;
import javax.swing.tree.DefaultMutableTreeNode;

import org.apache.myfaces.tobago.context.ResourceManagerUtil;
import org.apache.myfaces.tobago.event.DefaultTreeActionListener;

public class TreeEditor extends DefaultTreeActionListener {

    protected String nextId() {
      return "m" + System.currentTimeMillis();
    }

    protected DefaultMutableTreeNode create(FacesContext facesContext) {
      String label = ResourceManagerUtil.getPropertyNotNull(facesContext, "tobago", "treeNodeNew");
      return new DefaultMutableTreeNode(
          OrgViewController.createNode(label, nextId()));
    }

    protected DefaultMutableTreeNode copy(DefaultMutableTreeNode node) {
      Node userObject
          = (Node) node.getUserObject();
      userObject.setId(nextId());
      return new DefaultMutableTreeNode(userObject);
    }

    public void processAction(ActionEvent event) throws AbortProcessingException {
      super.processAction(event);
      FacesContext facesContext = FacesContext.getCurrentInstance();
      facesContext.renderResponse();
    }
}
