public TemporalControlsPanel(
      final DiagramView diagramView,
      final DiagramExportSettings diagramExportSettings,
      final EventBroker eventBroker) {
    super();

    this.diagramView = diagramView;

    // make sure the factories for the extra canvas items are loaded
    TransitionArrow.registerFactory();
    InterSequenceTransitionArrow.registerFactory();
    StateRing.registerFactory();

    eventBroker.subscribe(this, ConceptualSchemaChangeEvent.class, Object.class);
    diagramView
        .getController()
        .getEventBroker()
        .subscribe(this, DisplayedDiagramChangedEvent.class, DiagramView.class);
    diagramView
        .getController()
        .getEventBroker()
        .subscribe(this, CanvasDrawnEvent.class, Object.class);
    new TransitionArrowManipulator(diagramView, diagramView.getController().getEventBroker());

    this.diagramExportSettings = diagramExportSettings;
    this.timeController = new AnimationTimeController(0, 0, 0, 0, 0);

    buildGUI();
    fillGUI();
  }
 public RelationHierachyUpdateHandler(JTree treeview, int arity, EventBroker eventBroker) {
   this.treeview = treeview;
   this.arity = arity;
   eventBroker.subscribe(this, NewRelationCreatedEvent.class, KnowledgeBase.class);
 }