/******************************************************************************* * Copyright (c) 2009 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 API and implementation * Zend Technologies *******************************************************************************/ package org.eclipse.php.internal.debug.ui.wizards; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.php.internal.debug.core.preferences.PHPexeItem; import org.eclipse.php.internal.debug.core.preferences.PHPexes; import org.eclipse.php.internal.debug.ui.Logger; import org.eclipse.php.internal.ui.wizards.CompositeWizardFragment; import org.eclipse.php.internal.ui.wizards.IWizardHandle; import org.eclipse.php.internal.ui.wizards.WizardControlWrapper; import org.eclipse.php.internal.ui.wizards.WizardModel; import org.eclipse.swt.widgets.Composite; public class PHPExeWizardFragment extends CompositeWizardFragment implements IPHPExeCompositeFragment { private PHPExeCompositeFragment compositeFragment; private PHPexeItem phpExeItem; private PHPexeItem[] existingItems; public Composite getComposite() { return compositeFragment; } public Composite createComposite(Composite parent, IWizardHandle handle) { compositeFragment = new PHPExeCompositeFragment(parent, new WizardControlWrapper(handle), false); return compositeFragment; } public void enter() { if (compositeFragment != null) { try { phpExeItem = (PHPexeItem) getWizardModel().getObject(PHPExeWizard.MODEL); if (phpExeItem == null) { phpExeItem = new PHPexeItem(); } compositeFragment.setData(phpExeItem); compositeFragment.setExistingItems(existingItems); } catch (Exception e) { Logger.logException(e); } } else { Logger.log(Logger.ERROR, "Could not display the PHPExeItems wizard (component is null)."); //$NON-NLS-1$ } } public boolean isComplete() { if (compositeFragment == null) { return super.isComplete(); } return super.isComplete() && compositeFragment.isComplete(); } public void exit() { if (compositeFragment != null) { WizardModel model = getWizardModel(); model.putObject(PHPExeWizard.MODEL, compositeFragment.getPHPExeItem()); } } public boolean performFinish(IProgressMonitor monitor) throws CoreException { super.performFinish(monitor); if (compositeFragment != null) { return compositeFragment.performOk(); } return false; } public void performCancel(IProgressMonitor monitor) throws CoreException { super.performCancel(monitor); // Clear any added server if (getWizardModel().getObject(PHPExeWizard.MODEL) != null) { getWizardModel().putObject(PHPExeWizard.MODEL, null); PHPexes.getInstance().save(); } } public void setExistingItems(PHPexeItem[] existingItems) { this.existingItems = existingItems; } }