package org.zend.php.zendserver.deployment.debug.ui.dialogs; import java.util.Map; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.IStatus; import org.eclipse.jface.dialogs.TitleAreaDialog; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.forms.widgets.SharedScrolledComposite; import org.zend.php.zendserver.deployment.core.debugger.IDeploymentHelper; import org.zend.php.zendserver.deployment.debug.ui.Messages; import org.zend.php.zendserver.deployment.debug.ui.listeners.IStatusChangeListener; import org.zend.php.zendserver.deployment.debug.ui.wizards.ParametersBlock; public class DeploymentParametersDialog extends TitleAreaDialog implements IStatusChangeListener { private IProject project; private IDeploymentHelper helper; private ParametersBlock block; private Map<String, String> parameters; public DeploymentParametersDialog(Shell parentShell, IProject project, IDeploymentHelper helper) { super(parentShell); setShellStyle(getShellStyle() | SWT.RESIZE | SWT.MAX); this.project = project; this.helper = helper; this.block = new ParametersBlock(this); } @Override protected Control createDialogArea(Composite parent) { final SharedScrolledComposite scrolledComposite = new SharedScrolledComposite(parent, SWT.V_SCROLL) { }; GridData data = new GridData(SWT.FILL, SWT.FILL, true, true); scrolledComposite.setLayoutData(data); scrolledComposite.setLayout(new FillLayout()); Composite container = new Composite(scrolledComposite, SWT.NONE); container.setLayout(new GridLayout(1, false)); scrolledComposite.setExpandVertical(true); scrolledComposite.setExpandHorizontal(true); scrolledComposite.setContent(container); GridLayout layout = new GridLayout(2, false); container.setLayout(layout); block.createContents(container); block.createParametersGroup(project); if (helper != null) { block.initializeFields(helper); } statusChanged(block.validatePage()); setTitle(Messages.DeploymentParameters_Title); getShell().setText(Messages.DeploymentParameters_Title); return container; } @Override protected void initializeBounds() { super.initializeBounds(); getShell().setMinimumSize(550, 600); getShell().setSize(getShell().getMinimumSize()); Rectangle monitorArea = getShell().getDisplay().getPrimaryMonitor().getBounds(); Rectangle shellArea = getShell().getBounds(); int x = monitorArea.x + (monitorArea.width - shellArea.width) / 2; int y = monitorArea.y + (monitorArea.height - shellArea.height) / 3; getShell().setLocation(x, y); } @Override protected void okPressed() { this.parameters = block.getHelper().getUserParams(); super.okPressed(); } public Map<String, String> getParameters() { return parameters; } public void statusChanged(IStatus status) { if (status.getSeverity() == IStatus.ERROR) { setErrorMessage(status.getMessage()); } else { setErrorMessage(null); setMessage(Messages.parametersPage_Description); } } }