| //------------------------------------------------------------------------------ |
| // 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()); |
| } |
| |
| } |
| |