Search in sources :

Example 1 with JXErrorPane

use of org.jdesktop.swingx.JXErrorPane in project zaproxy by zaproxy.

the class GuiBootstrap method init.

/**
     * Initialises the {@code Model}, {@code View} and {@code Control}.
     *
     * @param firstTime {@code true} if it's the first time ZAP is being started, {@code false} otherwise
     */
private void init(final boolean firstTime) {
    try {
        initModel();
        setupLookAndFeel();
    } catch (Exception e) {
        setupLookAndFeel();
        if (e instanceof FileNotFoundException) {
            JOptionPane.showMessageDialog(null, Constant.messages.getString("start.db.error"), Constant.messages.getString("start.title.error"), JOptionPane.ERROR_MESSAGE);
        }
        logger.fatal(e.getMessage(), e);
    }
    OptionsParam options = Model.getSingleton().getOptionsParam();
    OptionsParamView viewParam = options.getViewParam();
    FontUtils.setDefaultFont(viewParam.getFontName(), viewParam.getFontSize());
    setupLocale(options);
    View.getSingleton().showSplashScreen();
    promptForProxyDetailsIfNeeded(options);
    Thread bootstrap = new Thread(new Runnable() {

        @Override
        public void run() {
            try {
                initControlAndPostViewInit();
            } catch (Throwable e) {
                if (!Constant.isDevBuild()) {
                    ErrorInfo errorInfo = new ErrorInfo(Constant.messages.getString("start.gui.dialog.fatal.error.title"), Constant.messages.getString("start.gui.dialog.fatal.error.message"), null, null, e, null, null);
                    JXErrorPane errorPane = new JXErrorPane();
                    errorPane.setErrorInfo(errorInfo);
                    JXErrorPane.showDialog(View.getSingleton().getSplashScreen(), errorPane);
                }
                View.getSingleton().hideSplashScreen();
                logger.fatal("Failed to initialise GUI: ", e);
                // We must exit otherwise EDT would keep ZAP running.
                System.exit(1);
            }
            warnAddOnsAndExtensionsNoLongerRunnable();
            if (firstTime) {
            // Disabled for now - we have too many popups occuring when you
            // first start up
            // be nice to have a clean start up wizard...
            // ExtensionHelp.showHelp();
            } else {
                // Dont auto check for updates the first time, no chance of any
                // proxy having been set
                final ExtensionAutoUpdate eau = (ExtensionAutoUpdate) Control.getSingleton().getExtensionLoader().getExtension("ExtensionAutoUpdate");
                if (eau != null) {
                    eau.alertIfNewVersions();
                }
            }
        }
    });
    bootstrap.setName("ZAP-BootstrapGUI");
    bootstrap.setDaemon(false);
    bootstrap.start();
}
Also used : OptionsParam(org.parosproxy.paros.model.OptionsParam) ExtensionAutoUpdate(org.zaproxy.zap.extension.autoupdate.ExtensionAutoUpdate) OptionsParamView(org.parosproxy.paros.extension.option.OptionsParamView) ErrorInfo(org.jdesktop.swingx.error.ErrorInfo) FileNotFoundException(java.io.FileNotFoundException) JXErrorPane(org.jdesktop.swingx.JXErrorPane) UnsupportedLookAndFeelException(javax.swing.UnsupportedLookAndFeelException) IOException(java.io.IOException) FileNotFoundException(java.io.FileNotFoundException) ConfigurationException(org.apache.commons.configuration.ConfigurationException)

Aggregations

FileNotFoundException (java.io.FileNotFoundException)1 IOException (java.io.IOException)1 UnsupportedLookAndFeelException (javax.swing.UnsupportedLookAndFeelException)1 ConfigurationException (org.apache.commons.configuration.ConfigurationException)1 JXErrorPane (org.jdesktop.swingx.JXErrorPane)1 ErrorInfo (org.jdesktop.swingx.error.ErrorInfo)1 OptionsParamView (org.parosproxy.paros.extension.option.OptionsParamView)1 OptionsParam (org.parosproxy.paros.model.OptionsParam)1 ExtensionAutoUpdate (org.zaproxy.zap.extension.autoupdate.ExtensionAutoUpdate)1