View Javadoc

1   /*
2    * Copyright (c) 2006 Stiftung Deutsches Elektronen-Synchroton,
3    * Member of the Helmholtz Association, (DESY), HAMBURG, GERMANY.
4    *
5    * THIS SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "../AS IS" BASIS.
6    * WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
7    * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR PARTICULAR PURPOSE AND
8    * NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
9    * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
10   * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
11   * THE USE OR OTHER DEALINGS IN THE SOFTWARE. SHOULD THE SOFTWARE PROVE DEFECTIVE
12   * IN ANY RESPECT, THE USER ASSUMES THE COST OF ANY NECESSARY SERVICING, REPAIR OR
13   * CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
14   * NO USE OF ANY SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
15   * DESY HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
16   * OR MODIFICATIONS.
17   * THE FULL LICENSE SPECIFYING FOR THE SOFTWARE THE REDISTRIBUTION, MODIFICATION,
18   * USAGE AND OTHER RIGHTS AND OBLIGATIONS IS INCLUDED WITH THE DISTRIBUTION OF THIS
19   * PROJECT IN THE FILE LICENSE.HTML. IF THE LICENSE IS NOT INCLUDED YOU MAY FIND A COPY
20   * AT HTTP://WWW.DESY.DE/LEGAL/LICENSE.HTM
21   */
22  
23  package de.desy.acop.chart.customizer;
24  
25  import java.awt.GridBagLayout;
26  import java.beans.Customizer;
27  import java.beans.PropertyChangeSupport;
28  
29  import javax.swing.JButton;
30  import javax.swing.JComboBox;
31  import javax.swing.JFrame;
32  import javax.swing.JLabel;
33  import javax.swing.JPanel;
34  import javax.swing.JTabbedPane;
35  import javax.swing.JTextField;
36  
37  import de.desy.acop.chart.Acop;
38  
39  /**
40   * @author wu To change the template for this generated type comment go to
41   *         Window>Preferences>Java>Code Generation>Code and Comments
42   */
43  public class AcopCustomizer extends JTabbedPane implements Customizer
44  {
45  //  private String accessRate, accessRateOld;
46  //  private AccessMode accessMode;
47    // private int accessModeIndex, accessModeIndexOld;
48    // private AccessMode[] accessModeString = AccessMode.values();
49    protected Acop bean; // The bean being customized.
50    private ColorCustomizerPanel colorCustomizer;
51    private DisplayCustomizerPanel displayCustomizer;
52    private FrameCustomizerPanel frameCustomizer;
53    private GraphCustomizerPanel graphCustomizer;
54    private AxisCustomizerPanel axisCustomizer;
55    private SpecialCustomizerPanel specialCustomizer;
56    private MarkersCustomizerPanel markersCustomizer;
57    /**
58     * This is the default constructor
59     */
60    public AcopCustomizer()
61    {
62      super();
63  //    System.err.println("TEST1");
64      initialize();
65    }
66    /**
67     * This method initializes this
68     * 
69     * @return void
70     */
71    private void initialize()
72    {
73      listeners = new PropertyChangeSupport(this);
74  //    System.out.println("TEST1");
75      // this.setLayout(new CardLayout() );
76      setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
77      
78      JPanel p = new JPanel();
79      p.setLayout(new GridBagLayout());
80      
81  //    p.add(getDevice(), new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER,
82  //        GridBagConstraints.NONE, new Insets(4, 4, 4, 4), 0, 0));
83  //    p.add(getDisplayButton(), new GridBagConstraints(1, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER,
84  //        GridBagConstraints.NONE, new Insets(4, 4, 4, 4), 0, 0));
85  //    p.add(getLabel(), new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.EAST,
86  //        GridBagConstraints.NONE, new Insets(4, 4, 4, 4), 0, 0));
87  //    p.add(getChoiceMode(), new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER,
88  //        GridBagConstraints.HORIZONTAL, new Insets(4, 4, 4, 4), 0, 0));
89  //    p.add(getLabel1(), new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0, GridBagConstraints.EAST,
90  //        GridBagConstraints.NONE, new Insets(4, 4, 4, 4), 0, 0));
91  //    p.add(getTextFieldRate(), new GridBagConstraints(1, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER,
92  //        GridBagConstraints.HORIZONTAL, new Insets(4, 4, 4, 4), 0, 0));
93  //    addTab("Device", p);
94      
95      displayCustomizer = new DisplayCustomizerPanel();
96      addTab("Display", displayCustomizer);
97      
98      frameCustomizer = new FrameCustomizerPanel();
99      addTab("Frame", frameCustomizer);
100 
101     graphCustomizer = new GraphCustomizerPanel();
102     addTab("Graph", graphCustomizer);
103     
104     axisCustomizer = new AxisCustomizerPanel();
105     addTab("Axis", axisCustomizer);
106 
107     specialCustomizer = new SpecialCustomizerPanel();
108     addTab("Special", specialCustomizer);
109 
110     markersCustomizer = new MarkersCustomizerPanel();
111     addTab("Markers", markersCustomizer);
112 /*
113     p = new JPanel();
114     p.setLayout(new GridBagLayout());
115     p.add(new JButton("Test"), new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER,
116         GridBagConstraints.NONE, new Insets(4, 4, 4, 4), 0, 0));
117     addTab("Marker", p);
118 */    
119     colorCustomizer = new ColorCustomizerPanel();
120     addTab("Colors", colorCustomizer);
121     
122     this.setSize(478, 297);
123   }
124   public void setObject(Object o)
125   {
126     bean = (Acop) o; // Save the object we're customizing.
127     // Put a label at the top of the panel.
128     // this.setLayout(new BorderLayout());
129 //    accessRate = "555";
130     // accessRate = new String(bean.getAcopTransport().getAccessRate());
131 //    accessRateOld = new String(accessRate);
132 //    textFieldRate.setText(accessRate);
133 //    accessMode = AccessMode.WRITE;
134     // accessMode = bean.getAcopTransport().getAccessMode();
135 
136 //    choiceMode.setSelectedItem(accessMode);
137     displayCustomizer.setAcopBean(bean);
138     frameCustomizer.setAcopBean(bean);
139     graphCustomizer.setAcopBean(bean);
140     axisCustomizer.setAcopBean(bean);
141     specialCustomizer.setAcopBean(bean);
142     markersCustomizer.setAcopBean(bean);
143     colorCustomizer.setAcopBean(bean);
144   }
145   /*
146    * public void addPropertyChangeListener(PropertyChangeListener l) { // defer
147    * to the support object listeners.addPropertyChangeListener(l); } public void
148    * removePropertyChangeListener(PropertyChangeListener l) { // defer to the
149    * support object listeners.removePropertyChangeListener(l); }
150    */
151   // This code uses the PropertyChangeSupport class to maintain a list of
152   // listeners interested in the edits we make to the bean.
153   protected PropertyChangeSupport listeners;
154 //  private JButton device = null;
155   private JLabel label = null;
156   private JButton DisplayButton = null;
157   private JComboBox choiceMode = null;
158   private JLabel label1 = null;
159   private JTextField textFieldRate = null;
160   /**
161    * This method initializes device
162    * 
163    * @return java.awt.Button
164    */
165 //  private JButton getDevice()
166 //  {
167 //    if (device == null)
168 //    {
169 //      device = new JButton();
170 //      // device.setBounds(20, 27, 55, 23);
171 //      device.setText("Device");
172 //      device.setName("Device");
173 //    }
174 //    return device;
175 //  }
176   /**
177    * This method initializes label
178    * 
179    * @return java.awt.Label
180    */
181   private JLabel getLabel()
182   {
183     if (label == null)
184     {
185       label = new JLabel();
186       // label.setBounds(23, 86, 38, 23);
187       label.setText("Mode:");
188       label.setName("Mode");
189     }
190     return label;
191   }
192   /**
193    * This method initializes DisplayButton
194    * 
195    * @return java.awt.Button
196    */
197   private JButton getDisplayButton()
198   {
199     if (DisplayButton == null)
200     {
201       DisplayButton = new JButton();
202       // DisplayButton.setBounds(82, 25, 54, 23);
203       DisplayButton.setText("Display");
204       DisplayButton.setName("Display");
205     }
206     return DisplayButton;
207   }
208   /**
209    * This method initializes choiceMode
210    * 
211    * @return java.awt.Choice
212    */
213 //  private JComboBox getChoiceMode()
214 //  {
215 //    if (choiceMode == null)
216 //    {
217 //      choiceMode = new JComboBox(AccessMode.values());
218 //      // choiceMode.setBounds(76, 87, 78, 38);
219 //      choiceMode.addItemListener(new java.awt.event.ItemListener()
220 //      {
221 //        public void itemStateChanged(java.awt.event.ItemEvent e)
222 //        {
223 //          if (accessMode != choiceMode.getSelectedItem())
224 //          {
225 //            accessMode = (AccessMode) choiceMode.getSelectedItem();
226 //            // bean.getAcopTransport().setAccessMode(accessMode);
227 //            System.out.println("setAccessMode"); // TODO Auto-generated Event
228 //                                                  // stub itemStateChanged()
229 //            firePropertyChange(null, null, null);
230 //          }
231 //          System.out.println("itemStateChanged()"); // TODO Auto-generated Event
232 //                                                    // stub itemStateChanged()
233 //        }
234 //      });
235 //      // for (int i=0; i<accessModeString.length; i++) choiceMode.setName(
236 //      // accessModeString[i] );
237 //    }
238 //    return choiceMode;
239 //  }
240   /**
241    * This method initializes label1
242    * 
243    * @return java.awt.Label
244    */
245   private JLabel getLabel1()
246   {
247     if (label1 == null)
248     {
249       label1 = new JLabel();
250       // label1.setBounds(22, 60, 34, 22);
251       label1.setText("Rate:");
252       label1.setName("Rate");
253     }
254     return label1;
255   }
256   /**
257    * This method initializes textFieldRate
258    * 
259    * @return java.awt.TextField
260    */
261 //  private JTextField getTextFieldRate()
262 //  {
263 //    if (textFieldRate == null)
264 //    {
265 //      textFieldRate = new JTextField();
266 //      // textFieldRate.setBounds(77, 61, 70, 19);
267 //      textFieldRate.setName("RateText");
268 //      System.out.println("       textFieldRate.setName  (RateText) "); // TODO
269 //                                                                        // Auto-generated
270 //                                                                        // Event
271 //                                                                        // stub
272 //                                                                        // textValueChanged()
273 //      textFieldRate.addPropertyChangeListener(new PropertyChangeListener()
274 //      {
275 //        public void propertyChange(PropertyChangeEvent evt)
276 //        {
277 //          accessRate = textFieldRate.getText();
278 //          System.out.println("   textValueChanged(): " + accessRate); // TODO
279 //                                                                      // Auto-generated
280 //                                                                      // Event
281 //                                                                      // stub
282 //                                                                      // textValueChanged()
283 //          if (accessRateOld != accessRate && bean != null)
284 //          {
285 //            // bean.getAcopTransport().setAccessRate(accessRate);
286 //            accessRateOld = accessRate;
287 //            System.out.println("try  setAccessRate"); // TODO Auto-generated
288 //                                                      // Event stub
289 //                                                      // itemStateChanged()
290 //            firePropertyChange(null, null, null);
291 //          }
292 //        }
293 //      });
294 //    }
295 //    return textFieldRate;
296 //  }
297   public static void main(String[] args)
298   {
299     try
300     {
301       JFrame f = new JFrame();
302       AcopCustomizer c = new AcopCustomizer();
303       f.setContentPane(c);
304       Acop a = new Acop();
305       c.setObject(a);
306       f.setVisible(true);
307     }
308     catch (Exception e)
309     {
310       e.printStackTrace();
311     }
312   }
313 } // @jve:decl-index=0:visual-constraint="7,1"