00001 package DisplayGUI;
00002
00003
00004
00005
00006
00007
00012 public class ScalePointEditor extends javax.swing.JDialog implements displayParams {
00013 ColorScalePoint scalePoint=null;
00014 ColorScalePoint originalScalePoint=null;
00015 boolean editValues;
00017 public ScalePointEditor(java.awt.Frame parent, boolean modal, ColorScalePoint scalePoint, boolean editValues) {
00018 super(parent, modal);
00019 this.editValues=editValues;
00020 if(scalePoint!=null) {
00021 this.scalePoint=scalePoint;
00022 originalScalePoint=scalePoint;
00023 }
00024 initComponents();
00025 }
00026
00027 private void initComponents() {
00028
00029
00030 java.awt.GridBagConstraints gridBagConstraints;
00031
00032 if(scalePoint!=null) jColorChooser1 = new javax.swing.JColorChooser(scalePoint.getColor());
00033 else jColorChooser1 = new javax.swing.JColorChooser();
00034 valueLabel = new javax.swing.JLabel();
00035 labellabel = new javax.swing.JLabel();
00036 title = new javax.swing.JLabel();
00037 valueField = new javax.swing.JTextField();
00038 labelField = new javax.swing.JTextField();
00039 okButton = new javax.swing.JButton();
00040 cancelButton = new javax.swing.JButton();
00041
00042 getContentPane().setLayout(new java.awt.GridBagLayout());
00043
00044 addWindowListener(new java.awt.event.WindowAdapter() {
00045 public void windowClosing(java.awt.event.WindowEvent evt) {
00046 closeDialog(evt);
00047 }
00048 });
00049
00050 gridBagConstraints = new java.awt.GridBagConstraints();
00051 gridBagConstraints.gridx = 0;
00052 gridBagConstraints.gridy = 3;
00053 gridBagConstraints.gridwidth = 2;
00054 getContentPane().add(jColorChooser1, gridBagConstraints);
00055
00056 if(scalePoint==null) title.setText("Add a new Scale Point");
00057 else title.setText("Edit Scale Point");
00058 title.setForeground(darkBlueColor);
00059 gridBagConstraints = new java.awt.GridBagConstraints();
00060 gridBagConstraints.gridx = 0;
00061 gridBagConstraints.gridy = 0;
00062 gridBagConstraints.gridwidth = 2;
00063 gridBagConstraints.weighty = 0.1;
00064 gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
00065 gridBagConstraints.anchor = java.awt.GridBagConstraints.CENTER;
00066 getContentPane().add(title, gridBagConstraints);
00067
00068 valueLabel.setText("Data Value:");
00069 gridBagConstraints = new java.awt.GridBagConstraints();
00070 gridBagConstraints.gridx = 0;
00071 gridBagConstraints.gridy = 1;
00072 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
00073 gridBagConstraints.weightx = 0.4;
00074 gridBagConstraints.weighty = 0.1;
00075 getContentPane().add(valueLabel, gridBagConstraints);
00076
00077 labellabel.setText("Label (Optional):");
00078 gridBagConstraints = new java.awt.GridBagConstraints();
00079 gridBagConstraints.gridx = 0;
00080 gridBagConstraints.gridy = 2;
00081 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
00082 gridBagConstraints.weighty = 0.1;
00083 getContentPane().add(labellabel, gridBagConstraints);
00084
00085 if(scalePoint!=null) valueField.setText(scalePoint.getValue().toString());
00086 else valueField.setText("");
00087 gridBagConstraints = new java.awt.GridBagConstraints();
00088 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
00089 gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
00090 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
00091 gridBagConstraints.weightx = 0.6;
00092 gridBagConstraints.gridx = 1;
00093 gridBagConstraints.gridy = 1;
00094 getContentPane().add(valueField, gridBagConstraints);
00095
00096 if(scalePoint!=null) labelField.setText(scalePoint.getLabel());
00097 else labelField.setText("");
00098 gridBagConstraints = new java.awt.GridBagConstraints();
00099 gridBagConstraints.gridx = 1;
00100 gridBagConstraints.gridy = 2;
00101 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
00102 gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
00103 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
00104 getContentPane().add(labelField, gridBagConstraints);
00105
00106 okButton.setText("Ok");
00107 gridBagConstraints = new java.awt.GridBagConstraints();
00108 gridBagConstraints.gridx = 0;
00109 gridBagConstraints.gridy = 4;
00110 gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00111 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
00112 getContentPane().add(okButton, gridBagConstraints);
00113 okButton.addActionListener(new java.awt.event.ActionListener() {
00114 public void actionPerformed(java.awt.event.ActionEvent evt) {
00115 Double value;
00116 Double labelValue;
00117 boolean labelIsNumber=true;
00118 try {
00119 value = Double.valueOf(valueField.getText());
00120 }catch(Exception parseException) {
00121 javax.swing.JOptionPane.showMessageDialog(null,"Value must be a number","Invalid value",javax.swing.JOptionPane.WARNING_MESSAGE);
00122 return;
00123 }
00124 try {
00125 labelValue=Double.valueOf(labelField.getText());
00126 }catch(Exception parseException2) {labelIsNumber=false;}
00127 String label = labelField.getText();
00128 if(label.equals("") || labelIsNumber) label = value.toString();
00129 scalePoint = new ColorScalePoint(value,jColorChooser1.getColor(),label);
00130 if(originalScalePoint!=null && scalePoint.equals(originalScalePoint)) scalePoint=null;
00131 closeDialog(null);
00132 }
00133 });
00134
00135 cancelButton.setText("Cancel");
00136 gridBagConstraints = new java.awt.GridBagConstraints();
00137 gridBagConstraints.gridx = 1;
00138 gridBagConstraints.gridy = 4;
00139 gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00140 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
00141 gridBagConstraints.weighty = 0.1;
00142 getContentPane().add(cancelButton, gridBagConstraints);
00143 cancelButton.addActionListener(new java.awt.event.ActionListener() {
00144 public void actionPerformed(java.awt.event.ActionEvent evt) {
00145 scalePoint=null;
00146 closeDialog(null);
00147 }
00148 });
00149
00150
00151 valueField.setEnabled(editValues);
00152 labelField.setEnabled(editValues);
00153
00154
00155 pack();
00156 show();
00157 }
00158
00160 private void closeDialog(java.awt.event.WindowEvent evt) {
00161 setVisible(false);
00162 dispose();
00163 }
00164 public ColorScalePoint getColorScalePoint() {
00165 if(scalePoint.getColor()==null) return null;
00166 if(scalePoint.getColor().equals(java.awt.Color.white)) {
00167 javax.swing.JOptionPane.showMessageDialog(null,"White is a Reserved Colour\nbecause it denotes 'No Data' in most display modes.\nPlease choose a different colour.");
00168 return null;
00169 }
00170 return scalePoint;
00171 }
00172
00176 public static void main(String args[]) {
00177 new ScalePointEditor(new javax.swing.JFrame(), true, null, true).show();
00178 }
00179
00180
00181
00182 private javax.swing.JButton cancelButton;
00183 private javax.swing.JColorChooser jColorChooser1;
00184 private javax.swing.JTextField labelField;
00185 private javax.swing.JLabel labellabel;
00186 private javax.swing.JLabel title;
00187 private javax.swing.JButton okButton;
00188 private javax.swing.JTextField valueField;
00189 private javax.swing.JLabel valueLabel;
00190
00191
00192 }