01: package com.tagtraum.perf.gcviewer.action;
02:
03: import com.tagtraum.perf.gcviewer.GCViewer;
04:
05: import javax.swing.*;
06: import java.awt.event.ActionEvent;
07: import java.net.URL;
08:
09: /**
10: * OpenRecent.
11: * <p/>
12: * Date: Sep 25, 2005
13: * Time: 11:16:49 PM
14: *
15: * @author <a href="mailto:hs@tagtraum.com">Hendrik Schreiber</a>
16: */
17: public class OpenRecent extends AbstractAction {
18:
19: private URL[] urls;
20: private GCViewer gcViewer;
21:
22: public OpenRecent(final GCViewer gcViewer, final URL[] urls) {
23: this .urls = urls;
24: this .gcViewer = gcViewer;
25: putValue(NAME, toString(urls));
26: }
27:
28: public void actionPerformed(final ActionEvent e) {
29: gcViewer.open(urls);
30: }
31:
32: public URL[] getURLs() {
33: return urls;
34: }
35:
36: private static String toString(final URL[] urls) {
37: if (urls.length == 1)
38: return urls[0].toString();
39: final StringBuffer sb = new StringBuffer();
40: for (int i = 0; i < urls.length; i++) {
41: final URL url = urls[i];
42: if (url.getProtocol().startsWith("file")) {
43: sb.append(url.getPath().substring(
44: url.getPath().lastIndexOf('/') + 1));
45: } else {
46: sb.append(url);
47: }
48: if (i + 1 < urls.length)
49: sb.append(", ");
50: }
51: return sb.toString();
52: }
53:
54: }
|