/******************************************************************************* * Copyright (c) 2009 Tasktop Technologies 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: * Tasktop Technologies - initial API and implementation * David Green * Shawn Minto bug 275513 * Steffen Pingel bug 276012 code review, bug 277191 gradient canvas * Obeo - adaptation for Amalgamation, EMF based and no Mylyn dependency * CEA LIST - adaptation to Papyrus *******************************************************************************/ package org.eclipse.papyrus.infra.discovery.ui.internal.wizards; import java.util.Collection; import java.util.List; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.window.IShellProvider; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.papyrus.infra.discovery.InstallableComponent; import org.eclipse.papyrus.infra.discovery.ui.viewer.DiscoveryContentProvider; import org.eclipse.papyrus.infra.discovery.ui.viewer.DiscoveryViewer; import org.eclipse.papyrus.infra.discovery.ui.wizards.DiscoveryWizard; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; /** * The main wizard page that allows users to select connectors that they wish to * install. * * @author David Green */ public class DiscoveryWizardMainPage extends WizardPage implements IShellProvider { private static final int MINIMUM_HEIGHT = 480; private DiscoveryViewer viewer; private DiscoveryContentProvider provider; public DiscoveryWizardMainPage(DiscoveryContentProvider provider) { super(DiscoveryWizardMainPage.class.getSimpleName()); this.provider = provider; setTitle(provider.getTitle()); // setImageDescriptor(image); setDescription(provider.getDescription()); setPageComplete(false); } public void createControl(Composite parent) { viewer = new DiscoveryViewer(this, getContainer(), this.provider); viewer.setShowConnectorDescriptorKindFilter(getWizard().isShowConnectorDescriptorKindFilter()); viewer.setShowConnectorDescriptorTextFilter(getWizard().isShowConnectorDescriptorTextFilter()); viewer.setVerifyUpdateSiteAvailability(true); viewer.setMinimumHeight(MINIMUM_HEIGHT); viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { setPageComplete(!viewer.getInstallableConnectors().isEmpty()); } }); viewer.createControl(parent); setControl(viewer.getControl()); } @Override public DiscoveryWizard getWizard() { return (DiscoveryWizard) super.getWizard(); } public List<InstallableComponent> getInstallableConnectors() { return viewer.getInstallableConnectors(); } private void maybeUpdateDiscovery() { if (!getControl().isDisposed() && isCurrentPage()) { viewer.updateDiscovery(); } } @Override public void setVisible(boolean visible) { super.setVisible(visible); if (visible) { Display.getCurrent().asyncExec(new Runnable() { public void run() { maybeUpdateDiscovery(); } }); } } public void setModelingComponents(Collection<InstallableComponent> components) { } }