📄 chartview.java
字号:
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 + -