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