Statistics
| Revision:

svn-gvsig-desktop / tags / v2_0_0_Build_2057 / applications / appgvSIG / src / org / gvsig / app / extension / develtools / InfoPanel.java @ 39147

History | View | Annotate | Download (2.71 KB)

1
package org.gvsig.app.extension.develtools;
2

    
3
import java.awt.BorderLayout;
4
import java.awt.Dimension;
5
import java.awt.event.ActionEvent;
6
import java.awt.event.ActionListener;
7
import java.io.File;
8
import java.io.FileWriter;
9
import java.io.IOException;
10

    
11
import javax.swing.BorderFactory;
12
import javax.swing.Box;
13
import javax.swing.BoxLayout;
14
import javax.swing.JButton;
15
import javax.swing.JPanel;
16
import javax.swing.JScrollPane;
17
import javax.swing.JTextPane;
18

    
19
import org.gvsig.app.ApplicationLocator;
20
import org.gvsig.tools.swing.api.ToolsSwingLocator;
21
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
22
import org.slf4j.Logger;
23
import org.slf4j.LoggerFactory;
24

    
25
public class InfoPanel extends JPanel {
26
        private static Logger logger = LoggerFactory.getLogger(InfoPanel.class);
27

    
28

    
29
        private static final long serialVersionUID = 7164653790859770568L;
30

    
31
        private JButton accept = null;
32
        private JButton copy = null;
33
        private JTextPane text = null;
34

    
35
        public static void showPanel(String title, WindowManager.MODE mode,
36
                        String html) {
37
                JPanel panel = new InfoPanel(html);
38
                WindowManager wm = ToolsSwingLocator.getWindowManager();
39
                wm.showWindow(panel, title, mode);
40
        }
41

    
42
        public static void save2file(String name, String contents) {
43
                File file;
44
                try {
45
                        file = File.createTempFile("gvsig-" + name + "-", ".html");
46
                        FileWriter fwriter = new FileWriter(file);
47
                        fwriter.append(contents);
48
                        fwriter.close();
49
                } catch (IOException e) {
50
                        logger.warn("Can't save contents to temp file gvsig-" + name, e);
51
                }
52
        }
53
        public InfoPanel(final String html) {
54
                this.setLayout(new BorderLayout());
55
                this.setPreferredSize(new Dimension(500, 300));
56
                this.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
57

    
58
                text = new JTextPane();
59
                text.setContentType("text/html");
60
                text.setEditable(false);
61
                text.setText(html);
62
                text.setCaretPosition(0);
63

    
64
                JScrollPane scrollPane = new JScrollPane(text);
65
                scrollPane.setPreferredSize(new Dimension(500, 220));
66

    
67
                accept = new JButton("Accept");
68
                accept.addActionListener(new ActionListener() {
69
                        public void actionPerformed(ActionEvent arg0) {
70
                                setVisible(false);
71
                        }
72
                });
73
                copy = new JButton("Copy to clipboard");
74
                copy.addActionListener(new ActionListener() {
75
                        public void actionPerformed(ActionEvent arg0) {
76
                                ApplicationLocator.getManager().putInClipboard(
77
                                                text.getText());
78
                        }
79
                });
80

    
81
                JPanel buttonsPanel = new JPanel();
82
                buttonsPanel.setLayout(new BoxLayout(buttonsPanel,
83
                                BoxLayout.LINE_AXIS));
84
                buttonsPanel.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
85

    
86
                buttonsPanel.add(Box.createHorizontalGlue());
87
                buttonsPanel.add(copy);
88
                buttonsPanel.add(accept);
89

    
90
                this.add(scrollPane, BorderLayout.CENTER);
91
                this.add(buttonsPanel, BorderLayout.SOUTH);
92
                this.setVisible(true);
93
        }
94

    
95
}