Search in sources :

Example 11 with Event

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);
    }
}
Also used : Listener(org.eclipse.swt.widgets.Listener) Grid(org.eclipse.nebula.widgets.grid.Grid) Event(org.eclipse.swt.widgets.Event)

Example 12 with Event

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;
}
Also used : DisposeListener(org.eclipse.swt.events.DisposeListener) IDoubleClickListener(org.eclipse.jface.viewers.IDoubleClickListener) ISelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) Listener(org.eclipse.swt.widgets.Listener) MenuDetectListener(org.eclipse.swt.events.MenuDetectListener) Sash(org.eclipse.swt.widgets.Sash) GridData(org.eclipse.swt.layout.GridData) DisposeEvent(org.eclipse.swt.events.DisposeEvent) MenuDetectEvent(org.eclipse.swt.events.MenuDetectEvent) SelectionChangedEvent(org.eclipse.jface.viewers.SelectionChangedEvent) Event(org.eclipse.swt.widgets.Event) DoubleClickEvent(org.eclipse.jface.viewers.DoubleClickEvent) ShellEvent(org.eclipse.swt.events.ShellEvent) SelectionEvent(org.eclipse.swt.events.SelectionEvent) Point(org.eclipse.swt.graphics.Point)

Example 13 with Event

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;
            }
    }
}
Also used : TableItem(org.eclipse.swt.widgets.TableItem) Event(org.eclipse.swt.widgets.Event) AccessibleControlEvent(org.eclipse.swt.accessibility.AccessibleControlEvent) AccessibleTextEvent(org.eclipse.swt.accessibility.AccessibleTextEvent) AccessibleEvent(org.eclipse.swt.accessibility.AccessibleEvent) SelectionEvent(org.eclipse.swt.events.SelectionEvent) Point(org.eclipse.swt.graphics.Point) Point(org.eclipse.swt.graphics.Point)

Example 14 with Event

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);
    }
}
Also used : Event(org.eclipse.swt.widgets.Event)

Example 15 with 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);
                }
            }
        }
    }
}
Also used : FocusEvent(org.eclipse.swt.events.FocusEvent) DropTargetEvent(org.eclipse.swt.dnd.DropTargetEvent) PaintEvent(org.eclipse.swt.events.PaintEvent) TraverseEvent(org.eclipse.swt.events.TraverseEvent) MouseEvent(org.eclipse.swt.events.MouseEvent) AccessibleEvent(org.eclipse.swt.accessibility.AccessibleEvent) Event(org.eclipse.swt.widgets.Event) AccessibleControlEvent(org.eclipse.swt.accessibility.AccessibleControlEvent) TreeEvent(org.eclipse.swt.events.TreeEvent) SelectionEvent(org.eclipse.swt.events.SelectionEvent) List(java.util.List) ArrayList(java.util.ArrayList) Point(org.eclipse.swt.graphics.Point) Point(org.eclipse.swt.graphics.Point)

Aggregations

Event (org.eclipse.swt.widgets.Event)191 Listener (org.eclipse.swt.widgets.Listener)153 SelectionEvent (org.eclipse.swt.events.SelectionEvent)102 GridData (org.eclipse.swt.layout.GridData)74 Composite (org.eclipse.swt.widgets.Composite)62 GridLayout (org.eclipse.swt.layout.GridLayout)57 Point (org.eclipse.swt.graphics.Point)51 FocusEvent (org.eclipse.swt.events.FocusEvent)42 Button (org.eclipse.swt.widgets.Button)41 Label (org.eclipse.swt.widgets.Label)39 SelectionListener (org.eclipse.swt.events.SelectionListener)35 Table (org.eclipse.swt.widgets.Table)34 Text (org.eclipse.swt.widgets.Text)31 MouseEvent (org.eclipse.swt.events.MouseEvent)29 TableViewer (org.eclipse.jface.viewers.TableViewer)27 DisposeEvent (org.eclipse.swt.events.DisposeEvent)27 DisposeListener (org.eclipse.swt.events.DisposeListener)25 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)25 KeyEvent (org.eclipse.swt.events.KeyEvent)24 TableColumn (org.eclipse.swt.widgets.TableColumn)23