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

📄 chartview.java

📁 EclipseTrader is a stock exchange analysis system, featuring shares pricing watch, intraday and hi
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        final ChartTabFolder folder = new ChartTabFolder(sashForm, SWT.TOP|SWT.FLAT|SWT.BORDER, (ChartRow)o);        tabGroups.add(folder);        ((ChartRow)o).clearChanged();    }    /* (non-Javadoc)     * @see net.sourceforge.eclipsetrader.core.ICollectionObserver#itemRemoved(java.lang.Object)     */    public void itemRemoved(Object o)    {        for (int i = tabGroups.size() - 1; i >= 0; i--)        {            if (((ChartTabFolder)tabGroups.get(i)).getChartRow().equals(o))            {                ((ChartTabFolder)tabGroups.get(i)).dispose();                tabGroups.remove(i);                sashForm.layout(true);            }        }    }    /* (non-Javadoc)     * @see org.eclipse.swt.custom.CTabFolder2Listener#close(org.eclipse.swt.custom.CTabFolderEvent)     */    public void close(CTabFolderEvent event)    {        ChartTabFolder folder = (ChartTabFolder)event.widget;        ChartTabItem item = (ChartTabItem)event.item;                if (MessageDialog.openQuestion(folder.getShell(), getPartName(), Messages.ChartView_DeleteMessagePrefix + item.getText() + Messages.ChartView_DeleteMessageSuffix))        {            final ChartTab tab = item.getChartTab();            sashForm.getDisplay().asyncExec(new Runnable() {               public void run()               {                   tab.getParent().getTabs().remove(tab);                   if (tab.getParent().getTabs().size() == 0)                   {                       ChartRow row = tab.getParent();                       row.getParent().getRows().remove(row);                   }                   CorePlugin.getRepository().save(chart);                   getSite().getSelectionProvider().setSelection(new NullSelection());               }            });        }                event.doit = false;    }    /* (non-Javadoc)     * @see org.eclipse.swt.custom.CTabFolder2Listener#maximize(org.eclipse.swt.custom.CTabFolderEvent)     */    public void maximize(CTabFolderEvent event)    {        sashForm.setMaximizedControl((ChartTabFolder)event.widget);        ((ChartTabFolder)event.widget).setMaximized(true);    }    /* (non-Javadoc)     * @see org.eclipse.swt.custom.CTabFolder2Listener#minimize(org.eclipse.swt.custom.CTabFolderEvent)     */    public void minimize(CTabFolderEvent event)    {    }    /* (non-Javadoc)     * @see org.eclipse.swt.custom.CTabFolder2Listener#restore(org.eclipse.swt.custom.CTabFolderEvent)     */    public void restore(CTabFolderEvent event)    {        sashForm.setMaximizedControl(null);        ((ChartTabFolder)event.widget).setMaximized(false);        ((ChartTabFolder)event.widget).setMinimized(false);    }    /* (non-Javadoc)     * @see org.eclipse.swt.custom.CTabFolder2Listener#showList(org.eclipse.swt.custom.CTabFolderEvent)     */    public void showList(CTabFolderEvent event)    {    }    /* (non-Javadoc)     * @see net.sourceforge.eclipsetrader.events.PlotMouseListener#mouseDown(net.sourceforge.eclipsetrader.events.PlotMouseEvent)     */    public void mouseDown(PlotMouseEvent e)    {        if (!e.plot.getSelection())        {            for(Iterator iter = tabGroups.iterator(); iter.hasNext(); )            {                CTabFolder folder = (CTabFolder)iter.next();                Plot plot = (Plot)folder.getSelection().getControl();                if (plot == e.plot)                {                    if (!plot.getSelection())                    {                        plot.setSelection(true);                        plot.getScalePlot().redraw();                        plot.getScalePlot().update();                        getSite().getSelectionProvider().setSelection(new TabSelection(((ChartTabItem) folder.getSelection()).getChartTab()));                    }                }                else                {                    if (plot.getIndicatorPlot().getSelection() != null || plot.getIndicatorPlot().getObjectSelection() != null)                    {                        plot.getIndicatorPlot().deselectAll();                        plot.getIndicatorPlot().redrawAll();                        plot.getIndicatorPlot().update();                    }                    if (plot.getSelection())                    {                        plot.setSelection(false);                        plot.getScalePlot().redraw();                        plot.getScalePlot().update();                    }                }            }                        if (newChartObject == null)                return;        }        if (e.button == 1)        {            if (newChartObject != null)            {                sashForm.setCursor(null);                Plot plot = e.plot;                ChartTabFolder folder = (ChartTabFolder)plot.getParent();                ChartTabItem item = (ChartTabItem)folder.getSelection();                item.createNewObject(newChartObject, e);                                newChartObject = null;                return;            }                        for(Iterator iter = tabGroups.iterator(); iter.hasNext(); )            {                CTabFolder folder = (CTabFolder)iter.next();                Plot plot = (Plot)folder.getSelection().getControl();                GC gc = new GC(plot.getIndicatorPlot());                gc.drawLine(e.mouse.x, 0, e.mouse.x, plot.getSize().y);                if (plot == e.plot)                {                    gc.drawLine(0, e.mouse.y, plot.getSize().x, e.mouse.y);                    plot.getScalePlot().setLabel(e.mouse.y);                }                gc.dispose();                plot.updateSummary(e.mouse.x);            }            datePlot.setLabel(e.mouse.x);            oldMouseX = e.mouse.x;            oldMouseY = e.mouse.y;        }    }    /* (non-Javadoc)     * @see net.sourceforge.eclipsetrader.events.PlotMouseListener#mouseMove(net.sourceforge.eclipsetrader.events.PlotMouseEvent)     */    public void mouseMove(PlotMouseEvent e)    {        for(Iterator iter = tabGroups.iterator(); iter.hasNext(); )        {            CTabFolder folder = (CTabFolder)iter.next();            Plot plot = (Plot)folder.getSelection().getControl();            plot.getIndicatorPlot().redraw(oldMouseX, 0, 1, plot.getSize().y, false);            plot.getIndicatorPlot().update();            if (plot == e.plot)            {                plot.getIndicatorPlot().redraw(0, oldMouseY, plot.getSize().x, 1, false);                plot.getIndicatorPlot().update();            }            GC gc = new GC(plot.getIndicatorPlot());            gc.drawLine(e.mouse.x, 0, e.mouse.x, plot.getSize().y);            if (plot == e.plot)            {                gc.drawLine(0, e.mouse.y, plot.getSize().x, e.mouse.y);                plot.getScalePlot().setLabel(e.mouse.y);            }            gc.dispose();            plot.updateSummary(e.mouse.x);        }        datePlot.setLabel(e.mouse.x);        oldMouseX = e.mouse.x;        oldMouseY = e.mouse.y;    }    /* (non-Javadoc)     * @see net.sourceforge.eclipsetrader.events.PlotMouseListener#mouseUp(net.sourceforge.eclipsetrader.events.PlotMouseEvent)     */    public void mouseUp(PlotMouseEvent e)    {        Plot plot = (Plot)e.plot;        CTabFolder folder = (CTabFolder)plot.getParent();        ChartTabItem item = (ChartTabItem)folder.getSelection();        for(Iterator iter = item.getObjects().iterator(); iter.hasNext(); )        {            ChartObject object = (ChartObject)iter.next();            if (plot.getIndicatorPlot().getObjectSelection() == object.getData())            {                ObjectPlugin plugin = (ObjectPlugin)object.getData();                object.setParameters(plugin.getSettings().getMap());                CorePlugin.getRepository().save(chart);            }        }                for(Iterator iter = tabGroups.iterator(); iter.hasNext(); )        {            folder = (CTabFolder)iter.next();            plot = (Plot)folder.getSelection().getControl();            plot.getIndicatorPlot().redraw(oldMouseX, 0, 1, plot.getSize().y, false);            plot.getIndicatorPlot().update();            if (plot == e.plot)            {                plot.getIndicatorPlot().redraw(0, oldMouseY, plot.getSize().x, 1, false);                plot.getIndicatorPlot().update();                plot.getScalePlot().hideLabel();            }            plot.updateSummary();        }        datePlot.hideLabel();    }    /* (non-Javadoc)     * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)     */    public void selectionChanged(IWorkbenchPart part, ISelection selection)    {        if (followSelection)        {            if (selection instanceof SecuritySelection)                setSecurity(((SecuritySelection) selection).getSecurity());        }    }    public class ChartTabFolder extends CTabFolder implements ICollectionObserver, IPropertyChangeListener    {        private ChartRow chartRow;        private int autoHideTabs = HIDE_TABS_NEVER;        public ChartTabFolder(Composite parent, int style, ChartRow row)        {            super(parent, style|SWT.CLOSE);            this.chartRow = row;            addDisposeListener(new DisposeListener() {                public void widgetDisposed(DisposeEvent e)                {                    ChartsPlugin.getDefault().getPreferenceStore().removePropertyChangeListener(ChartTabFolder.this);                    PlatformUI.getPreferenceStore().removePropertyChangeListener(ChartTabFolder.this);                    ChartTabFolder.this.chartRow.getTabs().removeCollectionObserver(ChartTabFolder.this);                }            });            this.chartRow.getTabs().addCollectionObserver(this);            addCTabFolder2Listener(ChartView.this);            setMaximizeVisible(true);            setMinimizeVisible(false);            setSimple(PlatformUI.getPreferenceStore().getBoolean(IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS)); //$NON-NLS-1$            addSelectionListener(new SelectionAdapter() {                public void widgetSelected(SelectionEvent e)                {                    if (e.item instanceof ChartTabItem)                    {                        for (Iterator iter = tabGroups.iterator(); iter.hasNext(); )                        {                            CTabItem[] items = ((CTabFolder) iter.next()).getItems();                            for(int i = 0; i < items.length; i++)                            {                                Plot plot = ((ChartTabItem) items[i]).getPlot();                                if (items[i] == e.item)                                {                                    if (!plot.getSelection())                                    {                                        plot.setSelection(true);                                        plot.getScalePlot().redraw();                                        plot.getScalePlot().update();                                    }                                }                                else                                {                                    if (plot.getSelection())                                    {                                        plot.setSelection(false);                                        plot.getScalePlot().redraw();                                        plot.getScalePlot().update();                                    }                                    if (plot.getIndicatorPlot().getSelection() != null || plot.getIndicatorPlot().getObjectSelection() != null)                                    {                                        plot.getIndicatorPlot().deselectAll();                                        plot.getIndicatorPlot().redrawAll();                                        plot.getIndicatorPlot().update();                                    }                                }                            }                        }                        getSite().getSelectionProvider().setSelection(new TabSelection(((ChartTabItem) e.item).getChartTab()));                    }                }            });           

⌨️ 快捷键说明

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