View difference between Paste ID: tJXHWb58 and
SHOW:
|
|
- or go back to the newest paste.
1 | - | |
1 | + | --- moa-svn/moa-datastream/trunk/src/main/java/moa/gui/TaskManagerPanel.java |
2 | +++ machine-learning-incremental/moa-datastream/trunk/src/main/java/moa/gui/TaskManagerPanel.java | |
3 | @@ -24,11 +24,18 @@ | |
4 | import java.awt.Dimension; | |
5 | import java.awt.event.ActionEvent; | |
6 | import java.awt.event.ActionListener; | |
7 | +import java.io.BufferedWriter; | |
8 | +import java.io.File; | |
9 | +import java.io.FileWriter; | |
10 | +import java.io.IOException; | |
11 | +import java.io.PrintWriter; | |
12 | import java.util.ArrayList; | |
13 | import java.util.List; | |
14 | ||
15 | import javax.swing.JButton; | |
16 | +import javax.swing.JFileChooser; | |
17 | import javax.swing.JFrame; | |
18 | +import javax.swing.JOptionPane; | |
19 | import javax.swing.JPanel; | |
20 | import javax.swing.JProgressBar; | |
21 | import javax.swing.JScrollPane; | |
22 | @@ -61,6 +68,8 @@ | |
23 | private static final long serialVersionUID = 1L; | |
24 | ||
25 | public static final int MILLISECS_BETWEEN_REFRESH = 600; | |
26 | + | |
27 | + public static String exportFileExtension = "log"; | |
28 | ||
29 | public class ProgressCellRenderer extends JProgressBar implements | |
30 | TableCellRenderer { | |
31 | @@ -187,6 +196,10 @@ | |
32 | protected JButton cancelTaskButton = new JButton("Cancel"); | |
33 | ||
34 | protected JButton deleteTaskButton = new JButton("Delete"); | |
35 | + | |
36 | + protected JButton saveLogButton = new JButton("Save Log"); | |
37 | + | |
38 | + protected JButton setTaskButton = new JButton("Set task manually"); | |
39 | ||
40 | protected PreviewPanel previewPanel; | |
41 | ||
42 | @@ -213,6 +226,8 @@ | |
43 | controlPanel.add(this.resumeTaskButton); | |
44 | controlPanel.add(this.cancelTaskButton); | |
45 | controlPanel.add(this.deleteTaskButton); | |
46 | + controlPanel.add(this.saveLogButton); | |
47 | + controlPanel.add(this.setTaskButton); | |
48 | setLayout(new BorderLayout()); | |
49 | add(configPanel, BorderLayout.NORTH); | |
50 | add(new JScrollPane(this.taskTable), BorderLayout.CENTER); | |
51 | @@ -268,6 +283,21 @@ | |
52 | @Override | |
53 | public void actionPerformed(ActionEvent arg0) { | |
54 | deleteSelectedTasks(); | |
55 | + } | |
56 | + }); | |
57 | + this.saveLogButton.addActionListener(new ActionListener() { | |
58 | + | |
59 | + @Override | |
60 | + public void actionPerformed(ActionEvent arg0) { | |
61 | + saveLogSelectedTasks(); | |
62 | + } | |
63 | + }); | |
64 | + this.setTaskButton.addActionListener(new ActionListener() { | |
65 | + | |
66 | + @Override | |
67 | + public void actionPerformed(ActionEvent arg0) { | |
68 | + String newTaskString = JOptionPane.showInputDialog("Insert command line"); | |
69 | + setTaskString(newTaskString); | |
70 | } | |
71 | }); | |
72 | javax.swing.Timer updateListTimer = new javax.swing.Timer( | |
73 | @@ -354,6 +384,37 @@ | |
74 | } | |
75 | this.taskTableModel.fireTableDataChanged(); | |
76 | } | |
77 | + | |
78 | + public void saveLogSelectedTasks() { | |
79 | + String tasksLog = ""; | |
80 | + TaskThread[] selectedTasks = getSelectedTasks(); | |
81 | + for (TaskThread thread : selectedTasks) { | |
82 | + tasksLog += ((OptionHandler) thread.getTask()).getCLICreationString(MainTask.class) + "\n"; | |
83 | + } | |
84 | + | |
85 | + JFileChooser fileChooser = new JFileChooser(); | |
86 | + fileChooser.setAcceptAllFileFilterUsed(true); | |
87 | + fileChooser.addChoosableFileFilter(new FileExtensionFilter( | |
88 | + exportFileExtension)); | |
89 | + if (fileChooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) { | |
90 | + File chosenFile = fileChooser.getSelectedFile(); | |
91 | + String fileName = chosenFile.getPath(); | |
92 | + if (!chosenFile.exists() | |
93 | + && !fileName.endsWith(exportFileExtension)) { | |
94 | + fileName = fileName + "." + exportFileExtension; | |
95 | + } | |
96 | + try { | |
97 | + PrintWriter out = new PrintWriter(new BufferedWriter( | |
98 | + new FileWriter(fileName))); | |
99 | + out.write(tasksLog); | |
100 | + out.close(); | |
101 | + } catch (IOException ioe) { | |
102 | + GUIUtils.showExceptionDialog( | |
103 | + this.saveLogButton, | |
104 | + "Problem saving file " + fileName, ioe); | |
105 | + } | |
106 | + } | |
107 | + } | |
108 | ||
109 | private static void createAndShowGUI() { |