From 86d37c2c10b9a0abbf1f4256333f13914c3c740b Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 13 Jun 2008 19:19:12 +0000 Subject: copy events works --- sources/simulator/VSSimulator.java | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'sources/simulator/VSSimulator.java') diff --git a/sources/simulator/VSSimulator.java b/sources/simulator/VSSimulator.java index ac7588a..ea552f6 100644 --- a/sources/simulator/VSSimulator.java +++ b/sources/simulator/VSSimulator.java @@ -323,6 +323,26 @@ public class VSSimulator extends JPanel implements VSSerializable { fireTableDataChanged(); } + /** + * Copies the tasks at a specified rows. + * + * @param rows the rows + */ + private void copyTasksAtRows(int rows[]) { + ArrayList copiedTasks = new ArrayList(); + + for (int row : rows) + /* Use the copy constructor */ + copiedTasks.add(new VSTask(tasks.get(row))); + + for (VSTask task : copiedTasks) { + taskManager.addTask(task, VSTaskManager.PROGRAMMED); + addTask(task); + } + + fireTableDataChanged(); + } + /* (non-Javadoc) * @see java.awt.event.MouseListener#mouseClicked( * java.awt.event.MouseEvent) @@ -337,9 +357,14 @@ public class VSSimulator extends JPanel implements VSSerializable { public void actionPerformed(ActionEvent ae) { String command = ae.getActionCommand(); int rows[] = source.getSelectedRows(); + if (command.equals(prefs.getString("lang.remove"))) { for (int i = rows.length - 1; i >= 0; --i) removeTaskAtRow(rows[i]); + + } else if (command.equals( + prefs.getString("lang.copy"))) { + copyTasksAtRows(rows); } } }; @@ -349,6 +374,10 @@ public class VSSimulator extends JPanel implements VSSerializable { item.addActionListener(actionListener); popup.add(item); + item = new JMenuItem(prefs.getString("lang.copy")); + item.addActionListener(actionListener); + popup.add(item); + popup.show(me.getComponent(), me.getX(), me.getY()); } } -- cgit v1.2.3