⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 openstrategy.java

📁 jfa2ce 源码帮助开发人员更好的理解运用
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        for (int i = 0; i < l.length; i++) {            ((SelectionListener) l[i]).widgetSelected(e);        }    }    /*     * Fire the open event to all openEventListeners     */    private void fireOpenEvent(SelectionEvent e) {        if (e.item != null && e.item.isDisposed()) {			return;		}        Object l[] = openEventListeners.getListeners();        for (int i = 0; i < l.length; i++) {            ((IOpenEventListener) l[i]).handleOpen(e);        }    }    //Initialize event handler.    private void initializeHandler(final Display display) {        eventHandler = new Listener() {            boolean timerStarted = false;            Event mouseUpEvent = null;            Event mouseMoveEvent = null;            SelectionEvent selectionPendent = null;            boolean enterKeyDown = false;            SelectionEvent defaultSelectionPendent = null;            boolean arrowKeyDown = false;            final int[] count = new int[1];            long startTime = System.currentTimeMillis();            boolean collapseOccurred = false;            boolean expandOccurred = false;            public void handleEvent(final Event e) {                if (e.type == SWT.DefaultSelection) {                    SelectionEvent event = new SelectionEvent(e);                    fireDefaultSelectionEvent(event);                    if (CURRENT_METHOD == DOUBLE_CLICK) {                        fireOpenEvent(event);                    } else {                        if (enterKeyDown) {                            fireOpenEvent(event);                            enterKeyDown = false;                            defaultSelectionPendent = null;                        } else {                            defaultSelectionPendent = event;                        }                    }                    return;                }                switch (e.type) {                case SWT.MouseEnter:                case SWT.MouseExit:                    mouseUpEvent = null;                    mouseMoveEvent = null;                    selectionPendent = null;                    break;                case SWT.MouseMove:                    if ((CURRENT_METHOD & SELECT_ON_HOVER) == 0) {						return;					}                    if (e.stateMask != 0) {						return;					}                    if (e.widget.getDisplay().getFocusControl() != e.widget) {						return;					}                    mouseMoveEvent = e;                    final Runnable runnable[] = new Runnable[1];                    runnable[0] = new Runnable() {                        public void run() {                            long time = System.currentTimeMillis();                            int diff = (int) (time - startTime);                            if (diff <= TIME) {                                display.timerExec(diff * 2 / 3, runnable[0]);                            } else {                                timerStarted = false;                                setSelection(mouseMoveEvent);                            }                        }                    };                    startTime = System.currentTimeMillis();                    if (!timerStarted) {                        timerStarted = true;                        display.timerExec(TIME * 2 / 3, runnable[0]);                    }                    break;                case SWT.MouseDown:                    mouseUpEvent = null;                    arrowKeyDown = false;                    break;                case SWT.Expand:                    expandOccurred = true;                    break;                case SWT.Collapse:                    collapseOccurred = true;                    break;                case SWT.MouseUp:                    mouseMoveEvent = null;                    if ((e.button != 1) || ((e.stateMask & ~SWT.BUTTON1) != 0)) {						return;					}                    if (selectionPendent != null                            && !(collapseOccurred || expandOccurred)) {                        mouseSelectItem(selectionPendent);                    } else {                        mouseUpEvent = e;                        collapseOccurred = false;                        expandOccurred = false;                    }                    break;                case SWT.KeyDown:                    mouseMoveEvent = null;                    mouseUpEvent = null;                    arrowKeyDown = ((e.keyCode == SWT.ARROW_UP) || (e.keyCode == SWT.ARROW_DOWN))                            && e.stateMask == 0;                    if (e.character == SWT.CR) {                        if (defaultSelectionPendent != null) {                            fireOpenEvent(new SelectionEvent(e));                            enterKeyDown = false;                            defaultSelectionPendent = null;                        } else {                            enterKeyDown = true;                        }                    }                    break;                case SWT.Selection:                    SelectionEvent event = new SelectionEvent(e);                    fireSelectionEvent(event);                    mouseMoveEvent = null;                    if (mouseUpEvent != null) {						mouseSelectItem(event);					} else {						selectionPendent = event;					}                    count[0]++;                    // In the case of arrowUp/arrowDown when in the arrowKeysOpen mode, we                    // want to delay any selection until the last arrowDown/Up occurs.  This                    // handles the case where the user presses arrowDown/Up successively.                    // We only want to open an editor for the last selected item.                    display.asyncExec(new Runnable() {                        public void run() {                            if (arrowKeyDown) {                                display.timerExec(TIME, new Runnable() {                                    int id = count[0];                                    public void run() {                                        if (id == count[0]) {                                            firePostSelectionEvent(new SelectionEvent(                                                    e));                                            if ((CURRENT_METHOD & ARROW_KEYS_OPEN) != 0) {												fireOpenEvent(new SelectionEvent(                                                        e));											}                                        }                                    }                                });                            } else {                                firePostSelectionEvent(new SelectionEvent(e));                            }                        }                    });                    break;                }            }            void mouseSelectItem(SelectionEvent e) {                if ((CURRENT_METHOD & SINGLE_CLICK) != 0) {					fireOpenEvent(e);				}                mouseUpEvent = null;                selectionPendent = null;            }            void setSelection(Event e) {                if (e == null) {					return;				}                Widget w = e.widget;                if (w.isDisposed()) {					return;				}                SelectionEvent selEvent = new SelectionEvent(e);                /*ISSUE: May have to create a interface with method:                 setSelection(Point p) so that user's custom widgets                  can use this class. If we keep this option. */                if (w instanceof Tree) {                    Tree tree = (Tree) w;                    TreeItem item = tree.getItem(new Point(e.x, e.y));                    if (item != null) {						tree.setSelection(new TreeItem[] { item });					}                    selEvent.item = item;                } else if (w instanceof Table) {                    Table table = (Table) w;                    TableItem item = table.getItem(new Point(e.x, e.y));                    if (item != null) {						table.setSelection(new TableItem[] { item });					}                    selEvent.item = item;                } else if (w instanceof TableTree) {                    TableTree table = (TableTree) w;                    TableTreeItem item = table.getItem(new Point(e.x, e.y));                    if (item != null) {						table.setSelection(new TableTreeItem[] { item });					}                    selEvent.item = item;                } else {                    return;                }                if (selEvent.item == null) {					return;				}                fireSelectionEvent(selEvent);                firePostSelectionEvent(selEvent);            }        };    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -