package org.genmymodel.customgen.wizards.newProject; import org.eclipse.jface.dialogs.IDialogPage; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.layout.FillLayout; 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.Group; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; /** * * @author Ali Gourch * @author Vincent Aranega * */ public class NewCustomgenProjectWizardPage extends WizardPage { private Text nameWidget; private Button metamodelWidget; private Button transformationWidget; private NewCustomgenProjectWizardModel model; /** * Constructor for ProjectMainPage. */ public NewCustomgenProjectWizardPage() { super("Page"); setTitle("GenMyModel Custom Generator Project"); setDescription("Create new Project"); } /** * @see IDialogPage#createControl(Composite) */ @Override public void createControl(Composite parent) { model = ((NewCustomgenProjectWizard) getWizard()).model; Composite composite = new Composite(parent, SWT.NULL); composite.setLayout(new FillLayout(SWT.VERTICAL)); setControl(composite); Composite upper = new Composite(composite, SWT.NONE); upper.setLayout(new GridLayout(2, false)); Label nameLabel = new Label(upper, SWT.RIGHT); nameLabel.setText("Project name:"); nameWidget = new Text(upper, SWT.BORDER); GridData gridData = new GridData(); gridData.horizontalAlignment = SWT.FILL; gridData.grabExcessHorizontalSpace = true; nameWidget.setLayoutData(gridData); Group optionsInfo = new Group(composite, SWT.NONE); optionsInfo.setSize(composite.getSize()); optionsInfo.setText("custom generator options"); optionsInfo.setLayout(new GridLayout(2, true)); metamodelWidget = new Button(optionsInfo, SWT.CHECK); metamodelWidget.setText("My project will use intermediate metamodels"); transformationWidget = new Button(optionsInfo, SWT.CHECK); transformationWidget.setText("My project will use M2M transformations"); GridData gdata = new GridData(); gdata.horizontalAlignment = SWT.RIGHT; gdata.grabExcessHorizontalSpace = true; transformationWidget.setLayoutData(gdata); addListeners(); } /** * Adds widget listeners. */ private void addListeners() { nameWidget.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { model.name = nameWidget.getText(); } }); metamodelWidget.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { model.metamodel = metamodelWidget.getSelection(); } @Override public void widgetDefaultSelected(SelectionEvent e) { } }); transformationWidget.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { model.transformation = transformationWidget.getSelection(); } @Override public void widgetDefaultSelected(SelectionEvent e) { } }); } }