package pipe.controllers;
import pipe.actions.gui.PipeApplicationModel;
import pipe.handlers.AnnotationNoteHandler;
import pipe.views.AnnotationView;
import uk.ac.imperial.pipe.models.petrinet.Annotation;
import java.awt.Container;
/**
* Builds an annotation view representation of the annotation
*/
public final class AnnotationViewBuilder {
/**
* Underlying model
*/
private final Annotation annotation;
/**
* Controller of the Petri net the annotation belongs to
*/
private final PetriNetController controller;
public AnnotationViewBuilder(Annotation annotation, PetriNetController controller) {
this.annotation = annotation;
this.controller = controller;
}
/**
*
* @param parent container
* @param model of the application
* @return a new annotation view who belongs in the specified parent
*/
public AnnotationView build(Container parent, PipeApplicationModel model) {
AnnotationNoteHandler noteHandler = new AnnotationNoteHandler(parent, annotation, controller, model);
return new AnnotationView(annotation, controller, parent, noteHandler);
}
}