package org.jboss.tools.windup.ui.internal.rules; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.jface.layout.GridDataFactory; import org.eclipse.jface.layout.GridLayoutFactory; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.dialogs.WizardNewFileCreationPage; import org.jboss.tools.windup.ui.WindupUIPlugin; import org.jboss.tools.windup.ui.internal.Messages; public class NewXMLFilePage extends WizardNewFileCreationPage { protected static final int USE_EMPTY = 0; protected static final int USE_DEFAULT = 1; protected static final int USE_CURRENT_TP = 2; protected static final int USE_EXISTING_TARGET = 3; public static String EXTENSION = "xml"; //$NON-NLS-1$ private Button quickstartButton; private Text rulesetIdText; public NewXMLFilePage(String pageName, IStructuredSelection selection) { super(pageName, selection); setTitle(Messages._UI_WIZARD_CREATE_XML_RULESET_FILE_HEADING); setDescription(Messages._UI_WIZARD_CREATE_XML_FILE_EXPL); setFileExtension(EXTENSION); setImageDescriptor(WindupUIPlugin.getImageDescriptor(WindupUIPlugin.IMG_XML_WIZ)); setFileName("custom.rules.windup.xml"); //$NON-NLS-1$ } @Override public void createControl(Composite parent) { super.createControl(parent); } @Override protected void createAdvancedControls(Composite parent) { Group group = new Group(parent, SWT.NONE); GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).applyTo(group); GridDataFactory.fillDefaults().grab(true, true).hint(SWT.DEFAULT, 18).applyTo(group); new Label(group, SWT.NONE).setText(Messages.NewRulesetWizard_rulesetId); rulesetIdText = new Text(group, SWT.NONE); rulesetIdText.addListener(SWT.Modify, new Listener() { @Override public void handleEvent(Event event) { setPageComplete(validatePage()); } }); group = new Group(parent, SWT.NONE); GridLayoutFactory.fillDefaults().applyTo(group); GridDataFactory.fillDefaults().grab(true, true).hint(SWT.DEFAULT, 18).applyTo(group); GridDataFactory.fillDefaults().grab(true, false).applyTo(rulesetIdText); quickstartButton = new Button(group, SWT.CHECK); quickstartButton.setText(Messages.NewRulesetWizard_generateTemplate); } public String getRulesetId() { return rulesetIdText.getText().trim(); } public boolean generateQuickStartTemplate() { return quickstartButton.getSelection(); } @Override protected boolean validatePage() { String filename = getFileName().trim(); // Verify the filename is non-empty if (filename.length() == 0) { // Reset previous error message set if any setErrorMessage(null); return false; } boolean valid = super.validatePage(); if (valid) { if (getRulesetId().length() == 0) { setErrorMessage(Messages.NewRulesetWizard_rulesetIdRequired); valid = false; } } return valid; } @Override protected IStatus validateLinkedResource() { return new Status(IStatus.OK, WindupUIPlugin.PLUGIN_ID, IStatus.OK, "", null); //$NON-NLS-1$ } @Override protected void createLinkTarget() { // NOOP } }