blob: 1b2ee2b473e9321fef456d6fdf815e77af587acc [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.axis2.tool.codegen.eclipse.ui;
import org.apache.axis2.tool.codegen.eclipse.plugin.CodegenWizardPlugin;
import org.apache.axis2.tool.codegen.eclipse.util.NamespaceFinder;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
/*
* Usage java2wsdl -cn <fully qualified class name> : class file name -o <output
* Location> : output file location -cp <class path uri> : list of classpath
* entries - (urls) -tn <target namespace> : target namespace -tp <target
* namespace prefix> : target namespace prefix -stn <schema target namespace> :
* target namespace for schema -stp <schema target namespace prefix> : target
* namespace prefix for schema -sn <service name> : service name -of <output
* file name> : output file name for the WSDL
*/
public class JavaWSDLOptionsPage extends AbstractWizardPage {
private Text targetNamespaceText;
private Text targetNamespacePrefixText;
private Text schemaTargetNamepaceText;
private Text schemaTargetNamespacePrefixText;
private Text serviceNameText;
// TODO need more here
/*
* (non-Javadoc)
*
* @see org.apache.axis2.tool.codegen.eclipse.ui.AbstractWizardPage#initializeDefaultSettings()
*/
protected void initializeDefaultSettings() {
settings.put(PREF_JAVA_TARGET_NS,"" );
settings.put(PREF_JAVA_TARGET_NS_PREF, "");
settings.put(PREF_JAVA_SCHEMA_TARGET_NS, "");
settings.put(PREF_JAVA_SCHEMA_TARGET_NS_PREF, "");
settings.put(PREF_JAVA_SERVICE_NAME, "");
}
public void setNamespaceDefaults(String fullyQualifiedClassName){
targetNamespaceText.setText(NamespaceFinder.getTargetNamespaceFromClass(fullyQualifiedClassName));
schemaTargetNamepaceText.setText(NamespaceFinder.getSchemaTargetNamespaceFromClass(fullyQualifiedClassName));
targetNamespacePrefixText.setText(NamespaceFinder.getDefaultNamespacePrefix());
schemaTargetNamespacePrefixText.setText(NamespaceFinder.getDefaultSchemaNamespacePrefix());
// serviceNameText.setText(fullyQualifiedClassName.replaceAll("\\.","_"));
serviceNameText.setText(NamespaceFinder.getServiceNameText(fullyQualifiedClassName));
}
/**
* @param pageName
*/
public JavaWSDLOptionsPage() {
super("page5");
}
/*
* (non-Javadoc)
*
* @see org.apache.axis2.tool.codegen.eclipse.ui.CodegenPage#getPageType()
*/
public int getPageType() {
return JAVA_2_WSDL_TYPE;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
*/
public void createControl(Composite parent) {
Composite container = new Composite(parent, SWT.NULL);
GridLayout layout = new GridLayout();
container.setLayout(layout);
layout.numColumns = 2;
layout.verticalSpacing = 9;
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
Label label = new Label(container, SWT.NULL);
label.setText(CodegenWizardPlugin
.getResourceString("page5.targetNamespace.label"));
targetNamespaceText = new Text(container, SWT.BORDER | SWT.SINGLE);
targetNamespaceText.setLayoutData(gd);
targetNamespaceText.setText(settings.get(PREF_JAVA_TARGET_NS));
targetNamespaceText.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
settings
.put(PREF_JAVA_TARGET_NS, targetNamespaceText.getText());
// dialogChanged();
}
});
label = new Label(container, SWT.NULL);
label.setText(CodegenWizardPlugin
.getResourceString("page5.targetNamespacePrefix.label"));
gd = new GridData(GridData.FILL_HORIZONTAL);
targetNamespacePrefixText = new Text(container, SWT.BORDER);
targetNamespacePrefixText.setLayoutData(gd);
targetNamespacePrefixText.setText(settings
.get(PREF_JAVA_TARGET_NS_PREF));
targetNamespacePrefixText.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
settings.put(PREF_JAVA_TARGET_NS_PREF,
targetNamespacePrefixText.getText());
// dialogChanged();
}
});
label = new Label(container, SWT.NULL);
label.setText(CodegenWizardPlugin
.getResourceString("page5.schemaTargetNs.label"));
gd = new GridData(GridData.FILL_HORIZONTAL);
schemaTargetNamepaceText = new Text(container, SWT.BORDER);
schemaTargetNamepaceText.setLayoutData(gd);
schemaTargetNamepaceText.setText(settings
.get(PREF_JAVA_SCHEMA_TARGET_NS_PREF));
schemaTargetNamepaceText.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
settings.put(PREF_JAVA_SCHEMA_TARGET_NS_PREF,
schemaTargetNamepaceText.getText());
// dialogChanged();
}
});
label = new Label(container, SWT.NULL);
label.setText(CodegenWizardPlugin
.getResourceString("page5.schemaTargetNsPrefix.label"));
gd = new GridData(GridData.FILL_HORIZONTAL);
schemaTargetNamespacePrefixText = new Text(container, SWT.BORDER);
schemaTargetNamespacePrefixText.setLayoutData(gd);
schemaTargetNamespacePrefixText.setText(settings
.get(PREF_JAVA_SCHEMA_TARGET_NS));
schemaTargetNamespacePrefixText.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
settings.put(PREF_JAVA_SCHEMA_TARGET_NS,
schemaTargetNamespacePrefixText.getText());
// dialogChanged();
}
});
label = new Label(container, SWT.NULL);
label.setText(CodegenWizardPlugin
.getResourceString("page5.serviceName.label"));
gd = new GridData(GridData.FILL_HORIZONTAL);
serviceNameText = new Text(container, SWT.BORDER);
serviceNameText.setLayoutData(gd);
serviceNameText.setText(settings
.get(PREF_JAVA_SCHEMA_TARGET_NS));
serviceNameText.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
settings.put(PREF_JAVA_SERVICE_NAME,
serviceNameText.getText());
dialogChanged();
}
});
setControl(container);
}
public String getTargetNamespace() {
return this.targetNamespaceText.getText();
}
public String getTargetNamespacePrefix() {
return this.targetNamespacePrefixText.getText();
}
public String getSchemaTargetNamespace() {
return this.schemaTargetNamepaceText.getText();
}
public String getSchemaTargetNamespacePrefix() {
return this.schemaTargetNamespacePrefixText.getText();
}
public String getServiceName() {
return this.serviceNameText.getText();
}
/**
* Handle the dialog change event. Basically evaluates the file name and
* sets the error message accordingly
*/
private void dialogChanged() {
String fileName = getServiceName();
if (fileName.length() == 0) {
updateStatus(CodegenWizardPlugin
.getResourceString("page5.error.filemissingerror"));
return;
}
// update the status
updateStatus(null);
}
}