Fix NLS-related Javadoc warnings
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / views / uml2sd / dialogs / PagesDialog.java
CommitLineData
73005152 1/**********************************************************************
c8422608 2 * Copyright (c) 2005, 2013 IBM Corporation, Ericsson
73005152
BH
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
a0a88f65
AM
7 *
8 * Contributors:
c8422608
AM
9 * IBM - Initial API and implementation
10 * Bernd Hufmann - Updated for TMF
73005152 11 **********************************************************************/
c8422608 12
df0b8ff4 13package org.eclipse.linuxtools.tmf.ui.views.uml2sd.dialogs;
73005152
BH
14
15import java.text.MessageFormat;
16
17import org.eclipse.jface.dialogs.Dialog;
18import org.eclipse.linuxtools.tmf.ui.views.uml2sd.handlers.provider.ISDAdvancedPagingProvider;
19import org.eclipse.linuxtools.tmf.ui.views.uml2sd.util.SDMessages;
20import org.eclipse.swt.SWT;
21import org.eclipse.swt.layout.FillLayout;
22import org.eclipse.swt.layout.GridData;
23import org.eclipse.swt.widgets.Composite;
24import org.eclipse.swt.widgets.Control;
25import org.eclipse.swt.widgets.Group;
26import org.eclipse.swt.widgets.Label;
27import org.eclipse.swt.widgets.Text;
28import org.eclipse.ui.IViewPart;
29
30/**
df0b8ff4 31 * Class implementation of the pages dialog.<br>
a0a88f65 32 *
df0b8ff4 33 * It is associated to an SDView and to a ISDAdvancedPagingProvider.<br>
a0a88f65 34 *
df0b8ff4
BH
35 * @version 1.0
36 * @author sveyrier
73005152
BH
37 */
38public class PagesDialog extends Dialog {
39
df0b8ff4
BH
40 // ------------------------------------------------------------------------
41 // Attributes
42 // ------------------------------------------------------------------------
43
73005152
BH
44 /**
45 * viewer and provided are kept here as attributes
46 */
eb63f5ff 47 protected ISDAdvancedPagingProvider fProvider = null;
a0a88f65
AM
48
49 /** Current page */
eb63f5ff 50 protected TextArea fCurrentPage;
a0a88f65
AM
51
52 /** Comment label */
eb63f5ff 53 protected Label fTotalPageComment;
73005152 54
df0b8ff4
BH
55 // ------------------------------------------------------------------------
56 // Constructors
57 // ------------------------------------------------------------------------
a0a88f65 58
73005152 59 /**
df0b8ff4 60 * Standard constructor
a0a88f65 61 *
eb63f5ff
BH
62 * @param view The sequence diagram view reference
63 * @param provider The paging provider reference
73005152 64 */
eb63f5ff
BH
65 public PagesDialog(IViewPart view, ISDAdvancedPagingProvider provider) {
66 super(view.getSite().getShell());
67 fProvider = provider;
df0b8ff4 68 setShellStyle(SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
73005152
BH
69 }
70
df0b8ff4
BH
71 // ------------------------------------------------------------------------
72 // Methods
73 // ------------------------------------------------------------------------
73005152 74
df0b8ff4
BH
75 /*
76 * (non-Javadoc)
73005152
BH
77 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
78 */
79 @Override
80 public Control createDialogArea(Composite parent) {
81
82 Group ret = new Group(parent, SWT.NONE);
83 GridData data = new GridData();
84 data.grabExcessHorizontalSpace = true;
85 data.horizontalAlignment = GridData.FILL;
86 ret.setLayoutData(data);
87 ret.setText(SDMessages._67);
88
89 FillLayout fillLayout = new FillLayout(SWT.VERTICAL);
90 ret.setLayout(fillLayout);
91
92 Label label = new Label(ret, SWT.NONE);
93 label.setText(SDMessages._75);
94
eb63f5ff
BH
95 fCurrentPage = new TextArea(ret);
96 fCurrentPage.setBounds(1, fProvider.pagesCount());
97 fCurrentPage.setValue(fProvider.currentPage() + 1);
73005152 98
eb63f5ff
BH
99 fTotalPageComment = new Label(ret, SWT.NONE);
100 fTotalPageComment.setAlignment(SWT.RIGHT);
73005152
BH
101
102 updateComments();
103
104 getShell().setText(SDMessages._68);
105 return ret;
106 }
107
df0b8ff4
BH
108 /*
109 * (non-Javadoc)
110 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
73005152
BH
111 */
112 @Override
113 public void okPressed() {
eb63f5ff 114 int currentPageValue = fCurrentPage.getValue() - 1;
73005152 115 super.close();
eb63f5ff 116 fProvider.pageNumberChanged(currentPageValue);
73005152
BH
117 }
118
df0b8ff4 119 /**
a0a88f65 120 * Updates the comments texts.
df0b8ff4
BH
121 */
122 protected void updateComments() {
eb63f5ff
BH
123 int pages = Math.max(0, fProvider.pagesCount());
124 StringBuffer totalPageCommentText = new StringBuffer();
125 totalPageCommentText.append(SDMessages._70);
126 totalPageCommentText.append(pages);
127 totalPageCommentText.append(" "); //$NON-NLS-1$
df0b8ff4 128 if (pages == 0) {
eb63f5ff 129 totalPageCommentText.append(SDMessages._71);
df0b8ff4 130 } else if (pages == 1) {
eb63f5ff 131 totalPageCommentText.append(SDMessages._72);
df0b8ff4 132 } else {
eb63f5ff 133 totalPageCommentText.append(SDMessages._73);
df0b8ff4 134 }
eb63f5ff 135 fTotalPageComment.setText(totalPageCommentText.toString());
df0b8ff4
BH
136 }
137
a0a88f65 138
df0b8ff4
BH
139 // ------------------------------------------------------------------------
140 // Helper classes
141 // ------------------------------------------------------------------------
142 /**
143 * This is a Text Control that accepts only digits and ensures that bounds are respected
144 */
145 protected static class TextArea {
146 /**
147 * The text field.
148 */
eb63f5ff 149 protected Text fText;
df0b8ff4
BH
150 /**
151 * The minimum page value
152 */
eb63f5ff 153 int fMin;
df0b8ff4
BH
154 /**
155 * The maximum page value
156 */
eb63f5ff 157 int fMax;
df0b8ff4
BH
158
159 /**
160 * Constructor
a0a88f65 161 *
df0b8ff4
BH
162 * @param parent The paren composite
163 */
164 public TextArea(Composite parent) {
eb63f5ff
BH
165 fText = new Text(parent, SWT.SINGLE | SWT.BORDER | SWT.RIGHT);
166 fText.setTextLimit(10);
df0b8ff4
BH
167 }
168
169 /**
170 * Sets the page value.
a0a88f65 171 *
df0b8ff4
BH
172 * @param page The page value
173 */
174 public void setValue(int page) {
eb63f5ff
BH
175 int value = Math.max(fMin, Math.min(fMax, page));
176 fText.setText(Integer.toString(value));
df0b8ff4
BH
177 }
178
179 /**
180 * Returns the page value.
a0a88f65 181 *
df0b8ff4
BH
182 * @return the page value
183 */
184 public int getValue() {
185 int res;
186 try {
eb63f5ff 187 res = Integer.parseInt(fText.getText());
df0b8ff4
BH
188 } catch (Exception e) {
189 // ignored
190 res = 0;
191 }
eb63f5ff 192 return Math.max(fMin, Math.min(fMax, res));
df0b8ff4
BH
193 }
194
195 /**
196 * Sets the minimum and maximum page values.
a0a88f65 197 *
eb63f5ff
BH
198 * @param min A minimum page value
199 * @param max A maximum page value
df0b8ff4 200 */
eb63f5ff
BH
201 public void setBounds(int min, int max) {
202 fMin = Math.max(0, min);
203 fMax = Math.max(fMin, max);
df0b8ff4 204 Integer tab[] = new Integer[2];
eb63f5ff
BH
205 tab[0] = Integer.valueOf(fMin);
206 tab[1] = Integer.valueOf(fMax);
207 fText.setToolTipText(MessageFormat.format(SDMessages._69, (Object[]) tab));
df0b8ff4
BH
208 }
209 }
210
73005152 211}
This page took 0.046249 seconds and 5 git commands to generate.