Ejemplo n.º 1
0
  public TimelimitTaskController(Preferences prefsParent, TimelimitTaskDelegate tltaskDelegate) {
    super();

    this.timelimittaskview = new TimelimitTaskView();
    this.timelimittaskview.init();
    this.tltaskDelegate = tltaskDelegate;
    this.popupTimelimit = new TimelimitTasksPopupMenu(timelimittaskview);
    this.prefs = prefsParent.node(PREFS_NODE_TIMELIMITTASKS);

    this.timelimittaskview.setTimelimitTaskTableModel(newTimelimitTaskTableModel());

    final JTable tblTimelimit = timelimittaskview.getTable();
    tblTimelimit.setTableHeader(
        new ToolTipsTableHeader(
            this.timelimittaskview.getTimelimitTaskTableModel(), tblTimelimit.getColumnModel()));
    TableUtils.addMouseListenerForSortingToTableHeader(
        tblTimelimit,
        this.timelimittaskview.getTimelimitTaskTableModel(),
        new CommonRunnable() {
          @Override
          public void run() {
            timelimittaskview.getTimelimitTaskTableModel().sort();
            storeOrderBySelectedColumnToPreferences();
          }
        });

    /** todo calculate row height */
    tblTimelimit.setRowHeight(20);

    setupRenderers(tblTimelimit);
    setupColumnModelListener(tblTimelimit);
    setupActions(tblTimelimit);
    setupDataTransfer(tblTimelimit);
    setupTableModelSorting();

    KeyBinding keybinding = KeyBindingProvider.REFRESH;
    this.timelimittaskview
        .getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
        .put(keybinding.getKeystroke(), keybinding.getKey());
    this.timelimittaskview
        .getActionMap()
        .put(
            keybinding.getKey(),
            new AbstractAction() {

              @Override
              public void actionPerformed(ActionEvent e) {
                TimelimitTaskController.this.cmdRefreshTimelimitTaskView();
              }
            });
  }
Ejemplo n.º 2
0
 private List<TimelimitTaskVO> getSelectedTimelimitTasks(final TimelimitTaskView taskview) {
   final List<Integer> lstSelectedRowNumbers =
       CollectionUtils.asList(taskview.getTable().getSelectedRows());
   final List<TimelimitTaskVO> result =
       CollectionUtils.transform(
           lstSelectedRowNumbers,
           new Transformer<Integer, TimelimitTaskVO>() {
             @Override
             public TimelimitTaskVO transform(Integer iRowNo) {
               return taskview.getTimelimitTaskTableModel().getTimelimitTask(iRowNo);
             }
           });
   assert result != null;
   return result;
 }
Ejemplo n.º 3
0
  public void refreshTimelimitTaskView() {
    boolean bUnfinishedOnly = !this.timelimittaskview.btnShowAllTasks.getModel().isSelected();
    final Collection<TimelimitTaskVO> colltaskvo =
        this.tltaskDelegate.getTimelimitTasks(bUnfinishedOnly);
    final List<CollectableTimelimitTask> lstclct =
        CollectionUtils.transform(colltaskvo, new CollectableTimelimitTask.MakeCollectable());

    final TimelimitTaskTableModel tblmdl = this.timelimittaskview.getTimelimitTaskTableModel();
    tblmdl.setCollectables(lstclct);

    // TableUtils.setOptimalColumnWidths(this.timelimittaskview.getTable());
    TaskController.setColumnWidths(
        readColumnWidthsFromPreferences(), this.timelimittaskview.getTable());

    // todo: sorting order? / UA
    //		final int iColumnScheduled =
    // tblmdl.findColumnByFieldName(CollectableTimelimitTask.FIELDNAME_SCHEDULED);
    //		tblmdl.setSortingOrder(iColumnScheduled, true, true);

    //	NUCLOS-642
    setupRenderers(timelimittaskview.getTable());
  }
Ejemplo n.º 4
0
  /**
   * "unfinishes" the selected tasks
   *
   * @param taskview
   * @param bRefresh Refresh the lists afterwards?
   */
  private void cmdUnfinishTimelimitTask(final TimelimitTaskView taskview, final boolean bRefresh) {
    final List<TimelimitTaskVO> lstSelectedTimelimitTasks = getSelectedTimelimitTasks(taskview);
    if (!lstSelectedTimelimitTasks.isEmpty() && lstSelectedTimelimitTasks != null) {

      final String sMessage =
          getSpringLocaleDelegate()
              .getMessage(
                  "TimelimitTaskController.12",
                  "Soll(en) die ausgew\u00e4hlte(n) Frist(e) als unerledigt markiert werden?");
      final int iBtn =
          JOptionPane.showConfirmDialog(
              this.getTabbedPane().getComponentPanel(),
              sMessage,
              getSpringLocaleDelegate()
                  .getMessage("TimelimitTaskController.9", "Friste als unerledigt markieren"),
              JOptionPane.YES_NO_OPTION);
      if (iBtn == JOptionPane.YES_OPTION) {
        UIUtils.runCommandForTabbedPane(
            this.getTabbedPane(),
            new Runnable() {
              @Override
              public void run() {
                try {
                  for (TimelimitTaskVO taskvo : lstSelectedTimelimitTasks)
                    tltaskDelegate.unfinish(taskvo);
                  if (bRefresh) {
                    refreshTimelimitTaskView();
                  }
                } catch (/* CommonBusiness */ Exception ex) {
                  Errors.getInstance().showExceptionDialog(getTabbedPane().getComponentPanel(), ex);
                }
              }
            });
      } else {
        // undo selection of the button:
        timelimittaskview.getFinishButton().setSelected(false);
      }
    }
  }
Ejemplo n.º 5
0
  private void setupActions(final JTable table) {
    super.addRefreshIntervalActionsToSingleScheduledRefreshable();

    // assign popup menu:
    table.addMouseListener(new PopupMenuListener(this.popupTimelimit, table));

    // add mouse listeners for double click in table:
    table.addMouseListener(new DoubleClickListener(timelimittaskview));

    final Action actRefresh =
        new CommonAbstractAction(
            Icons.getInstance().getIconRefresh16(),
            getSpringLocaleDelegate()
                .getMessage("TimelimitTaskController.10", "Fristenliste aktualisieren")) {

          @Override
          public void actionPerformed(ActionEvent ev) {
            TimelimitTaskController.this.cmdRefreshTimelimitTaskView();
          }
        };

    actPerformTask.setEnabled(false);
    actRemoveTask.setEnabled(false);
    actFinishTask.setEnabled(false);

    timelimittaskview.getRefreshButton().setAction(actRefresh);
    timelimittaskview.getPerformMenuItem().setAction(actPerformTask);
    timelimittaskview.getRemoveMenuItem().setAction(actRemoveTask);
    timelimittaskview.getFinishButton().setAction(actFinishTask);
    timelimittaskview.getPrintMenuItem().setAction(actPrint);

    // use only action listener for "show finished" button:
    timelimittaskview.btnShowAllTasks.addActionListener(actRefresh);

    setRefreshIntervalForSingleViewRefreshable(readIntervalTasksFromPreferences());

    table
        .getSelectionModel()
        .addListSelectionListener(
            new ListSelectionListener() {
              @Override
              public void valueChanged(ListSelectionEvent ev) {
                if (!ev.getValueIsAdjusting()) {
                  final ListSelectionModel lsm = (ListSelectionModel) ev.getSource();
                  final boolean bSelectionEmpty = lsm.isSelectionEmpty();
                  final Boolean bFinished;
                  final Boolean bHasGenericObject;

                  if (bSelectionEmpty) {
                    bFinished = null;
                    bHasGenericObject = null;
                  } else {
                    final int iSelectedRow =
                        TimelimitTaskController.this.timelimittaskview.getTable().getSelectedRow();
                    CollectableTimelimitTask taskclct =
                        TimelimitTaskController.this
                            .timelimittaskview
                            .getTimelimitTaskTableModel()
                            .getCollectable(iSelectedRow);
                    final TimelimitTaskVO taskvo = taskclct.getTimelimitTaskVO();
                    bFinished = Boolean.valueOf(taskvo.getCompleted() != null);
                    bHasGenericObject = Boolean.valueOf(taskvo.getGenericObjectId() != null);
                  }

                  final boolean bTaskSelected = !bSelectionEmpty;
                  final boolean bFinishedTaskSelected = bTaskSelected && bFinished.booleanValue();

                  actRemoveTask.setEnabled(bTaskSelected);
                  actPerformTask.setEnabled(bTaskSelected && bHasGenericObject.booleanValue());
                  actFinishTask.setEnabled(bTaskSelected);
                  timelimittaskview.getFinishButton().setSelected(bFinishedTaskSelected);
                }
              }
            });
  }