package org.trianacode.http;
import org.thinginitself.http.MimeType;
import org.thinginitself.http.target.TargetResource;
import org.thinginitself.streamable.Streamable;
import org.trianacode.config.TrianaProperties;
import org.trianacode.taskgraph.tool.Toolbox;
import java.util.ArrayList;
import java.util.List;
/**
* @author Andrew Harrison
* @version 1.0.0 Oct 29, 2010
*/
public class ToolboxesResource extends TargetResource {
private List<Toolbox> toolboxes = new ArrayList<Toolbox>();
public ToolboxesResource() {
super(PathController.getInstance().getToolboxesRoot());
}
public Streamable getStreamable(List<MimeType> mimes) {
ToolboxesRenderer r = new ToolboxesRenderer();
r.init(toolboxes, getPath().toString());
Streamable s = r.render(TrianaProperties.TOOLBOXES_DESCRIPTION_TEMPLATE_PROPERTY, "text/html");
return s;
}
public void toolboxAdded(Toolbox toolbox) {
toolboxes.add(toolbox);
getPathTree().addLocatable(new ToolboxResource(toolbox));
}
public void toolboxRemoved(Toolbox toolbox) {
toolboxes.remove(toolbox);
getPathTree().removeLocatable(PathController.getInstance().getToolboxPath(toolbox));
}
}