annotate jface/snippets/Snippet031TableViewerCustomTooltipsMultiSelection.d @ 92:f5c5b4bf7971

added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
author yidabu <yidabu@gmail.com>
date Fri, 23 May 2008 07:53:22 +0800
parents
children bf8adb3de664
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
92
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
1 module jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
2
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
3 /*******************************************************************************
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
4 * Copyright (c) 2007 Adam Neal and others.
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
5 * All rights reserved. This program and the accompanying materials
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
6 * are made available under the terms of the Eclipse Public License v1.0
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
7 * which accompanies this distribution, and is available at
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
8 * http://www.eclipse.org/legal/epl-v10.html
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
9 *
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
10 * Contributors:
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
11 * Adam Neal - initial API and implementation
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
12 * Port to the D programming language:
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
13 * yidabu at gmail dot com ( D China http://www.d-programming-language-china.org/ )
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
14 *******************************************************************************/
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
15
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
16
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
17 // http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jface.snippets/Eclipse%20JFace%20Snippets/org/eclipse/jface/snippets/viewers/Snippet031TableViewerCustomTooltipsMultiSelection.java?view=markup
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
18
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
19 import tango.util.collection.ArrayBag;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
20 alias ArrayBag!(MyModel) ArrayList;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
21 import tango.util.Convert;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
22
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
23 import dwtx.jface.viewers.ArrayContentProvider;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
24 import dwtx.jface.viewers.ILabelProviderListener;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
25 import dwtx.jface.viewers.ITableLabelProvider;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
26 import dwtx.jface.viewers.TableViewer;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
27 import dwt.DWT;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
28 import dwt.graphics.Image;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
29 import dwt.graphics.Point;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
30 import dwt.graphics.Rectangle;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
31 import dwt.layout.FillLayout;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
32 import dwt.widgets.Display;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
33 import dwt.widgets.Event;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
34 import dwt.widgets.Label;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
35 import dwt.widgets.Listener;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
36 import dwt.widgets.Shell;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
37 import dwt.widgets.Table;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
38 import dwt.widgets.TableColumn;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
39 import dwt.widgets.TableItem;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
40 import dwt.dwthelper.System;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
41 import dwt.widgets.Listener;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
42
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
43 alias char[] String;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
44 void main(String[] args)
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
45 {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
46 Snippet031TableViewerCustomTooltipsMultiSelection.main(args);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
47 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
48
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
49 /**
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
50 * A simple TableViewer to demonstrate how custom tooltips could be created easily while preserving
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
51 * the multiple selection.
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
52 *
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
53 * This is a modified example taken from Tom Schindl's Snippet023TreeViewerCustomTooltips.java
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
54 *
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
55 * This code is for users pre 3.3 others could use newly added tooltip support in {@link CellLabelProvider}
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
56
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
57 * @author Adam Neal <Adam_Neal@ca.ibm.com>
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
58 *
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
59 */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
60 public class Snippet031TableViewerCustomTooltipsMultiSelection {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
61 public class MyLableProvider : ITableLabelProvider {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
62
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
63 public Image getColumnImage(Object element, int columnIndex) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
64 return null;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
65 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
66
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
67 public String getColumnText(Object element, int columnIndex) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
68 //if (element instanceof MyModel) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
69 switch (columnIndex) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
70 case 0: return (cast(MyModel)element).col1;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
71 case 1: return (cast(MyModel)element).col2;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
72 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
73 //}
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
74
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
75 return "";
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
76 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
77
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
78 public void addListener(ILabelProviderListener listener) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
79 /* Ignore */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
80 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
81
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
82 public void dispose() {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
83 /* Ignore */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
84 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
85
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
86 public bool isLabelProperty(Object element, String property) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
87 return false;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
88 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
89
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
90 public void removeListener(ILabelProviderListener listener) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
91 /* Ignore */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
92 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
93
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
94 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
95
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
96
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
97
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
98 public this(Shell shell) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
99
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
100
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
101 final Table table = new Table(shell, DWT.H_SCROLL | DWT.V_SCROLL | DWT.MULTI | DWT.FULL_SELECTION);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
102 table.setHeaderVisible(true);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
103 table.setLinesVisible(true);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
104
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
105 final TableViewer v = new TableViewer(table);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
106 TableColumn tableColumn1 = new TableColumn(table, DWT.NONE);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
107 TableColumn tableColumn2 = new TableColumn(table, DWT.NONE);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
108
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
109 String column1 = "Column 1", column2 = "Column 2";
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
110 /* Setup the table columns */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
111 tableColumn1.setText(column1);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
112 tableColumn2.setText(column2);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
113 tableColumn1.pack();
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
114 tableColumn2.pack();
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
115
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
116 v.setColumnProperties([ column1, column2 ]);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
117 v.setLabelProvider(new MyLableProvider());
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
118 v.setContentProvider(new ArrayContentProvider!(MyModel));
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
119 v.setInput(createModel());
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
120
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
121 tooltipLabelListener = new TooltipLabelListener();
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
122
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
123 /**
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
124 * The listener that gets added to the table. This listener is responsible for creating the tooltips
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
125 * when hovering over a cell item. This listener will listen for the following events:
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
126 * <li>DWT.KeyDown - to remove the tooltip</li>
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
127 * <li>DWT.Dispose - to remove the tooltip</li>
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
128 * <li>DWT.MouseMove - to remove the tooltip</li>
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
129 * <li>DWT.MouseHover - to set the tooltip</li>
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
130 */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
131
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
132 Listener tableListener = dgListener(&handleTableListener, table);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
133
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
134 table.addListener (DWT.Dispose, tableListener);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
135 table.addListener (DWT.KeyDown, tableListener);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
136 table.addListener (DWT.MouseMove, tableListener);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
137 table.addListener (DWT.MouseHover, tableListener);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
138 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
139
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
140 void handleTableListener(Event event, Table table)
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
141 {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
142 Shell tooltip = null;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
143 Label label = null;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
144
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
145 /*
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
146 * (non-Javadoc)
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
147 * @see dwt.widgets.Listener#handleEvent(dwt.widgets.Event)
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
148 */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
149 switch (event.type) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
150 case DWT.KeyDown:
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
151 case DWT.Dispose:
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
152 case DWT.MouseMove: {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
153 if (tooltip is null) break;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
154 tooltip.dispose ();
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
155 tooltip = null;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
156 label = null;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
157 break;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
158 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
159 case DWT.MouseHover: {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
160 Point coords = new Point(event.x, event.y);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
161 TableItem item = table.getItem(coords);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
162 if (item !is null) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
163 int columnCount = table.getColumnCount();
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
164 for (int columnIndex = 0; columnIndex < columnCount; columnIndex++) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
165 if (item.getBounds(columnIndex).contains(coords)) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
166 /* Dispose of the old tooltip (if one exists */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
167 if (tooltip !is null && !tooltip.isDisposed ()) tooltip.dispose ();
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
168
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
169 /* Create a new Tooltip */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
170 tooltip = new Shell (table.getShell(), DWT.ON_TOP | DWT.NO_FOCUS | DWT.TOOL);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
171 tooltip.setBackground (table.getDisplay().getSystemColor (DWT.COLOR_INFO_BACKGROUND));
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
172 FillLayout layout = new FillLayout ();
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
173 layout.marginWidth = 2;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
174 tooltip.setLayout (layout);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
175 label = new Label (tooltip, DWT.NONE);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
176 label.setForeground (table.getDisplay().getSystemColor (DWT.COLOR_INFO_FOREGROUND));
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
177 label.setBackground (table.getDisplay().getSystemColor (DWT.COLOR_INFO_BACKGROUND));
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
178
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
179 /* Store the TableItem with the label so we can pass the mouse event later */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
180 label.setData ("_TableItem_", item);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
181
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
182 /* Set the tooltip text */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
183 label.setText("Tooltip: " ~ to!(char[])(item.getData()) ~ " : " ~ to!(char[])(columnIndex));
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
184
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
185 /* Setup Listeners to remove the tooltip and transfer the received mouse events */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
186 label.addListener (DWT.MouseExit, tooltipLabelListener);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
187 label.addListener (DWT.MouseDown, tooltipLabelListener);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
188
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
189 /* Set the size and position of the tooltip */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
190 Point size = tooltip.computeSize (DWT.DEFAULT, DWT.DEFAULT);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
191 Rectangle rect = item.getBounds (columnIndex);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
192 Point pt = table.toDisplay (rect.x, rect.y);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
193 tooltip.setBounds (pt.x, pt.y, size.x, size.y);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
194
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
195 /* Show it */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
196 tooltip.setVisible (true);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
197 break;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
198 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
199 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
200 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
201 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
202 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
203
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
204 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
205
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
206 /**
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
207 * This listener is added to the tooltip so that it can either dispose itself if the mouse
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
208 * exits the tooltip or so it can pass the selection event through to the table.
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
209 */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
210 final TooltipLabelListener tooltipLabelListener;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
211 final class TooltipLabelListener : Listener {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
212 private bool isCTRLDown(Event e) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
213 return (e.stateMask & DWT.CTRL) != 0;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
214 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
215 /*
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
216 * (non-Javadoc)
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
217 * @see dwt.widgets.Listener#handleEvent(dwt.widgets.Event)
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
218 */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
219 public void handleEvent (Event event) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
220 Label label = cast(Label)event.widget;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
221 Shell shell = label.getShell ();
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
222 switch (event.type) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
223 case DWT.MouseDown: /* Handle a user Click */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
224 /* Extract our Data */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
225 Event e = new Event ();
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
226 e.item = cast(TableItem) label.getData ("_TableItem_");
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
227 Table table = (cast(TableItem) e.item).getParent();
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
228
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
229 /* Construct the new Selection[] to show */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
230 TableItem [] newSelection = null;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
231 if (isCTRLDown(event)) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
232 /* We have 2 scenario's.
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
233 * 1) We are selecting an already selected element - so remove it from the selected indices
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
234 * 2) We are selecting a non-selected element - so add it to the selected indices
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
235 */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
236 TableItem[] sel = table.getSelection();
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
237 for (int i = 0; i < sel.length; ++i) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
238 //if (e.item.equals(sel[i])) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
239 if (e.item is sel[i]) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
240 // We are de-selecting this element
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
241 newSelection = new TableItem[sel.length - 1];
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
242 System.arraycopy(sel, 0, newSelection, 0, i);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
243 System.arraycopy(sel, i+1, newSelection, i, sel.length - i - 1);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
244 break;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
245 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
246 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
247
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
248 /*
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
249 * If we haven't created the newSelection[] yet, than we are adding the newly selected element
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
250 * into the list of selected indicies
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
251 */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
252 if (newSelection is null) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
253 newSelection = new TableItem[sel.length + 1];
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
254 System.arraycopy(sel, 0, newSelection, 0, sel.length);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
255 newSelection[sel.length] = cast(TableItem) e.item;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
256 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
257
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
258 } else {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
259 /* CTRL is not down, so we simply select the single element */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
260 newSelection = [ cast(TableItem) e.item ];
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
261 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
262 /* Set the new selection of the table and notify the listeners */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
263 table.setSelection (newSelection);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
264 table.notifyListeners (DWT.Selection, e);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
265
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
266 /* Remove the Tooltip */
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
267 shell.dispose ();
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
268 table.setFocus();
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
269 break;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
270 case DWT.MouseExit:
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
271 shell.dispose ();
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
272 break;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
273 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
274 }}
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
275
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
276
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
277 private ArrayList createModel() {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
278 ArrayList list = new ArrayList;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
279 list.add(new MyModel("A", "B"));
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
280 list.add(new MyModel("C", "D"));
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
281 list.add(new MyModel("E", "F"));
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
282 return list;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
283 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
284
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
285 public static void main(String[] args) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
286 Display display = new Display();
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
287 Shell shell = new Shell(display);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
288 shell.setLayout(new FillLayout());
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
289 new Snippet031TableViewerCustomTooltipsMultiSelection(shell);
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
290 shell.open();
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
291
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
292 while (!shell.isDisposed()) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
293 if (!display.readAndDispatch())
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
294 display.sleep();
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
295 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
296
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
297 display.dispose();
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
298 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
299 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
300
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
301 public class MyModel {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
302 public String col1, col2;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
303
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
304 public this(String c1, String c2) {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
305 col1 = c1;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
306 col2 = c2;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
307 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
308
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
309 public String toString() {
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
310 return col1 ~ col2;
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
311 }
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
312
f5c5b4bf7971 added jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection
yidabu <yidabu@gmail.com>
parents:
diff changeset
313 }