source: ether_megapoli/trunk/service/implementation/gov2/noaa/pmel/sgt/beans/PanelModelPropertyPanel.java @ 192

Last change on this file since 192 was 192, checked in by vmipsl, 13 years ago

Servlet _ Contour en cours _ package gov2

File size: 8.0 KB
Line 
1/*
2 * $Id: PanelModelPropertyPanel.java,v 1.8 2003/09/18 17:31:44 dwd Exp $
3 *
4 * This software is provided by NOAA for full, free and open release.  It is
5 * understood by the recipient/user that NOAA assumes no liability for any
6 * errors contained in the code.  Although this software is released without
7 * conditions or restrictions in its use, it is expected that appropriate
8 * credit be given to its author and to the National Oceanic and Atmospheric
9 * Administration should the software be included by the recipient as an
10 * element in other product development.
11 */
12
13package gov.noaa.pmel.sgt.beans;
14
15import java.awt.*;
16import javax.swing.*;
17import java.beans.PropertyChangeEvent;
18import java.beans.PropertyChangeListener;
19import java.awt.event.ActionEvent;
20import java.awt.event.ActionListener;
21
22import gov.noaa.pmel.sgt.swing.prop.ColorDialog;
23import gov.noaa.pmel.sgt.AbstractPane;
24
25/**
26 * @author Donald Denbo
27 * @version $Revision: 1.8 $, $Date: 2003/09/18 17:31:44 $
28 * @since 3.0
29 **/
30class PanelModelPropertyPanel extends PropertyPanel implements PropertyChangeListener, ActionListener {
31  private boolean expert_ = false;
32  private PanelModel pModel_ = null;
33  private String[] pNames_ = {"DPI", "Page Color", "Page Size", "Panels",
34                              "Print Borders",
35    "Print HAlign", "Print Origin", "Print Scale Mode", "Print VAlign",
36    "Print White"};
37  private JComponent[] comps_ = new JComponent[pNames_.length];
38  private String[] vAlignItems = {"Top", "Middle", "Bottom", "Specified Location"};
39  private String[] hAlignItems = {"Left", "Center", "Right", "Specified Location"};
40  private String[] sModeItems = {"Default", "To Fit", "Shrink To Fit"};
41
42  public PanelModelPropertyPanel(PanelModel pm) {
43    super();
44    pModel_ = pm;
45    pModel_.addPropertyChangeListener(this);
46
47    create();
48  }
49
50  public void propertyChange(PropertyChangeEvent evt) {
51    update();
52  }
53
54  void create() {
55    int i = -1;
56    int item = -1;
57    comps_[++i] = createLabel(Float.toString(pModel_.getDpi()));
58    comps_[++i] = createColor(pModel_.getPageBackgroundColor(), pNames_[i], this);
59    comps_[++i] = createTextField(format(pModel_.getPageSize(), false),pNames_[i], this, true);
60    comps_[++i] = createLabel(pModel_.getPanelCount());
61    comps_[++i] = createCheckBox(pModel_.isPrintBorders(), pNames_[i], this);
62    switch(pModel_.getPrintHAlign()) {
63      case AbstractPane.LEFT:
64        item = 0;
65        break;
66      default:
67      case AbstractPane.CENTER:
68        item = 1;
69        break;
70      case AbstractPane.RIGHT:
71        item = 2;
72        break;
73      case AbstractPane.SPECIFIED_LOCATION:
74        item = 3;
75        break;
76    }
77    comps_[++i] = createComboBox(hAlignItems, item, pNames_[i], this, true);
78    comps_[++i] = createTextField(format(pModel_.getPrintOrigin(), false), pNames_[i], this, true);
79    switch(pModel_.getPrintScaleMode()) {
80      default:
81      case AbstractPane.DEFAULT_SCALE:
82        item = 0;
83        break;
84      case AbstractPane.TO_FIT:
85        item = 1;
86        break;
87      case AbstractPane.SHRINK_TO_FIT:
88        item = 2;
89        break;
90    }
91    comps_[++i] = createComboBox(sModeItems, item, pNames_[i], this, true);
92    switch(pModel_.getPrintVAlign()) {
93      default:
94      case AbstractPane.TOP:
95        item = 0;
96        break;
97      case AbstractPane.MIDDLE:
98        item = 1;
99        break;
100      case AbstractPane.BOTTOM:
101        item = 2;
102        break;
103      case AbstractPane.SPECIFIED_LOCATION:
104        item = 3;
105        break;
106    }
107    comps_[++i] = createComboBox(vAlignItems, item, pNames_[i], this, true);
108    comps_[++i] = createCheckBox(pModel_.isPrintWhitePage(), pNames_[i], this);
109    for(i=0; i < comps_.length; i++) {
110      addProperty(i+1, pNames_[i], comps_[i], false);
111    }
112    addProperty(comps_.length + 1, " ", new JLabel(" "), true);
113  }
114
115  void update() {
116    int i = -1;
117    int item = -1;
118    ((JLabel)comps_[++i]).setText(Float.toString(pModel_.getDpi()));
119    updateColor((JButton)comps_[++i], pModel_.getPageBackgroundColor());
120    ((JTextField)comps_[++i]).setText(format(pModel_.getPageSize(), false));
121    ((JLabel)comps_[++i]).setText(Integer.toString(pModel_.getPanelCount()));
122    ((JCheckBox)comps_[++i]).setSelected(pModel_.isPrintBorders());
123    switch(pModel_.getPrintHAlign()) {
124      case AbstractPane.LEFT:
125        item = 0;
126        break;
127      default:
128      case AbstractPane.CENTER:
129        item = 1;
130        break;
131      case AbstractPane.RIGHT:
132        item = 2;
133        break;
134      case AbstractPane.SPECIFIED_LOCATION:
135        item = 3;
136        break;
137    }
138    ((JComboBox)comps_[++i]).setSelectedIndex(item);
139    ((JTextField)comps_[++i]).setText(format(pModel_.getPrintOrigin(), false));
140    switch(pModel_.getPrintScaleMode()) {
141      default:
142      case AbstractPane.DEFAULT_SCALE:
143        item = 0;
144        break;
145      case AbstractPane.TO_FIT:
146        item = 1;
147        break;
148      case AbstractPane.SHRINK_TO_FIT:
149        item = 2;
150        break;
151    }
152    ((JComboBox)comps_[++i]).setSelectedIndex(item);
153    switch(pModel_.getPrintVAlign()) {
154      default:
155      case AbstractPane.TOP:
156        item = 0;
157        break;
158      case AbstractPane.MIDDLE:
159        item = 1;
160        break;
161      case AbstractPane.BOTTOM:
162        item = 2;
163        break;
164      case AbstractPane.SPECIFIED_LOCATION:
165        item = 3;
166        break;
167    }
168    ((JComboBox)comps_[++i]).setSelectedIndex(item);
169    ((JCheckBox)comps_[++i]).setSelected(pModel_.isPrintWhitePage());
170  }
171
172  private void processEvent(Object obj, String command) {
173    String str;
174    int item = -1;
175    if(command.equals("Page Size")) {
176      Dimension size = parseDimension(((JTextField)obj).getText());
177      pModel_.setPageSize(size);
178      if(pModel_.getPage() != null) pModel_.getPage().setSize(size);
179   } else if(command.equals("Page Color")) {
180     ColorDialog cd = new ColorDialog(getFrame(), "Select Axis Color", true);
181     cd.setColor(pModel_.getPageBackgroundColor());
182     cd.setVisible(true);
183     Color newcolor = cd.getColor();
184     if(newcolor != null) {
185       pModel_.setPageBackgroundColor(newcolor);
186       updateColor((JButton)obj, newcolor);
187     }
188   } else if(command.equals("Print Borders")) {
189     pModel_.setPrintBorders(((JCheckBox)obj).isSelected());
190   } else if(command.equals("Print HAlign")) {
191     str = (String)((JComboBox)obj).getSelectedItem();
192     item = -1;
193     if(str.equals("Left")) {
194       item = AbstractPane.LEFT;
195     } else if(str.equals("Center")) {
196       item = AbstractPane.CENTER;
197     } else if(str.equals("Right")) {
198       item = AbstractPane.RIGHT;
199     } else if(str.equals("Specified Location")) {
200       item = AbstractPane.SPECIFIED_LOCATION;
201     }
202     pModel_.setPrintHAlign(item);
203   } else if(command.equals("Print Origin")) {
204     Point pt = parsePoint(((JTextField)obj).getText());
205     if(pt != null) pModel_.setPrintOrigin(pt);
206
207   } else if(command.equals("Print Scale Mode")) {
208     str = (String)((JComboBox)obj).getSelectedItem();
209     item = -1;
210     if(str.equals("Default")) {
211       item = AbstractPane.DEFAULT_SCALE;
212     } else if(str.equals("To Fit")) {
213       item = AbstractPane.TO_FIT;
214     } else if(str.equals("Shrink To Fit")) {
215       item = AbstractPane.SHRINK_TO_FIT;
216     }
217     pModel_.setPrintScaleMode(item);
218   } else if(command.equals("Print VAlign")) {
219     str = (String)((JComboBox)obj).getSelectedItem();
220     item = -1;
221     if(str.equals("Top")) {
222       item = AbstractPane.TOP;
223     } else if(str.equals("Middle")) {
224       item = AbstractPane.MIDDLE;
225     } else if(str.equals("Bottom")) {
226       item = AbstractPane.BOTTOM;
227     } else if(str.equals("Specified Location")) {
228       item = AbstractPane.SPECIFIED_LOCATION;
229     }
230     pModel_.setPrintVAlign(item);
231   } else if(command.equals("Print White")) {
232     pModel_.setPrintWhitePage(((JCheckBox)obj).isSelected());
233   }
234  }
235
236  void resetFields() {  }
237
238  public void setExpert(boolean expert) {
239    expert_ = expert;
240  }
241
242  public boolean isExpert() {
243    return expert_;
244  }
245  public void actionPerformed(ActionEvent e) {
246    Object obj = e.getSource();
247    String command = e.getActionCommand();
248    processEvent(obj, command);
249  }
250}
Note: See TracBrowser for help on using the repository browser.