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

📄 tradingsystemview.java

📁 EclipseTrader is a stock exchange analysis system, featuring shares pricing watch, intraday and hi
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        public GroupTreeItem(TradingSystemGroup group, Tree parent, int style, int index)        {            super(parent, style, index);            init(group);        }        public GroupTreeItem(TradingSystemGroup group, Tree parent, int style)        {            super(parent, style);            init(group);        }        public GroupTreeItem(TradingSystemGroup group, TreeItem parentItem, int style, int index)        {            super(parentItem, style, index);            init(group);        }        public GroupTreeItem(TradingSystemGroup group, TreeItem parentItem, int style)        {            super(parentItem, style);            init(group);        }                protected void init(TradingSystemGroup group)        {            this.group = group;            this.group.addObserver(this);            this.group.getGroups().addCollectionObserver(this);            this.group.getTradingSystems().addCollectionObserver(this);                        addDisposeListener(new DisposeListener() {                public void widgetDisposed(DisposeEvent e)                {                    GroupTreeItem.this.group.deleteObserver(GroupTreeItem.this);                    GroupTreeItem.this.group.getGroups().removeCollectionObserver(GroupTreeItem.this);                    GroupTreeItem.this.group.getTradingSystems().removeCollectionObserver(GroupTreeItem.this);                }            });                        FontData fd = getFont().getFontData()[0];            Font font = new Font(null, fd.getName(), fd.getHeight(), SWT.BOLD);            setFont(font);            setText(0, group.getDescription());            for (Iterator iter = this.group.getGroups().iterator(); iter.hasNext(); )                new GroupTreeItem((TradingSystemGroup) iter.next(), this, SWT.NONE);            for (Iterator iter = this.group.getTradingSystems().iterator(); iter.hasNext(); )                new TradingSystemItem((TradingSystem) iter.next(), this, SWT.NONE);        }        /* (non-Javadoc)         * @see org.eclipse.swt.widgets.TreeItem#checkSubclass()         */        protected void checkSubclass()        {        }        /* (non-Javadoc)         * @see net.sourceforge.eclipsetrader.core.ICollectionObserver#itemAdded(java.lang.Object)         */        public void itemAdded(Object o)        {            if (o instanceof TradingSystem)                new TradingSystemItem((TradingSystem) o, this, SWT.NONE);            else if (o instanceof TradingSystemGroup)                new GroupTreeItem((TradingSystemGroup) o, this, SWT.NONE);        }        /* (non-Javadoc)         * @see net.sourceforge.eclipsetrader.core.ICollectionObserver#itemRemoved(java.lang.Object)         */        public void itemRemoved(Object o)        {            if (o instanceof TradingSystem)            {                TradingSystem object = (TradingSystem) o;                TreeItem[] items = getItems();                for (int i = 0; i < items.length; i++)                {                    if (!(items[i] instanceof TradingSystemItem))                        continue;                    if (((TradingSystemItem) items[i]).getSystem().equals(object))                        items[i].dispose();                }            }            else if (o instanceof TradingSystemGroup)            {                TradingSystemGroup object = (TradingSystemGroup) o;                TreeItem[] items = getItems();                for (int i = 0; i < items.length; i++)                {                    if (!(items[i] instanceof GroupTreeItem))                        continue;                    if (((GroupTreeItem) items[i]).getGroup().equals(object))                        items[i].dispose();                }            }        }        /* (non-Javadoc)         * @see java.util.Observer#update(java.util.Observable, java.lang.Object)         */        public void update(Observable o, Object arg)        {            getDisplay().asyncExec(new Runnable() {                public void run()                {                    if (!isDisposed())                        setText(0, group.getDescription());                }            });        }        public TradingSystemGroup getGroup()        {            return group;        }    }        public class TradingSystemItem extends TreeItem implements Observer    {        TradingSystem system;        TradingSystemPlugin plugin;        public TradingSystemItem(TradingSystem system, Tree parent, int style, int index)        {            super(parent, style, index);            init(system);        }        public TradingSystemItem(TradingSystem system, Tree parent, int style)        {            super(parent, style);            init(system);        }        public TradingSystemItem(TradingSystem system, TreeItem parentItem, int style, int index)        {            super(parentItem, style, index);            init(system);        }        public TradingSystemItem(TradingSystem system, TreeItem parentItem, int style)        {            super(parentItem, style);            init(system);        }        /* (non-Javadoc)         * @see org.eclipse.swt.widgets.TreeItem#checkSubclass()         */        protected void checkSubclass()        {        }                private void init(TradingSystem system)        {            this.system = system;            this.system.addObserver(this);            plugin = TradingPlugin.createTradingSystemPlugin(system);            plugin.addObserver(this);                        addDisposeListener(new DisposeListener() {                public void widgetDisposed(DisposeEvent e)                {                    TradingSystemItem.this.system.deleteObserver(TradingSystemItem.this);                    TradingSystemItem.this.plugin.deleteObserver(TradingSystemItem.this);                }            });            setText(0, system.getSecurity().getDescription());            setText(1, system.getAccount().getDescription());            setText(2, String.valueOf(system.getAccount().getPosition(system.getSecurity())));            if (system.getSignal() == TradingSystem.SIGNAL_BUY)                setText(3, "Buy");            else if (system.getSignal() == TradingSystem.SIGNAL_SELL)                setText(3, "Sell");            else if (system.getSignal() == TradingSystem.SIGNAL_HOLD)                setText(3, "Hold");            else                setText(3, "");            setText(4, system.getDate() != null ? dateFormat.format(system.getDate()) : "");        }        /* (non-Javadoc)         * @see java.util.Observer#update(java.util.Observable, java.lang.Object)         */        public void update(Observable o, Object arg)        {            if (o == plugin)            {                system.setDate(Calendar.getInstance().getTime());                system.setSignal(plugin.getSignal());            }            getDisplay().asyncExec(new Runnable() {                public void run()                {                    if (!isDisposed())                    {                        setText(0, system.getSecurity().getDescription());                        setText(1, system.getAccount().getDescription());                        setText(2, String.valueOf(system.getAccount().getPosition(system.getSecurity())));                        if (system.getSignal() == TradingSystem.SIGNAL_BUY)                            setText(3, "Buy");                        else if (system.getSignal() == TradingSystem.SIGNAL_SELL)                            setText(3, "Sell");                        else if (system.getSignal() == TradingSystem.SIGNAL_HOLD)                            setText(3, "Hold");                        else                            setText(3, "");                        setText(4, system.getDate() != null ? dateFormat.format(system.getDate()) : "");                    }                }            });        }        public TradingSystem getSystem()        {            return system;        }    }    public class TradingSystemTreeItemTransfer extends ByteArrayTransfer    {        private final String TYPENAME = TradingSystemItem.class.getName();        private final int TYPEID = registerType(TYPENAME);        private TradingSystemTreeItemTransfer()        {        }                /* (non-Javadoc)         * @see org.eclipse.swt.dnd.Transfer#getTypeNames()         */        protected String[] getTypeNames()        {            return new String[] { TYPENAME };        }        /* (non-Javadoc)         * @see org.eclipse.swt.dnd.Transfer#getTypeIds()         */        protected int[] getTypeIds()        {            return new int[] { TYPEID };        }        /* (non-Javadoc)         * @see org.eclipse.swt.dnd.ByteArrayTransfer#javaToNative(java.lang.Object, org.eclipse.swt.dnd.TransferData)         */        protected void javaToNative(Object object, TransferData transferData)        {            if (!checkMyType(object) || !isSupportedType(transferData))                DND.error(DND.ERROR_INVALID_DATA);            try            {                ByteArrayOutputStream out = new ByteArrayOutputStream();                ObjectOutputStream writeOut = new ObjectOutputStream(out);                                if (object instanceof TradingSystemItem)                {                    writeOut.writeInt(1);                    writeOut.writeObject(((TradingSystemItem)object).getSystem().getId());                }                else if (object instanceof TradingSystemItem[])                {                    TradingSystemItem[] array = (TradingSystemItem[]) object;                    writeOut.writeInt(array.length);                    for (int i = 0; i < array.length; i++)                        writeOut.writeObject(array[i].getSystem().getId());                }                                byte[] buffer = out.toByteArray();                writeOut.close();                super.javaToNative(buffer, transferData);            }            catch (IOException e) {                CorePlugin.logException(e);            }        }        /* (non-Javadoc)         * @see org.eclipse.swt.dnd.ByteArrayTransfer#nativeToJava(org.eclipse.swt.dnd.TransferData)         */        protected Object nativeToJava(TransferData transferData)        {            if (isSupportedType(transferData))            {                byte[] buffer = (byte[]) super.nativeToJava(transferData);                if (buffer == null)                    return null;                try                {                    ByteArrayInputStream in = new ByteArrayInputStream(buffer);                    ObjectInputStream readIn = new ObjectInputStream(in);                    int length = readIn.readInt();                    Integer[] security = new Integer[length];                    for (int i = 0; i < length; i++)                        security[i] = (Integer)readIn.readObject();                                        readIn.close();                    return security;                }                catch (Exception e) {                    CorePlugin.logException(e);                }            }            return null;        }        private boolean checkMyType(Object object)        {            return (object instanceof TradingSystemItem || object instanceof TradingSystemItem[]);        }    }}

⌨️ 快捷键说明

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