net.sourceforge.eclipsetrader.trading.wizards.WatchlistSettingsDialog.java Source code

Java tutorial

Introduction

Here is the source code for net.sourceforge.eclipsetrader.trading.wizards.WatchlistSettingsDialog.java

Source

/*
 * 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.wizards;

import net.sourceforge.eclipsetrader.core.CorePlugin;
import net.sourceforge.eclipsetrader.core.db.Watchlist;

import org.eclipse.jface.preference.PreferenceDialog;
import org.eclipse.jface.preference.PreferenceManager;
import org.eclipse.jface.preference.PreferenceNode;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;

/**
 */
public class WatchlistSettingsDialog extends PreferenceDialog {
    private Watchlist watchlist;
    private GeneralPage generalPage;
    private ColumnsPage columnsPage;
    private ItemsPage itemsPage;

    public WatchlistSettingsDialog(Watchlist watchlist, Shell parentShell) {
        super(parentShell, new PreferenceManager());
        this.watchlist = watchlist;

        generalPage = new GeneralPage(watchlist) {
            public void performFinish() {
                WatchlistSettingsDialog.this.watchlist.setDescription(getText());
                WatchlistSettingsDialog.this.watchlist.setCurrency(getCurrency());
                super.performFinish();
            }
        };
        columnsPage = new ColumnsPage() {
            public void performFinish() {
                WatchlistSettingsDialog.this.watchlist.setColumns(getColumns());
                super.performFinish();
            }
        };
        itemsPage = new ItemsPage() {
            public void performFinish() {
                WatchlistSettingsDialog.this.watchlist.setItems(getItems());
                super.performFinish();
            }
        };

        getPreferenceManager().addToRoot(new PreferenceNode("general", new CommonDialogPage(generalPage) {
            protected Control createContents(Composite parent) {
                Control control = super.createContents(parent);
                generalPage.setText(WatchlistSettingsDialog.this.watchlist.getDescription());
                return control;
            }
        }));
        getPreferenceManager().addToRoot(new PreferenceNode("columns", new CommonDialogPage(columnsPage) {
            protected Control createContents(Composite parent) {
                Control control = super.createContents(parent);
                columnsPage.setColumns(WatchlistSettingsDialog.this.watchlist.getColumns());
                return control;
            }
        }));
        getPreferenceManager().addToRoot(new PreferenceNode("items", new CommonDialogPage(itemsPage) {
            protected Control createContents(Composite parent) {
                Control control = super.createContents(parent);
                itemsPage.setItems(WatchlistSettingsDialog.this.watchlist.getItems());
                return control;
            }
        }));
    }

    /* (non-Javadoc)
     * @see org.eclipse.jface.preference.PreferenceDialog#configureShell(org.eclipse.swt.widgets.Shell)
     */
    protected void configureShell(Shell newShell) {
        super.configureShell(newShell);
        newShell.setText("Watchlist Settings");
    }

    /* (non-Javadoc)
     * @see org.eclipse.jface.preference.PreferenceDialog#okPressed()
     */
    protected void okPressed() {
        super.okPressed();
        CorePlugin.getRepository().save(watchlist);
    }
}