/*******************************************************************************
* Copyright (c) 2013 Zend Technologies Ltd.
* 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
*******************************************************************************/
package org.zend.php.zendserver.deployment.debug.ui.wizards;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.dialogs.IMessageProvider;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.events.HelpEvent;
import org.eclipse.swt.events.HelpListener;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.internal.help.WorkbenchHelpSystem;
import org.zend.php.zendserver.deployment.core.debugger.LibraryDeployData;
import org.zend.php.zendserver.deployment.debug.ui.HelpContextIds;
import org.zend.php.zendserver.deployment.debug.ui.Messages;
import org.zend.php.zendserver.deployment.debug.ui.listeners.IStatusChangeListener;
/**
* @author Wojciech Galanciak, 2013
*
*/
public class DeployTargetPage extends WizardPage implements IStatusChangeListener {
private DeployTargetBlock block;
/**
* Create the wizard.
*
* @param data
*/
public DeployTargetPage(LibraryDeployData data) {
super(Messages.DeployTargetPage_TItle);
setTitle(Messages.DeployTargetPage_TItle);
this.block = new DeployTargetBlock(this, data);
}
/*
* (non-Javadoc)
*
* @see
* org.zend.php.zendserver.deployment.debug.ui.wizards.ConfigurationPage
* #createControl(org.eclipse.swt.widgets.Composite)
*/
public void createControl(Composite parent) {
Composite container = block.createContents(parent, true);
setControl(container);
parent.setData(WorkbenchHelpSystem.HELP_KEY, HelpContextIds.DEPLOY_PHP_LIBRARY_ON_TARGET);
parent.addHelpListener(new HelpListener() {
public void helpRequested(HelpEvent arg0) {
org.eclipse.swt.program.Program.launch(HelpContextIds.DEPLOY_PHP_LIBRARY_ON_TARGET);
}
});
setPageComplete(false);
statusChanged(block.validatePage());
}
public LibraryDeployData getData() {
return block.getData();
}
/*
* (non-Javadoc)
*
* @see org.zend.php.zendserver.deployment.debug.ui.listeners.
* IStatusChangeListener #statusChanged(org.eclipse.core.runtime.IStatus)
*/
public void statusChanged(final IStatus status) {
Display.getDefault().syncExec(new Runnable() {
public void run() {
switch (status.getSeverity()) {
case IStatus.OK:
setMessage(status.getMessage());
setErrorMessage(null);
setPageComplete(true);
break;
case IStatus.INFO:
setErrorMessage(null);
setMessage(status.getMessage(), IMessageProvider.INFORMATION);
setPageComplete(false);
break;
case IStatus.WARNING:
setErrorMessage(null);
setMessage(status.getMessage(), IMessageProvider.WARNING);
setPageComplete(false);
break;
case IStatus.ERROR:
setErrorMessage(status.getMessage());
setPageComplete(false);
break;
default:
setErrorMessage(null);
setPageComplete(false);
break;
}
}
});
}
}