blob: b6c90dbf0176f8447ec254881c1c558d8903dbf1 [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.ideaplugin.frames;
import org.apache.axis2.tools.component.WizardComponents;
import org.apache.axis2.tools.component.WizardPanel;
import org.apache.axis2.tools.wizardframe.CodegenFrame;
import org.apache.ideaplugin.bean.ArchiveBean;
import org.apache.ideaplugin.bean.ParameterObj;
import org.apache.ideaplugin.bean.ValidateXMLFile;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class ServiceXMLEditPage extends WizardPanel {
protected JTextArea desArea;
protected JButton addpara;
protected JButton addModuleRef;
protected JButton validateXML;
private JButton reGenerate;
protected JScrollPane sp;
private JLabel lblerror;
private ArchiveBean archiveBean;
public ServiceXMLEditPage(WizardComponents wizardComponents, ArchiveBean archiveBean){
super(wizardComponents, "Axis2 Idea Plugin Service Archiver Creator Wizards");
setPanelTopTitle("Service Archiver");
setPanelBottomTitle("Edit the generated service.xml");
this.archiveBean=archiveBean;
init();
}
public void init(){
ParameterDialog.initialize(addpara, "Parameter Dialog");
addpara = new JButton("+Parameter ");
addpara.setEnabled(false);
addModuleRef = new JButton("+ModuleRef ");
addModuleRef.setEnabled(false);
validateXML =new JButton("Validate XML");
reGenerate=new JButton("ReGenerate XML");
lblerror=new JLabel();
desArea = new JTextArea("");
sp = new JScrollPane(desArea);
sp.setAutoscrolls(true);
this.setLayout(new GridBagLayout());
setDefaultEnabled();
this.add(addpara
, new GridBagConstraints(0, 0, 1, 1, 1.0, 0.0
, GridBagConstraints.CENTER , GridBagConstraints.NONE
, new Insets(5, 1, 0, 10), 0, 0));
addpara.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ParameterObj selectedName=ParameterDialog.showDialog("Parameter Dialog");
setParameter(selectedName);
setEnabledToNotValidate();
update();
}
});
this.add(addModuleRef
, new GridBagConstraints(1, 0, 1, 1, 1.0, 0.0
, GridBagConstraints.CENTER , GridBagConstraints.NONE
, new Insets(5, 10, 1,10), 0, 0));
addModuleRef.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String moduleName = (String)JOptionPane.showInputDialog(
addModuleRef,
"Module Name","Module Dialog",
JOptionPane.PLAIN_MESSAGE);
setModule(moduleName);
setEnabledToNotValidate();
update();
}
});
this.add(validateXML
, new GridBagConstraints(2, 0, 1, 1, 1.0, 0.0
, GridBagConstraints.CENTER , GridBagConstraints.NONE
, new Insets(5, 10, 1,10), 0, 0));
validateXML.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(new ValidateXMLFile().Validate("<?xml version=\"1.0\"?>\n"+desArea.getText())) {
setEnabledToValidate();
lblerror.setText("Service XML file validation successfully");
} else{
setEnabledToNotValidate();
lblerror.setText("Error! Service XML file validation Error");
}
update();
}
});
this.add(reGenerate
, new GridBagConstraints(3, 0, 1, 1, 1.0, 0.0
, GridBagConstraints.CENTER , GridBagConstraints.NONE
, new Insets(5, 10, 1,10), 0, 0));
reGenerate.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
desArea.setText("");
desArea.setText(archiveBean.getServiceXML());
update();
}
});
this.add(sp
, new GridBagConstraints(0, 1,GridBagConstraints.REMAINDER, 1, 1.0, 1.0
, GridBagConstraints.WEST , GridBagConstraints.BOTH
, new Insets(5, 10, 10,10), 0, 0));
desArea.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e){
addpara.setEnabled(true);
addModuleRef.setEnabled(true);
}
public void mousePressed(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
});
this.add(lblerror
, new GridBagConstraints(0,2,GridBagConstraints.REMAINDER, 1, 1.0,0.0
, GridBagConstraints.WEST , GridBagConstraints.NONE
, new Insets(5, 20, 10,10), 0, 0));
}
//next
public void next() {
if(!archiveBean.getServiceXML().equals("") ){
archiveBean.setServiceXML(desArea.getText());
}
switchPanel(CodegenFrame.PANEL_LAST_C );
}
//back
public void back() {
switchPanel(CodegenFrame.PANEL_LOAD_C );
}
//update
public void update() {
}
//get page type
public int getPageType() {
return WizardPanel.SERVICE_ARCHIVE_TYPE;
}
public void setDescription(String descrip){
this.desArea.setText(descrip);
update();
}
private void setEnabledToValidate(){
setNextButtonEnabled(true);
reGenerate.setEnabled(false);
addpara.setEnabled(false);
addModuleRef.setEnabled(false);
setPageComplete(true);
}
private void setEnabledToNotValidate(){
reGenerate.setEnabled(true);
setNextButtonEnabled(false);
setPageComplete(false);
addpara.setEnabled(false);
addModuleRef.setEnabled(false);
}
public void setDefaultEnabled(){
lblerror.setText("");
addpara.setEnabled(false);
addModuleRef.setEnabled(false);
validateXML.setEnabled(true);
reGenerate.setEnabled(false);
setNextButtonEnabled(false);
}
private void setParameter(ParameterObj obj){
int position = desArea.getCaretPosition();
System.out.println(desArea.getLineCount());
System.out.println(desArea.getCaretPosition());
String str = " <parameter name=\"" + obj.getName() + "\" locked=\"false\">"
+ obj.getValue() +
"</parameter>\n";
desArea.insert(str, position + 1);
}
private void setModule(String module){
int position = desArea.getCaretPosition();
String str = " <module ref=\"" + module + "\" />\n";
desArea .insert(str, position + 1);
}
}