From: <kp...@us...> - 2010-05-13 15:41:15
|
Revision: 17819 http://jedit.svn.sourceforge.net/jedit/?rev=17819&view=rev Author: kpouer Date: 2010-05-13 15:41:09 +0000 (Thu, 13 May 2010) Log Message: ----------- added a task count label and use the task list Modified Paths: -------------- jEdit/trunk/org/gjt/sp/jedit/gui/TaskMonitor.java jEdit/trunk/org/gjt/sp/jedit/jedit_gui.props Modified: jEdit/trunk/org/gjt/sp/jedit/gui/TaskMonitor.java =================================================================== --- jEdit/trunk/org/gjt/sp/jedit/gui/TaskMonitor.java 2010-05-13 15:39:57 UTC (rev 17818) +++ jEdit/trunk/org/gjt/sp/jedit/gui/TaskMonitor.java 2010-05-13 15:41:09 UTC (rev 17819) @@ -1,5 +1,5 @@ /* - * jEdit - Programmer's Text Editor + * TaskMonitor * :tabSize=8:indentSize=8:noTabs=false: * :folding=explicit:collapseFolds=1: * @@ -29,6 +29,8 @@ import org.gjt.sp.util.ThreadUtilities; import javax.swing.*; +import javax.swing.event.TableModelEvent; +import javax.swing.event.TableModelListener; import javax.swing.table.AbstractTableModel; import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; @@ -42,14 +44,28 @@ */ public class TaskMonitor extends JPanel implements TaskListener { - private final TaskTableModel model; private final JTable table; + private final JLabel remainingCount; public TaskMonitor() { super(new BorderLayout()); + remainingCount = new JLabel(); + add(remainingCount, BorderLayout.NORTH); + model = new TaskTableModel(); + model.addTableModelListener(new TableModelListener() + { + public void tableChanged(TableModelEvent e) + { + if (e.getType() == TableModelEvent.INSERT || + e.getType() == TableModelEvent.DELETE) + { + updateTasksCount(); + } + } + }); table = new JTable(model); table.setDefaultRenderer(Object.class, new TaskCellRenderer()); table.getTableHeader().setVisible(false); @@ -58,11 +74,19 @@ table.getColumnModel().getColumn(1).setMinWidth(16); JScrollPane scroll = new JScrollPane(table); add(scroll); + updateTasksCount(); } @Override public void addNotify() { + TaskManager.instance.visit(new TaskManager.TaskVisitor() + { + public void visit(Task task) + { + model.addTask(task); + } + }); TaskManager.instance.addTaskListener(this); super.addNotify(); } @@ -71,7 +95,8 @@ public void removeNotify() { TaskManager.instance.removeTaskListener(this); - super.removeNotify(); + super.removeNotify(); + model.removeAll(); } public void waiting(Task task) @@ -104,6 +129,12 @@ repaint(); } + private void updateTasksCount() + { + remainingCount.setText(jEdit.getProperty("taskmanager.remainingtasks.label", + new Object[]{model.getRowCount()})); + } + private static class TaskCellRenderer implements TableCellRenderer { private final JProgressBar progress; @@ -237,5 +268,11 @@ } }); } + + public void removeAll() + { + tasks.clear(); + fireTableDataChanged(); + } } } Modified: jEdit/trunk/org/gjt/sp/jedit/jedit_gui.props =================================================================== --- jEdit/trunk/org/gjt/sp/jedit/jedit_gui.props 2010-05-13 15:39:57 UTC (rev 17818) +++ jEdit/trunk/org/gjt/sp/jedit/jedit_gui.props 2010-05-13 15:41:09 UTC (rev 17819) @@ -2639,3 +2639,4 @@ errorwidget.popupmenu=logs-remove-all-errors logs-remove-all-errors.label=Remove all errors +taskmanager.remainingtasks.label={0} remaining task(s) \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |