Mercurial > projects > dwt-addons
annotate dwtx/jface/viewers/ViewerCell.d @ 90:7ffeace6c47f
Update 3.4M7 to 3.4
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sun, 06 Jul 2008 23:30:07 +0200 |
parents | 5df4896124c7 |
children |
rev | line source |
---|---|
10 | 1 /******************************************************************************* |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
2 * Copyright (c) 2006, 2008 IBM Corporation and others. |
10 | 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 * IBM Corporation - initial API and implementation | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
10 * Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation |
90 | 11 * - fix in bug: 195908,198035,215069,215735,227421 |
10 | 12 * Port to the D programming language: |
13 * Frank Benoit <benoit@tionex.de> | |
14 *******************************************************************************/ | |
15 | |
16 module dwtx.jface.viewers.ViewerCell; | |
17 | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
18 import dwt.custom.StyleRange; |
10 | 19 import dwtx.jface.viewers.ViewerRow; |
20 | |
21 import dwt.graphics.Color; | |
22 import dwt.graphics.Font; | |
23 import dwt.graphics.Image; | |
24 import dwt.graphics.Rectangle; | |
25 import dwt.widgets.Control; | |
26 import dwt.widgets.Item; | |
27 import dwt.widgets.Widget; | |
28 | |
29 import dwt.dwthelper.utils; | |
30 | |
31 /** | |
32 * The ViewerCell is the JFace representation of a cell entry in a ViewerRow. | |
33 * | |
34 * @since 3.3 | |
35 * | |
36 */ | |
37 public class ViewerCell { | |
38 private int columnIndex; | |
39 | |
40 private ViewerRow row; | |
41 | |
42 private Object element; | |
43 | |
44 /** | |
45 * Constant denoting the cell above current one (value is 1). | |
46 */ | |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
47 public static const int ABOVE = 1; |
10 | 48 |
49 /** | |
50 * Constant denoting the cell below current one (value is 2). | |
51 */ | |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
52 public static const int BELOW = 1 << 1; |
10 | 53 |
54 /** | |
55 * Constant denoting the cell to the left of the current one (value is 4). | |
56 */ | |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
57 public static const int LEFT = 1 << 2; |
10 | 58 |
59 /** | |
60 * Constant denoting the cell to the right of the current one (value is 8). | |
61 */ | |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
62 public static const int RIGHT = 1 << 3; |
10 | 63 |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
64 |
10 | 65 /** |
66 * Create a new instance of the receiver on the row. | |
67 * | |
68 * @param row | |
69 * @param columnIndex | |
70 */ | |
71 this(ViewerRow row, int columnIndex, Object element) { | |
72 this.row = row; | |
73 this.columnIndex = columnIndex; | |
74 this.element = element; | |
75 } | |
76 | |
77 /** | |
78 * Get the index of the cell. | |
79 * | |
80 * @return the index | |
81 */ | |
82 public int getColumnIndex() { | |
83 return columnIndex; | |
84 } | |
85 | |
86 /** | |
87 * Get the bounds of the cell. | |
88 * | |
89 * @return {@link Rectangle} | |
90 */ | |
91 public Rectangle getBounds() { | |
92 return row.getBounds(columnIndex); | |
93 } | |
94 | |
95 /** | |
96 * Get the element this row represents. | |
97 * | |
98 * @return {@link Object} | |
99 */ | |
100 public Object getElement() { | |
101 if (element !is null) { | |
102 return element; | |
103 } | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
104 |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
105 if (row !is null) { |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
106 return row.getElement(); |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
107 } |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
108 |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
109 return null; |
10 | 110 } |
111 | |
112 /** | |
113 * Return the text for the cell. | |
114 * | |
115 * @return {@link String} | |
116 */ | |
117 public String getText() { | |
118 return row.getText(columnIndex); | |
119 } | |
120 | |
121 /** | |
122 * Return the Image for the cell. | |
123 * | |
124 * @return {@link Image} or <code>null</code> | |
125 */ | |
126 public Image getImage() { | |
127 return row.getImage(columnIndex); | |
128 } | |
129 | |
130 /** | |
131 * Set the background color of the cell. | |
132 * | |
133 * @param background | |
134 */ | |
135 public void setBackground(Color background) { | |
136 row.setBackground(columnIndex, background); | |
137 | |
138 } | |
139 | |
140 /** | |
141 * Set the foreground color of the cell. | |
142 * | |
143 * @param foreground | |
144 */ | |
145 public void setForeground(Color foreground) { | |
146 row.setForeground(columnIndex, foreground); | |
147 | |
148 } | |
149 | |
150 /** | |
151 * Set the font of the cell. | |
152 * | |
153 * @param font | |
154 */ | |
155 public void setFont(Font font) { | |
156 row.setFont(columnIndex, font); | |
157 | |
158 } | |
159 | |
160 /** | |
161 * Set the text for the cell. | |
162 * | |
163 * @param text | |
164 */ | |
165 public void setText(String text) { | |
166 row.setText(columnIndex, text); | |
167 | |
168 } | |
169 | |
170 /** | |
171 * Set the Image for the cell. | |
172 * | |
173 * @param image | |
174 */ | |
175 public void setImage(Image image) { | |
176 row.setImage(columnIndex, image); | |
177 | |
178 } | |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
179 |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
180 /** |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
181 * Set the style ranges to be applied on the text label |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
182 * Note: Requires {@link StyledCellLabelProvider} with owner draw enabled. |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
183 * |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
184 * @param styleRanges the styled ranges |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
185 * |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
186 * @since 3.4 |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
187 */ |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
188 public void setStyleRanges(StyleRange[] styleRanges) { |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
189 row.setStyleRanges(columnIndex, styleRanges); |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
190 } |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
191 |
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
192 |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
193 /** |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
194 * Returns the style ranges to be applied on the text label or <code>null</code> if no |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
195 * style ranges have been set. |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
196 * |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
197 * @return styleRanges the styled ranges |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
198 * |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
199 * @since 3.4 |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
200 */ |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
201 public StyleRange[] getStyleRanges() { |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
202 return row.getStyleRanges(columnIndex); |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
203 } |
10 | 204 |
205 /** | |
206 * Set the columnIndex. | |
207 * | |
208 * @param column | |
209 */ | |
210 void setColumn(int column) { | |
211 columnIndex = column; | |
212 | |
213 } | |
214 | |
215 /** | |
216 * Set the row to rowItem and the columnIndex to column. | |
217 * | |
218 * @param rowItem | |
219 * @param column | |
220 */ | |
221 void update(ViewerRow rowItem, int column, Object element) { | |
222 row = rowItem; | |
223 columnIndex = column; | |
224 this.element = element; | |
225 } | |
226 | |
227 /** | |
228 * Return the item for the receiver. | |
229 * | |
230 * @return {@link Item} | |
231 */ | |
232 public Widget getItem() { | |
233 return row.getItem(); | |
234 } | |
235 | |
236 /** | |
237 * Get the control for this cell. | |
238 * | |
239 * @return {@link Control} | |
240 */ | |
241 public Control getControl() { | |
242 return row.getControl(); | |
243 } | |
244 | |
245 /** | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
246 * Get the current index. This can be different from the original index when |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
247 * columns are reordered |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
248 * |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
249 * @return the current index (as shown in the UI) |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
250 * @since 3.4 |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
251 */ |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
252 public int getVisualIndex() { |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
253 return row.getVisualIndex_package(getColumnIndex()); |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
254 } |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
255 |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
256 /** |
10 | 257 * Returns the specified neighbor of this cell, or <code>null</code> if no |
258 * neighbor exists in the given direction. Direction constants can be | |
259 * combined by bitwise OR; for example, this method will return the cell to | |
260 * the upper-left of the current cell by passing {@link #ABOVE} | | |
261 * {@link #LEFT}. If <code>sameLevel</code> is <code>true</code>, only | |
262 * cells in sibling rows (under the same parent) will be considered. | |
263 * | |
264 * @param directionMask | |
265 * the direction mask used to identify the requested neighbor | |
266 * cell | |
267 * @param sameLevel | |
268 * if <code>true</code>, only consider cells from sibling rows | |
269 * @return the requested neighbor cell, or <code>null</code> if not found | |
270 */ | |
271 public ViewerCell getNeighbor(int directionMask, bool sameLevel) { | |
272 ViewerRow row; | |
273 | |
274 if ((directionMask & ABOVE) is ABOVE) { | |
275 row = this.row.getNeighbor(ViewerRow.ABOVE, sameLevel); | |
276 } else if ((directionMask & BELOW) is BELOW) { | |
277 row = this.row.getNeighbor(ViewerRow.BELOW, sameLevel); | |
278 } else { | |
279 row = this.row; | |
280 } | |
281 | |
282 if (row !is null) { | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
283 int columnIndex; |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
284 columnIndex = getVisualIndex(); |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
285 |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
286 int modifier = 0; |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
287 |
10 | 288 if ((directionMask & LEFT) is LEFT) { |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
289 modifier = -1; |
10 | 290 } else if ((directionMask & RIGHT) is RIGHT) { |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
291 modifier = 1; |
10 | 292 } |
293 | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
294 columnIndex += modifier; |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
295 |
10 | 296 if (columnIndex >= 0 && columnIndex < row.getColumnCount()) { |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
297 ViewerCell cell = row.getCellAtVisualIndex(columnIndex); |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
298 if( cell !is null ) { |
90 | 299 while( cell !is null && columnIndex < row.getColumnCount() - 1 && columnIndex > 0 ) { |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
300 if( cell.isVisible() ) { |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
301 break; |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
302 } |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
303 |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
304 columnIndex += modifier; |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
305 cell = row.getCellAtVisualIndex(columnIndex); |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
306 if( cell is null ) { |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
307 break; |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
308 } |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
309 } |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
310 } |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
311 |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
312 return cell; |
10 | 313 } |
314 } | |
315 | |
316 return null; | |
317 } | |
318 | |
319 /** | |
320 * @return the row | |
321 */ | |
322 public ViewerRow getViewerRow() { | |
323 return row; | |
324 } | |
325 | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
326 /** |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
327 * The location and bounds of the area where the text is drawn depends on |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
328 * various things (image displayed, control with DWT.CHECK) |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
329 * |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
330 * @return The bounds of the of the text area. May return <code>null</code> |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
331 * if the underlying widget implementation doesn't provide this |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
332 * information |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
333 * @since 3.4 |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
334 */ |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
335 public Rectangle getTextBounds() { |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
336 return row.getTextBounds(columnIndex); |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
337 } |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
338 |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
339 /** |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
340 * Returns the location and bounds of the area where the image is drawn |
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
341 * |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
342 * @return The bounds of the of the image area. May return <code>null</code> |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
343 * if the underlying widget implementation doesn't provide this |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
344 * information |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
345 * @since 3.4 |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
346 */ |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
347 public Rectangle getImageBounds() { |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
348 return row.getImageBounds(columnIndex); |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
349 } |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
350 |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
351 /** |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
352 * Gets the foreground color of the cell. |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
353 * |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
354 * @return the foreground of the cell or <code>null</code> for the default foreground |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
355 * |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
356 * @since 3.4 |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
357 */ |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
358 public Color getForeground() { |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
359 return row.getForeground(columnIndex); |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
360 } |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
361 |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
362 /** |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
363 * Gets the background color of the cell. |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
364 * |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
365 * @return the background of the cell or <code>null</code> for the default background |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
366 * |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
367 * @since 3.4 |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
368 */ |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
369 public Color getBackground() { |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
370 return row.getBackground(columnIndex); |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
371 } |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
372 |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
373 /** |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
374 * Gets the font of the cell. |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
375 * |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
376 * @return the font of the cell or <code>null</code> for the default font |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
377 * |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
378 * @since 3.4 |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
379 */ |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
380 public Font getFont() { |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
381 return row.getFont(columnIndex); |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
382 } |
72
5df4896124c7
JFace and its examples do compile
Frank Benoit <benoit@tionex.de>
parents:
70
diff
changeset
|
383 |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
384 /* |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
385 * (non-Javadoc) |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
386 * |
10 | 387 * @see java.lang.Object#hashCode() |
388 */ | |
389 public override hash_t toHash() { | |
390 const int prime = 31; | |
391 int result = 1; | |
392 result = prime * result + columnIndex; | |
393 result = prime * result + ((row is null) ? 0 : row.toHash()); | |
394 return result; | |
395 } | |
396 | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
397 /* |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
398 * (non-Javadoc) |
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
399 * |
10 | 400 * @see java.lang.Object#equals(java.lang.Object) |
401 */ | |
402 public override int opEquals(Object obj) { | |
403 if (this is obj) | |
404 return true; | |
405 if (obj is null) | |
406 return false; | |
407 if (this.classinfo !is obj.classinfo ) | |
408 return false; | |
409 ViewerCell other = cast(ViewerCell) obj; | |
410 if (columnIndex !is other.columnIndex) | |
411 return false; | |
412 if (row is null) { | |
413 if (other.row !is null) | |
414 return false; | |
415 } else if (!row.opEquals(other.row)) | |
416 return false; | |
417 return true; | |
418 } | |
90 | 419 |
420 private int getWidth() { | |
421 return row.getWidth(columnIndex); | |
422 } | |
423 | |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
424 private bool isVisible() { |
90 | 425 return getWidth() > 0; |
70
46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents:
10
diff
changeset
|
426 } |
10 | 427 } |