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

📄 watchlisttableviewer.java

📁 EclipseTrader is a stock exchange analysis system, featuring shares pricing watch, intraday and hi
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                watchlistSelection = new WatchlistItem[selection.length];                if (SecurityTransfer.getInstance().isSupportedType(event.dataType))                {                    Security[] securities = new Security[selection.length];                    for (int i = 0; i < selection.length; i++)                    {                        WatchlistTableItem item = (WatchlistTableItem)selection[i];                        securities[i] = item.getWatchlistItem().getSecurity();                        watchlistSelection[i] = item.getWatchlistItem();                    }                    event.data = securities;                }                else if (WatchlistItemTransfer.getInstance().isSupportedType(event.dataType))                {                    for (int i = 0; i < selection.length; i++)                    {                        WatchlistTableItem item = (WatchlistTableItem)selection[i];                        watchlistSelection[i] = item.getWatchlistItem();                    }                    event.data = watchlistSelection;                }                else if (TextTransfer.getInstance().isSupportedType(event.dataType))                {                    StringBuffer data = new StringBuffer();                    for (int i = 0; i < selection.length; i++)                    {                        WatchlistTableItem item = (WatchlistTableItem)selection[i];                        for (int c = 1; c < table.getColumnCount(); c++)                        {                            if (c > 1)                                data.append(";");                            data.append(item.getText(c));                        }                        data.append("\r\n");                        watchlistSelection[i] = item.getWatchlistItem();                    }                    event.data = data.toString();                }            }            public void dragFinished(DragSourceEvent event)            {                if (event.doit && event.detail == DND.DROP_MOVE && watchlistSelection != null)                {                    for (int i = 0; i < watchlistSelection.length; i++)                        getView().getWatchlist().getItems().remove(watchlistSelection[i]);                }                watchlistSelection = null;            }        });        MenuManager menuMgr = new MenuManager("#popupMenu", "popupMenu"); //$NON-NLS-1$ //$NON-NLS-2$        menuMgr.setRemoveAllWhenShown(true);        menuMgr.addMenuListener(new IMenuListener() {            public void menuAboutToShow(IMenuManager menuManager)            {                menuManager.add(new Separator("top")); //$NON-NLS-1$                menuManager.add(new Separator("search")); //$NON-NLS-1$                getView().fillMenuBars(menuManager);                menuManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));                menuManager.add(new Separator("bottom")); //$NON-NLS-1$                menuManager.add(propertiesAction);            }        });        table.setMenu(menuMgr.createContextMenu(table));        getView().getSite().registerContextMenu(menuMgr, getView().getSite().getSelectionProvider());        return content;    }	/* (non-Javadoc)     * @see org.eclipse.ui.part.WorkbenchPart#setFocus()     */    void setFocus()    {        table.getParent().setFocus();    }        /* (non-Javadoc)     * @see org.eclipse.ui.part.WorkbenchPart#dispose()     */    public void dispose()    {        IThemeManager themeManager = PlatformUI.getWorkbench().getThemeManager();        themeManager.removePropertyChangeListener(themeChangeListener);        ITheme theme = themeManager.getCurrentTheme();        theme.removePropertyChangeListener(themeChangeListener);        IActionBars actionBars = getViewSite().getActionBars();        actionBars.setGlobalActionHandler("properties", null);        IMenuManager menuManager = getViewSite().getActionBars().getMenuManager();        menuManager.remove(toggleShowTotals.getId());        menuManager.remove(autoResizeAction.getId());                if (content != null)            content.dispose();    }    public void updateView()    {        int index;        TableColumn tableColumn;        String[] items = getView().getPreferenceStore().getString(WatchlistView.PREFS_SORTING).split(";");        if (items.length != 2)            items = new String[] { "", "0" };        sortDirection = new Integer(items[1]).intValue();        index = 1;        for (Iterator iter = getView().getWatchlist().getColumns().iterator(); iter.hasNext(); )        {            WatchlistColumn column = (WatchlistColumn)iter.next();            String name = "";            int style = SWT.LEFT;            Image image = null;            ILabelProvider provider = ColumnRegistry.createLabelProvider(column.getId());            if (provider != null)            {                LogFactory.getLog(getClass()).debug("Adding column [" + column.getId() + "]");                name = ColumnRegistry.getName(column.getId());                style = ColumnRegistry.getOrientation(column.getId());                                if (provider instanceof ITableLabelProvider)                {                    name = ((ITableLabelProvider)provider).getColumnText(getView().getWatchlist(), index);                    image = ((ITableLabelProvider)provider).getColumnImage(getView().getWatchlist(), index);                }            }            else                LogFactory.getLog(getClass()).warn("Missing column [" + column.getId() + "]");                        if (index < table.getColumnCount())            {                tableColumn = table.getColumn(index);                tableColumn.setAlignment(style);                if (tableColumn.getData("labelProvider") != null)                    ((ILabelProvider)tableColumn.getData("labelProvider")).dispose();            }            else            {                tableColumn = new EditableTableColumn(table, style);                tableColumn.addControlListener(columnControlListener);                tableColumn.addDisposeListener(new DisposeListener() {                    public void widgetDisposed(DisposeEvent e)                    {                        if (e.widget.getData("labelProvider") != null)                            ((ILabelProvider)e.widget.getData("labelProvider")).dispose();                    }                });                tableColumn.addSelectionListener(columnSelectionListener);            }            tableColumn.setText(name);            tableColumn.setImage(image);            tableColumn.setData(column);            tableColumn.setData("labelProvider", provider);            if (column.getId().equals(items[0]))                sortColumn = index;                        index++;        }                while(index < table.getColumnCount())            table.getColumn(index).dispose();        list = new ArrayList(getView().getWatchlist().getItems());        if (sortColumn >= 1 && sortColumn < table.getColumnCount())        {            table.setSortColumn(table.getColumn(sortColumn));            table.setSortDirection(sortDirection == 0 ? SWT.UP : SWT.DOWN);            Collections.sort(list, comparator);        }        else        {            table.setSortColumn(null);            sortColumn = -1;            sortDirection = 0;        }        updateTableContents();        PreferenceStore preferences = getView().getPreferenceStore();         for (int i = 1; i < table.getColumnCount(); i++)        {            WatchlistColumn column = (WatchlistColumn)table.getColumn(i).getData();            preferences.setDefault(column.getId() + ".width", -1);            int size = preferences.getInt(column.getId() + ".width");            if (size != -1)                table.getColumn(i).setWidth(size);            else                table.getColumn(i).pack();        }        if ("gtk".equals(SWT.getPlatform()))            table.getColumn(table.getColumnCount() - 1).pack();    }        public void updateTableContents()    {        WatchlistTableItem tableItem;        int index = 0;        for (Iterator iter = list.iterator(); iter.hasNext(); )        {            WatchlistItem watchlistItem = (WatchlistItem)iter.next();            if (index < table.getItemCount())            {                if (table.getItem(index) instanceof WatchlistTableItem)                {                    tableItem = (WatchlistTableItem)table.getItem(index);                    tableItem.setWatchlistItem(watchlistItem);                }                else                    tableItem = new WatchlistTableItem(table, SWT.NONE, index, watchlistItem);            }            else                tableItem = new WatchlistTableItem(table, SWT.NONE, index, watchlistItem);            tableItem.setBackground(((index & 1) == 1) ? oddBackground : evenBackground);            tableItem.setForeground(((index & 1) == 1) ? oddForeground : evenForeground);                        tableItem.ticker.setBackground(tickBackground);            index++;        }                if (showTotals)        {            WatchlistTotalsTableItem item = null;            if (index < table.getItemCount())            {                if (table.getItem(index) instanceof WatchlistTotalsTableItem)                {                    item = (WatchlistTotalsTableItem) table.getItem(index);                    item.setWatchlistItem(getView().getWatchlist().getTotals());                }            }            if (item == null)                item = new WatchlistTotalsTableItem(table, SWT.NONE, getView().getWatchlist().getTotals());            item.setBackground(totalsBackground);            item.setForeground(totalsForeground);            index++;        }        table.setItemCount(index);    }    public void update(Observable o, Object arg)    {        table.getDisplay().asyncExec(new Runnable() {            public void run()            {                if (!table.isDisposed())                    updateView();            }        });    }        private void updateSelection()    {        boolean enable = false;        if (table.getSelectionCount() != 0 && table.getSelection()[0] instanceof WatchlistTableItem)        {            WatchlistTableItem tableItem = (WatchlistTableItem)table.getSelection()[0];            if (selectedColumn != null)                getView().getSite().getSelectionProvider().setSelection(new WatchlistColumnSelection(tableItem.getWatchlistItem(), selectedColumn));            else                getView().getSite().getSelectionProvider().setSelection(new WatchlistItemSelection(tableItem.getWatchlistItem()));            enable = true;        }        else            getView().getSite().getSelectionProvider().setSelection(new NullSelection());        IActionBars actionBars = getViewSite().getActionBars();        actionBars.getGlobalActionHandler("cut").setEnabled(enable);        actionBars.getGlobalActionHandler("copy").setEnabled(enable);        actionBars.getGlobalActionHandler("delete").setEnabled(enable);        actionBars.getGlobalActionHandler("properties").setEnabled(enable);    }    public void itemAdded(Object o)    {        if (o instanceof WatchlistItem)        {            int index = getView().getWatchlist().getItems().indexOf(o);            list.add(index >= 0 ? index : list.size(), o);            if (sortColumn >= 0)                Collections.sort(list, comparator);            updateView();        }/*        {            WatchlistItem watchlistItem = (WatchlistItem)o;            int index = table.getItemCount();            if (showTotals)                index--;            WatchlistTableItem tableItem = new WatchlistTableItem(table, SWT.NONE, index, watchlistItem);            tableItem.setBackground(((index & 1) == 1) ? oddBackground : evenBackground);        }*/    }    public void itemRemoved(Object o)    {        TableItem[] items = table.getItems();        for (int i = 0; i < items.length; i++)        {            if (!(items[i] instanceof WatchlistTableItem))                continue;            WatchlistTableItem tableItem = (WatchlistTableItem)items[i];            if (tableItem.getWatchlistItem().equals(o))            {                tableItem.dispose();                for (; i < table.getItemCount() - 1; i++)                    table.getItem(i).setBackground(((i & 1) == 1) ? oddBackground : evenBackground);                break;            }        }                list.remove(o);                if (table.getSelectionCount() != 0)        {            WatchlistTableItem tableItem = (WatchlistTableItem)table.getSelection()[0];            getView().getSite().getSelectionProvider().setSelection(new WatchlistItemSelection(tableItem.getWatchlistItem()));        }        else            getView().getSite().getSelectionProvider().setSelection(new NullSelection());    }        public boolean isShowTotals()    {        return showTotals;    }    public void setShowTotals(boolean showTotals)    {

⌨️ 快捷键说明

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