Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 package com.generalrobotix.ui.view.graph;
00011
00012 import org.eclipse.jface.dialogs.Dialog;
00013 import org.eclipse.jface.dialogs.IDialogConstants;
00014 import org.eclipse.jface.dialogs.MessageDialog;
00015 import org.eclipse.swt.SWT;
00016 import org.eclipse.swt.events.KeyEvent;
00017 import org.eclipse.swt.events.KeyListener;
00018 import org.eclipse.swt.layout.RowLayout;
00019 import org.eclipse.swt.widgets.Composite;
00020 import org.eclipse.swt.widgets.Control;
00021 import org.eclipse.swt.widgets.Label;
00022 import org.eclipse.swt.widgets.Shell;
00023 import org.eclipse.swt.widgets.Text;
00024
00025 import com.generalrobotix.ui.util.MessageBundle;
00026
00027
00034 public class VRangeDialog extends Dialog {
00035
00036
00037
00038 double base_;
00039 double extent_;
00040 boolean updated_;
00041 String unit_;
00042 Text minField_;
00043 Text maxField_;
00044 Label minUnitLabel_;
00045 Label maxUnitLabel_;
00046 private Shell shell_;
00047 private boolean minfirst_;
00048 private boolean maxfirst_;
00049
00050
00051
00057 public VRangeDialog(Shell shell) {
00058 super(shell);
00059 shell_ = shell;
00060 }
00061
00062 protected void configureShell(Shell newShell) {
00063 super.configureShell(newShell);
00064 newShell.setText(MessageBundle.get("dialog.graph.vrange.title"));
00065 }
00066
00067 protected Control createDialogArea(Composite parent) {
00068 Composite composite = (Composite)super.createDialogArea(parent);
00069 composite.setLayout(new RowLayout(SWT.VERTICAL));
00070 Composite comp0 = new Composite(composite, SWT.NONE);
00071 comp0.setLayout(new RowLayout());
00072
00073 Label label1 = new Label(comp0, SWT.NONE);
00074 label1.setText(MessageBundle.get("dialog.graph.vrange.min"));
00075
00076 minField_ = new Text(comp0, SWT.BORDER);
00077 minField_.setText(String.format("%10.3f", base_));
00078 minfirst_ = true;
00079 minField_.addKeyListener(new KeyListener(){
00080 public void keyPressed(KeyEvent e) {
00081 if(minfirst_){
00082 minField_.setText("");
00083 minfirst_ = false;
00084 }
00085 }
00086
00087 public void keyReleased(KeyEvent e) {
00088
00089
00090 }
00091
00092 });
00093 minField_.setFocus();
00094
00095 minUnitLabel_ = new Label(comp0, SWT.NONE);
00096 minUnitLabel_.setText(unit_);
00097
00098 Composite comp1 = new Composite(composite, SWT.NONE);
00099 comp1.setLayout(new RowLayout());
00100
00101 Label label3 = new Label(comp1, SWT.NONE);
00102 label3.setText(MessageBundle.get("dialog.graph.vrange.max"));
00103 maxField_ = new Text(comp1, SWT.BORDER);
00104 maxField_.setText(String.format("%10.3f", base_+extent_));
00105 maxfirst_ = true;
00106 maxField_.addKeyListener(new KeyListener(){
00107 public void keyPressed(KeyEvent e) {
00108 if(maxfirst_){
00109 maxField_.setText("");
00110 maxfirst_ = false;
00111 }
00112 }
00113
00114 public void keyReleased(KeyEvent e) {
00115
00116
00117 }
00118
00119 });
00120
00121 maxUnitLabel_ = new Label(comp1, SWT.NONE);
00122 maxUnitLabel_.setText(unit_);
00123
00124 updated_ = false;
00125 return composite;
00126 }
00127
00128 protected void buttonPressed(int buttonId) {
00129 if (buttonId == IDialogConstants.OK_ID) {
00130 double min, max;
00131 try {
00132 min = Double.parseDouble(minField_.getText());
00133 max = Double.parseDouble(maxField_.getText());
00134 } catch (NumberFormatException ex) {
00135 MessageDialog.openError(shell_,
00136 MessageBundle.get("dialog.graph.vrange.invalidinput.title"),
00137 MessageBundle.get("dialog.graph.vrange.invalidinput.message"));
00138 minField_.setFocus();
00139 return;
00140 }
00141
00142 if (min == max) {
00143 MessageDialog.openError(shell_,
00144 MessageBundle.get("dialog.graph.vrange.invalidrange.title"),
00145 MessageBundle.get("dialog.graph.vrange.invalidrange.message"));
00146 minField_.setFocus();
00147 return;
00148 }
00149
00150 if (min < max) {
00151 base_ = min;
00152 extent_ = max - min;
00153 } else {
00154 base_ = max;
00155 extent_ = min - max;
00156 }
00157 updated_ = true;
00158 }
00159 setReturnCode(buttonId);
00160 close();
00161 super.buttonPressed(buttonId);
00162 }
00163
00164
00165
00166
00172 public void setUnit(
00173 String unit
00174 ) {
00175 unit_ = unit;
00176 }
00177
00183 public void setBase(
00184 double base
00185 ) {
00186 base_ = base;
00187 }
00188
00194 public void setExtent(
00195 double extent
00196 ) {
00197 extent_ = extent;
00198 }
00199
00205 public double getBase() {
00206 return base_;
00207 }
00208
00214 public double getExtent() {
00215 return extent_;
00216 }
00217
00223 public boolean isUpdated() {
00224 return updated_;
00225 }
00226 }