optionspage.java
来自「开源的axis2框架的源码。用于开发WEBSERVER」· Java 代码 · 共 1,238 行 · 第 1/3 页
JAVA
1,238 行
syncAndAsyncRadioButton.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
settings.put(PREF_RADIO_SYNC_AND_ASYNC, syncAndAsyncRadioButton
.getSelection());
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 1;
syncOnlyRadioButton = new Button(container, SWT.RADIO);
syncOnlyRadioButton.setLayoutData(gd);
syncOnlyRadioButton.setText(CodegenWizardPlugin
.getResourceString("page2.sync.caption"));
syncOnlyRadioButton.setSelection(settings
.getBoolean(PREF_RADIO_SYNC_ONLY));
syncOnlyRadioButton.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
settings.put(PREF_RADIO_SYNC_ONLY, syncOnlyRadioButton
.getSelection());
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 1;
asyncOnlyRadioButton = new Button(container, SWT.RADIO);
asyncOnlyRadioButton.setLayoutData(gd);
asyncOnlyRadioButton
.setText(org.apache.axis2.tool.codegen.eclipse.plugin.CodegenWizardPlugin
.getResourceString("page2.async.caption"));
asyncOnlyRadioButton.setSelection(settings
.getBoolean(PREF_RADIO_ASYNC_ONLY));
asyncOnlyRadioButton.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
settings.put(PREF_RADIO_ASYNC_ONLY, asyncOnlyRadioButton
.getSelection());
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
//filling label
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 3;
Label fillLabel1 = new Label(container, SWT.HORIZONTAL | SWT.SEPARATOR);
fillLabel1.setLayoutData(gd);
// Server side check box
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 3;
serverSideCheckBoxButton = new Button(container, SWT.CHECK);
serverSideCheckBoxButton.setLayoutData(gd);
serverSideCheckBoxButton.setText(CodegenWizardPlugin
.getResourceString("page2.serverside.caption"));
serverSideCheckBoxButton.setSelection(settings
.getBoolean(PREF_CHECK_GENERATE_SERVERSIDE));
serverSideCheckBoxButton.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
handleServersideSelection();
settings.put(PREF_CHECK_GENERATE_SERVERSIDE,
serverSideCheckBoxButton.getSelection());
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
// Server side services xml
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 1;
serverXMLCheckBoxButton = new Button(container, SWT.CHECK);
serverXMLCheckBoxButton.setLayoutData(gd);
serverXMLCheckBoxButton.setSelection(settings
.getBoolean(PREF_CHECK_GENERATE_SERVERCONFIG));
serverXMLCheckBoxButton.setText(CodegenWizardPlugin
.getResourceString("page2.serviceXML.caption"));
serverXMLCheckBoxButton.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
settings.put(PREF_CHECK_GENERATE_SERVERCONFIG,
serverXMLCheckBoxButton.getEnabled());
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
//the server side interface option
generateServerSideInterfaceCheckBoxButton = new Button(container, SWT.CHECK);
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 1;
generateServerSideInterfaceCheckBoxButton.setLayoutData(gd);
generateServerSideInterfaceCheckBoxButton.setSelection(settings
.getBoolean(PREF_GEN_SS_INTERFACE));
generateServerSideInterfaceCheckBoxButton.setText(CodegenWizardPlugin
.getResourceString("page2.ssInterface.caption"));
generateServerSideInterfaceCheckBoxButton.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
settings.put(PREF_GEN_SS_INTERFACE, generateServerSideInterfaceCheckBoxButton
.getSelection());
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
//filling label
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 3;
Label fillLabel2 = new Label(container, SWT.HORIZONTAL | SWT.SEPARATOR);
fillLabel2.setLayoutData(gd);
// generate all
generateAllCheckBoxButton = new Button(container, SWT.CHECK);
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 3;
generateAllCheckBoxButton.setLayoutData(gd);
generateAllCheckBoxButton.setSelection(settings
.getBoolean(PREF_GEN_ALL));
generateAllCheckBoxButton.setText(CodegenWizardPlugin
.getResourceString("page2.genAll.caption"));
generateAllCheckBoxButton.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
settings.put(PREF_GEN_ALL, generateAllCheckBoxButton
.getSelection());
handleGenerateAllSelection();
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
//filling label
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 3;
Label fillLabel3 = new Label(container, SWT.HORIZONTAL | SWT.SEPARATOR);
fillLabel3.setLayoutData(gd);
// Databinding
label = new Label(container, SWT.NULL);
label.setText(CodegenWizardPlugin
.getResourceString("page2.namespace2Pkg.caption"));
//add a table to set namespace to package mapping
gd = new GridData(GridData.FILL_BOTH);
gd.horizontalSpan = 3;
gd.verticalSpan = 5;
namespace2packageTable = new Table(container,SWT.BORDER|SWT.MULTI);
namespace2packageTable.setLinesVisible(true);
namespace2packageTable.setHeaderVisible(true);
namespace2packageTable.setEnabled(true);
namespace2packageTable.setLayoutData(gd);
declareColumn(namespace2packageTable,
350, //a default width until we adjust
CodegenWizardPlugin
.getResourceString("page2.namespace.caption"));
declareColumn(namespace2packageTable,
200,//a default width until we adjust
CodegenWizardPlugin
.getResourceString("page2.package.caption"));
namespace2packageTable.setVisible(true);
// add the table editor
final TableEditor editor = new TableEditor(namespace2packageTable);
editor.setColumn(1);
editor.horizontalAlignment = SWT.LEFT;
editor.grabHorizontal = true;
//This is the cute way of making the namespaces columns editable
namespace2packageTable.addListener(SWT.MouseDown, new Listener() {
public void handleEvent(Event event) {
Rectangle clientArea = namespace2packageTable.getClientArea();
Point pt = new Point(event.x, event.y);
int index = namespace2packageTable.getTopIndex();
while (index < namespace2packageTable.getItemCount()) {
boolean visible = false;
final TableItem item = namespace2packageTable.getItem(index);
for (int i = 0; i < namespace2packageTable.getColumnCount(); i++) {
Rectangle rect = item.getBounds(i);
if (rect.contains(pt)) {
final int column = i;
final Text text = new Text(namespace2packageTable, SWT.NONE);
Listener textListener = new Listener() {
public void handleEvent(final Event e) {
switch (e.type) {
case SWT.FocusOut:
item.setText(column, text.getText());
text.dispose();
break;
case SWT.Traverse:
switch (e.detail) {
case SWT.TRAVERSE_RETURN:
item
.setText(column, text
.getText());
// FALL THROUGH
case SWT.TRAVERSE_ESCAPE:
text.dispose();
e.doit = false;
}
break;
}
}
};
text.addListener(SWT.FocusOut, textListener);
text.addListener(SWT.Traverse, textListener);
editor.setEditor(text, item, i);
text.setText(item.getText(i));
text.selectAll();
text.setFocus();
return;
}
if (!visible && rect.intersects(clientArea)) {
visible = true;
}
}
if (!visible)
return;
index++;
}
}
});
//adjust the width
//adjustColumnWidth(namespace2packageTable);
/*
* Check the state of server-side selection, so we can enable/disable
* the serverXML checkbox button.
*/
handleServersideSelection();
/*
* try populating the combos and other information from the WSDL if this
* is restored
*/
if (restoredFromPreviousSettings) {
populateParamsFromWSDL();
selectDefaults();
}
//first appearence Disable all the controls
disableControls();
setControl(container);
setPageComplete(true);
}
// /**
// * Adjust the column widths
// * @param table
// */
// private void adjustColumnWidth(Table table){
// Point p = namespace2packageTable.computeSize(SWT.DEFAULT, SWT.DEFAULT);
// int columns = table.getColumnCount();
// for (int i=0;i<columns;i++){
// table.getColumn(i).setWidth(p.x/columns);
// }
// }
/**
* A util method to create a new column
* @param table
* @param width
* @param colName
*/
private void declareColumn(Table table, int width,String colName){
TableColumn column = new TableColumn(table,SWT.NONE);
column.setWidth(width);
column.setText(colName);
}
private void selectDefaults() {
serviceNameCombo.select(settings.getInt(PREF_COMBO_SERVICENAME_INDEX));
// ports need to be renamed in order for correct default selection
loadPortNames();
portNameCombo.select(settings.getInt(PREF_COMBO_SERVICENAME_INDEX));
}
private void populatePackageName() {
this.packageText.setText(reader.packageFromTargetNamespace());
}
/**
* populate the service and the port from the WSDL this needs to be public
* since the WSDLselection page may call this
*/
public void populateParamsFromWSDL() {
if (reader == null)
reader = new WSDLPropertyReader();
try {
String lname = getCodegenWizard().getWSDLname();
if (!"".equals(lname.trim())) {
reader.readWSDL(lname);
// enable the combo's
setComboBoxEnable(true);
this.serviceQNameList = reader.getServiceList();
if (!serviceQNameList.isEmpty()) {
serviceNameCombo.removeAll();
for (int i = 0; i < serviceQNameList.size(); i++) {
// add the local part of the
serviceNameCombo.add(((QName) serviceQNameList.get(i))
.getLocalPart());
}
;
// select the first one as the default
serviceNameCombo.select(0);
// load the ports
loadPortNames();
updateStatus(null);
} else {
// service name list being empty means we are switching to
// the interface mode
if (serviceNameCombo!=null) serviceNameCombo.removeAll();
if (portNameCombo!=null) portNameCombo.removeAll();
// disable the combo's
setComboBoxEnable(false);
//this is not an error
updateStatus(null);
}
populatePackageName();
//populate the namespacess
loadNamespaces(reader.getDefinitionNamespaceMap());
}
} catch (WSDLException e) {
// disable the combo's
setComboBoxEnable(false);
updateStatus(CodegenWizardPlugin
.getResourceString("page2.wsdlInvalid.message"));
}
catch (Exception e) {
// disable the combo's
setComboBoxEnable(false);
updateStatus(CodegenWizardPlugin
.getResourceString("page2.wsdlNotFound.message"));
}
}
private void loadPortNames() {
int selectionIndex = serviceNameCombo.getSelectionIndex();
if (selectionIndex != -1) {
java.util.List ports = reader.getPortNameList((QName) serviceQNameList
.get(selectionIndex));
if (!ports.isEmpty()) {
portNameCombo.removeAll();
for (int i = 0; i < ports.size(); i++) {
// add the local part of the
portNameCombo.add(ports.get(i).toString());
}
updateStatus(null);
portNameCombo.select(0);
} else {
updateStatus(CodegenWizardPlugin
.getResourceString("page2.noports.message"));
}
}
}
private void setComboBoxEnable(boolean b) {
if (serviceNameCombo != null) {
serviceNameCombo.setEnabled(b);
portNameCombo.setEnabled(b);
}
}
/**
* Loads the namespaces
* @param namespaceMap
*/
private void loadNamespaces(Map namespaceMap){
Iterator namespaces = namespaceMap.values().iterator();
namespace2packageTable.removeAll();
TableItem[] items = new TableItem[namespaceMap.size()]; // An item for each field
int i = 0;
while(namespaces.hasNext()){
items[i] = new TableItem(namespace2packageTable, SWT.NULL);
String namespace = (String)namespaces.next();
items[i].setText(0,namespace);
items[i].setText(1,getPackageFromNamespace(namespace));
i++;
}
namespace2packageTable.setVisible(true);
}
/**
* Fill the combo with proper databinding names
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?