102 fc.setCurrentDirectory(lastOpenPath);
103 }
104
105 int res = fc.showOpenDialog(parent);
106 //File f = rdc.getSelectedReportDirectory();
107 File f = fc.getSelectedFile();
108 if (res == JFileChooser.APPROVE_OPTION) {
109 showReportBrowser(f);
110 history.add(f);
111 lastOpenPath = f.getParentFile();
112 }
113 }
114 }
115
116 void showNewReportDialog() {
117 if (newReportD == null) {
118 newReportD = new NewReportDialog(parent, uif, model.getFilterConfig(),
119 getReportBrowser(), model);
120
121 newReportD.addObserver(new NewReportDialog.Observer() {
122 public void update(Map l) {
123 lastState = l;
124 String lastReportDir =
125 (String) (lastState.get(NewReportDialog.REPORT_DIR));
126
127 if (lastReportDir != null)
128 history.add(new File(lastReportDir));
129 }
130
131 public void writingReport() {
132 newReportAction.setEnabled(false);
133 }
134
135 public void wroteReport() {
136 newReportAction.setEnabled(true);
137 }
138
139 public void errorWriting(String problem) {
140 newReportAction.setEnabled(true);
141 }
142 });
143 }
144
145 newReportD.setInterviewParameters(model.getInterviewParameters());
194 return openReportAction;
195 }
196
197 // should really be observing ExecModel
198 public void updateGUI() {
199
200 workDir = model.getWorkDirectory();
201
202 boolean workDirSet = (workDir != null);
203 newReportAction.setEnabled(workDirSet);
204 openReportAction.setEnabled(workDirSet);
205
206 if (!workDirSet) return;
207
208 if (history == null) {
209 history = FileHistory.getFileHistory(workDir, "reportDirHistory.jtl");
210 reportHistoryListener.setFileHistory(history);
211 }
212 }
213
214 public void save(Map parentMap) {
215 if (lastState != null && lastState.size() > 0) {
216 PrefixMap pm = new PrefixMap(parentMap, REPORT_PREFIX);
217 pm.putAll(lastState);
218 }
219 }
220
221 public void restore(Map parentMap) {
222 if (parentMap == null)
223 return;
224
225 try {
226 PrefixMap pm = new PrefixMap(parentMap, REPORT_PREFIX);
227 if (pm == null) return;
228
229 Object[] keys = pm.keySet().toArray();
230 if (lastState == null)
231 lastState = new HashMap();
232
233 for (int i = 0; i < keys.length; i++) {
234 String key = (String) keys[i];
235 String value = (String) pm.get(keys[i]);
236
237 if (value != null)
238 lastState.put(key, value);
239 }
240 } catch (Exception e) {
241 e.printStackTrace();
242 }
243 }
244
245 public void dispose() {
246 if (newReportD != null) {
247 newReportD.dispose();
248 }
249
250 if (reportBrowser != null) {
251 reportBrowser.dispose();
311 JMenuItem mi = (JMenuItem) (e.getSource());
312 File f = (File) (mi.getClientProperty(FileHistory.FILE));
313 if (f != null)
314 showReportBrowser(f);
315 }
316 });
317
318 }
319
320 private Action newReportAction;
321 private Action openReportAction;
322
323 private static final String REPORT_PREFIX = "report";
324
325 private JComponent parent;
326 private UIFactory uif;
327
328 private FileHistory.Listener reportHistoryListener;
329 private FileHistory history;
330 private File lastOpenPath;
331 private Map lastState;
332 private ExecModel model;
333 private NewReportDialog newReportD;
334 private ReportBrowser reportBrowser;
335 private ReportDirChooser reportDirChooser;
336 private WorkDirectory workDir;
337 }
|
102 fc.setCurrentDirectory(lastOpenPath);
103 }
104
105 int res = fc.showOpenDialog(parent);
106 //File f = rdc.getSelectedReportDirectory();
107 File f = fc.getSelectedFile();
108 if (res == JFileChooser.APPROVE_OPTION) {
109 showReportBrowser(f);
110 history.add(f);
111 lastOpenPath = f.getParentFile();
112 }
113 }
114 }
115
116 void showNewReportDialog() {
117 if (newReportD == null) {
118 newReportD = new NewReportDialog(parent, uif, model.getFilterConfig(),
119 getReportBrowser(), model);
120
121 newReportD.addObserver(new NewReportDialog.Observer() {
122 public void update(Map<String, String> l) {
123 lastState = l;
124 String lastReportDir =
125 lastState.get(NewReportDialog.REPORT_DIR);
126
127 if (lastReportDir != null)
128 history.add(new File(lastReportDir));
129 }
130
131 public void writingReport() {
132 newReportAction.setEnabled(false);
133 }
134
135 public void wroteReport() {
136 newReportAction.setEnabled(true);
137 }
138
139 public void errorWriting(String problem) {
140 newReportAction.setEnabled(true);
141 }
142 });
143 }
144
145 newReportD.setInterviewParameters(model.getInterviewParameters());
194 return openReportAction;
195 }
196
197 // should really be observing ExecModel
198 public void updateGUI() {
199
200 workDir = model.getWorkDirectory();
201
202 boolean workDirSet = (workDir != null);
203 newReportAction.setEnabled(workDirSet);
204 openReportAction.setEnabled(workDirSet);
205
206 if (!workDirSet) return;
207
208 if (history == null) {
209 history = FileHistory.getFileHistory(workDir, "reportDirHistory.jtl");
210 reportHistoryListener.setFileHistory(history);
211 }
212 }
213
214 public void save(Map<String, String> parentMap) {
215 if (lastState != null && lastState.size() > 0) {
216 PrefixMap<String> pm = new PrefixMap<>(parentMap, REPORT_PREFIX);
217 pm.putAll(lastState);
218 }
219 }
220
221 public void restore(Map<String, String> parentMap) {
222 if (parentMap == null)
223 return;
224
225 try {
226 PrefixMap<String> pm = new PrefixMap<>(parentMap, REPORT_PREFIX);
227 if (pm == null) return;
228
229 Object[] keys = pm.keySet().toArray();
230 if (lastState == null)
231 lastState = new HashMap<>();
232
233 for (int i = 0; i < keys.length; i++) {
234 String key = (String) keys[i];
235 String value = (String) pm.get(keys[i]);
236
237 if (value != null)
238 lastState.put(key, value);
239 }
240 } catch (Exception e) {
241 e.printStackTrace();
242 }
243 }
244
245 public void dispose() {
246 if (newReportD != null) {
247 newReportD.dispose();
248 }
249
250 if (reportBrowser != null) {
251 reportBrowser.dispose();
311 JMenuItem mi = (JMenuItem) (e.getSource());
312 File f = (File) (mi.getClientProperty(FileHistory.FILE));
313 if (f != null)
314 showReportBrowser(f);
315 }
316 });
317
318 }
319
320 private Action newReportAction;
321 private Action openReportAction;
322
323 private static final String REPORT_PREFIX = "report";
324
325 private JComponent parent;
326 private UIFactory uif;
327
328 private FileHistory.Listener reportHistoryListener;
329 private FileHistory history;
330 private File lastOpenPath;
331 private Map<String, String> lastState;
332 private ExecModel model;
333 private NewReportDialog newReportD;
334 private ReportBrowser reportBrowser;
335 private ReportDirChooser reportDirChooser;
336 private WorkDirectory workDir;
337 }
|