blob: 783f45b9160fdaefb739456d055d6a22dcf509a5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
package org.singinst.uf.view;
import java.awt.Component;
import java.awt.Container;
import java.awt.event.ActionListener;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.beans.PropertyChangeListener;
import javax.swing.AbstractButton;
import javax.swing.JApplet;
import javax.swing.JPanel;
import javax.swing.UIManager;
import org.singinst.uf.model.ScalarValueHolder;
import org.singinst.uf.presenter.Completion;
import org.singinst.uf.presenter.Status;
import org.singinst.uf.presenter.Store;
@SuppressWarnings("serial")
public class UfApplet extends JApplet {
@Override
public void init() {
try {
javax.swing.SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
createGUI();
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
public void loadData(String jsonSubset) {
Store.getInstance().loadData(jsonSubset);
}
private void createGUI() {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
}
catch (Exception e) {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.metal.OceanTheme");
}
catch (Exception e1) {}
}
Store.setInstance(new AppletStore(getAppletContext()));
AppletBrowser.init(this);
MainWindow mainWindow = new MainWindow();
setContentPane(mainWindow.createContainer());
JPanel glassPane = new JPanel();
glassPane.add(mainWindow.createGlassPane(this));
setGlassPane(glassPane);
SwingHelp.getInstance().init(this, null);
// SwingHelp.getInstance().init(this, UfHelp.getMainHelpString());
}
@Override
public void destroy() {
System.err.println("destroying applet and removing listeners");
removeListenersAndChildren(this);
Store.setInstance(null);
Status.singleton.destroy();
Completion.getInstance().destroy();
ScalarValueHolder.destroyAll();
}
private void removeListenersAndChildren(Component component) {
for (MouseListener listener : component.getMouseListeners()) {
component.removeMouseListener(listener);
}
for (MouseMotionListener listener : component.getMouseMotionListeners()) {
component.removeMouseMotionListener(listener);
}
for (PropertyChangeListener listener : component.getPropertyChangeListeners()) {
component.removePropertyChangeListener(listener);
}
if (component instanceof AbstractButton) {
AbstractButton button = (AbstractButton) component;
for (ActionListener listener : button.getActionListeners()) {
button.removeActionListener(listener);
}
}
if (component instanceof Container) {
Container container = (Container) component;
for (Component child : container.getComponents()) {
removeListenersAndChildren(child);
remove(child);
}
}
}
}
|