Package org.jwildfire.swing

Source Code of org.jwildfire.swing.Desktop

/*
  JWildfire - an image and animation processor written in Java
  Copyright (C) 1995-2012 Andreas Maschke

  This is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser
  General Public License as published by the Free Software Foundation; either version 2.1 of the
  License, or (at your option) any later version.
  This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public License along with this software;
  if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jwildfire.swing;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Event;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.beans.PropertyVetoException;

import javax.swing.BorderFactory;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JDesktopPane;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import javax.swing.border.SoftBevelBorder;

import org.jwildfire.base.Prefs;
import org.jwildfire.base.Tools;
import org.jwildfire.base.WindowPrefs;
import org.jwildfire.create.eden.swing.EDENInternalFrame;
import org.jwildfire.create.tina.random.RandomGeneratorFactory;
import org.jwildfire.create.tina.randomflame.RandomFlameGeneratorList;
import org.jwildfire.create.tina.randomgradient.RandomGradientGeneratorList;
import org.jwildfire.create.tina.randomsymmetry.RandomSymmetryGeneratorList;
import org.jwildfire.create.tina.swing.RandomBatchQuality;
import org.jwildfire.create.tina.swing.TinaController;
import org.jwildfire.create.tina.swing.TinaInternalFrame;
import org.jwildfire.launcher.AppLauncher;

public class Desktop extends JApplet {
  private static final long serialVersionUID = 1L;

  private JFrame jFrame = null; // @jve:decl-index=0:visual-constraint="10,10"
  private JPanel jContentPane = null;
  private JMenuBar mainJMenuBar = null;
  private JMenu fileMenu = null;
  private JMenu helpMenu = null;
  private JMenuItem exitMenuItem = null;
  private JMenuItem welcomeMenuItem = null;
  private JMenuItem systemInfoMenuItem = null;
  private JCheckBoxMenuItem lookAndFeelMenuItem = null;
  private JMenuItem saveMenuItem = null;
  private JDesktopPane mainDesktopPane = null;
  private JMenu windowMenu = null;
  private JCheckBoxMenuItem operatorsMenuItem = null;
  private JCheckBoxMenuItem tinaMenuItem = null;
  private JCheckBoxMenuItem edenMenuItem = null;
  private JMenuItem openMenuItem = null;
  private Prefs prefs = null;

  private StandardErrorHandler errorHandler = null;

  /**
   * This method initializes mainDesktopPane
   *
   * @return javax.swing.JDesktopPane
   */
  private JDesktopPane getMainDesktopPane() {
    if (mainDesktopPane == null) {
      mainDesktopPane = new JDesktopPane();
      mainDesktopPane.add(getScriptInternalFrame(), null);
      mainDesktopPane.add(getOperatorsInternalFrame(), null);
      mainDesktopPane.add(getFormulaExplorerInternalFrame(), null);
      mainDesktopPane.add(getTinaInternalFrame(), null);
      mainDesktopPane.add(getEDENInternalFrame(), null);
      mainDesktopPane.add(getPreferencesInternalFrame(), null);
      mainDesktopPane.add(getWelcomeInternalFrame(), null);
      mainDesktopPane.add(getSystemInfoInternalFrame(), null);
      errorHandler = new StandardErrorHandler(mainDesktopPane, getShowErrorDlg(), getShowErrorDlgMessageTextArea(),
          getShowErrorDlgStacktraceTextArea());
      mainDesktopPane.add(getLookAndFeelInternalFrame(mainDesktopPane, errorHandler, prefs), null);
      if (!welcomeInternalFrame.isVisible()) {
        welcomeInternalFrame.setVisible(true);
      }

      TinaInternalFrame tinaFrame = (TinaInternalFrame) getTinaInternalFrame();
      tinaController = tinaFrame.createController(errorHandler, prefs);
      try {
        tinaController.createRandomBatch(2, RandomFlameGeneratorList.DEFAULT_GENERATOR_NAME, RandomSymmetryGeneratorList.DEFAULT_GENERATOR_NAME, RandomGradientGeneratorList.DEFAULT_GENERATOR_NAME, RandomBatchQuality.LOW);
      }
      catch (Exception ex) {
        ex.printStackTrace();
      }

      renderController = new RenderController(errorHandler,
          mainDesktopPane, getRenderDialog(),
          getRenderCancelButton(), getRenderRenderButton(),
          getRenderCloseButton(), getRenderPrefixREd(),
          getRenderOutputREd(), renderFrameValueLabel,
          renderSizeValueLabel, getRenderProgressBar(),
          getRenderPreviewImg1Panel(), renderPreviewImg1Label,
          getRenderPreviewImg2Panel(), renderPreviewImg2Label,
          getRenderPreviewImg3Panel(), renderPreviewImg3Label,
          getRenderFrameStartREd(), getRenderFrameEndREd());

      FormulaExplorerInternalFrame formulaExplorerFrame = (FormulaExplorerInternalFrame) getFormulaExplorerInternalFrame();

      formulaExplorerController = new FormulaExplorerController(
          (FormulaPanel) formulaExplorerFrame.getFormulaPanel(),
          formulaExplorerFrame.getFormulaExplorerFormula1REd(),
          formulaExplorerFrame.getFormulaExplorerFormula2REd(),
          formulaExplorerFrame.getFormulaExplorerFormula3REd(),
          formulaExplorerFrame.getFormulaExplorerFormulaXMinREd(),
          formulaExplorerFrame.getFormulaExplorerFormulaXMaxREd(),
          formulaExplorerFrame.getFormulaExplorerFormulaXCountREd(),
          formulaExplorerFrame.getFormulaExplorerValuesTextArea());

      OperatorsInternalFrame operatorsFrame = (OperatorsInternalFrame) getOperatorsInternalFrame();
      operatorsFrame.setDesktop(this);

      ScriptInternalFrame scriptFrame = (ScriptInternalFrame) getScriptInternalFrame();
      scriptFrame.setDesktop(this);
      scriptFrame.setRenderController(renderController);

      PreferencesInternalFrame preferencesFrame = (PreferencesInternalFrame) getPreferencesInternalFrame();
      preferencesFrame.setDesktop(this);
      preferencesFrame.setPrefs(prefs);
      preferencesFrame.setMainController(mainController);

      mainController = new MainController(prefs, errorHandler, mainDesktopPane,
          getWindowMenu(), operatorsFrame.getTransformerInputCmb(), operatorsFrame.getTransformerPresetCmb(), operatorsFrame.getCreatorPresetCmb(),
          getShowMessageDlg(), getShowMessageDlgTextArea(), scriptFrame.getScriptTable(),
          scriptFrame.getScriptActionTextArea(), scriptFrame.getScriptFrameSlider(),
          scriptFrame.getScriptFramesREd(), scriptFrame.getScriptFrameREd(),
          scriptFrame.getEnvelopeController(), renderController);
      renderController.setActionList(mainController.getActionList());

      EDENInternalFrame edenFrame = (EDENInternalFrame) getEDENInternalFrame();
      edenFrame.createController(mainController, errorHandler, prefs).newEmptyScene();

      tinaController.setMainController(mainController);

      scriptFrame.setMainController(mainController);
      scriptFrame.setOperatorsFrame(operatorsFrame);
      operatorsFrame.setMainController(mainController);
      formulaExplorerFrame.setMainController(mainController);
      formulaExplorerFrame.setFormulaExplorerController(formulaExplorerController);

      // setupShowSysInfoThread();

    }
    return mainDesktopPane;
  }

  private void setupShowSysInfoThread() {
    final JInternalFrame tinaFrame = getTinaInternalFrame();
    final String title = tinaFrame.getTitle();
    new Thread(new Runnable() {

      @Override
      public void run() {
        while (true) {
          try {
            SystemInfo sysInfo = new SystemInfo();
            tinaFrame.setTitle(title + "(" + sysInfo.getUsedMemMB() + "MB / " + sysInfo.getMaxMemMB() + "MB)");
            Thread.sleep(1000);
          }
          catch (InterruptedException e) {
            e.printStackTrace();
          }
        }
      }
    }).start();
  }

  /**
   * This method initializes windowMenu
   *
   * @return javax.swing.JMenu
   */
  private JMenu getWindowMenu() {
    if (windowMenu == null) {
      windowMenu = new JMenu();
      windowMenu.setText("Windows");
      windowMenu.add(getOperatorsMenuItem());
      windowMenu.add(getScriptMenuItem());
      windowMenu.add(getFormulaExplorerMenuItem());
      windowMenu.add(getTinaMenuItem());
      windowMenu.add(getEDENMenuItem());
      windowMenu.add(getPreferencesMenuItem());
      windowMenu.add(getLookAndFeelMenuItem());
    }
    return windowMenu;
  }

  /**
   * This method initializes operatorsMenuItem
   *
   * @return javax.swing.JCheckBoxMenuItem
   */
  private JCheckBoxMenuItem getOperatorsMenuItem() {
    if (operatorsMenuItem == null) {
      operatorsMenuItem = new JCheckBoxMenuItem();
      operatorsMenuItem.setText("Operators");
      operatorsMenuItem
          .addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent e) {
              operatorsMenuItem_actionPerformed(e);
            }
          });
    }
    return operatorsMenuItem;
  }

  /**
   * This method initializes operatorsMenuItem
   *
   * @return javax.swing.JCheckBoxMenuItem
   */
  private JCheckBoxMenuItem getTinaMenuItem() {
    if (tinaMenuItem == null) {
      tinaMenuItem = new JCheckBoxMenuItem();
      tinaMenuItem.setText("Fractal flames");
      tinaMenuItem.setEnabled(true);
      tinaMenuItem
          .addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent e) {
              tinaMenuItem_actionPerformed(e);
            }
          });
    }
    return tinaMenuItem;
  }

  /**
   * This method initializes operatorsMenuItem
   *
   * @return javax.swing.JCheckBoxMenuItem
   */
  private JCheckBoxMenuItem getEDENMenuItem() {
    if (edenMenuItem == null) {
      edenMenuItem = new JCheckBoxMenuItem();
      edenMenuItem.setText("Structure Synthesizer");
      edenMenuItem.setEnabled(true);
      edenMenuItem.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
          edenMenuItem_actionPerformed(e);
        }
      });
    }
    return edenMenuItem;
  }

  /**
   * This method initializes openMenuItem
   *
   * @return javax.swing.JMenuItem
   */
  private JMenuItem getOpenMenuItem() {
    if (openMenuItem == null) {
      openMenuItem = new JMenuItem();
      openMenuItem.setText("Open...");
      openMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
          Event.CTRL_MASK, true));
      openMenuItem.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
          openMenuItem_actionPerformed(e);
        }
      });
    }
    return openMenuItem;
  }

  /**
   * This method initializes showMessageTopPnl
   *
   * @return javax.swing.JPanel
   */
  private JPanel getShowMessageTopPnl() {
    if (showMessageTopPnl == null) {
      showMessageTopPnl = new JPanel();
      showMessageTopPnl.setLayout(new GridBagLayout());
      showMessageTopPnl.setPreferredSize(new Dimension(0, 10));
    }
    return showMessageTopPnl;
  }

  /**
   * This method initializes showMessageBottomPnl
   *
   * @return javax.swing.JPanel
   */
  private JPanel getShowMessageBottomPnl() {
    if (showMessageBottomPnl == null) {
      showMessageBottomPnl = new JPanel();
      showMessageBottomPnl.setLayout(new BorderLayout());
      showMessageBottomPnl.setPreferredSize(new Dimension(0, 50));
      showMessageBottomPnl.setBorder(BorderFactory.createEmptyBorder(10,
          100, 10, 100));
      showMessageBottomPnl.add(getShowMessageCloseButton(),
          BorderLayout.CENTER);
    }
    return showMessageBottomPnl;
  }

  /**
   * This method initializes showMessageLeftPnl
   *
   * @return javax.swing.JPanel
   */
  private JPanel getShowMessageLeftPnl() {
    if (showMessageLeftPnl == null) {
      showMessageLeftPnl = new JPanel();
      showMessageLeftPnl.setLayout(new GridBagLayout());
      showMessageLeftPnl.setPreferredSize(new Dimension(10, 0));
    }
    return showMessageLeftPnl;
  }

  /**
   * This method initializes showMessageRightPnl
   *
   * @return javax.swing.JPanel
   */
  private JPanel getShowMessageRightPnl() {
    if (showMessageRightPnl == null) {
      showMessageRightPnl = new JPanel();
      showMessageRightPnl.setLayout(new GridBagLayout());
      showMessageRightPnl.setPreferredSize(new Dimension(10, 0));
    }
    return showMessageRightPnl;
  }

  /**
   * This method initializes showMessageCloseButton
   *
   * @return javax.swing.JButton
   */
  private JButton getShowMessageCloseButton() {
    if (showMessageCloseButton == null) {
      showMessageCloseButton = new JButton();
      showMessageCloseButton.setName("showMessageCloseButton");
      showMessageCloseButton.setText("Close");
      showMessageCloseButton
          .addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent e) {
              showMessageCloseButton_actionPerformed(e);
            }
          });
    }
    return showMessageCloseButton;
  }

  /**
   * This method initializes showMessageDlg
   *
   * @return javax.swing.JDialog
   */
  private JDialog getShowMessageDlg() {
    if (showMessageDlg == null) {
      showMessageDlg = new JDialog(getJFrame());
      showMessageDlg.setSize(new Dimension(355, 205));
      showMessageDlg
          .setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
      showMessageDlg.setModal(true);
      showMessageDlg.setTitle("System message");
      showMessageDlg.setContentPane(getShowMessageDlgContentPanel());
    }
    return showMessageDlg;
  }

  /**
   * This method initializes showMessageDlgContentPanel
   *
   * @return javax.swing.JPanel
   */
  private JPanel getShowMessageDlgContentPanel() {
    if (showMessageDlgContentPanel == null) {
      showMessageDlgContentPanel = new JPanel();
      showMessageDlgContentPanel.setLayout(new BorderLayout());
      showMessageDlgContentPanel.add(getShowMessageTopPnl(),
          BorderLayout.NORTH);
      showMessageDlgContentPanel.add(getShowMessageLeftPnl(),
          BorderLayout.WEST);
      showMessageDlgContentPanel.add(getShowMessageRightPnl(),
          BorderLayout.EAST);
      showMessageDlgContentPanel.add(getShowMessageBottomPnl(),
          BorderLayout.SOUTH);
      showMessageDlgContentPanel.add(getShowMessageDlgScrollPane(),
          BorderLayout.CENTER);
    }
    return showMessageDlgContentPanel;
  }

  /**
   * This method initializes showMessageDlgScrollPane
   *
   * @return javax.swing.JScrollPane
   */
  private JScrollPane getShowMessageDlgScrollPane() {
    if (showMessageDlgScrollPane == null) {
      showMessageDlgScrollPane = new JScrollPane();
      showMessageDlgScrollPane.setEnabled(false);
      showMessageDlgScrollPane
          .setViewportView(getShowMessageDlgTextArea());
    }
    return showMessageDlgScrollPane;
  }

  /**
   * This method initializes showMessageDlgTextArea
   *
   * @return javax.swing.JTextArea
   */
  private JTextArea getShowMessageDlgTextArea() {
    if (showMessageDlgTextArea == null) {
      showMessageDlgTextArea = new JTextArea();
      showMessageDlgTextArea.setWrapStyleWord(false);
      showMessageDlgTextArea.setEditable(false);
      showMessageDlgTextArea.setLineWrap(true);
    }
    return showMessageDlgTextArea;
  }

  /**
   * This method initializes showErrorDlg
   *
   * @return javax.swing.JDialog
   */
  private JDialog getShowErrorDlg() {
    if (showErrorDlg == null) {
      showErrorDlg = new JDialog(getJFrame());
      showErrorDlg.setSize(new Dimension(429, 247));
      showErrorDlg.setTitle("System error");
      showErrorDlg.setContentPane(getShowErrorDlgContentPane());
    }
    return showErrorDlg;
  }

  /**
   * This method initializes showErrorDlgContentPane
   *
   * @return javax.swing.JPanel
   */
  private JPanel getShowErrorDlgContentPane() {
    if (showErrorDlgContentPane == null) {
      showErrorDlgContentPane = new JPanel();
      showErrorDlgContentPane.setLayout(new BorderLayout());
      showErrorDlgContentPane.add(getShowErrorDlgTopPnl(),
          BorderLayout.NORTH);
      showErrorDlgContentPane.add(getShowErrorDlgBottomPnl(),
          BorderLayout.SOUTH);
      showErrorDlgContentPane.add(getShowErrorDlgLeftPnl(),
          BorderLayout.WEST);
      showErrorDlgContentPane.add(getShowErrorDlgRightPnl(),
          BorderLayout.EAST);
      showErrorDlgContentPane.add(getShowErrorDlgTabbedPane(),
          BorderLayout.CENTER);
    }
    return showErrorDlgContentPane;
  }

  /**
   * This method initializes showErrorDlgTopPnl
   *
   * @return javax.swing.JPanel
   */
  private JPanel getShowErrorDlgTopPnl() {
    if (showErrorDlgTopPnl == null) {
      showErrorDlgTopPnl = new JPanel();
      showErrorDlgTopPnl.setLayout(new GridBagLayout());
      showErrorDlgTopPnl.setPreferredSize(new Dimension(0, 10));
    }
    return showErrorDlgTopPnl;
  }

  /**
   * This method initializes showErrorDlgBottomPnl
   *
   * @return javax.swing.JPanel
   */
  private JPanel getShowErrorDlgBottomPnl() {
    if (showErrorDlgBottomPnl == null) {
      showErrorDlgBottomPnl = new JPanel();
      showErrorDlgBottomPnl.setLayout(new BorderLayout());
      showErrorDlgBottomPnl.setPreferredSize(new Dimension(0, 50));
      showErrorDlgBottomPnl.setBorder(BorderFactory.createEmptyBorder(10,
          120, 10, 120));
      showErrorDlgBottomPnl.add(getShowErrorCloseButton(),
          BorderLayout.CENTER);
    }
    return showErrorDlgBottomPnl;
  }

  /**
   * This method initializes showErrorDlgLeftPnl
   *
   * @return javax.swing.JPanel
   */
  private JPanel getShowErrorDlgLeftPnl() {
    if (showErrorDlgLeftPnl == null) {
      showErrorDlgLeftPnl = new JPanel();
      showErrorDlgLeftPnl.setLayout(new GridBagLayout());
      showErrorDlgLeftPnl.setPreferredSize(new Dimension(10, 0));
    }
    return showErrorDlgLeftPnl;
  }

  /**
   * This method initializes showErrorDlgRightPnl
   *
   * @return javax.swing.JPanel
   */
  private JPanel getShowErrorDlgRightPnl() {
    if (showErrorDlgRightPnl == null) {
      showErrorDlgRightPnl = new JPanel();
      showErrorDlgRightPnl.setLayout(new GridBagLayout());
      showErrorDlgRightPnl.setPreferredSize(new Dimension(10, 0));
    }
    return showErrorDlgRightPnl;
  }

  /**
   * This method initializes showErrorDlgTabbedPane
   *
   * @return javax.swing.JTabbedPane
   */
  private JTabbedPane getShowErrorDlgTabbedPane() {
    if (showErrorDlgTabbedPane == null) {
      showErrorDlgTabbedPane = new JTabbedPane();
      showErrorDlgTabbedPane.addTab("Message", null,
          getShowErrorDlgMessagePnl(), null);
      showErrorDlgTabbedPane.addTab("Stacktrace", null,
          getShowErrorDlgStacktracePnl(), null);
    }
    return showErrorDlgTabbedPane;
  }

  /**
   * This method initializes showErrorDlgMessagePnl
   *
   * @return javax.swing.JPanel
   */
  private JPanel getShowErrorDlgMessagePnl() {
    if (showErrorDlgMessagePnl == null) {
      GridBagConstraints gridBagConstraints = new GridBagConstraints();
      gridBagConstraints.fill = GridBagConstraints.BOTH;
      gridBagConstraints.gridy = 0;
      gridBagConstraints.weightx = 1.0;
      gridBagConstraints.weighty = 1.0;
      gridBagConstraints.gridx = 0;
      showErrorDlgMessagePnl = new JPanel();
      showErrorDlgMessagePnl.setLayout(new GridBagLayout());
      showErrorDlgMessagePnl.add(getShowErrorDlgMessageScrollPane(),
          gridBagConstraints);
    }
    return showErrorDlgMessagePnl;
  }

  /**
   * This method initializes showErrorDlgStacktracePnl
   *
   * @return javax.swing.JPanel
   */
  private JPanel getShowErrorDlgStacktracePnl() {
    if (showErrorDlgStacktracePnl == null) {
      GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
      gridBagConstraints1.fill = GridBagConstraints.BOTH;
      gridBagConstraints1.gridy = 0;
      gridBagConstraints1.weightx = 1.0;
      gridBagConstraints1.weighty = 1.0;
      gridBagConstraints1.gridx = 0;
      showErrorDlgStacktracePnl = new JPanel();
      showErrorDlgStacktracePnl.setLayout(new GridBagLayout());
      showErrorDlgStacktracePnl.add(
          getShowErrorDlgStacktraceScrollPane(), gridBagConstraints1);
    }
    return showErrorDlgStacktracePnl;
  }

  /**
   * This method initializes showErrorDlgMessageScrollPane
   *
   * @return javax.swing.JScrollPane
   */
  private JScrollPane getShowErrorDlgMessageScrollPane() {
    if (showErrorDlgMessageScrollPane == null) {
      showErrorDlgMessageScrollPane = new JScrollPane();
      showErrorDlgMessageScrollPane
          .setViewportView(getShowErrorDlgMessageTextArea());
    }
    return showErrorDlgMessageScrollPane;
  }

  /**
   * This method initializes showErrorDlgStacktraceScrollPane
   *
   * @return javax.swing.JScrollPane
   */
  private JScrollPane getShowErrorDlgStacktraceScrollPane() {
    if (showErrorDlgStacktraceScrollPane == null) {
      showErrorDlgStacktraceScrollPane = new JScrollPane();
      showErrorDlgStacktraceScrollPane
          .setViewportView(getShowErrorDlgStacktraceTextArea());
    }
    return showErrorDlgStacktraceScrollPane;
  }

  /**
   * This method initializes showErrorDlgMessageTextArea
   *
   * @return javax.swing.JTextArea
   */
  private JTextArea getShowErrorDlgMessageTextArea() {
    if (showErrorDlgMessageTextArea == null) {
      showErrorDlgMessageTextArea = new JTextArea();
      showErrorDlgMessageTextArea.setEditable(false);
      showErrorDlgMessageTextArea.setLineWrap(true);
      showErrorDlgMessageTextArea.setWrapStyleWord(true);
    }
    return showErrorDlgMessageTextArea;
  }

  /**
   * This method initializes showErrorDlgStacktraceTextArea
   *
   * @return javax.swing.JTextArea
   */
  private JTextArea getShowErrorDlgStacktraceTextArea() {
    if (showErrorDlgStacktraceTextArea == null) {
      showErrorDlgStacktraceTextArea = new JTextArea();
      showErrorDlgStacktraceTextArea.setEditable(false);
    }
    return showErrorDlgStacktraceTextArea;
  }

  /**
   * This method initializes showErrorCloseButton
   *
   * @return javax.swing.JButton
   */
  private JButton getShowErrorCloseButton() {
    if (showErrorCloseButton == null) {
      showErrorCloseButton = new JButton();
      showErrorCloseButton.setText("Close");
      showErrorCloseButton.setName("showMessageCloseButton");
      showErrorCloseButton
          .addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent e) {
              showErrorCloseButton_actionPerformed(e);
            }
          });
    }
    return showErrorCloseButton;
  }

  /**
   * This method initializes closeAllMenuItem
   *
   * @return javax.swing.JMenuItem
   */
  private JMenuItem getCloseAllMenuItem() {
    if (closeAllMenuItem == null) {
      closeAllMenuItem = new JMenuItem();
      closeAllMenuItem.setText("Close all");
      closeAllMenuItem
          .addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent e) {
              closeAllMenuItem_actionPerformed(e);
            }
          });
    }
    return closeAllMenuItem;
  }

  /**
   * This method initializes scriptInternalFrame
   *
   * @return javax.swing.JInternalFrame
   */
  private JInternalFrame getScriptInternalFrame() {
    if (scriptInternalFrame == null) {
      scriptInternalFrame = new ScriptInternalFrame();
      scriptInternalFrame
          .addInternalFrameListener(new javax.swing.event.InternalFrameAdapter() {
            public void internalFrameDeactivated(
                javax.swing.event.InternalFrameEvent e) {
              scriptInternalFrame_internalFrameDeactivated(e);
            }

            public void internalFrameClosed(
                javax.swing.event.InternalFrameEvent e) {
              scriptInternalFrame_internalFrameClosed(e);
            }
          });
    }
    return scriptInternalFrame;
  }

  /**
   * This method initializes preferencesInternalFrame
   *
   * @return javax.swing.JInternalFrame
   */
  private JInternalFrame getPreferencesInternalFrame() {
    if (preferencesInternalFrame == null) {
      preferencesInternalFrame = new PreferencesInternalFrame();
      preferencesInternalFrame
          .addInternalFrameListener(new javax.swing.event.InternalFrameAdapter() {
            public void internalFrameDeactivated(
                javax.swing.event.InternalFrameEvent e) {
              preferencesInternalFrame_internalFrameDeactivated(e);
            }

            public void internalFrameClosed(
                javax.swing.event.InternalFrameEvent e) {
              preferencesInternalFrame_internalFrameClosed(e);
            }
          });
    }
    return preferencesInternalFrame;
  }

  /**
   * This method initializes scriptMenuItem
   *
   * @return javax.swing.JMenuItem
   */
  private JCheckBoxMenuItem getScriptMenuItem() {
    if (scriptMenuItem == null) {
      scriptMenuItem = new JCheckBoxMenuItem();
      scriptMenuItem.setText("Script");
      scriptMenuItem.setSelected(true);
      scriptMenuItem
          .addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent e) {
              scriptMenuItem_actionPerformed(e);
            }
          });
    }
    return scriptMenuItem;
  }

  /**
   * This method initializes scriptMenuItem
   *
   * @return javax.swing.JMenuItem
   */
  private JCheckBoxMenuItem getPreferencesMenuItem() {
    if (preferencesMenuItem == null) {
      preferencesMenuItem = new JCheckBoxMenuItem();
      preferencesMenuItem.setText("Preferences");
      preferencesMenuItem.setSelected(true);
      preferencesMenuItem
          .addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent e) {
              preferencesMenuItem_actionPerformed(e);
            }
          });
    }
    return preferencesMenuItem;
  }

  /**
  * This method initializes operatorsInternalFrame
  *
  * @return javax.swing.JInternalFrame
  */
  private JInternalFrame getOperatorsInternalFrame() {
    if (operatorsInternalFrame == null) {
      operatorsInternalFrame = new OperatorsInternalFrame();
      operatorsInternalFrame
          .addInternalFrameListener(new javax.swing.event.InternalFrameAdapter() {
            public void internalFrameDeactivated(
                javax.swing.event.InternalFrameEvent e) {
              operatorsInternalFrame_internalFrameDeactivated(e);
            }

            public void internalFrameClosed(
                javax.swing.event.InternalFrameEvent e) {
              operatorsInternalFrame_internalFrameClosed(e);
            }
          });
    }
    return operatorsInternalFrame;
  }

  /**
  * This method initializes renderDialog
  *
  * @return javax.swing.JDialog
  */
  private JDialog getRenderDialog() {
    if (renderDialog == null) {
      renderDialog = new JDialog(getJFrame());
      renderDialog.setSize(new Dimension(597, 359));
      renderDialog.setTitle("Render Script");
      renderDialog.setModal(true);
      renderDialog.setContentPane(getRenderWindowContentPane());
    }
    return renderDialog;
  }

  /**
   * This method initializes renderWindowContentPane
   *
   * @return javax.swing.JPanel
   */
  private JPanel getRenderWindowContentPane() {
    if (renderWindowContentPane == null) {
      renderWindowContentPane = new JPanel();
      renderWindowContentPane.setLayout(new BorderLayout());
      renderWindowContentPane
          .add(getRenderTopPanel(), BorderLayout.NORTH);
      renderWindowContentPane.add(getRenderBottomPanel(),
          BorderLayout.SOUTH);
      renderWindowContentPane.add(getRenderCenterPanel(),
          BorderLayout.CENTER);
    }
    return renderWindowContentPane;
  }

  /**
   * This method initializes renderTopPanel
   *
   * @return javax.swing.JPanel
   */
  private JPanel getRenderTopPanel() {
    if (renderTopPanel == null) {
      renderFrameEndLabel = new JLabel();
      renderFrameEndLabel.setHorizontalAlignment(SwingConstants.RIGHT);
      renderFrameEndLabel.setText("End");
      renderFrameEndLabel.setSize(new Dimension(50, 26));
      renderFrameEndLabel.setLocation(new Point(226, 36));
      renderFrameEndLabel.setPreferredSize(new Dimension(50, 26));
      renderFrameStartLabel = new JLabel();
      renderFrameStartLabel.setHorizontalAlignment(SwingConstants.RIGHT);
      renderFrameStartLabel.setText("Start");
      renderFrameStartLabel.setLocation(new Point(5, 36));
      renderFrameStartLabel.setSize(new Dimension(50, 26));
      renderFrameStartLabel.setPreferredSize(new Dimension(50, 26));
      renderPrefixLabel = new JLabel();
      renderPrefixLabel.setHorizontalAlignment(SwingConstants.RIGHT);
      renderPrefixLabel.setText("Prefix");
      renderPrefixLabel.setLocation(new Point(438, 5));
      renderPrefixLabel.setSize(new Dimension(50, 26));
      renderPrefixLabel.setPreferredSize(new Dimension(50, 26));
      renderOutputLabel = new JLabel();
      renderOutputLabel.setHorizontalAlignment(SwingConstants.RIGHT);
      renderOutputLabel.setText("Output");
      renderOutputLabel.setLocation(new Point(5, 5));
      renderOutputLabel.setSize(new Dimension(50, 26));
      renderOutputLabel.setPreferredSize(new Dimension(50, 26));
      renderTopPanel = new JPanel();
      renderTopPanel.setLayout(null);
      renderTopPanel.setPreferredSize(new Dimension(0, 68));
      renderTopPanel.add(renderOutputLabel, null);
      renderTopPanel.add(getRenderOutputREd(), null);
      renderTopPanel.add(renderPrefixLabel, null);
      renderTopPanel.add(getRenderPrefixREd(), null);
      renderTopPanel.add(renderFrameStartLabel, null);
      renderTopPanel.add(getRenderFrameStartREd(), null);
      renderTopPanel.add(renderFrameEndLabel, null);
      renderTopPanel.add(getRenderFrameEndREd(), null);
    }
    return renderTopPanel;
  }

  /**
   * This method initializes renderBottomPanel
   *
   * @return javax.swing.JPanel
   */
  private JPanel getRenderBottomPanel() {
    if (renderBottomPanel == null) {
      renderBottomPanel = new JPanel();
      renderBottomPanel.setLayout(null);
      renderBottomPanel.setPreferredSize(new Dimension(0, 36));
      renderBottomPanel.add(getRenderRenderButton(), null);
      renderBottomPanel.add(getRenderCancelButton(), null);
      renderBottomPanel.add(getRenderCloseButton(), null);
    }
    return renderBottomPanel;
  }

  /**
   * This method initializes renderCenterPanel
   *
   * @return javax.swing.JPanel
   */
  private JPanel getRenderCenterPanel() {
    if (renderCenterPanel == null) {
      renderCenterPanel = new JPanel();
      renderCenterPanel.setLayout(new BorderLayout());
      renderCenterPanel.add(getRenderPreviewBottomPanel(),
          BorderLayout.SOUTH);
      renderCenterPanel.add(getRenderPreviewMainPanel(),
          BorderLayout.CENTER);
    }
    return renderCenterPanel;
  }

  /**
   * This method initializes renderRenderButton
   *
   * @return javax.swing.JButton
   */
  private JButton getRenderRenderButton() {
    if (renderRenderButton == null) {
      renderRenderButton = new JButton();
      renderRenderButton.setText("Render");
      renderRenderButton.setSize(new Dimension(120, 24));
      renderRenderButton.setLocation(new Point(5, 5));
      renderRenderButton.setPreferredSize(new Dimension(120, 26));
      renderRenderButton
          .addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent e) {
              try {
                renderController.render();
              }
              catch (Exception ex) {
                mainController.handleError(ex);
              }
            }
          });
    }
    return renderRenderButton;
  }

  /**
   * This method initializes renderCancelButton
   *
   * @return javax.swing.JButton
   */
  private JButton getRenderCancelButton() {
    if (renderCancelButton == null) {
      renderCancelButton = new JButton();
      renderCancelButton.setText("Cancel");
      renderCancelButton.setSize(new Dimension(120, 24));
      renderCancelButton.setLocation(new Point(233, 5));
      renderCancelButton.setPreferredSize(new Dimension(120, 26));
      renderCancelButton
          .addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent e) {
              renderController.cancel();
            }
          });
    }
    return renderCancelButton;
  }

  /**
   * This method initializes renderCloseButton
   *
   * @return javax.swing.JButton
   */
  private JButton getRenderCloseButton() {
    if (renderCloseButton == null) {
      renderCloseButton = new JButton();
      renderCloseButton.setText("Close");
      renderCloseButton.setLocation(new Point(455, 5));
      renderCloseButton.setSize(new Dimension(120, 24));
      renderCloseButton.setPreferredSize(new Dimension(120, 26));
      renderCloseButton
          .addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent e) {
              renderController.close();
            }
          });
    }
    return renderCloseButton;
  }

  /**
   * This method initializes renderPreviewBottomPanel
   *
   * @return javax.swing.JPanel
   */
  private JPanel getRenderPreviewBottomPanel() {
    if (renderPreviewBottomPanel == null) {
      renderPreviewBottomPanel = new JPanel();
      renderPreviewBottomPanel.setLayout(new BorderLayout());
      renderPreviewBottomPanel.setPreferredSize(new Dimension(0, 64));
      renderPreviewBottomPanel.add(getRenderPreviewProgressTopPanel(),
          BorderLayout.NORTH);
      renderPreviewBottomPanel.add(getRenderPreviewProgressMainPanel(),
          BorderLayout.CENTER);
    }
    return renderPreviewBottomPanel;
  }

  /**
   * This method initializes renderPreviewMainPanel
   *
   * @return javax.swing.JPanel
   */
  private JPanel getRenderPreviewMainPanel() {
    if (renderPreviewMainPanel == null) {
      GridLayout gridLayout = new GridLayout(0, 3);
      gridLayout.setRows(0);
      gridLayout.setHgap(5);
      gridLayout.setVgap(0);
      gridLayout.setColumns(3);
      renderPreviewMainPanel = new JPanel();
      renderPreviewMainPanel.setBorder(BorderFactory.createEmptyBorder(0,
          5, 0, 5));
      renderPreviewMainPanel.setLayout(gridLayout);
      renderPreviewMainPanel.add(getRenderPreviewImg1Panel(), null);
      renderPreviewMainPanel.add(getRenderPreviewImg2Panel(), null);
      renderPreviewMainPanel.add(getRenderPreviewImg3Panel(), null);
    }
    return renderPreviewMainPanel;
  }

  /**
   * This method initializes renderPreviewProgressTopPanel
   *
   * @return javax.swing.JPanel
   */
  private JPanel getRenderPreviewProgressTopPanel() {
    if (renderPreviewProgressTopPanel == null) {
      renderSizeValueLabel = new JLabel();
      renderSizeValueLabel.setHorizontalAlignment(SwingConstants.RIGHT);
      renderSizeValueLabel.setText("320x256");
      renderSizeValueLabel.setLocation(new Point(221, 5));
      renderSizeValueLabel.setSize(new Dimension(80, 26));
      renderSizeValueLabel.setPreferredSize(new Dimension(80, 26));
      renderSizeLabel = new JLabel();
      renderSizeLabel.setHorizontalAlignment(SwingConstants.RIGHT);
      renderSizeLabel.setText("Size");
      renderSizeLabel.setLocation(new Point(167, 5));
      renderSizeLabel.setSize(new Dimension(50, 26));
      renderSizeLabel.setPreferredSize(new Dimension(50, 26));
      renderFrameValueLabel = new JLabel();
      renderFrameValueLabel.setHorizontalAlignment(SwingConstants.RIGHT);
      renderFrameValueLabel.setText("1/60");
      renderFrameValueLabel.setLocation(new Point(58, 5));
      renderFrameValueLabel.setSize(new Dimension(80, 26));
      renderFrameValueLabel.setPreferredSize(new Dimension(80, 26));
      renderFrameLabel = new JLabel();
      renderFrameLabel.setHorizontalAlignment(SwingConstants.RIGHT);
      renderFrameLabel.setText("Frame");
      renderFrameLabel.setLocation(new Point(5, 5));
      renderFrameLabel.setSize(new Dimension(50, 26));
      renderFrameLabel.setPreferredSize(new Dimension(50, 26));
      renderPreviewProgressTopPanel = new JPanel();
      renderPreviewProgressTopPanel.setLayout(null);
      renderPreviewProgressTopPanel
          .setPreferredSize(new Dimension(0, 36));
      renderPreviewProgressTopPanel.add(renderFrameLabel, null);
      renderPreviewProgressTopPanel.add(renderFrameValueLabel, null);
      renderPreviewProgressTopPanel.add(renderSizeLabel, null);
      renderPreviewProgressTopPanel.add(renderSizeValueLabel, null);
    }
    return renderPreviewProgressTopPanel;
  }

  /**
   * This method initializes renderPreviewProgressMainPanel
   *
   * @return javax.swing.JPanel
   */
  private JPanel getRenderPreviewProgressMainPanel() {
    if (renderPreviewProgressMainPanel == null) {
      renderPreviewProgressMainPanel = new JPanel();
      renderPreviewProgressMainPanel.setLayout(new BorderLayout());
      renderPreviewProgressMainPanel.setBorder(BorderFactory
          .createEmptyBorder(5, 5, 5, 5));
      renderPreviewProgressMainPanel.setPreferredSize(new Dimension(158,
          34));
      renderPreviewProgressMainPanel.add(getRenderProgressBar(),
          BorderLayout.CENTER);
    }
    return renderPreviewProgressMainPanel;
  }

  /**
   * This method initializes renderProgressBar
   *
   * @return javax.swing.JProgressBar
   */
  private JProgressBar getRenderProgressBar() {
    if (renderProgressBar == null) {
      renderProgressBar = new JProgressBar();
      renderProgressBar.setValue(33);
      renderProgressBar.setStringPainted(true);
    }
    return renderProgressBar;
  }

  /**
   * This method initializes renderOutputREd
   *
   * @return javax.swing.JTextField
   */
  private JTextField getRenderOutputREd() {
    if (renderOutputREd == null) {
      renderOutputREd = new JTextField();
      renderOutputREd.setText("C:\\TMP\\wf\\render");
      renderOutputREd.setLocation(new Point(58, 5));
      renderOutputREd.setSize(new Dimension(294, 26));
      renderOutputREd.setPreferredSize(new Dimension(294, 26));
    }
    return renderOutputREd;
  }

  /**
   * This method initializes renderPrefixREd
   *
   * @return javax.swing.JTextField
   */
  private JTextField getRenderPrefixREd() {
    if (renderPrefixREd == null) {
      renderPrefixREd = new JTextField();
      renderPrefixREd.setText("Img");
      renderPrefixREd.setLocation(new Point(490, 5));
      renderPrefixREd.setSize(new Dimension(86, 26));
      renderPrefixREd.setPreferredSize(new Dimension(86, 26));
    }
    return renderPrefixREd;
  }

  /**
   * This method initializes renderPreviewImg1Panel
   *
   * @return javax.swing.JPanel
   */
  private JPanel getRenderPreviewImg1Panel() {
    if (renderPreviewImg1Panel == null) {
      renderPreviewImg1Panel = new JPanel();
      renderPreviewImg1Panel.setLayout(new BorderLayout());
      renderPreviewImg1Panel.setBorder(new SoftBevelBorder(
          SoftBevelBorder.RAISED));
      renderPreviewImg1Panel.add(getRenderPreviewImg1BottomPanel(),
          BorderLayout.SOUTH);
    }
    return renderPreviewImg1Panel;
  }

  /**
   * This method initializes renderPreviewImg2Panel
   *
   * @return javax.swing.JPanel
   */
  private JPanel getRenderPreviewImg2Panel() {
    if (renderPreviewImg2Panel == null) {
      renderPreviewImg2Panel = new JPanel();
      renderPreviewImg2Panel.setLayout(new BorderLayout());
      renderPreviewImg2Panel.setBorder(new SoftBevelBorder(
          SoftBevelBorder.RAISED));
      renderPreviewImg2Panel.add(getRenderPreviewImg2BottomPanel(),
          BorderLayout.SOUTH);
    }
    return renderPreviewImg2Panel;
  }

  /**
   * This method initializes renderPreviewImg3Panel
   *
   * @return javax.swing.JPanel
   */
  private JPanel getRenderPreviewImg3Panel() {
    if (renderPreviewImg3Panel == null) {
      renderPreviewImg3Panel = new JPanel();
      renderPreviewImg3Panel.setLayout(new BorderLayout());
      renderPreviewImg3Panel.setBorder(new SoftBevelBorder(
          SoftBevelBorder.RAISED));
      renderPreviewImg3Panel.add(getRenderPreviewImg3BottomPanel(),
          BorderLayout.SOUTH);
    }
    return renderPreviewImg3Panel;
  }

  /**
   * This method initializes renderPreviewImg1BottomPanel
   *
   * @return javax.swing.JPanel
   */
  private JPanel getRenderPreviewImg1BottomPanel() {
    if (renderPreviewImg1BottomPanel == null) {
      renderPreviewImg1Label = new JLabel();
      renderPreviewImg1Label.setText("Img0001");
      renderPreviewImg1Label
          .setHorizontalAlignment(SwingConstants.CENTER);
      renderPreviewImg1BottomPanel = new JPanel();
      renderPreviewImg1BottomPanel.setLayout(new BorderLayout());
      renderPreviewImg1BottomPanel.setPreferredSize(new Dimension(0, 20));
      renderPreviewImg1BottomPanel.add(renderPreviewImg1Label,
          BorderLayout.CENTER);
    }
    return renderPreviewImg1BottomPanel;
  }

  /**
   * This method initializes renderPreviewImg2BottomPanel
   *
   * @return javax.swing.JPanel
   */
  private JPanel getRenderPreviewImg2BottomPanel() {
    if (renderPreviewImg2BottomPanel == null) {
      renderPreviewImg2Label = new JLabel();
      renderPreviewImg2Label
          .setHorizontalAlignment(SwingConstants.CENTER);
      renderPreviewImg2Label.setText("Img0002");
      renderPreviewImg2BottomPanel = new JPanel();
      renderPreviewImg2BottomPanel.setLayout(new BorderLayout());
      renderPreviewImg2BottomPanel.setPreferredSize(new Dimension(0, 20));
      renderPreviewImg2BottomPanel.add(renderPreviewImg2Label,
          BorderLayout.CENTER);
    }
    return renderPreviewImg2BottomPanel;
  }

  /**
   * This method initializes renderPreviewImg3BottomPanel
   *
   * @return javax.swing.JPanel
   */
  private JPanel getRenderPreviewImg3BottomPanel() {
    if (renderPreviewImg3BottomPanel == null) {
      renderPreviewImg3Label = new JLabel();
      renderPreviewImg3Label
          .setHorizontalAlignment(SwingConstants.CENTER);
      renderPreviewImg3Label.setText("Img0003");
      renderPreviewImg3BottomPanel = new JPanel();
      renderPreviewImg3BottomPanel.setLayout(new BorderLayout());
      renderPreviewImg3BottomPanel.setPreferredSize(new Dimension(0, 20));
      renderPreviewImg3BottomPanel.add(renderPreviewImg3Label,
          BorderLayout.CENTER);
    }
    return renderPreviewImg3BottomPanel;
  }

  /**
   * This method initializes renderFrameStartREd
   *
   * @return javax.swing.JTextField
   */
  private JTextField getRenderFrameStartREd() {
    if (renderFrameStartREd == null) {
      renderFrameStartREd = new JTextField();
      renderFrameStartREd.setText("1");
      renderFrameStartREd.setSize(new Dimension(72, 26));
      renderFrameStartREd.setLocation(new Point(58, 36));
      renderFrameStartREd.setPreferredSize(new Dimension(72, 26));
      renderFrameStartREd
          .addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent e) {
              renderController.frameStartChanged();
            }
          });
      renderFrameStartREd
          .addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent e) {
              renderController.frameStartChanged();
            }
          });
    }
    return renderFrameStartREd;
  }

  /**
   * This method initializes renderFrameEndREd
   *
   * @return javax.swing.JTextField
   */
  private JTextField getRenderFrameEndREd() {
    if (renderFrameEndREd == null) {
      renderFrameEndREd = new JTextField();
      renderFrameEndREd.setText("60");
      renderFrameEndREd.setLocation(new Point(279, 36));
      renderFrameEndREd.setSize(new Dimension(72, 26));
      renderFrameEndREd.setPreferredSize(new Dimension(72, 26));
      renderFrameEndREd
          .addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent e) {
              renderController.frameEndChanged();
            }
          });
      renderFrameEndREd
          .addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent e) {
              renderController.frameEndChanged();
            }
          });
    }
    return renderFrameEndREd;
  }

  /**
   * This method initializes formulaExplorerInternalFrame
   *
   * @return javax.swing.JInternalFrame
   */
  private JInternalFrame getFormulaExplorerInternalFrame() {
    if (formulaExplorerInternalFrame == null) {
      formulaExplorerInternalFrame = new FormulaExplorerInternalFrame();
      formulaExplorerInternalFrame
          .addInternalFrameListener(new javax.swing.event.InternalFrameAdapter() {
            public void internalFrameDeactivated(
                javax.swing.event.InternalFrameEvent e) {
              enableControls();
            }

            public void internalFrameClosed(
                javax.swing.event.InternalFrameEvent e) {
              enableControls();
            }
          });
    }
    return formulaExplorerInternalFrame;
  }

  /**
   * This method initializes formulaExplorerMenuItem
   *
   * @return javax.swing.JMenuItem
   */
  private JMenuItem getFormulaExplorerMenuItem() {
    if (formulaExplorerMenuItem == null) {
      formulaExplorerMenuItem = new JCheckBoxMenuItem();
      formulaExplorerMenuItem.setActionCommand("Formula Explorer");
      formulaExplorerMenuItem.setSelected(true);
      formulaExplorerMenuItem.setText("Formula Explorer");
      formulaExplorerMenuItem
          .addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent e) {
              if (formulaExplorerMenuItem.isSelected()) {
                formulaExplorerInternalFrame.setVisible(true);
                try {
                  formulaExplorerInternalFrame
                      .setSelected(true);
                }
                catch (PropertyVetoException ex) {
                  ex.printStackTrace();
                }
              }
              else {
                formulaExplorerInternalFrame.setVisible(false);
              }
            }
          });
    }
    return formulaExplorerMenuItem;
  }

  /**
   * This method initializes tinaInternalFrame 
   *  
   * @return javax.swing.JInternalFrame 
   */
  private JInternalFrame getTinaInternalFrame() {
    if (tinaInternalFrame == null) {
      tinaInternalFrame = new TinaInternalFrame();
      WindowPrefs wPrefs = prefs.getWindowPrefs(WindowPrefs.WINDOW_TINA);
      tinaInternalFrame.setLocation(wPrefs.getLeft(), wPrefs.getTop());
      tinaInternalFrame.setSize(wPrefs.getWidth(1188), wPrefs.getHeight(740));
      tinaInternalFrame
          .addInternalFrameListener(new javax.swing.event.InternalFrameAdapter() {
            public void internalFrameDeactivated(
                javax.swing.event.InternalFrameEvent e) {
              tinaInternalFrame_internalFrameDeactivated(e);
            }

            public void internalFrameClosed(
                javax.swing.event.InternalFrameEvent e) {
              tinaInternalFrame_internalFrameClosed(e);
            }
          });
      tinaInternalFrame.addComponentListener(new java.awt.event.ComponentAdapter() {
        public void componentResized(java.awt.event.ComponentEvent e) {
          tinaController.refreshFlameImage(false);
        }
      });
      try {
        tinaInternalFrame.setSelected(true);
        tinaInternalFrame.setMaximum(wPrefs.isMaximized());
      }
      catch (Exception e) {
        // e.printStackTrace();
      }
    }
    return tinaInternalFrame;
  }

  /**
   * This method initializes edenInternalFrame 
   *  
   * @return javax.swing.JInternalFrame 
   */
  private JInternalFrame getEDENInternalFrame() {
    if (edenInternalFrame == null) {
      edenInternalFrame = new EDENInternalFrame();
      edenInternalFrame
          .addInternalFrameListener(new javax.swing.event.InternalFrameAdapter() {
            public void internalFrameDeactivated(
                javax.swing.event.InternalFrameEvent e) {
              enableControls();
            }

            public void internalFrameClosed(
                javax.swing.event.InternalFrameEvent e) {
              enableControls();
            }
          });
    }
    return edenInternalFrame;
  }

  /**
   * @param args
   */
  public static void main(final String[] args) {

    SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        try {
          parseStartParams(args);
        }
        catch (Throwable ex) {
          ex.printStackTrace();
        }
        setUserLookAndFeel();
        Desktop application = new Desktop();
        application.getJFrame().setVisible(true);
        application.initApp();
        try {
          application.getWelcomeInternalFrame().setSelected(true);
        }
        catch (Exception ex) {
          ex.printStackTrace();
        }
      }

      private void parseStartParams(String[] args) {
        for (String arg : args) {
          if (arg.indexOf("-D") == 0) {
            String param = arg.substring(2, arg.length());
            String value = "";
            int p = param.indexOf("=");
            if (p > 0) {
              value = param.substring(p + 1, param.length()).trim();
              param = param.substring(0, p).trim();
            }
            if (AppLauncher.PROPERTY_OPENCL.equals(param)) {
              Prefs.getPrefs().setTinaUseExperimentalOpenClCode(Boolean.parseBoolean(value));
            }
          }
        }
      }

    });
  }

  public static void setUserLookAndFeel() {
    try {
      Prefs prefs = Prefs.getPrefs();
      if (prefs.getLookAndFeelType() != null) {
        prefs.getLookAndFeelType().changeTo();
        if (prefs.getLookAndFeelTheme() != null && prefs.getLookAndFeelTheme().length() > 0)
          prefs.getLookAndFeelType().changeTheme(prefs.getLookAndFeelTheme());
        return;
      }
    }
    catch (Throwable ex) {
      ex.printStackTrace();
    }
    try {
      LookAndFeelType.NIMBUS.changeTo();
      return;
    }
    catch (Throwable ex) {
      ex.printStackTrace();
    }
    try {
      LookAndFeelType.SYSTEM.changeTo();
      return;
    }
    catch (Throwable ex) {
      ex.printStackTrace();
    }
  }

  /**
   * This method initializes jFrame
   *
   * @return javax.swing.JFrame
   */
  private JFrame getJFrame() {
    if (jFrame == null) {
      prefs = Prefs.getPrefs();
      jFrame = new JFrame();
      jFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
      jFrame.setJMenuBar(getMainJMenuBar());
      WindowPrefs wPrefs = prefs.getWindowPrefs(WindowPrefs.WINDOW_DESKTOP);
      jFrame.setLocation(wPrefs.getLeft(), wPrefs.getTop());
      jFrame.setSize(wPrefs.getWidth(1240), wPrefs.getHeight(800));
      jFrame.setContentPane(getJContentPane());
      jFrame.setTitle(Tools.APP_TITLE + " " + Tools.APP_VERSION + (prefs.isTinaUseExperimentalOpenClCode() ? " (with OpenCL)" : ""));

      jFrame.addWindowListener(new WindowAdapter() {

        @Override
        public void windowClosing(WindowEvent e) {
          closeApp();
        }
      });

    }
    return jFrame;
  }

  /**
   * This method initializes jContentPane
   *
   * @return javax.swing.JPanel
   */
  private JPanel getJContentPane() {
    if (jContentPane == null) {
      jContentPane = new JPanel();
      jContentPane.setLayout(new BorderLayout());
      jContentPane.add(getMainDesktopPane(), BorderLayout.CENTER);
    }
    return jContentPane;
  }

  /**
   * This method initializes mainJMenuBar
   *
   * @return javax.swing.JMenuBar
   */
  private JMenuBar getMainJMenuBar() {
    if (mainJMenuBar == null) {
      mainJMenuBar = new JMenuBar();
      mainJMenuBar.add(getFileMenu());
      mainJMenuBar.add(getWindowMenu());
      mainJMenuBar.add(getHelpMenu());
    }
    return mainJMenuBar;
  }

  /**
   * This method initializes jMenu
   *
   * @return javax.swing.JMenu
   */
  private JMenu getFileMenu() {
    if (fileMenu == null) {
      fileMenu = new JMenu();
      fileMenu.setText("File");
      fileMenu.add(getOpenMenuItem());
      fileMenu.add(getSaveMenuItem());
      fileMenu.add(getCloseAllMenuItem());
      fileMenu.add(getExitMenuItem());
    }
    return fileMenu;
  }

  /**
   * This method initializes jMenu
   *
   * @return javax.swing.JMenu
   */
  private JMenu getHelpMenu() {
    if (helpMenu == null) {
      helpMenu = new JMenu();
      helpMenu.setText("Help");
      helpMenu.add(getWelcomeMenuItem());
      helpMenu.add(getSystemInfoMenuItem());
    }
    return helpMenu;
  }

  /**
   * This method initializes jMenuItem
   *
   * @return javax.swing.JMenuItem
   */
  private JMenuItem getExitMenuItem() {
    if (exitMenuItem == null) {
      exitMenuItem = new JMenuItem();
      exitMenuItem.setText("Exit");
      exitMenuItem.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          closeApp();
        }
      });
    }
    return exitMenuItem;
  }

  private JMenuItem getWelcomeMenuItem() {
    if (welcomeMenuItem == null) {
      welcomeMenuItem = new JMenuItem();
      welcomeMenuItem.setText("Welcome to " + Tools.APP_TITLE);
      welcomeMenuItem.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
          if (!welcomeInternalFrame.isVisible()) {
            welcomeInternalFrame.setVisible(true);
          }
          try {
            welcomeInternalFrame.setSelected(true);
          }
          catch (PropertyVetoException ex) {
            ex.printStackTrace();
          }
        }
      });
    }
    return welcomeMenuItem;
  }

  private JMenuItem getSystemInfoMenuItem() {
    if (systemInfoMenuItem == null) {
      systemInfoMenuItem = new JMenuItem();
      systemInfoMenuItem.setText("System Information");
      systemInfoMenuItem.setVisible(false);
      systemInfoMenuItem.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
          if (!systemInfoInternalFrame.isVisible()) {
            systemInfoInternalFrame.setVisible(true);
          }
          try {
            systemInfoInternalFrame.setSelected(true);
          }
          catch (PropertyVetoException ex) {
            ex.printStackTrace();
          }
        }
      });
    }
    return systemInfoMenuItem;
  }

  private JCheckBoxMenuItem getLookAndFeelMenuItem() {
    if (lookAndFeelMenuItem == null) {
      lookAndFeelMenuItem = new JCheckBoxMenuItem();
      lookAndFeelMenuItem.setText("UI Theme (Look and Feel)");
      lookAndFeelMenuItem.setVisible(true);
      lookAndFeelMenuItem.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
          if (lookAndFeelMenuItem.isSelected()) {
            lookAndFeelInternalFrame.setVisible(true);
            try {
              lookAndFeelInternalFrame.setSelected(true);
            }
            catch (PropertyVetoException ex) {
              ex.printStackTrace();
            }
          }
          else {
            lookAndFeelInternalFrame.setVisible(false);
          }
        }
      });
    }
    return lookAndFeelMenuItem;
  }

  /**
   * This method initializes jMenuItem
   *
   * @return javax.swing.JMenuItem
   */
  private JMenuItem getSaveMenuItem() {
    if (saveMenuItem == null) {
      saveMenuItem = new JMenuItem();
      saveMenuItem.setText("Save...");
      saveMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
          Event.CTRL_MASK, true));
      saveMenuItem.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
          saveMenuItem_actionPerformed(e);
        }
      });
    }
    return saveMenuItem;
  }

  /*-------------------------------------------------------------------------------*/
  /* applet code */
  /*-------------------------------------------------------------------------------*/
  Desktop appletApplication = null;

  @Override
  public void start() {
    setUserLookAndFeel();
    appletApplication = new Desktop();
    appletApplication.getJFrame().setVisible(true);
    appletApplication.initApp();
    try {
      appletApplication.getWelcomeInternalFrame().setSelected(true);
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
    super.start();
  }

  @Override
  public void stop() {
    appletApplication.getJFrame().setVisible(false);
    appletApplication = null;
    super.stop();
  }

  /*-------------------------------------------------------------------------------*/
  /* custom code */
  /*-------------------------------------------------------------------------------*/
  private MainController mainController = null; // @jve:decl-index=0:
  private RenderController renderController = null; // @jve:decl-index=0:
  private FormulaExplorerController formulaExplorerController = null; // @jve:decl-index=0:
  private TinaController tinaController = null; // @jve:decl-index=0:

  private JPanel showMessageTopPnl = null;

  private JPanel showMessageBottomPnl = null;

  private JPanel showMessageLeftPnl = null;

  private JPanel showMessageRightPnl = null;

  private JButton showMessageCloseButton = null;

  private JDialog showMessageDlg = null; // @jve:decl-index=0:visual-constraint="1444,65"

  private JPanel showMessageDlgContentPanel = null;

  private JScrollPane showMessageDlgScrollPane = null;

  private JTextArea showMessageDlgTextArea = null;

  private JDialog showErrorDlg = null; // @jve:decl-index=0:visual-constraint="1805,12"

  private JPanel showErrorDlgContentPane = null;

  private JPanel showErrorDlgTopPnl = null;

  private JPanel showErrorDlgBottomPnl = null;

  private JPanel showErrorDlgLeftPnl = null;

  private JPanel showErrorDlgRightPnl = null;

  private JTabbedPane showErrorDlgTabbedPane = null;

  private JPanel showErrorDlgMessagePnl = null;

  private JPanel showErrorDlgStacktracePnl = null;

  private JScrollPane showErrorDlgMessageScrollPane = null;

  private JScrollPane showErrorDlgStacktraceScrollPane = null;

  private JTextArea showErrorDlgMessageTextArea = null;

  private JTextArea showErrorDlgStacktraceTextArea = null;

  private JButton showErrorCloseButton = null;

  private void operatorsMenuItem_actionPerformed(java.awt.event.ActionEvent e) {
    if (operatorsMenuItem.isSelected()) {
      operatorsInternalFrame.setVisible(true);
      try {
        operatorsInternalFrame.setSelected(true);
      }
      catch (PropertyVetoException ex) {
        ex.printStackTrace();
      }
    }
    else {
      operatorsInternalFrame.setVisible(false);
    }
  }

  private void tinaMenuItem_actionPerformed(java.awt.event.ActionEvent e) {
    if (tinaMenuItem.isSelected()) {
      tinaInternalFrame.setVisible(true);
      try {
        tinaInternalFrame.setSelected(true);
      }
      catch (PropertyVetoException ex) {
        ex.printStackTrace();
      }
    }
    else {
      tinaInternalFrame.setVisible(false);
    }
  }

  private void edenMenuItem_actionPerformed(java.awt.event.ActionEvent e) {
    if (edenMenuItem.isSelected()) {
      edenInternalFrame.setVisible(true);
      try {
        edenInternalFrame.setSelected(true);
      }
      catch (PropertyVetoException ex) {
        ex.printStackTrace();
      }
    }
    else {
      edenInternalFrame.setVisible(false);
    }
  }

  private void openMenuItem_actionPerformed(java.awt.event.ActionEvent e) {
    try {
      mainController.loadImage(true);
    }
    catch (Throwable ex) {
      mainController.handleError(ex);
    }
    enableControls();
  }

  private void initApp() {
    {
      ScriptInternalFrame scriptFrame = (ScriptInternalFrame) getScriptInternalFrame();
      scriptFrame.initApp();
    }
    {
      PreferencesInternalFrame preferencesFrame = (PreferencesInternalFrame) getPreferencesInternalFrame();
      preferencesFrame.initApp();
    }
    {
      OperatorsInternalFrame operatorsFrame = (OperatorsInternalFrame) getOperatorsInternalFrame();
      operatorsFrame.initApp();
    }
    {
      FormulaExplorerInternalFrame formulaExplorerFrame = (FormulaExplorerInternalFrame) getFormulaExplorerInternalFrame();
      formulaExplorerFrame.initApp();
    }

    mainController.refreshWindowMenu();
    mainController.scriptFrameChanged(1, null, "60");

    try {
      formulaExplorerController.calculate();
    }
    catch (Exception e) {
      e.printStackTrace();
    }

    enableControls();
  }

  private void saveMenuItem_actionPerformed(java.awt.event.ActionEvent e) {
    try {
      mainController.saveImage();
    }
    catch (Throwable ex) {
      mainController.handleError(ex);
    }
    enableControls();
  }

  private void showMessageCloseButton_actionPerformed(
      java.awt.event.ActionEvent e) {
    mainController.closeShowMessageDlg();
    enableControls();
  }

  private void showErrorCloseButton_actionPerformed(
      java.awt.event.ActionEvent e) {
    errorHandler.closeShowErrorDlg();
    enableControls();
  }

  // type=Object -> hide from Visual Editor

  private JMenuItem closeAllMenuItem = null;

  private JInternalFrame scriptInternalFrame = null;

  private JInternalFrame preferencesInternalFrame = null;

  private JCheckBoxMenuItem scriptMenuItem = null;

  private JCheckBoxMenuItem preferencesMenuItem = null;

  private JInternalFrame operatorsInternalFrame = null;

  private JDialog renderDialog = null; //  @jve:decl-index=0:visual-constraint="2243,6"

  private JPanel renderWindowContentPane = null;

  private JPanel renderTopPanel = null;

  private JPanel renderBottomPanel = null;

  private JPanel renderCenterPanel = null;

  private JButton renderRenderButton = null;

  private JButton renderCancelButton = null;

  private JButton renderCloseButton = null;

  private JPanel renderPreviewBottomPanel = null;

  private JPanel renderPreviewMainPanel = null;

  private JPanel renderPreviewProgressTopPanel = null;

  private JPanel renderPreviewProgressMainPanel = null;

  private JProgressBar renderProgressBar = null;

  private JLabel renderOutputLabel = null;

  private JTextField renderOutputREd = null;

  private JLabel renderFrameLabel = null;

  private JLabel renderFrameValueLabel = null;

  private JLabel renderSizeLabel = null;

  private JLabel renderSizeValueLabel = null;

  private JLabel renderPrefixLabel = null;

  private JTextField renderPrefixREd = null;

  private JPanel renderPreviewImg1Panel = null;

  private JPanel renderPreviewImg2Panel = null;

  private JPanel renderPreviewImg3Panel = null;

  private JPanel renderPreviewImg1BottomPanel = null;

  private JPanel renderPreviewImg2BottomPanel = null;

  private JPanel renderPreviewImg3BottomPanel = null;

  private JLabel renderPreviewImg1Label = null;

  private JLabel renderPreviewImg2Label = null;

  private JLabel renderPreviewImg3Label = null;

  private JLabel renderFrameStartLabel = null;

  private JTextField renderFrameStartREd = null;

  private JLabel renderFrameEndLabel = null;

  private JTextField renderFrameEndREd = null;

  private JInternalFrame formulaExplorerInternalFrame = null;

  private JCheckBoxMenuItem formulaExplorerMenuItem = null;

  private JInternalFrame tinaInternalFrame = null;

  private JInternalFrame edenInternalFrame = null;
  private JInternalFrame welcomeInternalFrame = null;
  private JInternalFrame systemInfoInternalFrame = null;
  private JInternalFrame lookAndFeelInternalFrame = null;

  void enableControls() {
    edenMenuItem.setSelected(edenInternalFrame.isVisible());
    tinaMenuItem.setSelected(tinaInternalFrame.isVisible());
    operatorsMenuItem.setSelected(operatorsInternalFrame.isVisible());
    scriptMenuItem.setSelected(scriptInternalFrame.isVisible());
    preferencesMenuItem.setSelected(preferencesInternalFrame.isVisible());
    lookAndFeelMenuItem.setSelected(lookAndFeelInternalFrame.isVisible());
    formulaExplorerMenuItem.setSelected(formulaExplorerInternalFrame
        .isVisible());
    closeAllMenuItem.setEnabled(mainController.getBufferList().size() > 0);
    {
      ScriptInternalFrame scriptFrame = (ScriptInternalFrame) getScriptInternalFrame();
      scriptFrame.enableControls();
    }
    {
      PreferencesInternalFrame preferencesFrame = (PreferencesInternalFrame) getPreferencesInternalFrame();
      preferencesFrame.enableControls();
    }
    {
      OperatorsInternalFrame operatorsFrame = (OperatorsInternalFrame) getOperatorsInternalFrame();
      operatorsFrame.enableControls();
    }
  }

  private void closeAllMenuItem_actionPerformed(java.awt.event.ActionEvent e) {
    if (mainController.closeAll())
      enableControls();
  }

  private void scriptMenuItem_actionPerformed(java.awt.event.ActionEvent e) {
    if (scriptMenuItem.isSelected()) {
      scriptInternalFrame.setVisible(true);
      try {
        scriptInternalFrame.setSelected(true);
      }
      catch (PropertyVetoException ex) {
        ex.printStackTrace();
      }
    }
    else {
      scriptInternalFrame.setVisible(false);
    }
  }

  private void scriptInternalFrame_internalFrameClosed(
      javax.swing.event.InternalFrameEvent e) {
    enableControls();
  }

  private void scriptInternalFrame_internalFrameDeactivated(
      javax.swing.event.InternalFrameEvent e) {
    enableControls();
  }

  private void preferencesMenuItem_actionPerformed(java.awt.event.ActionEvent e) {
    if (preferencesMenuItem.isSelected()) {
      preferencesInternalFrame.setVisible(true);
      try {
        preferencesInternalFrame.setSelected(true);
      }
      catch (PropertyVetoException ex) {
        ex.printStackTrace();
      }
    }
    else {
      preferencesInternalFrame.setVisible(false);
    }
  }

  private void preferencesInternalFrame_internalFrameClosed(
      javax.swing.event.InternalFrameEvent e) {
    enableControls();
  }

  private void preferencesInternalFrame_internalFrameDeactivated(
      javax.swing.event.InternalFrameEvent e) {
    enableControls();
  }

  private void operatorsInternalFrame_internalFrameDeactivated(
      javax.swing.event.InternalFrameEvent e) {
    enableControls();
  }

  private void operatorsInternalFrame_internalFrameClosed(
      javax.swing.event.InternalFrameEvent e) {
    enableControls();
  }

  private void tinaInternalFrame_internalFrameClosed(
      javax.swing.event.InternalFrameEvent e) {
    enableControls();
  }

  private void tinaInternalFrame_internalFrameDeactivated(
      javax.swing.event.InternalFrameEvent e) {
    enableControls();
  }

  private JInternalFrame getWelcomeInternalFrame() {
    if (welcomeInternalFrame == null) {
      welcomeInternalFrame = new WelcomeInternalFrame();
    }
    return welcomeInternalFrame;
  }

  private JInternalFrame getSystemInfoInternalFrame() {
    if (systemInfoInternalFrame == null) {
      systemInfoInternalFrame = new SystemInfoInternalFrame();
    }
    return systemInfoInternalFrame;
  }

  private JInternalFrame getLookAndFeelInternalFrame(JDesktopPane pRootPane, ErrorHandler pErrorHandler, Prefs pPrefs) {
    if (lookAndFeelInternalFrame == null) {
      lookAndFeelInternalFrame = new LookAndFeelInternalFrame(this, pRootPane, pErrorHandler, pPrefs);
      lookAndFeelInternalFrame.addInternalFrameListener(new javax.swing.event.InternalFrameAdapter() {
        public void internalFrameDeactivated(javax.swing.event.InternalFrameEvent e) {
          enableControls();
        }

        public void internalFrameClosed(javax.swing.event.InternalFrameEvent e) {
          enableControls();
        }
      });
    }
    return lookAndFeelInternalFrame;
  }

  private void closeApp() {
    String ObjButtons[] = { "Yes", "No" };
    int PromptResult = JOptionPane.showOptionDialog(null, "Are you sure you want to exit?", "Warning", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, ObjButtons, ObjButtons[1]);
    if (PromptResult != JOptionPane.YES_OPTION) {
      return;
    }

    {
      Dimension size = jFrame.getSize();
      Point pos = jFrame.getLocation();
      WindowPrefs wPrefs = prefs.getWindowPrefs(WindowPrefs.WINDOW_DESKTOP);
      wPrefs.setLeft(pos.x);
      wPrefs.setTop(pos.y);
      wPrefs.setWidth(size.width);
      wPrefs.setHeight(size.height);
    }
    if (tinaInternalFrame != null && tinaInternalFrame.isVisible()) {
      Dimension size = tinaInternalFrame.getSize();
      Point pos = tinaInternalFrame.getLocation();
      WindowPrefs wPrefs = prefs.getWindowPrefs(WindowPrefs.WINDOW_TINA);
      wPrefs.setLeft(pos.x);
      wPrefs.setTop(pos.y);
      wPrefs.setWidth(size.width);
      wPrefs.setHeight(size.height);
      wPrefs.setMaximized(tinaInternalFrame.isMaximum());
    }
    try {
      prefs.saveToFromFile();
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
    RandomGeneratorFactory.cleanup();
    System.exit(0);
  }
}
TOP

Related Classes of org.jwildfire.swing.Desktop

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.