package jas2.job;
import hepjas.analysis.*;
import hepjas.analysis.peer.*;
import jas2.util.tree.*;

/**
 * JobFolder is the Peer for Folder objects created within a Job
 */
public class JobFolder extends SimpleNode implements FolderPeer
{
	/** 
	 * Create a Root folder
	 */
	JobFolder(AbstractJob job)
	{
		super("Root","folder",TreeItem.FOLDER,null);
		m_job = job;
	}
	JobFolder(AbstractJob job, Folder f, JobFolder parent, String type)
	{
		super(parent,f.getName(),type,TreeItem.FOLDER,f);
		m_job = job;
	}
	public void addNotify(NamedObject o)
	{
		Peer peer;
		
		// Create the appropriate peer

		if      (o instanceof HistogramFolder) peer = new JobHistogramFolder(m_job,(HistogramFolder) o,this);
		else if (o instanceof Folder         ) peer = new JobFolder(m_job,(Folder) o,this,"folder");
		else if (o instanceof Histogram      ) peer = new JobHistogram((Histogram) o,this);
		else if (o instanceof Page           ) peer = new JobPage((Page) o, this);
		else if (o instanceof Plot           ) peer = new JobPlot((Plot) o, this);
		else throw new RuntimeException("Unknown object added to folder");

		PeerSupport.setPeer(o,peer);
	}
	public void removeNotify(NamedObject o)
	{		
		Peer peer = PeerSupport.getPeer(o);
		SimpleNode child = findChild(o.getName());
		child.destroy();
	}
	public void changeNotify(NamedObject o, String oldName)
	{
		SimpleNode child = findChild(oldName);
		renameChild(child,o.getName());
	}
	private AbstractJob m_job;
}

 

Ads help maintain this website.