package com.dubture.composer.ui.wizard.project.template; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.window.IShellProvider; import org.eclipse.php.internal.ui.wizards.CompositeData; import org.eclipse.php.internal.ui.wizards.NameGroup; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Group; import org.eclipse.ui.PlatformUI; import com.dubture.composer.ui.ComposerUIPlugin; import com.dubture.composer.ui.converter.String2KeywordsConverter; import com.dubture.composer.ui.wizard.LocationGroup; import com.dubture.composer.ui.wizard.project.BasicSettingsGroup; import com.dubture.composer.ui.wizard.project.ComposerProjectWizardFirstPage; import com.dubture.composer.ui.wizard.project.VersionGroup; import com.dubture.getcomposer.core.ComposerPackage; /** * @author Robert Gruendler <r.gruendler@gmail.com> */ @SuppressWarnings("restriction") public class PackageProjectWizardFirstPage extends ComposerProjectWizardFirstPage implements IShellProvider { private Validator projectTemplateValidator; private Button overrideComposer; private boolean doesOverride = false; public PackageProjectWizardFirstPage() { super(); setPageComplete(false); setTitle("Basic Composer Configuration"); setDescription("Create a new project from existing package"); } @Override public void createControl(Composite parent) { final Composite composite = new Composite(parent, SWT.NULL); composite.setFont(parent.getFont()); composite.setLayout(initGridLayout(new GridLayout(1, false), false)); composite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); initialName = ""; // create UI elements nameGroup = new NameGroup(composite, initialName, getShell()); nameGroup.addObserver(this); PHPLocationGroup = new LocationGroup(composite, nameGroup, getShell()); overrideComposer = new Button(composite, SWT.CHECK); overrideComposer.setText("Override composer.json from target package"); overrideComposer.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { doesOverride = overrideComposer.getSelection(); settingsGroup.setEnabled(overrideComposer.getSelection()); } }); final Group group = new Group(composite, SWT.None); group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); group.setLayout(new GridLayout(3, false)); group.setText(""); settingsGroup = new BasicSettingsGroup(group, getShell()); settingsGroup.setEnabled(false); settingsGroup.addObserver(this); CompositeData data = new CompositeData(); data.setParetnt(composite); data.setSettings(getDialogSettings()); data.setObserver(PHPLocationGroup); versionGroup = new VersionGroup(this, composite); nameGroup.addObserver(PHPLocationGroup); // initialize all elements nameGroup.notifyObservers(); // create and connect validator projectTemplateValidator = new Validator(this); nameGroup.addObserver(projectTemplateValidator); PHPLocationGroup.addObserver(projectTemplateValidator); Dialog.applyDialogFont(composite); setControl(composite); composerPackage = new ComposerPackage(); keywordConverter = new String2KeywordsConverter(composerPackage); setHelpContext(composite); } @Override public void performFinish(final IProgressMonitor monitor) { } @Override protected void setHelpContext(Control container) { PlatformUI.getWorkbench().getHelpSystem().setHelp(container, ComposerUIPlugin.PLUGIN_ID + "." + "help_context_wizard_template_firstpage"); } public boolean doesOverrideComposer() { return doesOverride; } }