tmf: Update Javadoc throughout tmf.ui
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / widgets / timegraph / widgets / TimeGraphBaseControl.java
1 /*****************************************************************************
2 * Copyright (c) 2007 Intel Corporation, 2009, 2012 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 * Intel Corporation - Initial API and implementation
10 * Ruslan A. Scherbakov, Intel - Initial API and implementation
11 * Alvaro Sanchez-Leon - Updated for TMF
12 * Patrick Tasse - Refactoring
13 *
14 *****************************************************************************/
15
16 package org.eclipse.linuxtools.tmf.ui.widgets.timegraph.widgets;
17
18 import org.eclipse.swt.SWT;
19 import org.eclipse.swt.events.PaintEvent;
20 import org.eclipse.swt.events.PaintListener;
21 import org.eclipse.swt.graphics.Color;
22 import org.eclipse.swt.graphics.Rectangle;
23 import org.eclipse.swt.widgets.Canvas;
24 import org.eclipse.swt.widgets.Composite;
25
26 /**
27 * Base control abstract class for the time graph widget
28 *
29 * @version 1.0
30 * @author Alvaro Sanchez-Leon
31 * @author Patrick Tasse
32 */
33 public abstract class TimeGraphBaseControl extends Canvas implements PaintListener {
34
35 static public final int MARGIN = 4;
36 static public final int EXPAND_SIZE = 9; // the [+] or [-] control size
37 static public final int RIGHT_MARGIN = 1; // 1 pixels less to make sure end time is visible
38 static public final int SMALL_ICON_SIZE = 16;
39
40 protected TimeGraphColorScheme _colors;
41 protected int _fontHeight = 0;
42
43 public TimeGraphBaseControl(Composite parent, TimeGraphColorScheme colors) {
44 this(parent, colors, SWT.NO_BACKGROUND | SWT.NO_FOCUS);
45 }
46
47 public TimeGraphBaseControl(Composite parent, TimeGraphColorScheme colors, int style) {
48 super(parent, style);
49 _colors = colors;
50 addPaintListener(this);
51 }
52
53 @Override
54 public void dispose() {
55 super.dispose();
56 }
57
58 @Override
59 public void paintControl(PaintEvent e) {
60 if (e.widget != this) {
61 return;
62 }
63 _fontHeight = e.gc.getFontMetrics().getHeight();
64 Rectangle bound = getClientArea();
65 if (!bound.isEmpty()) {
66 Color colBackup = e.gc.getBackground();
67 paint(bound, e);
68 e.gc.setBackground(colBackup);
69 }
70 }
71
72 public int getFontHeight() {
73 return _fontHeight;
74 }
75
76 abstract void paint(Rectangle bound, PaintEvent e);
77 }
This page took 0.031311 seconds and 5 git commands to generate.