~ubuntu-branches/ubuntu/wily/eclipse-linuxtools/wily

« back to all changes in this revision

Viewing changes to profiling/org.eclipse.linuxtools.dataviewers/src/org/eclipse/linuxtools/dataviewers/abstractviewers/AbstractSTTableViewer.java

  • Committer: Package Import Robot
  • Author(s): Jakub Adam, Jakub Adam, tony mancill
  • Date: 2014-10-11 11:44:05 UTC
  • mfrom: (1.2.4)
  • Revision ID: package-import@ubuntu.com-20141011114405-yazjvxfzzhmi5sgj
Tags: 3.1.0-1
[ Jakub Adam ]
* New upstream release (Closes: #761524).
* Refreshed d/patches.
* Don't build removed feature org.eclipse.linuxtools.tools.launch
  - merged into org.eclipse.linuxtools.profiling.
* Use javac target 1.7.
* Build new feature org.eclipse.linuxtools.dataviewers.feature
  - required by Valgrind integration.
* Build-depend on eclipse-remote-services-api and eclipse-cdt-autotools.
* Bump Standards-Version to 3.9.6.
* Override incompatible-java-bytecode-format - linuxtools needs Java 7.
* Remove unused codeless-jar override.

[ tony mancill ]
* Tweak short package description to make lintian happy.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*******************************************************************************
2
 
 * Copyright (c) 2009 STMicroelectronics.
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
 
 *    Marzia Maugeri <marzia.maugeri@st.com> - initial API and implementation
10
 
 *******************************************************************************/
11
 
package org.eclipse.linuxtools.dataviewers.abstractviewers;
12
 
 
13
 
import org.eclipse.jface.viewers.TableLayout;
14
 
import org.eclipse.jface.viewers.TableViewer;
15
 
import org.eclipse.jface.viewers.TableViewerColumn;
16
 
import org.eclipse.swt.SWT;
17
 
import org.eclipse.swt.events.MouseAdapter;
18
 
import org.eclipse.swt.events.MouseEvent;
19
 
import org.eclipse.swt.events.MouseMoveListener;
20
 
import org.eclipse.swt.graphics.Cursor;
21
 
import org.eclipse.swt.graphics.Point;
22
 
import org.eclipse.swt.graphics.Rectangle;
23
 
import org.eclipse.swt.widgets.Composite;
24
 
import org.eclipse.swt.widgets.Item;
25
 
import org.eclipse.swt.widgets.Table;
26
 
import org.eclipse.swt.widgets.TableColumn;
27
 
import org.eclipse.swt.widgets.TableItem;
28
 
 
29
 
/**
30
 
 * This wrapper extends AbstractSTViewer {@link AbstractSTViewer} It is designed to be instantiated with a TableViewer
31
 
 * JFace control
32
 
 *
33
 
 */
34
 
public abstract class AbstractSTTableViewer extends AbstractSTViewer {
35
 
 
36
 
        public AbstractSTTableViewer(Composite parent) {
37
 
                super(parent, SWT.BORDER |SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI| SWT.FULL_SELECTION);
38
 
        }
39
 
 
40
 
 
41
 
        public AbstractSTTableViewer(Composite parent,boolean init) {
42
 
                super(parent,SWT.BORDER |SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI| SWT.FULL_SELECTION,init);
43
 
        }
44
 
 
45
 
        public AbstractSTTableViewer(Composite parent, int style) {
46
 
                super(parent,style,true);
47
 
        }
48
 
 
49
 
        public AbstractSTTableViewer(Composite parent, int style,boolean init) {
50
 
                super(parent,style,init);
51
 
        }
52
 
 
53
 
        /**
54
 
         * It creates the wrapped TableViewer
55
 
         * @param parent - the parent Composite
56
 
         * @param style - the table style
57
 
         * @return a TableViewer
58
 
         * @since 5.0
59
 
         */
60
 
        @Override
61
 
        protected TableViewer createViewer(Composite parent, int style) {
62
 
                Table t = createTable(parent, style);
63
 
                return new TableViewer(t);
64
 
        }
65
 
 
66
 
        /**
67
 
         * Create the main table control
68
 
         *
69
 
         * @param parent
70
 
         * @return Table
71
 
         */
72
 
        protected Table createTable(Composite parent, int style) {
73
 
                Table table = new Table(parent, style);
74
 
                table.setLinesVisible(true);
75
 
                table.setHeaderVisible(true);
76
 
 
77
 
                return table;
78
 
        }
79
 
 
80
 
        @Override
81
 
        /**
82
 
         * Create the columns in the table.
83
 
         *
84
 
         */
85
 
        protected void createColumns() {
86
 
                Table table = getViewer().getTable();
87
 
                TableLayout layout = new TableLayout();
88
 
                table.setLayout(layout);
89
 
                table.setHeaderVisible(true);
90
 
                table.setLinesVisible(true);
91
 
 
92
 
                for (int i = 0; i < getAllFields().length; i++) {
93
 
                        ISTDataViewersField field = getAllFields()[i];
94
 
                        TableColumn tc = new TableColumn(table, field.getAlignment(), i);
95
 
                        tc.setText(field.getColumnHeaderText());
96
 
                        tc.setToolTipText(field.getColumnHeaderTooltip());
97
 
                        tc.setImage(field.getColumnHeaderImage());
98
 
                        tc.setWidth(field.getPreferredWidth());
99
 
                        tc.setResizable(true);
100
 
                        tc.setMoveable(true);
101
 
 
102
 
                        tc.addSelectionListener(createHeaderListener());
103
 
                        tc.setData(field);
104
 
 
105
 
                        // defining the column label provider.
106
 
                        // this has to be done after setting the column's data.
107
 
                        TableViewerColumn viewerColumn =
108
 
                                new TableViewerColumn(getViewer(), tc);
109
 
                        viewerColumn.setLabelProvider(createColumnLabelProvider(tc));
110
 
                }
111
 
 
112
 
 
113
 
                table.addMouseListener(new MouseAdapter(){
114
 
                                        @Override
115
 
                    public void mouseDoubleClick(MouseEvent e) {
116
 
                                                Table table = (Table)e.widget;
117
 
                                                TableItem item = table.getItem(new Point(e.x,e.y));
118
 
                                                if (item != null){
119
 
                                                        for(int i=0;i<table.getColumnCount();i++){
120
 
                                                                ISTDataViewersField field = getAllFields()[i];
121
 
                                                                if (field.isHyperLink(item.getData())){
122
 
                                                                        Rectangle bounds = item.getBounds(i);
123
 
                                                                        if (bounds.contains(e.x,e.y)){
124
 
                                                                                handleHyperlink(field,item.getData());
125
 
                                                                                return;
126
 
                                                                        }
127
 
                                                                }
128
 
                                                        }
129
 
                                                }
130
 
                                        }
131
 
                                });
132
 
 
133
 
                table.addMouseMoveListener(new MouseMoveListener(){
134
 
 
135
 
                                                @Override
136
 
                                                public void mouseMove(MouseEvent e) {
137
 
                                                        Table table = (Table)e.widget;
138
 
                                                        TableItem item = table.getItem(new Point(e.x,e.y));
139
 
                                                        if (item == null) return;
140
 
 
141
 
                                                        for(int i=0;i<table.getColumnCount();i++){
142
 
                                                                ISTDataViewersField field = getAllFields()[i];
143
 
                                                                Cursor cursor = null ;
144
 
                                                                if (field.isHyperLink(item.getData())){
145
 
                                                                        Rectangle bounds = item.getBounds(i);
146
 
                                                                if (bounds.contains(e.x,e.y)){
147
 
                                                                                cursor = e.display.getSystemCursor(SWT.CURSOR_HAND);
148
 
                                                                                table.setCursor(cursor);
149
 
                                                                                return;
150
 
                                                                        }
151
 
                                                                }
152
 
                                                                cursor = e.display.getSystemCursor(SWT.CURSOR_ARROW);
153
 
                                                                table.setCursor(cursor);
154
 
                                                        }
155
 
 
156
 
                                                }
157
 
 
158
 
                                        });
159
 
        }
160
 
 
161
 
        /**
162
 
         * (non-Javadoc)
163
 
         * @see org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTViewer#getColumns()
164
 
     * @since 5.0
165
 
         */
166
 
        @Override
167
 
        public TableColumn[] getColumns() {
168
 
                return getViewer().getTable().getColumns();
169
 
        }
170
 
 
171
 
        /*
172
 
         * (non-Javadoc)
173
 
         * @see org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTViewer#updateDirectionIndicator(org.eclipse.swt.widgets.Item)
174
 
         */
175
 
        @Override
176
 
        public void updateDirectionIndicator(Item column) {
177
 
                getViewer().getTable().setSortColumn((TableColumn)column);
178
 
                if (getTableSorter().getTopPriorityDirection() == STDataViewersComparator.ASCENDING)
179
 
                        getViewer().getTable().setSortDirection(SWT.UP);
180
 
                else
181
 
                        getViewer().getTable().setSortDirection(SWT.DOWN);
182
 
        }
183
 
 
184
 
        /*
185
 
         * (non-Javadoc)
186
 
         * @see org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTViewer#getColumnOrder()
187
 
         */
188
 
        @Override
189
 
    public int[] getColumnOrder() {
190
 
                return getViewer().getTable().getColumnOrder();
191
 
        }
192
 
 
193
 
        /*
194
 
         * (non-Javadoc)
195
 
         * @see org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTViewer#setColumnOrder(int[])
196
 
         */
197
 
        @Override
198
 
    protected void setColumnOrder(int[] order) {
199
 
                getViewer().getTable().setColumnOrder(order);
200
 
        }
201
 
 
202
 
        /*
203
 
         * (non-Javadoc)
204
 
         * @see org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTViewer#getColumnIndex(org.eclipse.swt.widgets.Item)
205
 
         */
206
 
        @Override
207
 
    public int getColumnIndex(Item column) {
208
 
                return getViewer().getTable().indexOf((TableColumn)column);
209
 
        }
210
 
 
211
 
        /*
212
 
         * (non-Javadoc)
213
 
         * @see org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTViewer#getColumnWidth(org.eclipse.swt.widgets.Item)
214
 
         */
215
 
        @Override
216
 
        public int getColumnWidth(Item column) {
217
 
                return ((TableColumn)column).getWidth();
218
 
        }
219
 
 
220
 
        /*
221
 
         * (non-Javadoc)
222
 
         * @see org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTViewer#setColumnResizable(org.eclipse.swt.widgets.Item, boolean)
223
 
         */
224
 
        @Override
225
 
        public void setColumnResizable(Item column, boolean resizable) {
226
 
                ((TableColumn)column).setResizable(resizable);
227
 
        }
228
 
 
229
 
        /*
230
 
         * (non-Javadoc)
231
 
         * @see org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTViewer#setColumnWidth(org.eclipse.swt.widgets.Item, int)
232
 
         */
233
 
        @Override
234
 
        public void setColumnWidth(Item column, int width) {
235
 
                ((TableColumn)column).setWidth(width);
236
 
        }
237
 
 
238
 
        /*
239
 
         * (non-Javadoc)
240
 
         * @see org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTViewer#getViewer()
241
 
         */
242
 
        @Override
243
 
    public TableViewer getViewer() {
244
 
                return (TableViewer)super.getViewer();
245
 
        }
246
 
 
247
 
 
248
 
        public abstract void handleHyperlink(ISTDataViewersField field,Object data);
249
 
}