package pipe.controllers;
import pipe.actions.gui.PipeApplicationModel;
import pipe.handlers.PlaceHandler;
import pipe.views.PlaceView;
import uk.ac.imperial.pipe.models.petrinet.Place;
import java.awt.Container;
/**
* Builder to create Place Views
*/
public class PlaceViewBuilder {
/**
* Underlying plac model
*/
private final Place place;
/**
* Petri net controller for the Petri net that the place is housed in
*/
private final PetriNetController controller;
/**
*
* @param place Underlying plac model
* @param controller Petri net controller for the Petri net that the place is housed in
*/
public PlaceViewBuilder(Place place, PetriNetController controller) {
this.place = place;
this.controller = controller;
}
/**
*
* @param parent parent of the view
* @param model main PIPE application model
* @return place view
*/
public PlaceView build(Container parent, PipeApplicationModel model) {
PlaceHandler handler = new PlaceHandler(parent, place, controller, model);
return new PlaceView(place, parent, controller, handler);
}
}