root / branches / v2_0_0_prep / applications / appgvSIG / src / org / gvsig / app / extension / develtools / InfoPanel.java @ 38608
History | View | Annotate | Download (2.7 KB)
1 | 38564 | jjdelcerro | 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 | } |