package com.redhat.ceylon.eclipse.code.wizard; import static org.eclipse.swt.layout.GridData.HORIZONTAL_ALIGN_FILL; import org.eclipse.core.resources.IProject; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.dialogs.IDialogConstants; 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.Control; import com.redhat.ceylon.eclipse.code.preferences.CeylonRepoConfigBlock; public class NewCeylonProjectWizardPageThree extends WizardPage { private static final String PAGE_NAME= "NewJavaProjectWizardPageThree"; //$NON-NLS-1$ private NewCeylonProjectWizardPageTwo pageTwo; private CeylonRepoConfigBlock block; private IProject provisonalProject; public NewCeylonProjectWizardPageThree(NewCeylonProjectWizardPageTwo pageTwo) { super(PAGE_NAME); this.pageTwo = pageTwo; } @Override public void createControl(Composite parent) { initializeDialogUnits(parent); final Composite composite = new Composite(parent, SWT.NULL); composite.setFont(parent.getFont()); composite.setLayout(initGridLayout(new GridLayout(1, false), true)); composite.setLayoutData(new GridData(HORIZONTAL_ALIGN_FILL)); block = new CeylonRepoConfigBlock(new CeylonRepoConfigBlock.ValidationCallback() { @Override public void validationResultChange(boolean isValid, String message) { setPageComplete(isValid); setErrorMessage(message); } }); block.initContents(composite); setControl(composite); } @Override public void setVisible(boolean visible) { if (visible == true && provisonalProject != pageTwo.getProvisonalProject()) { provisonalProject = pageTwo.getProvisonalProject(); block.initState(provisonalProject, true); } super.setVisible(visible); } @Override protected void setControl(Control newControl) { Dialog.applyDialogFont(newControl); /*PlatformUI.getWorkbench() .getHelpSystem() .setHelp(newControl, IJavaHelpContextIds.NEW_JAVAPROJECT_WIZARD_PAGE);*/ super.setControl(newControl); } private GridLayout initGridLayout(GridLayout layout, boolean margins) { layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING); if (margins) { layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN); layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN); } else { layout.marginWidth = 0; layout.marginHeight = 0; } return layout; } public CeylonRepoConfigBlock getBlock() { return block; } }