/** * "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); } } }
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); } } }); }