1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package de.desy.acop.displayers.selector;
24
25 import java.awt.Component;
26 import java.awt.Container;
27 import java.beans.PropertyChangeEvent;
28 import java.beans.PropertyChangeListener;
29 import java.beans.PropertyEditor;
30 import java.beans.PropertyEditorSupport;
31
32 import com.cosylab.gui.components.util.RunnerHelper;
33
34 import de.desy.acop.displayers.tools.AcopDisplayer;
35 import de.desy.acop.transport.ConnectionParameters;
36
37
38
39
40
41
42
43
44
45 public class SelectorPropertyEditor extends PropertyEditorSupport implements PropertyEditor {
46
47 private ConnectionCustomizer editor;
48
49
50
51
52 public SelectorPropertyEditor() {
53 super();
54 }
55
56
57
58
59
60 public Component getCustomEditor() {
61 if (editor == null) {
62 editor = new ConnectionCustomizer();
63 editor.setConnectButtonVisible(false);
64 editor.setConnectionParameters((ConnectionParameters)getValue());
65 editor.addPropertyChangeListener(AcopDisplayer.CONNECTION_PARAMETERS_PROPERTY, new PropertyChangeListener() {
66 public void propertyChange(PropertyChangeEvent evt) {
67 setValueSilently(editor.getConnectionParameters());
68 }
69 });
70 }
71
72 return editor;
73 }
74
75
76
77
78
79 public String getJavaInitializationString() {
80 ConnectionParameters param = (ConnectionParameters) getValue();
81 return "new de.desy.acop.transport.ConnectionParameters(\""+param.getRemoteName()+
82 "\",de.desy.acop.transport.AccessMode."+param.getAccessMode()+","+param.getAccessRate()+"," + param.getPropertySize() + ","+SelectorUtilities.getExtendedDataString(param)+")";
83 }
84
85
86
87
88
89 public boolean supportsCustomEditor() {
90 return true;
91 }
92
93
94
95
96
97
98 private void setValueSilently(Object value) {
99 super.setValue(value);
100 }
101
102
103
104
105 @Override
106 public void setValue(Object value) {
107 super.setValue(value);
108 if (editor!=null) {
109 editor.setConnectionParameters((ConnectionParameters)value);
110 }
111 }
112
113 public static void main(String[] args) {
114 try {
115
116 SelectorPropertyEditor e= new SelectorPropertyEditor();
117 e.addPropertyChangeListener(new PropertyChangeListener() {
118
119 public void propertyChange(PropertyChangeEvent evt) {
120 System.out.println("E: "+evt.getPropertyName()+" "+evt.getNewValue());
121 }
122
123 });
124
125 Component c= e.getCustomEditor();
126
127 RunnerHelper.runComponent((Container)c,300,300);
128
129 } catch (Exception e) {
130 e.printStackTrace();
131 }
132 }
133 }
134
135
136