source: osm/applications/editors/josm/plugins/surveyor/src/test/DialogClosingThread.java@ 2948

Last change on this file since 2948 was 2947, checked in by christofd, 18 years ago

moved test code

File size: 3.6 KB
Line 
1/**
2 *
3 */
4package test;
5
6import java.awt.Component;
7import java.awt.Container;
8import java.awt.event.KeyEvent;
9import java.awt.event.KeyListener;
10
11import javax.swing.JButton;
12import javax.swing.JDialog;
13import javax.swing.JOptionPane;
14import javax.swing.JPanel;
15import javax.swing.JTextField;
16import javax.swing.event.DocumentEvent;
17import javax.swing.event.DocumentListener;
18
19/**
20 * @author cdaller
21 *
22 */
23public class DialogClosingThread extends Thread implements KeyListener, DocumentListener {
24 private static long DEFAULT_TIMEOUT = 5000;
25 private JDialog dialog;
26 private long timeout;
27 private String dialogTitle;
28 private long loopCount;
29
30 /**
31 * Using the given dialog and the default timeout.
32 * @param dialog
33 */
34 public DialogClosingThread(JDialog dialog) {
35 this(dialog, DEFAULT_TIMEOUT);
36 }
37
38 /**
39 * @param dialog
40 * @param timeout
41 */
42 public DialogClosingThread(JDialog dialog, long timeout) {
43 super();
44 this.dialog = dialog;
45 this.timeout = timeout;
46 this.loopCount = timeout / 1000;
47 }
48
49 /* (non-Javadoc)
50 * @see java.lang.Thread#run()
51 */
52 @Override
53 public void run() {
54 String title = dialog.getTitle();
55 while(loopCount > 0) {
56 dialog.setTitle(title + " (" + loopCount + "sec)");
57 --loopCount;
58 try {
59 sleep(1000);
60 } catch(InterruptedException ignore) {}
61 }
62
63 dialog.setVisible(false);
64 dialog.dispose();
65 }
66
67 public void reset() {
68 this.loopCount = timeout / 1000;
69 }
70
71 /* (non-Javadoc)
72 * @see java.awt.event.KeyListener#keyPressed(java.awt.event.KeyEvent)
73 */
74 @Override
75 public void keyPressed(KeyEvent e) {
76 reset();
77 System.out.println("keypressed: " + e.getKeyCode());
78 }
79
80 /* (non-Javadoc)
81 * @see java.awt.event.KeyListener#keyReleased(java.awt.event.KeyEvent)
82 */
83 @Override
84 public void keyReleased(KeyEvent e) {
85 reset();
86 System.out.println("keyreleased: " + e.getKeyCode());
87 }
88
89 /* (non-Javadoc)
90 * @see java.awt.event.KeyListener#keyTyped(java.awt.event.KeyEvent)
91 */
92 @Override
93 public void keyTyped(KeyEvent e) {
94 reset();
95 System.out.println("keytyped: " + e.getKeyCode());
96 }
97
98 /**
99 * @param optionPane
100 */
101 public void observe(Container container) {
102 for(Component component : container.getComponents()) {
103 if(component instanceof JTextField) {
104 observe((JTextField)component);
105 } else {
106 observe(component);
107 }
108 }
109 }
110
111 public void observe(Component component) {
112 component.addKeyListener(this);
113 }
114
115 public void observe(JTextField textfield) {
116 textfield.getDocument().addDocumentListener(this);
117 }
118
119 /* (non-Javadoc)
120 * @see javax.swing.event.DocumentListener#changedUpdate(javax.swing.event.DocumentEvent)
121 */
122 @Override
123 public void changedUpdate(DocumentEvent e) {
124 reset();
125 System.out.println("changedUpdate: " + e);
126 }
127
128 /* (non-Javadoc)
129 * @see javax.swing.event.DocumentListener#insertUpdate(javax.swing.event.DocumentEvent)
130 */
131 @Override
132 public void insertUpdate(DocumentEvent e) {
133 reset();
134 System.out.println("insertUpdate: " + e);
135 }
136
137 /* (non-Javadoc)
138 * @see javax.swing.event.DocumentListener#removeUpdate(javax.swing.event.DocumentEvent)
139 */
140 @Override
141 public void removeUpdate(DocumentEvent e) {
142 reset();
143 System.out.println("removeUpdate: " + e);
144 }
145}
Note: See TracBrowser for help on using the repository browser.