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

📄 watchlisttableviewer.java

📁 EclipseTrader is a stock exchange analysis system, featuring shares pricing watch, intraday and hi
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        this.showTotals = showTotals;        getView().getPreferenceStore().setValue(WatchlistView.PREFS_SHOW_TOTALS, showTotals);    }        /* (non-Javadoc)     * @see net.sourceforge.eclipsetrader.trading.internal.AbstractLayout#getSelection()     */    public WatchlistItem[] getSelection()    {        TableItem selection[] = table.getSelection();        WatchlistItem[] items = new WatchlistItem[selection.length];        for (int i = 0; i < selection.length; i++)        {            WatchlistTableItem item = (WatchlistTableItem)selection[i];            items[i] = item.getWatchlistItem();        }        return items;    }    /* (non-Javadoc)     * @see net.sourceforge.eclipsetrader.trading.internal.AbstractLayout#tickAlert(net.sourceforge.eclipsetrader.core.db.WatchlistItem, org.eclipse.swt.graphics.RGB, org.eclipse.swt.graphics.RGB)     */    public void tickAlert(WatchlistItem watchlistItem, RGB foreground, RGB background)    {        TableItem[] items = table.getItems();        for (int i = 0; i < items.length; i++)        {            WatchlistTableItem tableItem = (WatchlistTableItem)items[i];            if (tableItem.getWatchlistItem().equals(watchlistItem))            {                Color fg = foreground != null ? new Color(null, foreground) : null;                Color bg = background != null ? new Color(null, background) : new Color(null, alertHilightBackground.getRGB());                tableItem.ticker.tick(bg, fg);                if (bg != null)                    bg.dispose();                if (fg != null)                    fg.dispose();                break;            }        }    }        /* (non-Javadoc)     * @see net.sourceforge.eclipsetrader.trading.internal.AbstractLayout#getItemIndex(org.eclipse.swt.graphics.Point)     */    public int getItemIndex(Point point)    {        TableItem tableItem = table.getItem(table.toControl(point));         return tableItem != null ? table.indexOf(tableItem) : -1;    }    protected void setTheme(ITheme theme)    {        positiveForeground = theme.getColorRegistry().get(POSITIVE_FOREGROUND);        negativeForeground = theme.getColorRegistry().get(NEGATIVE_FOREGROUND);        evenForeground = theme.getColorRegistry().get(EVEN_ROWS_FOREGROUND);        evenBackground = theme.getColorRegistry().get(EVEN_ROWS_BACKGROUND);        oddForeground = theme.getColorRegistry().get(ODD_ROWS_FOREGROUND);        oddBackground = theme.getColorRegistry().get(ODD_ROWS_BACKGROUND);        totalsForeground = theme.getColorRegistry().get(TOTALS_ROWS_FOREGROUND);        totalsBackground = theme.getColorRegistry().get(TOTALS_ROWS_BACKGROUND);        tickBackground = theme.getColorRegistry().get(TICK_BACKGROUND);        alertHilightBackground = theme.getColorRegistry().get(ALERT_BACKGROUND);        theme.addPropertyChangeListener(themeChangeListener);    }    public Table getTable()    {        return table;    }    protected WatchlistColumn getColumn(MouseEvent e)    {        Point p = new Point(e.x, e.y);        TableItem item = table.getItem(p);        if (item != null)        {            for (int i = 0; i < table.getColumnCount(); i++)            {                Rectangle rect = item.getBounds(i);                if (rect.contains(p))                {                    TableColumn column = table.getColumn(i);                    if (column.getData() instanceof WatchlistColumn)                        return (WatchlistColumn) column.getData();                }            }        }        return null;    }        private class WatchlistTableItem extends TableItem implements DisposeListener, Observer, IEditableItem    {        private WatchlistItem watchlistItem;        private CellTicker ticker;        WatchlistTableItem(Table parent, int style, int index, WatchlistItem watchlistItem)        {            super(parent, style, index);            addDisposeListener(this);            ticker = new CellTicker(this, CellTicker.BACKGROUND|CellTicker.FOREGROUND);            setWatchlistItem(watchlistItem);        }        WatchlistTableItem(Table parent, int style, WatchlistItem watchlistItem)        {            super(parent, style);            addDisposeListener(this);            ticker = new CellTicker(this, CellTicker.BACKGROUND|CellTicker.FOREGROUND);            setWatchlistItem(watchlistItem);        }        /* (non-Javadoc)         * @see org.eclipse.swt.widgets.TableItem#checkSubclass()         */        protected void checkSubclass()        {        }                void setWatchlistItem(WatchlistItem watchlistItem)        {            if (this.watchlistItem != null)                this.watchlistItem.deleteObserver(this);            this.watchlistItem = watchlistItem;                        update(false);                        this.watchlistItem.addObserver(this);        }                WatchlistItem getWatchlistItem()        {            return watchlistItem;        }                void update(boolean tick)        {            TableColumn[] columns = getParent().getColumns();            for (int i = 1; i < columns.length; i++)            {                ILabelProvider provider = (ILabelProvider)columns[i].getData("labelProvider");                 if (provider == null)                    continue;                Image image = provider.getImage(watchlistItem);                if (!tick || image != getImage(i))                    setImage(i, image);                String value = provider.getText(watchlistItem);                if (!tick || !value.equals(getText(i)))                {                    setText(i, value);                    if (value.startsWith("+"))                        setForeground(i, positiveForeground);                    else if (value.startsWith("-"))                        setForeground(i, negativeForeground);                    else                        setForeground(i, null);                                        if (tick)                    {                        if (provider instanceof IEditableLabelProvider)                        {                            if (!((IEditableLabelProvider)provider).isEditable(watchlistItem))                                ticker.tick(i);                        }                        else                            ticker.tick(i);                    }                }            }        }                /* (non-Javadoc)         * @see java.util.Observer#update(java.util.Observable, java.lang.Object)         */        public void update(Observable o, Object arg)        {            getDisplay().asyncExec(new Runnable() {                public void run()                {                    if (!isDisposed())                        update(true);                }            });        }        /* (non-Javadoc)         * @see net.sourceforge.eclipsetrader.core.ui.widgets.IEditableItem#canEdit(int)         */        public boolean canEdit(int index)        {            ILabelProvider provider = (ILabelProvider)getParent().getColumn(index).getData("labelProvider");            if (provider != null && (provider instanceof IEditableLabelProvider))                return ((IEditableLabelProvider)provider).isEditable(watchlistItem);            return false;        }        /* (non-Javadoc)         * @see net.sourceforge.eclipsetrader.core.ui.widgets.IEditableItem#isEditable()         */        public boolean isEditable()        {            return true;        }        /* (non-Javadoc)         * @see net.sourceforge.eclipsetrader.core.ui.widgets.IEditableItem#itemEdited(int, java.lang.String)         */        public void itemEdited(int index, String text)        {            ILabelProvider provider = (ILabelProvider)getParent().getColumn(index).getData("labelProvider");            if (provider != null && (provider instanceof IEditableLabelProvider))                ((IEditableLabelProvider)provider).setEditableText(watchlistItem, text);        }        /* (non-Javadoc)         * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(org.eclipse.swt.events.DisposeEvent)         */        public void widgetDisposed(DisposeEvent e)        {            if (watchlistItem != null)                watchlistItem.deleteObserver(this);            ticker.dispose();        }    }        private class WatchlistTotalsTableItem extends TableItem implements DisposeListener, Observer, IEditableItem    {        private WatchlistItem watchlistItem;        WatchlistTotalsTableItem(Table parent, int style, int index, WatchlistItem watchlistItem)        {            super(parent, style, index);            addDisposeListener(this);            setWatchlistItem(watchlistItem);        }        WatchlistTotalsTableItem(Table parent, int style, WatchlistItem watchlistItem)        {            super(parent, style);            addDisposeListener(this);            setWatchlistItem(watchlistItem);        }        /* (non-Javadoc)         * @see org.eclipse.swt.widgets.TableItem#checkSubclass()         */        protected void checkSubclass()        {        }                void setWatchlistItem(WatchlistItem watchlistItem)        {            if (this.watchlistItem != null)                this.watchlistItem.deleteObserver(this);            this.watchlistItem = watchlistItem;            update();                        this.watchlistItem.addObserver(this);        }                WatchlistItem getWatchlistItem()        {            return watchlistItem;        }                void update()        {            TableColumn[] columns = getParent().getColumns();            for (int i = 1; i < columns.length; i++)            {                ILabelProvider provider = (ILabelProvider)columns[i].getData("labelProvider");                 String value = provider.getText(watchlistItem.getParent());                if (!value.equals(getText(i)))                    setText(i, value);                Image image = provider.getImage(watchlistItem.getParent());                if (image != getImage(i))                    setImage(i, image);            }        }                /* (non-Javadoc)         * @see java.util.Observer#update(java.util.Observable, java.lang.Object)         */        public void update(Observable o, Object arg)        {            getDisplay().asyncExec(new Runnable() {                public void run()                {                    if (!isDisposed())                        update();                }            });        }        /* (non-Javadoc)         * @see net.sourceforge.eclipsetrader.core.ui.widgets.IEditableItem#canEdit(int)         */        public boolean canEdit(int index)        {            return false;        }        /* (non-Javadoc)         * @see net.sourceforge.eclipsetrader.core.ui.widgets.IEditableItem#isEditable()         */        public boolean isEditable()        {            return true;        }        /* (non-Javadoc)         * @see net.sourceforge.eclipsetrader.core.ui.widgets.IEditableItem#itemEdited(int, java.lang.String)         */        public void itemEdited(int index, String text)        {        }        /* (non-Javadoc)         * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(org.eclipse.swt.events.DisposeEvent)         */        public void widgetDisposed(DisposeEvent e)        {            if (watchlistItem != null)                watchlistItem.deleteObserver(this);        }    }}

⌨️ 快捷键说明

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