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

📄 chartview.java

📁 EclipseTrader is a stock exchange analysis system, featuring shares pricing watch, intraday and hi
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
    };    Runnable updateMarketValue = new Runnable() {        public void run()        {            if (!sashForm.isDisposed())            {                Control[] rows = sashForm.getChildren();                for (int r = 0; r < rows.length; r++)                {                    if (rows[r] instanceof ChartTabFolder)                    {                        CTabItem[] items = ((ChartTabFolder)rows[r]).getItems();                        for (int i = 0; i < items.length; i++)                        {                            if (items[i] instanceof ChartTabItem)                            {                                ChartTab tab = ((ChartTabItem)items[i]).getChartTab();                                ChartIndicator[] obj = (ChartIndicator[])tab.getIndicators().toArray(new ChartIndicator[tab.getIndicators().size()]);                                for (int x = 0; x < obj.length; x++)                                {                                    if (obj[x].getPluginId().equals("net.sourceforge.eclipsetrader.indicators.bars") || obj[x].getPluginId().equals("net.sourceforge.eclipsetrader.indicators.line"))                                    {                                        Plot plot = ((ChartTabItem)items[i]).getPlot();                                        if (showMarketValue && security.getQuote() != null)                                        {                                            plot.getScalePlot().setMarketValue(security.getQuote().getLast());                                            plot.getIndicatorPlot().setMarketValue(security.getQuote().getLast());                                        }                                        else                                        {                                            plot.getIndicatorPlot().hideMarketValue();                                            plot.getScalePlot().hideMarketValue();                                        }                                        break;                                    }                                }                            }                        }                    }                }            }        }    };    Observer quoteObserver = new Observer() {        public void update(Observable o, Object arg)        {            sashForm.getDisplay().syncExec(new Runnable() {                public void run()                {                    if (!sashForm.isDisposed())                        sashForm.getDisplay().timerExec(200, updateMarketValue);                }            });        }    };    List observedHistories = new ArrayList();    Runnable updateViewRunnable = new Runnable() {        public void run()        {            if (!sashForm.isDisposed())                updateView();        }    };    Observer chartUpdateObserver = new Observer() {        public void update(Observable o, Object arg)        {            sashForm.getDisplay().syncExec(new Runnable() {                public void run()                {                    if (!sashForm.isDisposed())                    {                        setPartName(chart.getTitle());                        sashForm.getDisplay().timerExec(200, updateViewRunnable);                    }                }            });        }    };    IPropertyChangeListener pluginPropertiesChangeListener = new IPropertyChangeListener() {        public void propertyChange(PropertyChangeEvent event)        {            if (event.getProperty().equals(ChartsPlugin.PREFS_EXTEND_SCALE))            {                int range = ((Integer)event.getNewValue()).intValue();                for(Iterator iter = tabGroups.iterator(); iter.hasNext(); )                {                    CTabFolder folder = (CTabFolder)iter.next();                    CTabItem[] items = folder.getItems();                    for (int i = 0; i < items.length; i++)                        ((Plot)items[i].getControl()).getScaler().setExtendRange(range);                }                redrawView();            }            else if (event.getProperty().equals(ChartsPlugin.PREFS_EXTEND_PERIOD))            {                datePlot.setExtendPeriod(((Integer)event.getNewValue()).intValue());                updateView();            }        }    };        public static IPath getPreferenceStoreLocation(Chart chart)    {        return ChartsPlugin.getDefault().getStateLocation().append("chart." + String.valueOf(chart.getId()) + ".prefs");    }    /* (non-Javadoc)     * @see org.eclipse.ui.part.ViewPart#init(org.eclipse.ui.IViewSite)     */    public void init(IViewSite site) throws PartInitException    {        IMenuManager menuManager = site.getActionBars().getMenuManager();        menuManager.add(new Separator("top")); //$NON-NLS-1$        menuManager.add(new Separator("group1")); //$NON-NLS-1$        menuManager.add(new Separator("group2")); //$NON-NLS-1$        menuManager.add(new Separator("group3")); //$NON-NLS-1$        menuManager.add(new Separator("group4")); //$NON-NLS-1$        menuManager.add(new Separator("group5")); //$NON-NLS-1$        menuManager.add(new Separator("group6")); //$NON-NLS-1$        menuManager.add(new Separator("additions")); //$NON-NLS-1$        menuManager.add(new Separator("bottom")); //$NON-NLS-1$                IMenuManager newObjectMenu = new MenuManager(Messages.ChartView_NewObject, "newObject"); //$NON-NLS-2$        menuManager.appendToGroup("group2", newObjectMenu); //$NON-NLS-1$        IExtensionRegistry registry = Platform.getExtensionRegistry();        IExtensionPoint extensionPoint = registry.getExtensionPoint(ChartsPlugin.OBJECTS_EXTENSION_POINT);        if (extensionPoint != null)        {            IConfigurationElement[] members = extensionPoint.getConfigurationElements();            java.util.List plugins = Arrays.asList(members);            Collections.sort(plugins, new Comparator() {                public int compare(Object arg0, Object arg1)                {                    if ((arg0 instanceof IConfigurationElement) && (arg1 instanceof IConfigurationElement))                    {                        String s0 = ((IConfigurationElement) arg0).getAttribute("name"); //$NON-NLS-1$                        String s1 = ((IConfigurationElement) arg1).getAttribute("name"); //$NON-NLS-1$                        return s0.compareTo(s1);                    }                    return 0;                }            });            for (Iterator iter = plugins.iterator(); iter.hasNext(); )            {                IConfigurationElement element = (IConfigurationElement)iter.next();                Action action = new Action(element.getAttribute("name")) { //$NON-NLS-1$                    public void run()                    {                        ChartObject object = new ChartObject();                        object.setPluginId(getId());                        setNewChartObject(object);                    }                };                action.setId(element.getAttribute("id")); //$NON-NLS-1$                newObjectMenu.add(action);            }        }        IMenuManager periodMenu = new MenuManager(Messages.ChartView_Period, "period"); //$NON-NLS-2$        menuManager.appendToGroup("group3", periodMenu); //$NON-NLS-1$        periodMenu.add(viewAll);        periodMenu.add(viewLast2Years);        periodMenu.add(viewLastYear);        periodMenu.add(viewLast6Months);        periodMenu.add(viewCustom);                IMenuManager intervalMenu = new MenuManager(Messages.ChartView_SetInterval, "interval"); //$NON-NLS-2$        menuManager.appendToGroup("group3", intervalMenu); //$NON-NLS-1$        intervalMenu.add(monthlyAction);        intervalMenu.add(weeklyAction);        intervalMenu.add(dailyAction);        intervalMenu.add(minute60Action);        intervalMenu.add(minute30Action);        intervalMenu.add(minute15Action);        intervalMenu.add(minute10Action);        intervalMenu.add(minute5Action);        intervalMenu.add(minute2Action);        intervalMenu.add(minute1Action);        menuManager.appendToGroup("group3", new Separator()); //$NON-NLS-1$        menuManager.appendToGroup("group3", autoScaleAction); //$NON-NLS-1$                toggleAdjustedValuesAction = new Action("Show adjusted values", Action.AS_CHECK_BOX) {            public void run()            {                showAdjustedValues = toggleAdjustedValuesAction.isChecked();                preferences.setValue(PREFS_SHOW_ADJUSTED_VALUES, showAdjustedValues);                updateView();            }        };        menuManager.appendToGroup("group3", toggleAdjustedValuesAction); //$NON-NLS-1$                toggleMarketValueAction = new Action("Show market value", Action.AS_CHECK_BOX) {            public void run()            {                showMarketValue = toggleMarketValueAction.isChecked();                preferences.setValue(PREFS_SHOW_MARKETVALUE, showMarketValue);                if (showMarketValue)                {                    security.getQuoteMonitor().addObserver(quoteObserver);                    quoteObserver.update(security, security.getQuote());                    FeedMonitor.monitor(security);                }                else                {                    security.getQuoteMonitor().deleteObserver(quoteObserver);                    FeedMonitor.cancelMonitor(security);                }                quoteObserver.update(security, security.getQuote());            }        };        menuManager.appendToGroup("group3", toggleMarketValueAction); //$NON-NLS-1$                toggleFollowSelectionAction = new Action("Follow Security Selection", Action.AS_CHECK_BOX) {            public void run()            {                followSelection = toggleFollowSelectionAction.isChecked();                preferences.setValue(PREFS_FOLLOW_SELECTION, followSelection);                setContentDescription(followSelection ? security.getDescription() : "");            }        };        menuManager.appendToGroup("group3", toggleFollowSelectionAction); //$NON-NLS-1$                IToolBarManager toolBarManager = site.getActionBars().getToolBarManager();        toolBarManager.add(new Separator("begin")); //$NON-NLS-1$        toolBarManager.add(new Separator("group1")); //$NON-NLS-1$        toolBarManager.add(new Separator("group2")); //$NON-NLS-1$        toolBarManager.add(new Separator("refresh")); //$NON-NLS-1$        toolBarManager.add(new Separator("group3")); //$NON-NLS-1$        toolBarManager.add(new Separator("group4")); //$NON-NLS-1$        toolBarManager.add(new Separator("objects")); //$NON-NLS-1$        toolBarManager.add(new Separator("group5")); //$NON-NLS-1$        toolBarManager.add(new Separator("group6")); //$NON-NLS-1$        toolBarManager.add(new Separator("additions")); //$NON-NLS-1$        toolBarManager.add(new Separator("end")); //$NON-NLS-1$                site.getActionBars().updateActionBars();                super.init(site);    }    /* (non-Javadoc)     * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)     */    public void createPartControl(Composite parent)    {        DropTarget target = new DropTarget(parent, DND.DROP_COPY|DND.DROP_MOVE);        target.setTransfer(new Transfer[] { SecurityTransfer.getInstance() });        target.addDropListener(dropTargetListener);                IThemeManager themeManager = PlatformUI.getWorkbench().getThemeManager();        themeManager.addPropertyChangeListener(themeChangeListener);        theme = themeManager.getCurrentTheme();        theme.addPropertyChangeListener(themeChangeListener);        Composite content = new Composite(parent, SWT.H_SCROLL);        GridLayout gridLayout = new GridLayout();        gridLayout.marginWidth = gridLayout.marginHeight = 2;        gridLayout.horizontalSpacing = gridLayout.verticalSpacing = 0;        content.setLayout(gridLayout);        content.addTraverseListener(new TraverseListener() {            public void keyTraversed(TraverseEvent e)            {                if (e.detail == SWT.TRAVERSE_ESCAPE)                {                    newChartObject = null;                    sashForm.setCursor(null);                }            }        });                sashForm = new SashForm(content, SWT.VERTICAL);        sashForm.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true, 1, 1));                datePlot = new DatePlot(content, SWT.NONE);        GridData gridData = new GridData();        gridData.heightHint = 24;        gridData.grabExcessHorizontalSpace = true;        gridData.horizontalAlignment = GridData.FILL;        gridData.verticalAlignment = GridData.FILL;        datePlot.setLayoutData(gridData);        datePlot.setForeground(theme.getColorRegistry().get(ChartView.THEME_PERIOD_FOREGROUND));        datePlot.setBackground(theme.getColorRegistry().get(ChartView.THEME_PERIOD_BACKGROUND));                datePlot.getIndicatorPlot().addControlListener(new ControlAdapter() {            public void controlResized(ControlEvent e)            {                updateScrollbar();            }        });        datePlot.getIndicatorPlot().addPlotListener(new PlotListener() {            public void plotResized(PlotEvent e)            {                updateScrollbar();            }        });        hBar = content.getHorizontalBar();        hBar.setVisible(false);        hBar.addSelectionListener(new SelectionAdapter() {            public void widgetSelected(SelectionEvent e)            {

⌨️ 快捷键说明

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