optionspage.java
来自「开源的axis2框架的源码。用于开发WEBSERVER」· Java 代码 · 共 1,238 行 · 第 1/3 页
JAVA
1,238 行
/*
* 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 java.util.Iterator;
import java.util.Map;
import javax.wsdl.WSDLException;
import javax.xml.namespace.QName;
import org.apache.axis2.tool.codegen.eclipse.plugin.CodegenWizardPlugin;
import org.apache.axis2.tool.codegen.eclipse.util.UIConstants;
import org.apache.axis2.tool.codegen.eclipse.util.WSDLPropertyReader;
import org.apache.axis2.util.URLProcessor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.TableEditor;
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.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
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.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
/**
* Options Page lets the user change general settings on the code generation. It
* is used in the CodegenWizardPlugin, CodeGenWizard.
*
*/
public class OptionsPage extends AbstractWizardPage implements UIConstants {
/**
* Selection list for target languages
*/
private Combo languageSelectionComboBox;
/**
* A radio button to enable/disable code generation for synchronous and
* asynchronous calls.
*/
private Button syncAndAsyncRadioButton;
/**
* A radio button to choose "synchronous only" code generation
*/
private Button syncOnlyRadioButton;
/**
* A radio button to choose "asynchronous only" code generation
*/
private Button asyncOnlyRadioButton;
/**
* Label holding the full qualified package name for generated code
*/
private Text packageText;
/**
* Checkbox to enable server-side skeleton code generation. If enabled,
* generates an empty implementation of the service
*/
private Button serverSideCheckBoxButton;
/**
* Checkbox to enable client side code generation. If enabled,
* generates an empty implementation of the service
*/
private Button clientSideCheckBoxButton;
/**
* Checkbox to enable the generation of test case classes for the generated
* implementation of the webservice.
*/
private Button testCaseCheckBoxButton;
/**
* Checkbox to enable the generation of a default server.xml configuration
* file
*/
private Button serverXMLCheckBoxButton;
/**
* Checkbox to enable the generate all classes
*/
private Button generateAllCheckBoxButton;
/**
* check box for server side interface
*/
private Button generateServerSideInterfaceCheckBoxButton;
private Combo databindingTypeCombo;
/**
* Text box to have the portname
*/
private Combo portNameCombo;
/**
* Text box to have the service name
*/
private Combo serviceNameCombo;
private WSDLPropertyReader reader;
private java.util.List serviceQNameList = null;
private final int EDITABLECOLUMN = 1;
private String defaultPackageName = null;
private Combo codegenOptionSelectionComboBox;
/**
* A table to keep the namespace to
* package mappings
*/
private Table namespace2packageTable = null;
Composite container;
/**
* Creates the page and initialize some settings
*/
public OptionsPage() {
super("page2");
}
/**
* Sets the default values for the Options page
*
*/
protected void initializeDefaultSettings() {
settings.put(PREF_CHECK_GENERATE_SERVERCONFIG, false);
settings.put(PREF_CHECK_GENERATE_SERVERSIDE, false);
settings.put(PREF_CHECK_GENERATE_TESTCASE, false);
settings.put(PREF_LANGUAGE_INDEX, 0);
settings.put(PREF_PACKAGE_NAME, DEFAULT_PACKAGENAME);
settings.put(PREF_RADIO_ASYNC_ONLY, false);
settings.put(PREF_RADIO_SYNC_AND_ASYNC, true);
settings.put(PREF_RADIO_SYNC_ONLY, false);
settings.put(PREF_COMBO_PORTNAME_INDEX, 0);
settings.put(PREF_COMBO_SERVICENAME_INDEX, 0);
settings.put(PREF_DATABINDER_INDEX, 0);
settings.put(PREF_GEN_ALL, false);
settings.put(PREF_GEN_SS_INTERFACE, false);
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
*/
public void createControl(Composite parent) {
container = new Composite(parent, SWT.NULL);
GridLayout layout = new GridLayout();
container.setLayout(layout);
layout.numColumns = 3;
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
Label label = new Label(container, SWT.NULL);
label.setText(CodegenWizardPlugin.getResourceString("page2.options.desc"));
label.setLayoutData(gd);
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 2;
codegenOptionSelectionComboBox = new Combo(container, SWT.DROP_DOWN| SWT.BORDER | SWT.READ_ONLY);
// fill the combo
this.fillCodegenOptionSelectionComboBox();
codegenOptionSelectionComboBox.setLayoutData(gd);
settings.put(PREF_CODEGEN_OPTION_INDEX, codegenOptionSelectionComboBox
.getSelectionIndex());
codegenOptionSelectionComboBox.select(settings.getInt(PREF_CODEGEN_OPTION_INDEX));
codegenOptionSelectionComboBox.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
settings.put(PREF_CODEGEN_OPTION_INDEX, codegenOptionSelectionComboBox
.getSelectionIndex());
if (codegenOptionSelectionComboBox
.getSelectionIndex() == 0 ){
disableControls();
}else if (codegenOptionSelectionComboBox
.getSelectionIndex() == 1){
enableControls();
}
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 2;
Label label1 = new Label(container, SWT.NULL);
label1.setText(CodegenWizardPlugin
.getResourceString("page2.language.caption"));
languageSelectionComboBox = new Combo(container, SWT.DROP_DOWN| SWT.BORDER | SWT.READ_ONLY);
// fill the combo
this.fillLanguageCombo();
languageSelectionComboBox.setLayoutData(gd);
languageSelectionComboBox.select(settings.getInt(PREF_LANGUAGE_INDEX));
languageSelectionComboBox.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
settings.put(PREF_LANGUAGE_INDEX, languageSelectionComboBox
.getSelectionIndex());
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
// service name
label = new Label(container, SWT.NULL);
label.setText(CodegenWizardPlugin
.getResourceString("page2.serviceName.caption"));
serviceNameCombo = new Combo(container, SWT.DROP_DOWN | SWT.BORDER
| SWT.READ_ONLY);
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 2;
serviceNameCombo.setLayoutData(gd);
// serviceNameCombo.setText(settings.get(PREF_TEXT_SERVICENAME));
serviceNameCombo.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
// update the settings
settings.put(PREF_COMBO_SERVICENAME_INDEX, serviceNameCombo
.getSelectionIndex());
// reload the portName list
loadPortNames();
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
// port name
label = new Label(container, SWT.NULL);
label.setText(CodegenWizardPlugin
.getResourceString("page2.portName.caption"));
portNameCombo = new Combo(container, SWT.DROP_DOWN | SWT.BORDER
| SWT.READ_ONLY);
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 2;
portNameCombo.setLayoutData(gd);
portNameCombo.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
// update the settings
settings.put(PREF_COMBO_PORTNAME_INDEX, portNameCombo
.getSelectionIndex());
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
// Databinding
label = new Label(container, SWT.NULL);
label.setText(CodegenWizardPlugin
.getResourceString("page2.databindingCheck.caption"));
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 2;
databindingTypeCombo = new Combo(container, SWT.DROP_DOWN | SWT.BORDER
| SWT.READ_ONLY);
databindingTypeCombo.setLayoutData(gd);
fillDatabinderCombo();
databindingTypeCombo.select(settings.getInt(PREF_DATABINDER_INDEX));
databindingTypeCombo.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
settings.put(PREF_DATABINDER_INDEX, databindingTypeCombo
.getSelectionIndex());
};
public void widgetDefaultSelected(SelectionEvent e) {
};
});
// package name
label = new Label(container, SWT.NULL);
label.setText(CodegenWizardPlugin
.getResourceString("page2.package.caption"));
packageText = new Text(container, SWT.BORDER);
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 2;
packageText.setLayoutData(gd);
String packageName;
String storedPackageName = settings.get(PREF_PACKAGE_NAME);
this.defaultPackageName = storedPackageName;
if (storedPackageName.equals("")) {
packageName = URLProcessor.makePackageName("");
} else {
packageName = storedPackageName;
}
//if the package name somehow turned out to be null set it to
//default package
if (packageName==null)packageName=URLProcessor.DEFAULT_PACKAGE;
packageText.setText(packageName); // get this text from the
// URLProcessor
packageText.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
handleCustomPackageNameModifyEvent();
settings.put(PREF_PACKAGE_NAME, packageText.getText());
}
});
// generate test case option
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 3;
testCaseCheckBoxButton = new Button(container, SWT.CHECK);
testCaseCheckBoxButton.setLayoutData(gd);
testCaseCheckBoxButton
.setText(org.apache.axis2.tool.codegen.eclipse.plugin.CodegenWizardPlugin
.getResourceString("page2.testcase.caption"));
testCaseCheckBoxButton.setSelection(settings
.getBoolean(PREF_CHECK_GENERATE_TESTCASE));
testCaseCheckBoxButton.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
settings.put(PREF_CHECK_GENERATE_TESTCASE,
testCaseCheckBoxButton.getSelection());
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
//filling label
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 3;
Label fillLabel = new Label(container, SWT.HORIZONTAL | SWT.SEPARATOR);
fillLabel.setLayoutData(gd);
//cleint side label
// gd = new GridData(GridData.FILL_HORIZONTAL);
// gd.horizontalSpan = 3;
// Label lblClientside = new Label(container, SWT.NONE);
// lblClientside.setText(CodegenWizardPlugin
// .getResourceString("page2.clientside.caption"));
// lblClientside.setLayoutData(gd);
//cleint side label
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 3;
clientSideCheckBoxButton = new Button(container, SWT.CHECK);
clientSideCheckBoxButton.setLayoutData(gd);
clientSideCheckBoxButton.setText(CodegenWizardPlugin
.getResourceString("page2.clientside.caption"));
clientSideCheckBoxButton.setSelection(settings
.getBoolean(PREF_CHECK_GENERATE_CLIENTSIDE));
clientSideCheckBoxButton.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
handleClientsideSelection();
settings.put(PREF_CHECK_GENERATE_CLIENTSIDE,
clientSideCheckBoxButton.getSelection());
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
//client side buttons
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 1;
syncAndAsyncRadioButton = new Button(container, SWT.RADIO);
syncAndAsyncRadioButton.setLayoutData(gd);
syncAndAsyncRadioButton.setText(CodegenWizardPlugin
.getResourceString("page2.syncAsync.caption"));
syncAndAsyncRadioButton.setSelection(settings
.getBoolean(PREF_RADIO_SYNC_AND_ASYNC));
syncAndAsyncRadioButton.setVisible(true);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?