blob: 796531fd5c26c58b66002af5d3dd18eee23b04ce [file] [log] [blame]
//------------------------------------------------------------------------------
// 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.library.LibraryService;
import org.eclipse.epf.library.LibraryServiceUtil;
import org.eclipse.epf.uma.MethodConfiguration;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.CheckStateChangedEvent;
import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.jface.viewers.ICheckStateListener;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Table;
/**
* A wizard page that prompts the user to select a Method Configuration to open.
*
* @author Bingxue Xu
* @since 1.0
*/
public class OpenConfigurationMainPage extends WizardPage implements
ICheckStateListener, Listener {
/**
* The wizard page name.
*/
public static final String PAGE_NAME = OpenConfigurationMainPage.class
.getName();
private CheckboxTableViewer tableViewer;
private Table table;
private int checkedCount = 0;
/**
* Creates a new instance.
*/
public OpenConfigurationMainPage(String pageName, String title,
ImageDescriptor titleImage) {
super(pageName, title, titleImage);
setTitle(AuthoringUIResources.AuthoringUIPlugin_OpenConfigurationMainPage_pageTitle); //$NON-NLS-1$
setDescription(AuthoringUIResources.AuthoringUIPlugin_OpenConfigurationMainPage_pageDescription); //$NON-NLS-1$
}
/**
* @see org.eclipse.jface.viewers.ICheckStateListener#checkStateChanged(CheckStateChangedEvent)
*/
public void checkStateChanged(CheckStateChangedEvent event) {
Object obj = event.getElement();
OpenConfigurationWizard wizard = (OpenConfigurationWizard) getWizard();
if (event.getChecked()) {
checkedCount++;
wizard.configurations.add(obj);
} else {
checkedCount--;
wizard.configurations.remove(obj);
}
setPageComplete(isPageComplete());
getWizard().getContainer().updateButtons();
}
/**
* @see org.eclipse.swt.widgets.Listener#handleEvent(Event)
*/
public void handleEvent(Event event) {
setPageComplete(isPageComplete());
getWizard().getContainer().updateButtons();
}
/**
* @see org.eclipse.jface.wizard.IWizardPage#isPageComplete()
*/
public boolean isPageComplete() {
OpenConfigurationWizard wizard = (OpenConfigurationWizard) getWizard();
if (checkedCount > 0) {
wizard.okToComplete = true;
return true;
}
wizard.okToComplete = false;
return false;
}
/**
* @see org.eclipse.jface.dialogs.IDialogPage#createControl(Composite)
*/
public void createControl(Composite parent) {
// Create the composite to hold the widgets.
Composite composite = new Composite(parent, SWT.NULL);
// Create the desired layout for this wizard page.
composite.setLayout(new GridLayout(3, false));
// Add an empty line first.
Label emptyLine = new Label(composite, SWT.NONE);
emptyLine.setText(" "); //$NON-NLS-1$
{
GridData gridData = new GridData(GridData.BEGINNING
| GridData.FILL_BOTH);
gridData.horizontalSpan = 3;
emptyLine.setLayoutData(gridData);
}
new Label(composite, SWT.NONE).setText(" "); //$NON-NLS-1$
table = new Table(composite, SWT.CHECK);
{
GridData gridData = new GridData(GridData.BEGINNING
| GridData.FILL_BOTH);
gridData.heightHint = 300;
table.setLayoutData(gridData);
}
tableViewer = new CheckboxTableViewer(table);
tableViewer.setLabelProvider(new ConfigurationTableLabelProvider());
tableViewer.setContentProvider(new ArrayContentProvider());
MethodConfiguration[] configs = LibraryServiceUtil
.getMethodConfigurations(LibraryService.getInstance()
.getCurrentMethodLibrary());
tableViewer.setInput(configs);
tableViewer.addCheckStateListener(this);
// Set the composite as the control for this page.
setControl(composite);
}
}