| /* |
| * 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.tools.java2wsdl; |
| |
| import com.intellij.openapi.module.Module; |
| import com.intellij.openapi.project.Project; |
| import org.apache.axis2.tools.bean.WsdlgenBean; |
| import org.apache.axis2.tools.component.WizardComponents; |
| import org.apache.axis2.tools.component.WizardPanel; |
| import org.apache.axis2.tools.wizardframe.CodegenFrame; |
| |
| import javax.swing.*; |
| import java.awt.*; |
| import java.awt.event.ActionEvent; |
| import java.awt.event.ActionListener; |
| import java.io.File; |
| |
| /** this class java 2 wsdl output wizard panel */ |
| public class OutputPanel extends WizardPanel { |
| |
| private JRadioButton rbtnAdd; |
| private JRadioButton rbtnSave; |
| private JComboBox cmbCurrentProject; |
| private JComboBox cmbModuleSrc; |
| private JTextField txtLocation; |
| private JTextField txtFileName; |
| private JLabel lblModule; |
| private JLabel lblDirect; |
| private JLabel lblOutput; |
| private JButton btnBrowes; |
| final JFileChooser DirChooser=new JFileChooser(); |
| private Project project; |
| private WsdlgenBean wsdlgenBean; |
| private boolean flag = true; |
| |
| /** |
| * Constructor |
| * @param wizardComponents |
| * @param wsdlgenBean |
| * @param project |
| */ |
| public OutputPanel(WizardComponents wizardComponents,WsdlgenBean wsdlgenBean, Project project){ |
| super(wizardComponents, "Axis2 Idea Plugin Java2WSDL Wizards"); |
| setPanelTopTitle("WSDl file output location"); |
| setPanelBottomTitle("Select the location for the generated WSDL"); |
| this.wsdlgenBean=wsdlgenBean; |
| this.project=project; |
| init(); |
| } |
| private void init(){ |
| |
| rbtnAdd =new JRadioButton("Browes and Add the WSDL to a project on current Idea workspace",true); |
| |
| rbtnSave =new JRadioButton("Browes and Save the WSDL file on local file system",false); |
| |
| cmbCurrentProject =new JComboBox(); |
| cmbCurrentProject.setEnabled(true); |
| cmbModuleSrc=new JComboBox(); |
| cmbModuleSrc.setEnabled(true); |
| ButtonGroup buttonGroup= new ButtonGroup(); |
| buttonGroup.add(rbtnAdd ); |
| buttonGroup.add(rbtnSave ); |
| |
| txtFileName =new JTextField("service.wsdl"); |
| |
| txtLocation=new JTextField(); |
| |
| btnBrowes=new JButton("Browse.."); |
| lblOutput=new JLabel("OutPut Location"); |
| lblModule=new JLabel("Select the Module"); |
| lblModule.setEnabled(false); |
| lblDirect=new JLabel("Select the Directory"); |
| lblDirect.setEnabled(false); |
| |
| setBackButtonEnabled(true); |
| setNextButtonEnabled(false); |
| setFinishButtonEnabled(false); |
| this.setLayout(new GridBagLayout()); |
| |
| this.add(new JLabel("OutPut File Name") |
| , new GridBagConstraints(0, 0, 1, 1, 0.1, 0.0 |
| , GridBagConstraints.WEST , GridBagConstraints.NONE |
| , new Insets(5, 10, 0, 0), 0, 0)); |
| |
| this.add(txtFileName |
| , new GridBagConstraints(1, 0, 1, 1, 1.0, 0.0 |
| , GridBagConstraints.WEST , GridBagConstraints.HORIZONTAL |
| , new Insets(5, 10, 0, 0), 0, 0)); |
| |
| |
| this.add(new JLabel("Select the location where to put the output") |
| , new GridBagConstraints(0, 1, GridBagConstraints.REMAINDER, 1, 0.0, 0.0 |
| , GridBagConstraints.WEST , GridBagConstraints.NONE |
| , new Insets(5, 10, 0, 10), 0, 0)); |
| |
| this.add(rbtnAdd |
| , new GridBagConstraints(0, 2, GridBagConstraints.REMAINDER, 1, 0.0, 0.0 |
| , GridBagConstraints.WEST , GridBagConstraints.NONE |
| , new Insets(5, 10, 0,10), 0, 0)); |
| rbtnAdd.addActionListener(new ActionListener() { |
| public void actionPerformed(ActionEvent e) { |
| cmbCurrentProject.setEnabled(true); |
| cmbModuleSrc.setEnabled(true); |
| lblModule.setEnabled(true); |
| txtLocation .setEnabled(false); |
| btnBrowes.setEnabled(false); |
| loadCmbCurrentProject(); |
| loadcmbModuleSrcProject(); |
| setFinishButtonEnabled(true); |
| update(); |
| } |
| }); |
| |
| this.add(lblModule |
| , new GridBagConstraints(0, 3, 1, 1, 0.1, 0.0 |
| , GridBagConstraints.WEST , GridBagConstraints.NONE |
| , new Insets(5, 10, 0, 0), 0, 0)); |
| |
| this.add(cmbCurrentProject |
| , new GridBagConstraints(1, 3, GridBagConstraints.RELATIVE, 1, 1.0, 0.0 |
| , GridBagConstraints.WEST , GridBagConstraints.HORIZONTAL |
| , new Insets(5, 10, 0,0), 0, 0)); |
| cmbCurrentProject.addActionListener(new ActionListener() { |
| public void actionPerformed(ActionEvent e) { |
| loadcmbModuleSrcProject(); |
| update(); |
| } |
| }); |
| this.add(lblDirect |
| , new GridBagConstraints(0, 4, 1, 1, 0.1, 0.0 |
| , GridBagConstraints.WEST , GridBagConstraints.NONE |
| , new Insets(5, 10, 0, 0), 0, 0)); |
| |
| this.add(cmbModuleSrc |
| , new GridBagConstraints(1, 4, GridBagConstraints.RELATIVE, 1, 1.0, 0.0 |
| , GridBagConstraints.WEST , GridBagConstraints.HORIZONTAL |
| , new Insets(5, 10, 0,0), 0, 0)); |
| cmbModuleSrc.addActionListener(new ActionListener() { |
| public void actionPerformed(ActionEvent e) { |
| update(); |
| } |
| }); |
| |
| this.add(rbtnSave |
| , new GridBagConstraints(0, 5, GridBagConstraints.REMAINDER, 1, 1.0, 0.0 |
| , GridBagConstraints.WEST , GridBagConstraints.NONE |
| , new Insets(5, 10, 0,0), 0, 0)); |
| rbtnSave.addActionListener(new ActionListener() { |
| public void actionPerformed(ActionEvent e) { |
| cmbCurrentProject.setEnabled(false); |
| cmbModuleSrc.setEnabled(false); |
| txtLocation .setEnabled(true); |
| btnBrowes.setEnabled(true); |
| setEnabledForCustomProject(); |
| update(); |
| } |
| }); |
| this.add(lblOutput |
| , new GridBagConstraints(0, 6, 1, 1, 0.1, 1.0 |
| , GridBagConstraints.NORTHWEST , GridBagConstraints.NONE |
| , new Insets(5, 10, 0,0), 0, 0)); |
| |
| this.add(txtLocation |
| , new GridBagConstraints(1, 6, 1, 1, 1.0, 1.0 |
| , GridBagConstraints.NORTHWEST , GridBagConstraints.HORIZONTAL |
| , new Insets(5, 10, 0, 0), 0, 0)); |
| |
| this.add(btnBrowes |
| , new GridBagConstraints(2, 6, 1, 1, 0.1, 1.0 |
| , GridBagConstraints.NORTHWEST , GridBagConstraints.NONE |
| , new Insets(5, 10, 0, 10), 0, 0)); |
| |
| btnBrowes.addActionListener(new ActionListener() { |
| public void actionPerformed(ActionEvent e) { |
| DirChooser .setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); |
| int returnVal = DirChooser.showOpenDialog(btnBrowes ); |
| if (returnVal == JFileChooser.APPROVE_OPTION) { |
| DirChooser.setFileSelectionMode(JFileChooser .FILES_ONLY ); |
| File newfile = DirChooser.getSelectedFile(); |
| txtLocation.setText(newfile.getAbsolutePath() ); |
| } |
| update(); |
| } |
| }); |
| |
| wsdlgenBean.setProject(project); |
| } |
| |
| public void loadCmbCurrentProject() { |
| Module modules[] = wsdlgenBean.getModules(); |
| |
| if (modules != null) { |
| for (int count = 0; count < modules.length; count++) { |
| cmbCurrentProject.addItem(modules[count].getName()); |
| } |
| }else{ |
| rbtnSave.setSelected(true); |
| rbtnAdd.setEnabled(false); |
| } |
| } |
| public void loadcmbModuleSrcProject() { |
| String module = null; |
| module = (String) cmbCurrentProject.getSelectedItem(); |
| cmbModuleSrc.removeAllItems(); |
| int count = 0; |
| if (module != null) { |
| String src[] = wsdlgenBean.getModuleSrc(module); |
| for ( count = 0; count < src.length; count++) { |
| cmbModuleSrc.addItem(src[count]); |
| } |
| count = src.length; |
| } |
| if (flag) |
| { |
| if (count == 0) { |
| flag =false; |
| setEnabledForCustomProject(); |
| } |
| else{ |
| setEnabledForCurrentProject(); |
| } |
| } |
| } |
| |
| public void back() { |
| switchPanel(CodegenFrame.PANEL_OPTION_B ); |
| } |
| |
| public void next() { |
| |
| } |
| |
| public void update(){ |
| if(rbtnSave.isSelected()){ |
| if(txtFileName.getText() !=null && txtLocation.getText() !=null) { |
| wsdlgenBean.setOutputWSDLName(txtFileName.getText()); |
| wsdlgenBean.setOutputLocation(txtLocation.getText()); |
| setFinishButtonEnabled(true); |
| }else if(txtLocation.getText() !=null){ |
| wsdlgenBean.setOutputLocation(txtLocation.getText()); |
| setFinishButtonEnabled(false); |
| }else if(txtFileName.getText() !=null){ |
| wsdlgenBean.setOutputWSDLName(txtFileName .getText()); |
| setFinishButtonEnabled(false); |
| } else |
| setFinishButtonEnabled(false); |
| }else if(rbtnAdd.isSelected()){ |
| if(txtFileName.getText() !=null && cmbModuleSrc.getSelectedItem() !=null){ |
| wsdlgenBean.setOutputWSDLName(txtFileName.getText()); |
| wsdlgenBean.setOutputLocation(cmbModuleSrc.getSelectedItem().toString()); |
| setFinishButtonEnabled(true); |
| }else if(txtFileName .getText() !=null){ |
| wsdlgenBean.setOutputWSDLName(txtFileName .getText()); |
| setFinishButtonEnabled(false); |
| }else |
| setFinishButtonEnabled(false); |
| } |
| setBackButtonEnabled(true); |
| setNextButtonEnabled(false); |
| |
| } |
| public int getPageType() { |
| return WizardPanel.JAVA_2_WSDL_TYPE; |
| } |
| private void setEnabledForCurrentProject(){ |
| rbtnAdd.setSelected(true); |
| rbtnAdd.setEnabled(true); |
| cmbCurrentProject.setEnabled(true); |
| cmbModuleSrc.setEnabled(true); |
| lblDirect.setEnabled(true); |
| lblModule .setEnabled(true); |
| rbtnSave.setSelected(false); |
| txtLocation.setEnabled(false); |
| lblOutput .setEnabled(false); |
| btnBrowes.setEnabled(false); |
| } |
| private void setEnabledForCustomProject(){ |
| if(flag){ |
| rbtnAdd.setEnabled(false); |
| rbtnAdd.setSelected(false); |
| }else{ |
| rbtnSave .setEnabled(true); |
| rbtnSave .setSelected(true); |
| } |
| cmbCurrentProject.setEnabled(false); |
| cmbModuleSrc.setEnabled(false); |
| lblDirect.setEnabled(false); |
| lblModule .setEnabled(false); |
| txtLocation .setEnabled(true); |
| lblOutput .setEnabled(true); |
| btnBrowes .setEnabled(true); |
| } |
| } |
| |