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

📄 patternsearchview.java

📁 EclipseTrader is a stock exchange analysis system, featuring shares pricing watch, intraday and hi
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * Copyright (c) 2004-2006 Marco Maccaferri and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: *     Marco Maccaferri - initial API and implementation */package net.sourceforge.eclipsetrader.trading.views;import java.text.NumberFormat;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.Iterator;import java.util.List;import net.sourceforge.eclipsetrader.core.CorePlugin;import net.sourceforge.eclipsetrader.trading.TradingPlugin;import net.sourceforge.eclipsetrader.trading.dialogs.SearchPageSelectionDialog;import org.eclipse.core.runtime.IProgressMonitor;import org.eclipse.core.runtime.IStatus;import org.eclipse.core.runtime.Status;import org.eclipse.core.runtime.jobs.Job;import org.eclipse.jface.action.Action;import org.eclipse.jface.action.IMenuCreator;import org.eclipse.jface.action.IToolBarManager;import org.eclipse.jface.action.Separator;import org.eclipse.swt.SWT;import org.eclipse.swt.events.SelectionAdapter;import org.eclipse.swt.events.SelectionEvent;import org.eclipse.swt.events.SelectionListener;import org.eclipse.swt.graphics.Color;import org.eclipse.swt.layout.GridData;import org.eclipse.swt.layout.GridLayout;import org.eclipse.swt.widgets.Composite;import org.eclipse.swt.widgets.Control;import org.eclipse.swt.widgets.Menu;import org.eclipse.swt.widgets.MenuItem;import org.eclipse.swt.widgets.Table;import org.eclipse.swt.widgets.TableColumn;import org.eclipse.swt.widgets.TableItem;import org.eclipse.ui.IViewSite;import org.eclipse.ui.PartInitException;import org.eclipse.ui.part.ViewPart;/** */public class PatternSearchView extends ViewPart implements SelectionListener{    public static final String VIEW_ID = "net.sourceforge.eclipsetrader.patternSearch";    private Table table;    private Color evenForeground = new Color(null, 0, 0, 0);    private Color evenBackground = new Color(null, 255, 255, 255);    private Color oddForeground = new Color(null, 0, 0, 0);    private Color oddBackground = new Color(null, 240, 240, 240);    private Color negativeForeground = new Color(null, 240, 0, 0);    private Color positiveForeground = new Color(null, 0, 192, 0);    private SimpleDateFormat dateFormat = CorePlugin.getDateFormat();    private NumberFormat priceFormat = NumberFormat.getInstance();    private List pages = new ArrayList();    private IPatternSearchPage currentPage;    private Action historyMenu;    private Action refreshAction;    private Action removeCurrentAction;    private Action removeAllAction;    private IMenuCreator menuCreator = new IMenuCreator() {        private Menu menu;        public void dispose()        {        }        public Menu getMenu(Control parent)        {            if (menu != null)                menu.dispose();            menu = new Menu(parent);            for (Iterator iter = pages.iterator(); iter.hasNext(); )            {                IPatternSearchPage page = (IPatternSearchPage) iter.next();                MenuItem item = new MenuItem(menu, SWT.CHECK);                item.setText(page.getShortDescription());                item.setData(page);                item.addSelectionListener(PatternSearchView.this);                if (page == currentPage)                    item.setSelection(true);            }            return menu;        }        public Menu getMenu(Menu parent)        {            return menu;        }    };        public PatternSearchView()    {        priceFormat.setGroupingUsed(true);        priceFormat.setMinimumIntegerDigits(1);        priceFormat.setMinimumFractionDigits(4);        priceFormat.setMaximumFractionDigits(4);    }    /* (non-Javadoc)     * @see org.eclipse.ui.part.ViewPart#init(org.eclipse.ui.IViewSite)     */    public void init(IViewSite site) throws PartInitException    {        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("group3")); //$NON-NLS-1$        toolBarManager.add(new Separator("group4")); //$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$        removeCurrentAction = new Action() {            public void run()            {                if (currentPage != null)                {                    int index = pages.indexOf(currentPage);                    pages.remove(currentPage);                    if (index > 0)                        index--;                    else                        index = 0;                    currentPage = pages.size() > 0 ? (IPatternSearchPage) pages.get(index) : null;                    updateView();                }            }        };        removeCurrentAction.setToolTipText("Remove Current Search");        removeCurrentAction.setImageDescriptor(TradingPlugin.getImageDescriptor("icons/elcl16/search_rem.gif"));        removeCurrentAction.setDisabledImageDescriptor(TradingPlugin.getImageDescriptor("icons/dlcl16/search_rem.gif"));        removeCurrentAction.setEnabled(false);        toolBarManager.appendToGroup("group5", removeCurrentAction);        removeAllAction = new Action() {            public void run()            {                pages.clear();                currentPage = null;                updateView();            }        };        removeAllAction.setToolTipText("Remove All Searches");        removeAllAction.setImageDescriptor(TradingPlugin.getImageDescriptor("icons/elcl16/search_remall.gif"));        removeAllAction.setDisabledImageDescriptor(TradingPlugin.getImageDescriptor("icons/dlcl16/search_remall.gif"));        removeAllAction.setEnabled(false);        toolBarManager.appendToGroup("group5", removeAllAction);        refreshAction = new Action() {            public void run()            {                if (currentPage != null)                {                    Job job = new Job("Search pattern") {                        protected IStatus run(IProgressMonitor monitor)                        {                            currentPage.run(monitor);                            table.getDisplay().asyncExec(new Runnable() {                                public void run()                                {                                    updateView();                                }                            });                            return Status.OK_STATUS;                        }                    };                    job.setUser(true);                    job.schedule();                }            }        };        refreshAction.setToolTipText("Search Again");        refreshAction.setImageDescriptor(TradingPlugin.getImageDescriptor("icons/etool16/refresh.gif"));        refreshAction.setDisabledImageDescriptor(TradingPlugin.getImageDescriptor("icons/dtool16/refresh.gif"));        refreshAction.setEnabled(false);        toolBarManager.appendToGroup("end", refreshAction);        historyMenu = new Action("History", Action.AS_DROP_DOWN_MENU) {            public void run()            {                SearchPageSelectionDialog dlg = new SearchPageSelectionDialog(getViewSite().getShell(), pages, currentPage);                if (dlg.open() == SearchPageSelectionDialog.OK)                {                    currentPage = dlg.getSelectedPage();                    updateView();

⌨️ 快捷键说明

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