private void setupFrame() {
        _defaultFont = new FontUIResource("Dialog", Font.PLAIN, 12);
        _boldFont = new FontUIResource("Dialog", Font.BOLD, 12);
        _fixedFont = new FontUIResource("Monospaced", Font.PLAIN, 12);

        _persistitAccentColor = new Color(119, 17, 34);

        String lnfClassName = getProperty("lnf");
        boolean lafLoaded = false;
        if (lnfClassName != null && lnfClassName.length() > 0) {
            try {
                Class lnfClass = Class.forName(lnfClassName);

                Method setPropertyMethod = null;

                Enumeration props = _bundle.getKeys();
                while (props.hasMoreElements()) {
                    String propName = (String) props.nextElement();
                    if (propName.startsWith("lnf.")) {
                        String propValue = _bundle.getString(propName);
                        if (setPropertyMethod == null) {
                            setPropertyMethod = lnfClass.getMethod("setProperty", new Class[] { String.class,
                                    String.class });
                        }

                        setPropertyMethod.invoke(null, new Object[] { propName, propValue });
                    }
                }
                javax.swing.LookAndFeel lnf = (javax.swing.LookAndFeel) lnfClass.newInstance();

                javax.swing.UIManager.setLookAndFeel(lnf);
                lafLoaded = true;
            } catch (Exception ex) {
                System.err.println("Could not load LnF class " + lnfClassName);
                ex.printStackTrace();
            }
        }

        if (!lafLoaded) {
            try {
                UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            } catch (Exception e) {
                // Ignore exception
            }
        }

        setUIFont(_defaultFont);
        _percentageFormat = new DecimalFormat(getProperty("PERCENTAGE_FORMAT"));
        _dateFormat = new SimpleDateFormat(getProperty("DATE_FORMAT"));
        _timeFormat = new DecimalFormat(getProperty("TIME_FORMAT"));
        _longFormat = new DecimalFormat(getProperty("LONG_FORMAT"));
        _integerFormat = new DecimalFormat(getProperty("INTEGER_FORMAT"));
        _fileLocationFormat = getProperty("FILE_LOCATION_FORMAT");
        _waitingMessage = getProperty("WaitingMessage");
        _nullMessage = getProperty("NullMessage");
        _taskStates = new String[7];
        for (int state = 0; state < 7; state++) {
            _taskStates[state] = getProperty("TaskState." + state);
        }

        _tabbedPane = new JTabbedPane();
        _frame.getContentPane().add(_tabbedPane);

        _frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        _frame.addWindowListener(new WindowAdapter() {
            public void windowClosed(WindowEvent we) {
                SwingUtilities.invokeLater(new Runnable() {
                    public void run() {
                        // if (_frame != null)
                        // {
                        //
                        // Will restore normal operation to
                        // target Persistit instance
                        //
                        setManagement(null);
                        close();
                        // }
                    }
                });
            }
        });
        setupMenu();
        setupTabbedPanes();
        _tabbedPane.addChangeListener(new ChangeListener() {
            public void stateChanged(ChangeEvent ce) {
                handleTabChanged();
            }
        });
        handleTabChanged();
        refreshMenuEnableState();
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        setFrameTitle(null);
        _frame.pack();
        _frame.setLocation((screenSize.width - _frame.getWidth()) / 2, (screenSize.height - _frame.getHeight()) / 2);
        _frame.setVisible(true);
    }