tmf: Update copyright headers in tmf.ui
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / views / uml2sd / dialogs / MinMaxDialog.java
1 /**********************************************************************
2 * Copyright (c) 2005, 2013 IBM Corporation, Ericsson
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 *
8 * Contributors:
9 * IBM - Initial API and implementation
10 * Bernd Hufmann - Updated for TMF
11 **********************************************************************/
12
13 package org.eclipse.linuxtools.tmf.ui.views.uml2sd.dialogs;
14
15 import org.eclipse.jface.dialogs.Dialog;
16 import org.eclipse.jface.dialogs.IDialogConstants;
17 import org.eclipse.jface.dialogs.MessageDialog;
18 import org.eclipse.linuxtools.tmf.core.timestamp.TmfTimestamp;
19 import org.eclipse.linuxtools.tmf.ui.views.uml2sd.SDWidget;
20 import org.eclipse.linuxtools.tmf.ui.views.uml2sd.util.SDMessages;
21 import org.eclipse.swt.SWT;
22 import org.eclipse.swt.events.SelectionEvent;
23 import org.eclipse.swt.events.SelectionListener;
24 import org.eclipse.swt.layout.GridData;
25 import org.eclipse.swt.layout.GridLayout;
26 import org.eclipse.swt.widgets.Composite;
27 import org.eclipse.swt.widgets.Control;
28 import org.eclipse.swt.widgets.Group;
29 import org.eclipse.swt.widgets.Label;
30 import org.eclipse.swt.widgets.Shell;
31 import org.eclipse.swt.widgets.Text;
32
33 /**
34 * Dialog box for entering minimum and maximum time range for time compression bar.
35 *
36 * @version 1.0
37 * @author sveyrier
38 * @author Bernd Hufmann
39 *
40 */
41 public class MinMaxDialog extends Dialog {
42
43 // ------------------------------------------------------------------------
44 // Attributes
45 // ------------------------------------------------------------------------
46 /**
47 * Label for minimum.
48 */
49 protected Label fMinLabel;
50 /**
51 * Label for maximum.
52 */
53 protected Label fMaxLabel;
54 /**
55 * Label for scale
56 */
57 protected Label fScaleLabel;
58 /**
59 * Label for precision.
60 */
61 protected Label fPrecisionLabel;
62 /**
63 * Text field for minimum.
64 */
65 protected Text fMinText;
66 /**
67 * Text field for maximum.
68 */
69 protected Text fMaxText;
70 /**
71 * Text field for scale.
72 */
73 protected Text fScaleText;
74 /**
75 * Text field for precision.
76 */
77 protected Text fPrecisionText;
78 /**
79 * The sequence diagram widget reference.
80 */
81 protected SDWidget fSdWidget;
82
83 // ------------------------------------------------------------------------
84 // Constructor
85 // ------------------------------------------------------------------------
86 /**
87 * Standard constructor.
88 * @param shell The shell
89 * @param viewer The sequence diagram widget reference.
90 */
91 public MinMaxDialog(Shell shell, SDWidget viewer) {
92 super(shell);
93 fSdWidget = viewer;
94 }
95
96 // ------------------------------------------------------------------------
97 // Methods
98 // ------------------------------------------------------------------------
99 /**
100 * Method to create a grid data base on horizontal span.
101 * @param span The horizontal span
102 * @return a grid data object
103 */
104 protected GridData newGridData(int span) {
105 GridData data = new GridData(GridData.GRAB_VERTICAL | GridData.VERTICAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL);
106 data.horizontalSpan = span;
107 return data;
108 }
109
110 /*
111 * (non-Javadoc)
112 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
113 */
114 @Override
115 protected Control createDialogArea(Composite p) {
116 p.getShell().setText(SDMessages._123);
117 Composite parent = (Composite) super.createDialogArea(p);
118
119 GridLayout parentLayout = new GridLayout();
120 parentLayout.numColumns = 6;
121 parent.setLayout(parentLayout);
122
123 Group g1 = new Group(parent, SWT.SHADOW_NONE);
124 g1.setLayoutData(newGridData(3));
125 GridLayout g1layout = new GridLayout();
126 g1layout.numColumns = 3;
127 g1.setLayout(g1layout);
128
129 fMinLabel = new Label(g1, SWT.RADIO);
130 fMinLabel.setText(SDMessages._124);
131 fMinLabel.setLayoutData(newGridData(1));
132
133 fMinText = new Text(g1, SWT.SINGLE | SWT.BORDER);
134 fMinText.setLayoutData(newGridData(2));
135 fMinText.setText(String.valueOf(fSdWidget.getFrame().getMinTime().getValue()));
136
137 fMaxLabel = new Label(g1, SWT.RADIO);
138 fMaxLabel.setText(SDMessages._125);
139 fMaxLabel.setLayoutData(newGridData(1));
140
141 fMaxText = new Text(g1, SWT.SINGLE | SWT.BORDER);
142 fMaxText.setLayoutData(newGridData(2));
143 fMaxText.setText(String.valueOf(fSdWidget.getFrame().getMaxTime().getValue()));
144
145 fScaleLabel = new Label(g1, SWT.RADIO);
146 fScaleLabel.setText(SDMessages._136);
147 fScaleLabel.setLayoutData(newGridData(1));
148
149 fScaleText = new Text(g1, SWT.SINGLE | SWT.BORDER);
150 fScaleText.setLayoutData(newGridData(2));
151 fScaleText.setText(String.valueOf(fSdWidget.getFrame().getMinTime().getScale()));
152
153
154 fPrecisionLabel = new Label(g1, SWT.RADIO);
155 fPrecisionLabel.setText(SDMessages._137);
156 fPrecisionLabel.setLayoutData(newGridData(1));
157
158 fPrecisionText = new Text(g1, SWT.SINGLE | SWT.BORDER);
159 fPrecisionText.setLayoutData(newGridData(2));
160 fPrecisionText.setText(String.valueOf(fSdWidget.getFrame().getMinTime().getPrecision()));
161
162 return parent;
163 }
164
165 /*
166 * (non-Javadoc)
167 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
168 */
169 @Override
170 protected void okPressed() {
171 long min = 0;
172 long max = 0;
173 int scale = 0;
174 int precision = 0;
175 try {
176 min = Long.parseLong(fMinText.getText());
177 max = Long.parseLong(fMaxText.getText());
178 scale = Integer.parseInt(fScaleText.getText());
179 precision = Integer.parseInt(fPrecisionText.getText());
180
181 fSdWidget.getFrame().setMax(new TmfTimestamp(max, scale, precision));
182 fSdWidget.getFrame().setMin(new TmfTimestamp(min, scale, precision));
183
184 fSdWidget.redraw();
185
186 super.okPressed();
187 } catch (Exception e) {
188 MessageDialog.openError(getShell(), SDMessages._98, SDMessages._99);
189 }
190 }
191
192 /*
193 * (non-Javadoc)
194 * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite)
195 */
196 @Override
197 protected void createButtonsForButtonBar(Composite parent) {
198 super.createButtonsForButtonBar(parent);
199 createButton(parent, IDialogConstants.CLIENT_ID, SDMessages._126, false);
200 getButton(IDialogConstants.CLIENT_ID).addSelectionListener(new SelectionListener() {
201 /*
202 * (non-Javadoc)
203 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
204 */
205 @Override
206 public void widgetSelected(SelectionEvent e) {
207 fSdWidget.getFrame().resetCustomMinMax();
208 fMinText.setText(String.valueOf(fSdWidget.getFrame().getMinTime().getValue()));
209 fMaxText.setText(String.valueOf(fSdWidget.getFrame().getMaxTime().getValue()));
210 fScaleText.setText(String.valueOf(fSdWidget.getFrame().getMinTime().getScale()));
211 fPrecisionText.setText(String.valueOf(fSdWidget.getFrame().getMinTime().getPrecision()));
212 fMaxText.getParent().layout(true);
213 }
214
215 /*
216 * (non-Javadoc)
217 * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
218 */
219 @Override
220 public void widgetDefaultSelected(SelectionEvent e) {
221 // nothing to do
222 }
223 });
224 }
225 }
This page took 0.043084 seconds and 5 git commands to generate.