Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVeronika Irvine2002-02-05 19:33:19 +0000
committerVeronika Irvine2002-02-05 19:33:19 +0000
commitdf444100eaf890a80d3e563389466b909f93bdf6 (patch)
treec1b7fbc36ba518482f3ce77fb59af214fb84e941
parentad6b43f8c2bf387f0b317b5c68af5326b22f836c (diff)
downloadeclipse.platform.swt-df444100eaf890a80d3e563389466b909f93bdf6.tar.gz
eclipse.platform.swt-df444100eaf890a80d3e563389466b909f93bdf6.tar.xz
eclipse.platform.swt-df444100eaf890a80d3e563389466b909f93bdf6.zip
*** empty log message ***
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TableCursor.java335
1 files changed, 181 insertions, 154 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TableCursor.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TableCursor.java
index cc910d1871..64b085034f 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TableCursor.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TableCursor.java
@@ -10,52 +10,64 @@ public class TableCursor extends Canvas {
int row, column;
Listener tableListener, resizeListener;
-public TableCursor (Table parent, int style) {
- super (parent, style);
+public TableCursor(Table parent, int style) {
+ super(parent, style);
table = parent;
- Listener listener = new Listener () {
- public void handleEvent (Event event) {
+ Listener listener = new Listener() {
+ public void handleEvent(Event event) {
switch (event.type) {
- case SWT.Dispose: dispose (event); break;
- case SWT.KeyDown: keyDown (event); break;
- case SWT.Paint: paint (event); break;
- case SWT.Traverse: traverse (event); break;
+ case SWT.Dispose :
+ dispose(event);
+ break;
+ case SWT.KeyDown :
+ keyDown(event);
+ break;
+ case SWT.Paint :
+ paint(event);
+ break;
+ case SWT.Traverse :
+ traverse(event);
+ break;
}
}
};
- addListener (SWT.Dispose, listener);
- addListener (SWT.KeyDown, listener);
- addListener (SWT.Paint, listener);
- addListener (SWT.Traverse, listener);
-
- tableListener = new Listener () {
- public void handleEvent (Event event) {
+ addListener(SWT.Dispose, listener);
+ addListener(SWT.KeyDown, listener);
+ addListener(SWT.Paint, listener);
+ addListener(SWT.Traverse, listener);
+
+ tableListener = new Listener() {
+ public void handleEvent(Event event) {
switch (event.type) {
- case SWT.MouseDown: tableMouseDown (event); break;
- case SWT.FocusIn: tableFocusIn (event); break;
+ case SWT.MouseDown :
+ tableMouseDown(event);
+ break;
+ case SWT.FocusIn :
+ tableFocusIn(event);
+ break;
}
}
};
- table.addListener (SWT.FocusIn, tableListener);
- table.addListener (SWT.MouseDown, tableListener);
-
- resizeListener = new Listener () {
- public void handleEvent (Event event) {
- resize ();
+ table.addListener(SWT.FocusIn, tableListener);
+ table.addListener(SWT.MouseDown, tableListener);
+
+ resizeListener = new Listener() {
+ public void handleEvent(Event event) {
+ resize();
}
};
- int columns = table.getColumnCount ();
- for (int i=0; i<columns; i++) {
- TableColumn column = table.getColumn (i);
- column.addListener (SWT.Resize, resizeListener);
+ int columns = table.getColumnCount();
+ for (int i = 0; i < columns; i++) {
+ TableColumn column = table.getColumn(i);
+ column.addListener(SWT.Resize, resizeListener);
}
- ScrollBar hBar = table.getHorizontalBar ();
+ ScrollBar hBar = table.getHorizontalBar();
if (hBar != null) {
- hBar.addListener (SWT.Selection, resizeListener);
+ hBar.addListener(SWT.Selection, resizeListener);
}
- ScrollBar vBar = table.getVerticalBar ();
+ ScrollBar vBar = table.getVerticalBar();
if (vBar != null) {
- vBar.addListener (SWT.Selection, resizeListener);
+ vBar.addListener(SWT.Selection, resizeListener);
}
}
@@ -86,197 +98,212 @@ public TableCursor (Table parent, int style) {
* @see SelectionEvent
*/
public void addSelectionListener(SelectionListener listener) {
- checkWidget ();
- if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
- TypedListener typedListener = new TypedListener (listener);
- addListener (SWT.Selection, typedListener);
- addListener (SWT.DefaultSelection, typedListener);
+ checkWidget();
+ if (listener == null)
+ SWT.error(SWT.ERROR_NULL_ARGUMENT);
+ TypedListener typedListener = new TypedListener(listener);
+ addListener(SWT.Selection, typedListener);
+ addListener(SWT.DefaultSelection, typedListener);
}
-void dispose (Event event) {
- Display display = getDisplay ();
- display.asyncExec (new Runnable () {
- public void run () {
- if (table.isDisposed ()) return;
- table.removeListener (SWT.FocusIn, tableListener);
- table.removeListener (SWT.MouseDown, tableListener);
- int columns = table.getColumnCount ();
- for (int i=0; i<columns; i++) {
- TableColumn column = table.getColumn (i);
- column.removeListener (SWT.Resize, resizeListener);
+void dispose(Event event) {
+ Display display = getDisplay();
+ display.asyncExec(new Runnable() {
+ public void run() {
+ if (table.isDisposed())
+ return;
+ table.removeListener(SWT.FocusIn, tableListener);
+ table.removeListener(SWT.MouseDown, tableListener);
+ int columns = table.getColumnCount();
+ for (int i = 0; i < columns; i++) {
+ TableColumn column = table.getColumn(i);
+ column.removeListener(SWT.Resize, resizeListener);
}
- ScrollBar hBar = table.getHorizontalBar ();
+ ScrollBar hBar = table.getHorizontalBar();
if (hBar != null) {
- hBar.removeListener (SWT.Selection, resizeListener);
+ hBar.removeListener(SWT.Selection, resizeListener);
}
- ScrollBar vBar = table.getVerticalBar ();
+ ScrollBar vBar = table.getVerticalBar();
if (vBar != null) {
- vBar.removeListener (SWT.Selection, resizeListener);
+ vBar.removeListener(SWT.Selection, resizeListener);
}
}
});
}
-void keyDown (Event event) {
+void keyDown(Event event) {
switch (event.character) {
- case SWT.CR:
- notifyListeners (SWT.DefaultSelection, new Event ());
+ case SWT.CR :
+ notifyListeners(SWT.DefaultSelection, new Event());
return;
}
switch (event.keyCode) {
- case SWT.ARROW_UP:
- setRowColumn (row - 1 , column, true);
+ case SWT.ARROW_UP :
+ setRowColumn(row - 1, column, true);
break;
- case SWT.ARROW_DOWN:
- setRowColumn (row + 1, column, true);
+ case SWT.ARROW_DOWN :
+ setRowColumn(row + 1, column, true);
break;
- case SWT.ARROW_LEFT:
- setRowColumn (row, column - 1, true);
+ case SWT.ARROW_LEFT :
+ setRowColumn(row, column - 1, true);
break;
- case SWT.ARROW_RIGHT:
- setRowColumn (row, column + 1, true);
+ case SWT.ARROW_RIGHT :
+ setRowColumn(row, column + 1, true);
break;
- case SWT.HOME:
- setRowColumn (0, column, true);
+ case SWT.HOME :
+ setRowColumn(0, column, true);
break;
- case SWT.END: {
- int row = table.getItemCount () - 1;
- setRowColumn (row, column, true);
- break;
- }
- case SWT.PAGE_UP: {
- int index = table.getTopIndex ();
- if (index == row) {
- Rectangle rect = table.getClientArea ();
- TableItem item = table.getItem (index);
- Rectangle itemRect = item.getBounds (0);
- rect.height -= itemRect.y;
- int height = table.getItemHeight ();
- int page = Math.max (1, rect.height / height);
- index = Math.max (0, index - page + 1);
+ case SWT.END :
+ {
+ int row = table.getItemCount() - 1;
+ setRowColumn(row, column, true);
+ break;
}
- setRowColumn (index, column, true);
- break;
- }
- case SWT.PAGE_DOWN: {
- int index = table.getTopIndex ();
- Rectangle rect = table.getClientArea ();
- TableItem item = table.getItem (index);
- Rectangle itemRect = item.getBounds (0);
- rect.height -= itemRect.y;
- int height = table.getItemHeight ();
- int page = Math.max (1, rect.height / height);
- int end = table.getItemCount () - 1;
- index = Math.min (end, index + page - 1);
- if (index == row) {
- index = Math.min (end, index + page - 1);
+ case SWT.PAGE_UP :
+ {
+ int index = table.getTopIndex();
+ if (index == row) {
+ Rectangle rect = table.getClientArea();
+ TableItem item = table.getItem(index);
+ Rectangle itemRect = item.getBounds(0);
+ rect.height -= itemRect.y;
+ int height = table.getItemHeight();
+ int page = Math.max(1, rect.height / height);
+ index = Math.max(0, index - page + 1);
+ }
+ setRowColumn(index, column, true);
+ break;
+ }
+ case SWT.PAGE_DOWN :
+ {
+ int index = table.getTopIndex();
+ Rectangle rect = table.getClientArea();
+ TableItem item = table.getItem(index);
+ Rectangle itemRect = item.getBounds(0);
+ rect.height -= itemRect.y;
+ int height = table.getItemHeight();
+ int page = Math.max(1, rect.height / height);
+ int end = table.getItemCount() - 1;
+ index = Math.min(end, index + page - 1);
+ if (index == row) {
+ index = Math.min(end, index + page - 1);
+ }
+ setRowColumn(index, column, true);
+ break;
}
- setRowColumn (index, column, true);
- break;
- }
}
}
-void paint (Event event) {
+void paint(Event event) {
GC gc = event.gc;
- Display display = getDisplay ();
- gc.setBackground (display.getSystemColor (SWT.COLOR_LIST_SELECTION_TEXT));
- gc.setForeground (display.getSystemColor (SWT.COLOR_LIST_SELECTION));
- gc.fillRectangle (event.x, event.y, event.width, event.height);
- TableItem item = table.getItems () [row];
+ Display display = getDisplay();
+ gc.setBackground(display.getSystemColor(SWT.COLOR_LIST_SELECTION_TEXT));
+ gc.setForeground(display.getSystemColor(SWT.COLOR_LIST_SELECTION));
+ gc.fillRectangle(event.x, event.y, event.width, event.height);
+ TableItem item = table.getItem(row);
int x = 0, y = 0;
- Point size = getSize ();
- Image image = item.getImage (column);
+ Point size = getSize();
+ Image image = item.getImage(column);
if (image != null) {
- gc.drawImage (image, x, y);
- x += image.getBounds ().width;
+ Rectangle imageSize = image.getBounds();
+ int imageY = y + (int) (((float) size.y - (float) imageSize.height) / 2.0);
+ gc.drawImage(image, x, imageY);
+ x += imageSize.width;
}
x += (column == 0) ? 2 : 6;
- y = y + (int)(((float)size.y - (float)gc.getFontMetrics().getHeight()) / 2.0);
- gc.drawString (item.getText (column), x, y);
- if (isFocusControl ()) {
+ int textY =
+ y + (int) (((float) size.y - (float) gc.getFontMetrics().getHeight()) / 2.0);
+ gc.drawString(item.getText(column), x, textY);
+ if (isFocusControl()) {
gc.setBackground(display.getSystemColor(SWT.COLOR_BLACK));
gc.setForeground(display.getSystemColor(SWT.COLOR_WHITE));
- gc.drawFocus (0, 0, size.x, size.y);
+ gc.drawFocus(0, 0, size.x, size.y);
}
-
+
}
-void tableFocusIn (Event event) {
- if (isDisposed()) return;
- if (isVisible()) setFocus ();
+void tableFocusIn(Event event) {
+ if (isDisposed())
+ return;
+ if (isVisible())
+ setFocus();
}
-void tableMouseDown (Event event) {
- if (isDisposed() || !isVisible()) return;
- Point pt = new Point (event.x, event.y);
- Rectangle clientRect = table.getClientArea ();
- int columns = table.getColumnCount ();
- int start = table.getTopIndex ();
- int end = table.getItemCount ();
- for (int row=start; row<end; row++) {
- TableItem item = table.getItem (row);
- for (int column=0; column<columns; column++) {
- Rectangle rect = item.getBounds (column);
- if (rect.y > clientRect.y + clientRect.height) return;
- if (rect.contains (pt)) {
- setRowColumn (row, column, true);
- setFocus ();
+void tableMouseDown(Event event) {
+ if (isDisposed() || !isVisible())
+ return;
+ Point pt = new Point(event.x, event.y);
+ Rectangle clientRect = table.getClientArea();
+ int columns = table.getColumnCount();
+ int start = table.getTopIndex();
+ int end = table.getItemCount();
+ for (int row = start; row < end; row++) {
+ TableItem item = table.getItem(row);
+ for (int column = 0; column < columns; column++) {
+ Rectangle rect = item.getBounds(column);
+ if (rect.y > clientRect.y + clientRect.height)
+ return;
+ if (rect.contains(pt)) {
+ setRowColumn(row, column, true);
+ setFocus();
return;
}
}
- }
+ }
}
-void traverse (Event event) {
+void traverse(Event event) {
switch (event.detail) {
- case SWT.TRAVERSE_ARROW_NEXT:
- case SWT.TRAVERSE_ARROW_PREVIOUS:
- case SWT.TRAVERSE_RETURN:
+ case SWT.TRAVERSE_ARROW_NEXT :
+ case SWT.TRAVERSE_ARROW_PREVIOUS :
+ case SWT.TRAVERSE_RETURN :
event.doit = false;
return;
}
event.doit = true;
}
-void setRowColumn (int row, int column, boolean notify) {
- if (0 <= row && row < table.getItemCount ()) {
- if (0 <= column && column < table.getColumnCount ()) {
+void setRowColumn(int row, int column, boolean notify) {
+ if (0 <= row && row < table.getItemCount()) {
+ if (0 <= column && column < table.getColumnCount()) {
this.row = row;
this.column = column;
- TableItem item = table.getItems () [row];
- table.showItem (item);
- setBounds (item.getBounds (column));
- redraw ();
+ TableItem item = table.getItems()[row];
+ table.showItem(item);
+ setBounds(item.getBounds(column));
+ redraw();
if (notify) {
- notifyListeners (SWT.Selection, new Event ());
+ notifyListeners(SWT.Selection, new Event());
}
}
}
}
-public void setVisible (boolean visible) {
- if (visible) resize ();
- super.setVisible (visible);
+public void setVisible(boolean visible) {
+ if (visible)
+ resize();
+ super.setVisible(visible);
}
-void resize () {
- TableItem item = table.getItem (row);
- setBounds (item.getBounds (column));
+void resize() {
+ TableItem item = table.getItem(row);
+ setBounds(item.getBounds(column));
}
-public int getColumn () {
+public int getColumn() {
return column;
}
public TableItem getRow() {
return table.getItem(row);
}
public void setSelection(TableItem row, int column) {
- if (row == null || row.isDisposed() || column < 0 || column >= table.getColumnCount())
+ if (row == null
+ || row.isDisposed()
+ || column < 0
+ || column >= table.getColumnCount())
SWT.error(SWT.ERROR_INVALID_ARGUMENT);
setRowColumn(table.indexOf(row), column, false);
-
-}
-}
+}
+} \ No newline at end of file

Back to the top