Package name.abuchen.portfolio.ui.views

Source Code of name.abuchen.portfolio.ui.views.SecurityContextMenu

package name.abuchen.portfolio.ui.views;

import name.abuchen.portfolio.model.Portfolio;
import name.abuchen.portfolio.model.PortfolioTransaction;
import name.abuchen.portfolio.model.Security;
import name.abuchen.portfolio.ui.AbstractFinanceView;
import name.abuchen.portfolio.ui.Messages;
import name.abuchen.portfolio.ui.dialogs.BuySellSecurityDialog;
import name.abuchen.portfolio.ui.dialogs.DividendsDialog;
import name.abuchen.portfolio.ui.dialogs.SecurityDeliveryDialog;
import name.abuchen.portfolio.ui.dialogs.SecurityTransferDialog;
import name.abuchen.portfolio.ui.util.WebLocationMenu;
import name.abuchen.portfolio.ui.wizards.splits.StockSplitWizard;

import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.wizard.WizardDialog;

public class SecurityContextMenu
{
    private AbstractFinanceView owner;

    public SecurityContextMenu(AbstractFinanceView owner)
    {
        this.owner = owner;
    }

    public void menuAboutToShow(IMenuManager manager, final Security security)
    {
        this.menuAboutToShow(manager, security, null);
    }

    public void menuAboutToShow(IMenuManager manager, final Security security, final Portfolio portfolio)
    {
        if (owner.getClient().getSecurities().isEmpty())
            return;

        manager.add(new Action(Messages.SecurityMenuBuy)
        {
            @Override
            public void run()
            {
                BuySellSecurityDialog dialog = new BuySellSecurityDialog(owner.getActiveShell(), owner.getClient(),
                                portfolio, security, PortfolioTransaction.Type.BUY);
                if (dialog.open() == BuySellSecurityDialog.OK)
                {
                    owner.markDirty();
                    owner.notifyModelUpdated();
                }
            }
        });

        manager.add(new Action(Messages.SecurityMenuSell)
        {
            @Override
            public void run()
            {
                BuySellSecurityDialog dialog = new BuySellSecurityDialog(owner.getActiveShell(), owner.getClient(),
                                portfolio, security, PortfolioTransaction.Type.SELL);
                if (dialog.open() == BuySellSecurityDialog.OK)
                {
                    owner.markDirty();
                    owner.notifyModelUpdated();
                }
            }
        });

        manager.add(new Action(Messages.SecurityMenuDividends)
        {
            @Override
            public void run()
            {
                DividendsDialog dialog = new DividendsDialog(owner.getActiveShell(), owner.getClient(), null, security);
                if (dialog.open() == DividendsDialog.OK)
                {
                    owner.markDirty();
                    owner.notifyModelUpdated();
                }
            }
        });

        manager.add(new Action(Messages.SecurityMenuStockSplit)
        {
            @Override
            public void run()
            {
                StockSplitWizard wizard = new StockSplitWizard(owner.getClient(), security);
                WizardDialog dialog = new WizardDialog(owner.getActiveShell(), wizard);
                if (dialog.open() == DividendsDialog.OK)
                {
                    owner.markDirty();
                    owner.notifyModelUpdated();
                }
            }
        });

        if (portfolio != null && owner.getClient().getActivePortfolios().size() > 1)
        {
            manager.add(new Separator());
            manager.add(new Action(Messages.SecurityMenuTransfer)
            {
                @Override
                public void run()
                {
                    SecurityTransferDialog dialog = new SecurityTransferDialog(owner.getActiveShell(), owner
                                    .getClient(), portfolio);
                    if (dialog.open() == DividendsDialog.OK)
                    {
                        owner.markDirty();
                        owner.notifyModelUpdated();
                    }
                }
            });
        }

        if (portfolio != null)
        {
            manager.add(new Separator());
            manager.add(new Action(PortfolioTransaction.Type.DELIVERY_INBOUND.toString() + "...") //$NON-NLS-1$
            {
                @Override
                public void run()
                {
                    SecurityDeliveryDialog dialog = new SecurityDeliveryDialog(owner.getActiveShell(), owner
                                    .getClient(), portfolio, PortfolioTransaction.Type.DELIVERY_INBOUND);
                    if (dialog.open() == SecurityDeliveryDialog.OK)
                    {
                        owner.markDirty();
                        owner.notifyModelUpdated();
                    }
                }
            });

            manager.add(new Action(PortfolioTransaction.Type.DELIVERY_OUTBOUND.toString() + "...") //$NON-NLS-1$
            {
                @Override
                public void run()
                {
                    SecurityDeliveryDialog dialog = new SecurityDeliveryDialog(owner.getActiveShell(), owner
                                    .getClient(), portfolio, PortfolioTransaction.Type.DELIVERY_OUTBOUND);
                    if (dialog.open() == SecurityDeliveryDialog.OK)
                    {
                        owner.markDirty();
                        owner.notifyModelUpdated();
                    }
                }
            });
        }

        if (security != null)
        {
            manager.add(new Separator());
            manager.add(new WebLocationMenu(security));
        }
    }
}
TOP

Related Classes of name.abuchen.portfolio.ui.views.SecurityContextMenu

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.