Make timeAnalysis widgets and core utils visible again
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / views / colors / ColorsView.java
1 /*******************************************************************************
2 * Copyright (c) 2010 Ericsson
3 *
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *
9 * Contributors:
10 * Patrick Tasse - Initial API and implementation
11 *******************************************************************************/
12
13 package org.eclipse.linuxtools.tmf.ui.views.colors;
14
15 import java.util.ArrayList;
16 import java.util.Arrays;
17 import java.util.List;
18 import java.util.Map;
19
20 import org.eclipse.jface.action.Action;
21 import org.eclipse.jface.action.IToolBarManager;
22 import org.eclipse.jface.action.Separator;
23 import org.eclipse.jface.dialogs.Dialog;
24 import org.eclipse.jface.dialogs.MessageDialog;
25 import org.eclipse.jface.resource.ImageDescriptor;
26 import org.eclipse.linuxtools.internal.tmf.ui.Messages;
27 import org.eclipse.linuxtools.internal.tmf.ui.TmfUiPlugin;
28 import org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.TmfTimeAnalysisProvider;
29 import org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.model.ITimeEvent;
30 import org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.model.ITmfTimeAnalysisEntry;
31 import org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.widgets.TraceColorScheme;
32 import org.eclipse.linuxtools.tmf.ui.views.TmfView;
33 import org.eclipse.linuxtools.tmf.ui.views.filter.FilterDialog;
34 import org.eclipse.swt.SWT;
35 import org.eclipse.swt.custom.ScrolledComposite;
36 import org.eclipse.swt.events.MouseAdapter;
37 import org.eclipse.swt.events.MouseEvent;
38 import org.eclipse.swt.events.MouseListener;
39 import org.eclipse.swt.events.PaintEvent;
40 import org.eclipse.swt.events.PaintListener;
41 import org.eclipse.swt.events.SelectionAdapter;
42 import org.eclipse.swt.events.SelectionEvent;
43 import org.eclipse.swt.graphics.Color;
44 import org.eclipse.swt.graphics.GC;
45 import org.eclipse.swt.graphics.Image;
46 import org.eclipse.swt.graphics.Point;
47 import org.eclipse.swt.graphics.Rectangle;
48 import org.eclipse.swt.layout.GridData;
49 import org.eclipse.swt.layout.GridLayout;
50 import org.eclipse.swt.widgets.Button;
51 import org.eclipse.swt.widgets.Canvas;
52 import org.eclipse.swt.widgets.ColorDialog;
53 import org.eclipse.swt.widgets.Composite;
54 import org.eclipse.swt.widgets.Control;
55 import org.eclipse.swt.widgets.Display;
56 import org.eclipse.swt.widgets.FileDialog;
57 import org.eclipse.swt.widgets.Label;
58 import org.eclipse.swt.widgets.Shell;
59 import org.eclipse.ui.IActionBars;
60
61 public class ColorsView extends TmfView {
62
63 public static final String ID = "org.eclipse.linuxtools.tmf.ui.views.colors"; //$NON-NLS-1$
64
65 private static final Image ADD_IMAGE = TmfUiPlugin.getDefault().getImageFromPath("/icons/elcl16/add_button.gif"); //$NON-NLS-1$
66 private static final Image DELETE_IMAGE = TmfUiPlugin.getDefault().getImageFromPath("/icons/elcl16/delete_button.gif"); //$NON-NLS-1$
67 private static final Image MOVE_UP_IMAGE = TmfUiPlugin.getDefault().getImageFromPath("/icons/elcl16/moveup_button.gif"); //$NON-NLS-1$
68 private static final Image MOVE_DOWN_IMAGE = TmfUiPlugin.getDefault().getImageFromPath("/icons/elcl16/movedown_button.gif"); //$NON-NLS-1$
69 private static final Image IMPORT_IMAGE = TmfUiPlugin.getDefault().getImageFromPath("/icons/elcl16/import_button.gif"); //$NON-NLS-1$
70 private static final Image EXPORT_IMAGE = TmfUiPlugin.getDefault().getImageFromPath("/icons/elcl16/export_button.gif"); //$NON-NLS-1$
71
72 // ------------------------------------------------------------------------
73 // Main data structures
74 // ------------------------------------------------------------------------
75
76 protected Shell fShell;
77 protected ScrolledComposite fScrolledComposite;
78 protected Composite fListComposite;
79 protected Composite fFillerComposite;
80
81 private ColorSettingRow fSelectedRow = null;
82
83 private TraceColorScheme traceColorScheme = new TraceColorScheme();
84 private TmfTimeAnalysisProvider timeAnalysisProvider = new TmfTimeAnalysisProvider() {
85 @Override
86 public StateColor getEventColor(ITimeEvent event) {
87 return null;
88 }
89 @Override
90 public String getTraceClassName(ITmfTimeAnalysisEntry trace) {
91 return null;
92 }
93 @Override
94 public String getEventName(ITimeEvent event, boolean upper, boolean extInfo) {
95 return null;
96 }
97 @Override
98 public Map<String, String> getEventHoverToolTipInfo(ITimeEvent event) {
99 return null;
100 }
101 @Override
102 public String getStateName(StateColor color) {
103 return null;
104 }};
105
106 Action fAddAction;
107 Action fDeleteAction;
108 Action fMoveUpAction;
109 Action fMoveDownAction;
110 Action fImportAction;
111 Action fExportAction;
112
113 protected List<ColorSetting> fColorSettings;
114
115 // ------------------------------------------------------------------------
116 // Constructor
117 // ------------------------------------------------------------------------
118
119 /**
120 * Default Constructor
121 */
122 public ColorsView() {
123 super("Colors"); //$NON-NLS-1$
124 }
125
126 /* (non-Javadoc)
127 * @see org.eclipse.linuxtools.tmf.ui.views.TmfView#createPartControl(org.eclipse.swt.widgets.Composite)
128 */
129 @Override
130 public void createPartControl(Composite parent) {
131 fShell = parent.getShell();
132
133 fScrolledComposite = new ScrolledComposite(parent, SWT.V_SCROLL | SWT.H_SCROLL);
134 fScrolledComposite.setExpandHorizontal(true);
135 fScrolledComposite.setExpandVertical(true);
136 fListComposite = new Composite(fScrolledComposite, SWT.NONE);
137 fScrolledComposite.setContent(fListComposite);
138
139 GridLayout gl = new GridLayout();
140 gl.marginHeight = 0;
141 gl.marginWidth = 0;
142 gl.verticalSpacing = 1;
143 fListComposite.setLayout(gl);
144
145 fColorSettings = new ArrayList<ColorSetting>(Arrays.asList(ColorSettingsManager.getColorSettings()));
146 for (ColorSetting colorSetting : fColorSettings) {
147 new ColorSettingRow(fListComposite, colorSetting);
148 }
149
150 fFillerComposite = new Composite(fListComposite, SWT.NONE);
151 GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
152 gd.heightHint = 0;
153 fFillerComposite.setLayoutData(gd);
154 gl = new GridLayout();
155 gl.marginHeight = 1;
156 gl.marginWidth = 1;
157 fFillerComposite.setLayout(gl);
158 Label fillerLabel = new Label(fFillerComposite, SWT.NONE);
159 fillerLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
160 fillerLabel.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
161
162 fFillerComposite.addPaintListener(new PaintListener() {
163 @Override
164 public void paintControl(PaintEvent e) {
165 if (fSelectedRow == null) {
166 Color lineColor = Display.getDefault().getSystemColor(SWT.COLOR_BLACK);
167 Point p = fFillerComposite.getSize();
168 GC gc = e.gc;
169 gc.setForeground(lineColor);
170 gc.drawLine(0, 0, p.x - 1, 0);
171 }
172 }
173 });
174
175 MouseListener mouseListener = new MouseAdapter() {
176 @Override
177 public void mouseDown(MouseEvent e) {
178 fSelectedRow = null;
179 refresh();
180 }
181 };
182 fillerLabel.addMouseListener(mouseListener);
183
184 fScrolledComposite.setMinSize(fListComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
185
186 fillToolBar();
187 }
188
189 public void refresh() {
190 fListComposite.layout();
191 fScrolledComposite.setMinSize(fListComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
192 fListComposite.redraw(0, 0, fListComposite.getBounds().width, fListComposite.getBounds().height, true);
193 if (fSelectedRow == null) {
194 fDeleteAction.setEnabled(false);
195 fMoveUpAction.setEnabled(false);
196 fMoveDownAction.setEnabled(false);
197 } else {
198 fDeleteAction.setEnabled(true);
199 fMoveUpAction.setEnabled(true);
200 fMoveDownAction.setEnabled(true);
201 }
202 }
203
204 private void fillToolBar() {
205
206 fAddAction = new AddAction();
207 fAddAction.setImageDescriptor(ImageDescriptor.createFromImage(ADD_IMAGE));
208 fAddAction.setToolTipText(Messages.ColorsView_AddActionToolTipText);
209
210 fDeleteAction = new DeleteAction();
211 fDeleteAction.setImageDescriptor(ImageDescriptor.createFromImage(DELETE_IMAGE));
212 fDeleteAction.setToolTipText(Messages.ColorsView_DeleteActionToolTipText);
213 fDeleteAction.setEnabled(false);
214
215 fMoveUpAction = new MoveUpAction();
216 fMoveUpAction.setImageDescriptor(ImageDescriptor.createFromImage(MOVE_UP_IMAGE));
217 fMoveUpAction.setToolTipText(Messages.ColorsView_MoveUpActionToolTipText);
218 fMoveUpAction.setEnabled(false);
219
220 fMoveDownAction = new MoveDownAction();
221 fMoveDownAction.setImageDescriptor(ImageDescriptor.createFromImage(MOVE_DOWN_IMAGE));
222 fMoveDownAction.setToolTipText(Messages.ColorsView_MoveDownActionToolTipText);
223 fMoveDownAction.setEnabled(false);
224
225 fExportAction = new ExportAction();
226 fExportAction.setImageDescriptor(ImageDescriptor.createFromImage(EXPORT_IMAGE));
227 fExportAction.setToolTipText(Messages.ColorsView_ExportActionToolTipText);
228
229 fImportAction = new ImportAction();
230 fImportAction.setImageDescriptor(ImageDescriptor.createFromImage(IMPORT_IMAGE));
231 fImportAction.setToolTipText(Messages.ColorsView_ImportActionToolTipText);
232
233 IActionBars bars = getViewSite().getActionBars();
234 IToolBarManager manager = bars.getToolBarManager();
235 manager.add(fAddAction);
236 manager.add(fDeleteAction);
237 manager.add(fMoveUpAction);
238 manager.add(fMoveDownAction);
239 manager.add(new Separator());
240 manager.add(fExportAction);
241 manager.add(fImportAction);
242 }
243
244 private class AddAction extends Action {
245 @Override
246 public void run() {
247 ColorSetting colorSetting = new ColorSetting(
248 Display.getDefault().getSystemColor(SWT.COLOR_LIST_FOREGROUND).getRGB(),
249 Display.getDefault().getSystemColor(SWT.COLOR_LIST_BACKGROUND).getRGB(),
250 TraceColorScheme.BLACK_STATE,
251 null);
252 ColorSettingRow row = new ColorSettingRow(fListComposite, colorSetting);
253 if (fSelectedRow == null) {
254 fColorSettings.add(colorSetting);
255 row.moveAbove(fFillerComposite);
256 } else {
257 fColorSettings.add(fColorSettings.indexOf(fSelectedRow.getColorSetting()), colorSetting);
258 row.moveAbove(fSelectedRow);
259 }
260 fSelectedRow = row;
261 refresh();
262 ColorSettingsManager.setColorSettings(fColorSettings.toArray(new ColorSetting[0]));
263 }
264 }
265
266 private class DeleteAction extends Action {
267 @Override
268 public void run() {
269 if (fSelectedRow != null) {
270 int index = fColorSettings.indexOf(fSelectedRow.getColorSetting());
271 fColorSettings.remove(index);
272 fSelectedRow.fColorSetting.dispose();
273 fSelectedRow.dispose();
274 if (index < fColorSettings.size()) {
275 fSelectedRow = (ColorSettingRow) fListComposite.getChildren()[index];
276 } else {
277 fSelectedRow = null;
278 }
279 refresh();
280 ColorSettingsManager.setColorSettings(fColorSettings.toArray(new ColorSetting[0]));
281 }
282 }
283 }
284
285 private class MoveUpAction extends Action {
286 @Override
287 public void run() {
288 if (fSelectedRow != null) {
289 int index = fColorSettings.indexOf(fSelectedRow.getColorSetting());
290 if (index > 0) {
291 fColorSettings.add(index - 1, fColorSettings.remove(index));
292 fSelectedRow.moveAbove(fListComposite.getChildren()[index - 1]);
293 refresh();
294 ColorSettingsManager.setColorSettings(fColorSettings.toArray(new ColorSetting[0]));
295 }
296 }
297 }
298 }
299
300 private class MoveDownAction extends Action {
301 @Override
302 public void run() {
303 if (fSelectedRow != null) {
304 int index = fColorSettings.indexOf(fSelectedRow.getColorSetting());
305 if (index < fColorSettings.size() - 1) {
306 fColorSettings.add(index + 1, fColorSettings.remove(index));
307 fSelectedRow.moveBelow(fListComposite.getChildren()[index + 1]);
308 refresh();
309 ColorSettingsManager.setColorSettings(fColorSettings.toArray(new ColorSetting[0]));
310 }
311 }
312 }
313 }
314
315 private class ExportAction extends Action {
316 @Override
317 public void run() {
318 FileDialog fileDialog = new FileDialog(fShell, SWT.SAVE);
319 fileDialog.setFilterExtensions(new String[] {"*.xml"}); //$NON-NLS-1$
320 fileDialog.setOverwrite(true);
321 String pathName = fileDialog.open();
322 if (pathName != null) {
323 ColorSettingsXML.save(pathName, fColorSettings.toArray(new ColorSetting[0]));
324 }
325 }
326 }
327
328 private class ImportAction extends Action {
329 @Override
330 public void run() {
331 FileDialog fileDialog = new FileDialog(fShell, SWT.OPEN);
332 fileDialog.setFilterExtensions(new String[] {"*.xml"}); //$NON-NLS-1$
333 String pathName = fileDialog.open();
334 if (pathName != null) {
335 ColorSetting[] colorSettings = ColorSettingsXML.load(pathName);
336 if (colorSettings.length > 0) {
337 if (fColorSettings.size() > 0) {
338 boolean overwrite = MessageDialog.openQuestion(fShell,
339 Messages.ColorsView_ImportOverwriteDialogTitle,
340 Messages.ColorsView_ImportOverwriteDialogMessage1 +
341 Messages.ColorsView_ImportOverwriteDialogMessage2);
342 if (overwrite) {
343 for (Control control : fListComposite.getChildren()) {
344 if (control instanceof ColorSettingRow) {
345 ((ColorSettingRow) control).fColorSetting.dispose();
346 control.dispose();
347 }
348 }
349 fColorSettings = new ArrayList<ColorSetting>();
350 fSelectedRow = null;
351 }
352 }
353 for (ColorSetting colorSetting : colorSettings) {
354 ColorSettingRow row = new ColorSettingRow(fListComposite, colorSetting);
355 if (fSelectedRow == null) {
356 fColorSettings.add(colorSetting);
357 row.moveAbove(fFillerComposite);
358 } else {
359 fColorSettings.add(fColorSettings.indexOf(fSelectedRow.getColorSetting()), colorSetting);
360 row.moveAbove(fSelectedRow);
361 }
362 }
363 refresh();
364 ColorSettingsManager.setColorSettings(fColorSettings.toArray(new ColorSetting[0]));
365 }
366 }
367 }
368 }
369
370 private class ColorSettingRow extends Composite {
371
372 ColorSetting fColorSetting;
373
374 public ColorSettingRow(final Composite parent, final ColorSetting colorSetting) {
375 super(parent, SWT.NONE);
376 fColorSetting = colorSetting;
377
378 setBackground(Display.getDefault().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
379
380 setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
381 GridLayout gl = new GridLayout(7, false);
382 gl.marginHeight = 1;
383 gl.marginWidth = 1;
384 gl.horizontalSpacing = 1;
385 gl.verticalSpacing = 0;
386 setLayout(gl);
387
388 final Button fgButton = new Button(this, SWT.PUSH);
389 fgButton.setText(Messages.ColorsView_ForegroundButtonText);
390 fgButton.setSize(fgButton.computeSize(SWT.DEFAULT, 19));
391 fgButton.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
392
393 final Button bgButton = new Button(this, SWT.PUSH);
394 bgButton.setText(Messages.ColorsView_BackgroundButtonText);
395 bgButton.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
396
397 final Composite labelComposite = new Composite(this, SWT.NONE);
398 labelComposite.setLayoutData(new GridData(SWT.CENTER, SWT.FILL, false, false));
399 gl = new GridLayout();
400 gl.marginHeight = 0;
401 gl.marginWidth = 0;;
402 labelComposite.setLayout(gl);
403 labelComposite.setBackground(colorSetting.getBackgroundColor());
404
405 final Label label = new Label(labelComposite, SWT.NONE);
406 label.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, true));
407 label.setText(" Text "); //$NON-NLS-1$
408 label.setForeground(colorSetting.getForegroundColor());
409 label.setBackground(colorSetting.getBackgroundColor());
410
411 fgButton.addSelectionListener(new SelectionAdapter() {
412 @Override
413 public void widgetSelected(SelectionEvent e) {
414 fSelectedRow = ColorSettingRow.this;
415 refresh();
416 ColorDialog dialog = new ColorDialog(fShell);
417 dialog.setRGB(colorSetting.getForegroundRGB());
418 dialog.setText(Messages.ColorsView_ForegroundDialogText);
419 dialog.open();
420 colorSetting.setForegroundRGB(dialog.getRGB());
421 ColorSettingsManager.setColorSettings(fColorSettings.toArray(new ColorSetting[0]));
422 label.setForeground(colorSetting.getForegroundColor());
423 }});
424
425 bgButton.addSelectionListener(new SelectionAdapter() {
426 @Override
427 public void widgetSelected(SelectionEvent e) {
428 fSelectedRow = ColorSettingRow.this;
429 refresh();
430 ColorDialog dialog = new ColorDialog(fShell);
431 dialog.setRGB(colorSetting.getBackgroundRGB());
432 dialog.setText(Messages.ColorsView_BackgroundDialogText);
433 dialog.open();
434 colorSetting.setBackgroundRGB(dialog.getRGB());
435 ColorSettingsManager.setColorSettings(fColorSettings.toArray(new ColorSetting[0]));
436 labelComposite.setBackground(colorSetting.getBackgroundColor());
437 label.setBackground(colorSetting.getBackgroundColor());
438 }});
439
440 final Button tickButton = new Button(this, SWT.PUSH);
441 tickButton.setText(Messages.ColorsView_TickButtonText);
442 tickButton.setSize(tickButton.computeSize(SWT.DEFAULT, 19));
443 tickButton.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
444
445 final Canvas tickCanvas = new Canvas(this, SWT.NONE);
446 GridData gd = new GridData(SWT.CENTER, SWT.FILL, false, false);
447 gd.widthHint = 12;
448 gd.heightHint = bgButton.getSize().y;
449 tickCanvas.setLayoutData(gd);
450 tickCanvas.setBackground(traceColorScheme.getBkColor(false, false, false));
451 tickCanvas.addPaintListener(new PaintListener() {
452 @Override
453 public void paintControl(PaintEvent e) {
454 Rectangle bounds = tickCanvas.getBounds();
455 e.gc.setForeground(traceColorScheme.getColor(TraceColorScheme.MID_LINE));
456 int midy = bounds.y + bounds.height / 2 - 1;
457 //int midy = e.y + e.height / 2;
458 e.gc.drawLine(e.x, midy, e.x + e.width, midy);
459 Rectangle rect = new Rectangle(e.x + 1, bounds.y + 2, 0, bounds.height - 6);
460 for (int i = 1; i <= 3; i++) {
461 rect.x += i;
462 rect.width = i;
463 timeAnalysisProvider.drawState(traceColorScheme, fColorSetting.getTickColorIndex(), rect, e.gc, false, false, false);
464 }
465 }});
466
467 tickButton.addSelectionListener(new SelectionAdapter() {
468 @Override
469 public void widgetSelected(SelectionEvent e) {
470 fSelectedRow = ColorSettingRow.this;
471 refresh();
472 TickColorDialog dialog = new TickColorDialog(fShell);
473 dialog.setColorIndex(colorSetting.getTickColorIndex());
474 dialog.open();
475 if (dialog.getReturnCode() == Dialog.OK) {
476 if (dialog.getColorIndex() != colorSetting.getTickColorIndex()) {
477 colorSetting.setTickColorIndex(dialog.getColorIndex());
478 ColorSettingsManager.setColorSettings(fColorSettings.toArray(new ColorSetting[0]));
479 refresh();
480 }
481 }
482 }});
483
484 final Button filterButton = new Button(this, SWT.PUSH);
485 filterButton.setText(Messages.ColorsView_FilterButtonText);
486 filterButton.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
487
488 final Label filterText = new Label(this, SWT.NONE);
489 if (colorSetting.getFilter() != null) {
490 filterText.setText(colorSetting.getFilter().toString());
491 filterText.setToolTipText(colorSetting.getFilter().toString());
492 }
493 filterText.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
494 filterText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
495
496 filterButton.addSelectionListener(new SelectionAdapter() {
497 @Override
498 public void widgetSelected(SelectionEvent e) {
499 fSelectedRow = ColorSettingRow.this;
500 refresh();
501 FilterDialog dialog = new FilterDialog(fShell);
502 dialog.setFilter(colorSetting.getFilter());
503 dialog.open();
504 if (dialog.getReturnCode() == Dialog.OK) {
505 if (dialog.getFilter() != null) {
506 colorSetting.setFilter(dialog.getFilter());
507 filterText.setText(dialog.getFilter().toString());
508 filterText.setToolTipText(dialog.getFilter().toString());
509 } else {
510 colorSetting.setFilter(null);
511 filterText.setText(""); //$NON-NLS-1$
512 filterText.setToolTipText(""); //$NON-NLS-1$
513 }
514 ColorSettingsManager.setColorSettings(fColorSettings.toArray(new ColorSetting[0]));
515 refresh();
516 }
517 }});
518
519 addPaintListener(new PaintListener() {
520 @Override
521 public void paintControl(PaintEvent e) {
522 if (fSelectedRow == ColorSettingRow.this) {
523 Color borderColor = Display.getDefault().getSystemColor(SWT.COLOR_BLACK);
524 Point p = ColorSettingRow.this.getSize();
525 Rectangle rect = new Rectangle(0, 0, p.x - 1, p.y - 1);
526 GC gc = e.gc;
527 gc.setForeground(borderColor);
528 gc.drawRectangle(rect);
529 }
530 }
531 });
532
533 MouseListener mouseListener = new MouseAdapter() {
534 @Override
535 public void mouseDown(MouseEvent e) {
536 fSelectedRow = ColorSettingRow.this;
537 refresh();
538 }
539 };
540 addMouseListener(mouseListener);
541 label.addMouseListener(mouseListener);
542 tickCanvas.addMouseListener(mouseListener);
543 filterText.addMouseListener(mouseListener);
544 }
545
546 /**
547 * @return the ColorSetting
548 */
549 public ColorSetting getColorSetting() {
550 return fColorSetting;
551 }
552
553 }
554 }
This page took 0.043714 seconds and 6 git commands to generate.