| /* |
| * 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.service.swing.ui; |
| |
| import org.apache.axis2.tool.service.bean.WizardBean; |
| import org.apache.axis2.tool.service.control.Controller; |
| import org.apache.axis2.tool.service.control.ProcessException; |
| |
| import javax.swing.*; |
| import java.awt.*; |
| import java.awt.event.ActionEvent; |
| import java.awt.event.ActionListener; |
| |
| public class MainWindow extends JFrame { |
| |
| private JPanel wizardPaneContainer; |
| private JButton nextButton; |
| private JButton previousButton; |
| private JButton cancelButton; |
| private JButton finishButton; |
| private int currentPage; |
| private WizardPane currentWizardPane; |
| |
| private static final int PAGE_1 = 1; |
| private static final int PAGE_2 = 2; |
| private static final int PAGE_3 = 3; |
| //private static final int PAGE_4=4; |
| |
| |
| private WizardBean wizardBean = new WizardBean(); |
| |
| public MainWindow() throws HeadlessException { |
| super("Axis 2 - Service Jar Builder"); |
| init(); |
| |
| } |
| |
| private void init() { |
| this.getContentPane().setLayout(null); |
| |
| this.setBounds( |
| (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth() / |
| 2 - |
| 400 / 2, |
| (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight() / |
| 2 - |
| 360 / 2, |
| 400, 360); |
| this.setResizable(false); |
| this.setDefaultCloseOperation(EXIT_ON_CLOSE); |
| |
| int hgap = 5; |
| int vgap = 5; |
| int bWidth = 80; |
| int bHeight = 20; |
| |
| this.wizardPaneContainer = new JPanel(null); |
| this.getContentPane().add(this.wizardPaneContainer); |
| this.wizardPaneContainer.setBounds(0, 0, 400, 300); |
| |
| this.previousButton = new JButton("Previous"); |
| this.getContentPane().add(this.previousButton); |
| this.previousButton.setBounds(hgap, 300 + vgap, bWidth, bHeight); |
| this.previousButton.addActionListener(new ActionListener() { |
| public void actionPerformed(ActionEvent e) { |
| moveBackWard(); |
| } |
| |
| }); |
| |
| this.nextButton = new JButton("Next"); |
| this.getContentPane().add(this.nextButton); |
| this.nextButton.setBounds(hgap + bWidth + hgap, |
| 300 + vgap, |
| bWidth, |
| bHeight); |
| this.nextButton.addActionListener(new ActionListener() { |
| public void actionPerformed(ActionEvent e) { |
| moveForward(); |
| } |
| }); |
| |
| this.cancelButton = new JButton("Close"); |
| this.getContentPane().add(this.cancelButton); |
| this.cancelButton.setBounds(hgap + (bWidth + hgap) * 2, |
| 300 + vgap, |
| bWidth, |
| bHeight); |
| this.cancelButton.addActionListener(new ActionListener() { |
| public void actionPerformed(ActionEvent e) { |
| if (confirmExit()){ |
| System.exit(0); |
| } |
| } |
| }); |
| |
| this.finishButton = new JButton("Finish"); |
| this.getContentPane().add(this.finishButton); |
| this.finishButton.setBounds(hgap + (bWidth + hgap) * 3, |
| 300 + vgap, |
| bWidth, |
| bHeight); |
| this.finishButton.addActionListener(new ActionListener() { |
| public void actionPerformed(ActionEvent e) { |
| processFinish(); |
| } |
| }); |
| |
| |
| this.currentPage = PAGE_1; |
| moveToPage(currentPage); //add the first page as default |
| } |
| |
| private void showErrorMessage() { |
| JOptionPane.showMessageDialog(this, |
| "Required Value Not set!!!", |
| "Error", |
| JOptionPane.ERROR_MESSAGE); |
| } |
| |
| private void showErrorMessage(String message) { |
| JOptionPane.showMessageDialog(this, |
| message, |
| "Error", |
| JOptionPane.ERROR_MESSAGE); |
| } |
| |
| private void showSuccessMessage(String message) { |
| JOptionPane.showMessageDialog(this, |
| message, |
| "Error", |
| JOptionPane.INFORMATION_MESSAGE); |
| } |
| |
| private boolean confirmExit() { |
| int returnType = JOptionPane.showOptionDialog(this, |
| "Are you sure you want to exit?", |
| "Exit service builder", |
| JOptionPane.YES_NO_OPTION, |
| JOptionPane.WARNING_MESSAGE, |
| null, null, null); |
| return (returnType == JOptionPane.YES_OPTION); |
| } |
| |
| private void moveForward() { |
| if (currentWizardPane.validateValues()) { |
| this.currentPage++; |
| moveToPage(this.currentPage); |
| } else { |
| showErrorMessage(); |
| } |
| } |
| |
| private void moveBackWard() { |
| this.currentPage--; |
| moveToPage(this.currentPage); |
| |
| } |
| |
| private void moveToPage(int page) { |
| switch (page) { |
| case PAGE_1: |
| processPage(new WizardPane1(this.wizardBean, this), |
| false, |
| true, |
| false); |
| break; |
| case PAGE_2: |
| processPage(new WizardPane2(this.wizardBean, this), |
| true, |
| true, |
| false); |
| break; |
| case PAGE_3: |
| processPage(new WizardPane3(this.wizardBean, this), |
| true, |
| false, |
| true); |
| break; |
| default: |
| return; |
| } |
| } |
| |
| private void processFinish() { |
| if (currentWizardPane.validateValues()) { |
| try { |
| new Controller().process(wizardBean); |
| showSuccessMessage(" jar file creation successful! "); |
| } catch (ProcessException e) { |
| showErrorMessage(e.getMessage()); |
| } catch (Exception e) { |
| showErrorMessage("Unknown Error! " + e.getMessage()); |
| } |
| } else { |
| showErrorMessage(); |
| } |
| } |
| |
| private void processPage(WizardPane pane, |
| boolean prevButtonState, |
| boolean nextButtonState, |
| boolean finishButtonState) { |
| this.wizardPaneContainer.removeAll(); |
| currentWizardPane = pane; |
| this.wizardPaneContainer.add(pane); |
| this.previousButton.setEnabled(prevButtonState); |
| this.nextButton.setEnabled(nextButtonState); |
| this.finishButton.setEnabled(finishButtonState); |
| this.repaint(); |
| } |
| |
| |
| public static void main(String[] args) { |
| new MainWindow().show(); |
| } |
| |
| |
| } |