org.eclipse.epf.authoring.ui.wizards.SynchronizationSelectConfigPage.java Source code

Java tutorial

Introduction

Here is the source code for org.eclipse.epf.authoring.ui.wizards.SynchronizationSelectConfigPage.java

Source

//------------------------------------------------------------------------------
// Copyright (c) 2005, 2006 IBM Corporation 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:
// IBM Corporation - initial implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.authoring.ui.wizards;

import org.eclipse.epf.authoring.ui.AuthoringUIResources;
import org.eclipse.epf.ui.wizards.BaseWizardPage;
import org.eclipse.epf.uma.MethodConfiguration;
import org.eclipse.epf.uma.MethodElement;
import org.eclipse.epf.uma.Process;
import org.eclipse.jface.viewers.ComboViewer;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;

/**
 * The wizard page which let user select method configuration during
 * synchronization
 * 
 * @author BingXue Xu
 * @since 1.0
 *
 */
public class SynchronizationSelectConfigPage extends BaseWizardPage implements ISelectionChangedListener {

    private SynchronizationChoices syncChoices = null;

    private ComboViewer configComboViewer;
    private MethodConfiguration[] validConfigurations;

    /**
     * Creates a new instance.
     */
    public SynchronizationSelectConfigPage(String pageName, SynchronizationChoices choices) {
        super(pageName);
        setTitle(AuthoringUIResources.synchronizationWizard_selectConfigPage_title);
        setDescription(AuthoringUIResources.synchronizationWizard_selectConfigPage_text);
        this.syncChoices = choices;
    }

    /**
     * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
     */
    public void createControl(Composite parent) {
        // Create the composite to hold the widgets.
        Composite composite = new Composite(parent, SWT.NULL);
        {
            GridLayout layout = new GridLayout(2, false);
            layout.marginWidth = 0;
            layout.marginHeight = 0;
            composite.setLayout(layout);
        }

        // add an empty line
        createLabel(composite, " ", 2); //$NON-NLS-1$

        createLabel(composite, AuthoringUIResources.synchronizationWizard_selectConfigPage_configLabel);

        configComboViewer = new ComboViewer(composite, SWT.BORDER | SWT.READ_ONLY);
        configComboViewer.getCombo().setLayoutData(new GridData(GridData.BEGINNING | GridData.FILL_HORIZONTAL));

        ILabelProvider labelProvider = new LabelProvider() {
            public String getText(Object element) {
                if (element instanceof MethodElement) {
                    return ((MethodElement) element).getName();
                } else {
                    return element.toString();
                }
            }
        };
        configComboViewer.setLabelProvider(labelProvider);

        // get all valid configurations, and default one, and select and show the default one
        Process selectedProcess = syncChoices.getSelectedProcess();
        validConfigurations = (MethodConfiguration[]) selectedProcess.getValidContext().toArray();
        configComboViewer.add(validConfigurations);
        MethodConfiguration defaultConfig = selectedProcess.getDefaultContext();
        syncChoices.setSelectedConfig(defaultConfig);
        StructuredSelection defaultSelection = new StructuredSelection(defaultConfig);
        configComboViewer.setSelection(defaultSelection, true);

        addListeners(composite);

        setControl(composite);

        //      System.out.println("$$$ init config =" + syncChoices.toString());
    }

    /**
     * Adds the listeners for the controls on this page.
     */
    private void addListeners(final Composite composite) {
        configComboViewer.addSelectionChangedListener(this);
    }

    /**
     * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
     */
    public void selectionChanged(SelectionChangedEvent event) {
        StructuredSelection selection = (StructuredSelection) event.getSelection();
        if (!selection.isEmpty()) {
            Object[] config = selection.toArray();
            syncChoices.setSelectedConfig((MethodConfiguration) config[0]);
        }

        //      System.out.println("$$$ config =" + syncChoices.toString());
    }

}