public SelectedController(SelectedDatesPanel view) {
    this.view = view;

    // sorter and model
    this.tableModel = new SelectedDatesTableModel();
    TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(tableModel);
    this.view.selectedDatesTablePanel.table.setModel(tableModel);
    this.view.selectedDatesTablePanel.table.setRowSorter(sorter);
    // end of sorter and table model

    selectedActor =
        this.getContext()
            .actorOf(
                new Props(
                    new UntypedActorFactory() {
                      private static final long serialVersionUID = 1L;

                      @Override
                      public Actor create() {
                        return new SelectedDatesContainerActor();
                      }
                    }),
                "selecteddatescontaineractor");

    // add the date action listiners
    for (SelectorComponent comp : this.view.selector_components.values()) {
      comp.addSelectedDatesBtnListiner(new SelectedDatesBtnListiner(comp.getComponentName()));
      comp.addRemoveSelectedDateListiner(
          new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
              if (e instanceof RemoveDateActionEvent) {
                RemoveDateActionEvent rdae = (RemoveDateActionEvent) e;
                self().tell(rdae);
              }
            }
          });
    }

    // add the controller as a listiner
    AddSelectedDatesListinerActorMessage asdlam =
        new AddSelectedDatesListinerActorMessage(getSelf());
    selectedActor.tell(asdlam);

    // schedule view updates

    /**
     * this.getContext() .system() .scheduler() .schedule(Duration.Zero(), Duration.create(2,
     * TimeUnit.SECONDS), new Runnable() { @Override public void run() { self().tell(new
     * UPDATEUI()); } });
     */

    // add the button listiner
    this.view.selectedDatesTablePanel.btnSendToMaster.addActionListener(
        new CreateTasksActionListiner());
  }