use of org.eclipse.swt.widgets.Event in project translationstudio8 by heartsome.
the class GridViewerColumn method hookColumnResizeListener.
private void hookColumnResizeListener() {
if (columnResizeListener == null) {
columnResizeListener = new Listener() {
public void handleEvent(Event event) {
boolean autoPreferredSize = false;
if (viewer instanceof GridTableViewer)
autoPreferredSize = ((GridTableViewer) viewer).getAutoPreferredHeight();
if (viewer instanceof GridTreeViewer)
autoPreferredSize = ((GridTreeViewer) viewer).getAutoPreferredHeight();
if (autoPreferredSize && column.getWordWrap()) {
Grid grid = column.getParent();
for (int cnt = 0; cnt < grid.getItemCount(); cnt++) grid.getItem(cnt).pack();
grid.redraw();
}
}
};
column.addListener(SWT.Resize, columnResizeListener);
column.addListener(SWT.Hide, columnResizeListener);
column.addListener(SWT.Show, columnResizeListener);
}
}
use of org.eclipse.swt.widgets.Event in project translationstudio8 by heartsome.
the class TermDbManagerDialog method createSash.
/**
* Create the sash with right control on the right. Note that this method assumes GridData for the layout data of
* the rightControl.
* @param composite
* @param rightControl
* @return Sash
*/
protected Sash createSash(final Composite composite, final Control rightControl) {
final Sash sash = new Sash(composite, SWT.VERTICAL);
sash.setLayoutData(new GridData(GridData.FILL_VERTICAL));
sash.setBackground(composite.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
// the following listener resizes the tree control based on sash deltas.
// If necessary, it will also grow/shrink the dialog.
sash.addListener(SWT.Selection, new Listener() {
/*
* (non-Javadoc)
*
* @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt. widgets.Event)
*/
public void handleEvent(Event event) {
if (event.detail == SWT.DRAG) {
return;
}
int shift = event.x - sash.getBounds().x;
GridData data = (GridData) rightControl.getLayoutData();
int newWidthHint = data.widthHint + shift;
if (newWidthHint < 20) {
return;
}
Point computedSize = getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT);
Point currentSize = getShell().getSize();
// if the dialog wasn't of a custom size we know we can shrink
// it if necessary based on sash movement.
boolean customSize = !computedSize.equals(currentSize);
data.widthHint = newWidthHint;
setLastTreeWidth(newWidthHint);
composite.layout(true);
// recompute based on new widget size
computedSize = getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT);
// necessary.
if (customSize) {
computedSize.x = Math.max(computedSize.x, currentSize.x);
}
computedSize.y = Math.max(computedSize.y, currentSize.y);
if (computedSize.equals(currentSize)) {
return;
}
setShellSize(computedSize.x, computedSize.y);
lastShellSize = getShell().getSize();
}
});
return sash;
}
use of org.eclipse.swt.widgets.Event in project translationstudio8 by heartsome.
the class TableCombo method tableEvent.
/**
* Handles Table Events.
* @param event
* @throws IllegalAccessException
* @throws InvocationTargetException
* @throws NoSuchMethodException
*/
private void tableEvent(Event event) {
switch(event.type) {
case SWT.Dispose:
if (getShell() != popup.getParent()) {
int selectionIndex = table.getSelectionIndex();
popup = null;
table = null;
createPopup(selectionIndex);
}
break;
case SWT.FocusIn:
{
handleFocus(SWT.FocusIn);
break;
}
case SWT.MouseMove:
{
TableItem item = table.getItem(new Point(event.x, event.y));
if (item != null) {
table.setSelection(item);
}
break;
}
case SWT.MouseUp:
{
if (event.button != 1)
return;
dropDown(false);
int index = table.getSelectionIndex();
if (index == -1)
return;
// refresh the text.
refreshText(index);
// set the selection in the table.
table.setSelection(index);
Event e = new Event();
e.time = event.time;
e.stateMask = event.stateMask;
e.doit = event.doit;
notifyListeners(SWT.Selection, e);
event.doit = e.doit;
break;
}
case SWT.Traverse:
{
switch(event.detail) {
case SWT.TRAVERSE_RETURN:
case SWT.TRAVERSE_ESCAPE:
case SWT.TRAVERSE_ARROW_PREVIOUS:
case SWT.TRAVERSE_ARROW_NEXT:
event.doit = false;
break;
case SWT.TRAVERSE_TAB_NEXT:
case SWT.TRAVERSE_TAB_PREVIOUS:
event.doit = text.traverse(event.detail);
event.detail = SWT.TRAVERSE_NONE;
if (event.doit)
dropDown(false);
return;
}
Event e = new Event();
e.time = event.time;
e.detail = event.detail;
e.doit = event.doit;
e.character = event.character;
e.keyCode = event.keyCode;
notifyListeners(SWT.Traverse, e);
event.doit = e.doit;
event.detail = e.detail;
break;
}
case SWT.KeyUp:
{
Event e = new Event();
e.time = event.time;
e.character = event.character;
e.keyCode = event.keyCode;
e.stateMask = event.stateMask;
notifyListeners(SWT.KeyUp, e);
break;
}
case SWT.KeyDown:
{
if (event.character == SWT.ESC) {
// Escape key cancels popup list
dropDown(false);
}
if ((event.stateMask & SWT.ALT) != 0 && (event.keyCode == SWT.ARROW_UP || event.keyCode == SWT.ARROW_DOWN)) {
dropDown(false);
}
if (event.character == SWT.CR) {
// // Enter causes default selection
// System.out.println("test");
// dropDown(false);
// Event e = new Event();
// e.time = event.time;
// e.stateMask = event.stateMask;
// notifyListeners(SWT.MouseDown, e);
int index = table.getSelectionIndex();
if (index == -1)
return;
// refresh the text.
refreshText(index);
// set the selection in the table.
table.setSelection(index);
Event e = new Event();
e.time = event.time;
e.stateMask = event.stateMask;
e.doit = event.doit;
notifyListeners(SWT.Selection, e);
event.doit = e.doit;
}
// If so, do not continue.
if (isDisposed())
break;
Event e = new Event();
e.time = event.time;
e.character = event.character;
e.keyCode = event.keyCode;
e.stateMask = event.stateMask;
notifyListeners(SWT.KeyDown, e);
break;
}
}
}
use of org.eclipse.swt.widgets.Event in project translationstudio8 by heartsome.
the class GridItem method handleVirtual.
private void handleVirtual() {
if ((getParent().getStyle() & SWT.VIRTUAL) != 0 && !hasSetData) {
hasSetData = true;
Event event = new Event();
event.item = this;
if (parentItem == null) {
event.index = getParent().indexOf(this);
} else {
event.index = parentItem.indexOf(this);
}
getParent().notifyListeners(SWT.SetData, event);
}
}
use of org.eclipse.swt.widgets.Event in project translationstudio8 by heartsome.
the class Grid method onMouseDoubleClick.
/**
* Mouse double click event handler.
*
* @param e event
*/
private void onMouseDoubleClick(MouseEvent e) {
if (e.button == 1) {
if (hoveringOnColumnResizer) {
columnBeingResized.pack();
columnBeingResized.fireResized();
for (int index = displayOrderedColumns.indexOf(columnBeingResized) + 1; index < displayOrderedColumns.size(); index++) {
GridColumn col = (GridColumn) displayOrderedColumns.get(index);
if (col.isVisible())
col.fireMoved();
}
resizingColumn = false;
handleHoverOnColumnResizer(e.x, e.y);
return;
} else if (rowsResizeable && hoveringOnRowResizer) {
List sel = Arrays.asList(getSelection());
if (sel.contains(rowBeingResized)) {
// so update all selected rows
for (int cnt = 0; cnt < sel.size(); cnt++) ((GridItem) sel.get(cnt)).pack();
redraw();
} else {
// otherwise only update the row the user double-clicked
rowBeingResized.pack();
}
resizingRow = false;
handleHoverOnRowResizer(e.x, e.y);
return;
}
GridItem item = getItem(new Point(e.x, e.y));
if (item != null) {
if (isListening(SWT.DefaultSelection)) {
Event newEvent = new Event();
newEvent.item = item;
notifyListeners(SWT.DefaultSelection, newEvent);
} else if (item.getItemCount() > 0) {
item.setExpanded(!item.isExpanded());
if (item.isExpanded()) {
item.fireEvent(SWT.Expand);
} else {
item.fireEvent(SWT.Collapse);
}
}
}
}
}
Aggregations