/******************************************************************************* | |
* Copyright (c) 2006, 2012 Oracle Corporation and others. | |
* All rights reserved. This program and the accompanying materials | |
* are made available under the terms of the Eclipse Public License 2.0 | |
* which accompanies this distribution, and is available at | |
* https://www.eclipse.org/legal/epl-2.0/ | |
* | |
* SPDX-License-Identifier: EPL-2.0 | |
* | |
* Contributors: | |
* Oracle Corporation - initial API and implementation | |
*******************************************************************************/ | |
package org.eclipse.bpel.ui.wizards; | |
import java.util.Iterator; | |
import org.eclipse.bpel.model.partnerlinktype.PartnerLinkType; | |
import org.eclipse.bpel.ui.BPELUIPlugin; | |
import org.eclipse.bpel.ui.IBPELUIConstants; | |
import org.eclipse.bpel.ui.util.BPELUtil; | |
import org.eclipse.jface.dialogs.IDialogSettings; | |
import org.eclipse.jface.dialogs.IInputValidator; | |
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.Event; | |
import org.eclipse.swt.widgets.Label; | |
import org.eclipse.swt.widgets.Listener; | |
import org.eclipse.swt.widgets.Text; | |
import org.eclipse.wst.wsdl.Definition; | |
/** | |
* @author Michal Chmielewski (michal.chmielewski@oracle.com) | |
* @date Aug 14, 2006 | |
* | |
*/ | |
public class CreatePartnerLinkTypeWizardNamePage extends WizardPage { | |
Text partnerLinkTypeName; | |
Text hintText; | |
Definition fDefinitions; | |
// constants | |
static final int SIZING_TEXT_FIELD_WIDTH = 250; | |
/** | |
* @param pageName | |
*/ | |
protected CreatePartnerLinkTypeWizardNamePage(String pageName) { | |
super(pageName); | |
setPageComplete(false); | |
setTitle(Messages.CreatePartnerLinkTypeWizardNamePage_0); | |
setDescription(Messages.CreatePartnerLinkTypeWizardNamePage_1); | |
setImageDescriptor(BPELUIPlugin.INSTANCE.getImageDescriptor( | |
IBPELUIConstants.ICON_WIZARD_BANNER)); | |
} | |
/* | |
* (non-Javadoc) | |
* | |
* @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite) | |
*/ | |
public void createControl(Composite parent) { | |
Composite composite = new Composite(parent, SWT.NULL); | |
composite.setFont(parent.getFont()); | |
initializeDialogUnits(parent); | |
composite.setLayout(new GridLayout()); | |
composite.setLayoutData(new GridData(GridData.FILL_BOTH)); | |
createPartnerLinkName(composite); | |
setPageComplete(validatePage()); | |
// no errors on opening up the wizard | |
setErrorMessage(null); | |
setMessage(null); | |
setControl(composite); | |
// figure out the what needs to go | |
} | |
Composite createPartnerLinkName(Composite parent) { | |
Composite fields = new Composite(parent, SWT.NONE); | |
GridLayout layout = new GridLayout(); | |
layout.numColumns = 2; | |
fields.setLayout(layout); | |
fields.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); | |
// new project label | |
Label label = new Label(fields, SWT.NONE); | |
label.setText(Messages.CreatePartnerLinkTypeWizardNamePage_2); | |
label.setFont(parent.getFont()); | |
// new project name entry field | |
partnerLinkTypeName = new Text(fields, SWT.BORDER); | |
GridData data = new GridData(GridData.FILL_HORIZONTAL); | |
data.widthHint = SIZING_TEXT_FIELD_WIDTH; | |
partnerLinkTypeName.setLayoutData(data); | |
partnerLinkTypeName.setFont(parent.getFont()); | |
partnerLinkTypeName.addListener(SWT.Modify, new Listener() { | |
public void handleEvent(Event event) { | |
setPageComplete(validatePage()); | |
} | |
}); | |
hintText = new Text(parent, SWT.READ_ONLY | SWT.WRAP | SWT.SCROLL_LINE); | |
data = new GridData(GridData.FILL_HORIZONTAL); | |
data.widthHint = SIZING_TEXT_FIELD_WIDTH; | |
data.heightHint = 80; | |
hintText.setLayoutData(data); | |
hintText.setFont(parent.getFont()); | |
hintText | |
.setText(Messages.CreatePartnerLinkTypeWizardNamePage_3); | |
return fields; | |
} | |
/** | |
* Returns whether this page's controls currently all contain valid values. | |
* | |
* @return <code>true</code> if all controls are valid, and | |
* <code>false</code> if at least one is invalid | |
*/ | |
protected boolean validatePage() { | |
String pltName = partnerLinkTypeName.getText(); | |
IInputValidator validator = BPELUtil.getNCNameValidator(); | |
String pltMsg = validator.isValid(pltName); | |
if (pltMsg != null) { | |
// all is OK | |
setMessage(pltMsg,ERROR); | |
return false; | |
} | |
if (fDefinitions != null) { | |
// This is silly, it has to belong someplace else. | |
Iterator it = fDefinitions.getEExtensibilityElements().iterator(); | |
while (it.hasNext()) { | |
Object element = it.next(); | |
if (element instanceof PartnerLinkType) { | |
PartnerLinkType plt = (PartnerLinkType) element; | |
if (pltName.equals( plt.getName())) { | |
setMessage(Messages.CreatePartnerLinkTypeWizardNamePage_4,ERROR); | |
return false; | |
} | |
} | |
} | |
} | |
setMessage(null,NONE); | |
return true; | |
} | |
public String getPartnerLinkTypeName () { | |
return partnerLinkTypeName.getText(); | |
} | |
/** | |
* @param artifactsDefinition | |
*/ | |
public void setDefinitions(Definition defn) { | |
fDefinitions = defn; | |
} | |
} |