private void initComponents() {
    java.awt.GridBagConstraints gridBagConstraints;

    blackrevertedGroup = new javax.swing.ButtonGroup();
    BColumnGroup = new javax.swing.ButtonGroup();
    blackdeletedGroup = new javax.swing.ButtonGroup();
    watchdeletedGroup = new javax.swing.ButtonGroup();
    watchwarnedGroup = new javax.swing.ButtonGroup();
    jPanel1 = new javax.swing.JPanel();
    statusLabel = new javax.swing.JLabel();
    tab = new javax.swing.JTabbedPane();
    userlistPanel2 = new javax.swing.JPanel();
    userListPanel = new javax.swing.JPanel();
    watchlistPanel = new javax.swing.JPanel();
    watchlists = new javax.swing.JPanel();
    watchlistButtons = new javax.swing.JPanel();
    lists = new javax.swing.JPanel();
    jScrollPane6 = new javax.swing.JScrollPane();
    whitelistList = new javax.swing.JList();
    jScrollPane7 = new javax.swing.JScrollPane();
    blacklistList = new javax.swing.JList();
    greylistList = new javax.swing.JList();
    buttons = new javax.swing.JPanel();
    jLabel26 = new javax.swing.JLabel();
    userlistField = new javax.swing.JTextField();
    whitelistAdd = new javax.swing.JButton();
    blacklistAdd = new javax.swing.JButton();
    greylistAdd = new javax.swing.JButton();
    whitelistRemove = new javax.swing.JButton();
    blacklistRemove = new javax.swing.JButton();
    greylistRemove = new javax.swing.JButton();
    sortwhitelistButton = new javax.swing.JButton();
    sortblacklistButton = new javax.swing.JButton();
    sortgreylistButton = new javax.swing.JButton();
    jLabel27 = new javax.swing.JLabel();
    importbotsButton = new javax.swing.JButton();
    whitelistimportField = new javax.swing.JTextField();
    importadminsButton = new javax.swing.JButton();
    jPanel26 = new javax.swing.JPanel();
    jPanel32 = new javax.swing.JPanel();
    jPanel31 = new javax.swing.JPanel();
    jLabel28 = new javax.swing.JLabel();
    articleField = new javax.swing.JTextField();
    watchlistAdd = new javax.swing.JButton();
    watchlistRemove = new javax.swing.JButton();
    sortarticlesButton = new javax.swing.JButton();
    watchlistimportButton = new javax.swing.JButton();
    jScrollPane8 = new javax.swing.JScrollPane();
    watchlistList = new javax.swing.JList();
    temporaryPanel = new javax.swing.JPanel();
    jPanel24 = new javax.swing.JPanel();
    jScrollPane3 = new javax.swing.JScrollPane();
    tempwhitelistList = new javax.swing.JList();
    jScrollPane4 = new javax.swing.JScrollPane();
    tempblacklistList = new javax.swing.JList();
    jScrollPane5 = new javax.swing.JScrollPane();
    jScrollPane11 = new javax.swing.JScrollPane();
    tempwatchlistList = new javax.swing.JList();
    jPanel25 = new javax.swing.JPanel();
    jLabel24 = new javax.swing.JLabel();
    templistField = new javax.swing.JTextField();
    jLabel25 = new javax.swing.JLabel();
    tempwhitelistAdd = new javax.swing.JButton();
    tempblacklistAdd = new javax.swing.JButton();
    tempwatchlistAdd = new javax.swing.JButton();
    tempwhitelistRemove = new javax.swing.JButton();
    tempblacklistRemove = new javax.swing.JButton();
    tempwatchlistRemove = new javax.swing.JButton();
    sorttempwhitelistButton = new javax.swing.JButton();
    sorttempblacklistButton = new javax.swing.JButton();
    sorttempwatchlistButton = new javax.swing.JButton();
    regexPanel = new javax.swing.JPanel();
    jPanel21 = new javax.swing.JPanel();
    jPanel22 = new javax.swing.JPanel();
    jScrollPane1 = new javax.swing.JScrollPane();
    regexpwhiteList = new javax.swing.JList();
    jScrollPane2 = new javax.swing.JScrollPane();
    regexpblackList = new javax.swing.JList();
    jPanel23 = new javax.swing.JPanel();
    jLabel23 = new javax.swing.JLabel();
    regexpField = new javax.swing.JTextField();
    regexpwhiteAdd = new javax.swing.JButton();
    regexpblackAdd = new javax.swing.JButton();
    regexpwhiteRemove = new javax.swing.JButton();
    regexpblackRemove = new javax.swing.JButton();
    sortregexpwhitelistButton = new javax.swing.JButton();
    sortregexpblacklistButton = new javax.swing.JButton();
    configPanel1 = new javax.swing.JPanel();
    miscConfigPanel = new javax.swing.JPanel();
    miscConfigLabel = new JLabel();
    localizeConfigPanel = new javax.swing.JPanel();
    localizeConfigLabel = new JLabel();
    jLabel2 = new javax.swing.JLabel();
    langList = new JComboBox(langStrings);
    timeZoneList = new JComboBox(timeZoneStrings);
    jLabel29 = new javax.swing.JLabel();
    jLabel30 = new javax.swing.JLabel();
    feelList = new JComboBox(feelStrings);
    themeLabel = new javax.swing.JLabel();
    themeList = new JComboBox(themeStrings);

    langList.setSelectedIndex(getLangInt());
    timeZoneList.setSelectedIndex(getTimeZoneInt());
    feelList.setSelectedIndex(getFeelInt());
    themeList.setEnabled(feelList.getSelectedIndex() == 0);
    themeLabel.setEnabled(feelList.getSelectedIndex() == 0);
    themeList.setSelectedIndex(getThemeInt());
    olddeleted = new javax.swing.JCheckBox();
    registerdeleted = new javax.swing.JCheckBox();
    autoscroll = new javax.swing.JCheckBox();
    singleclick = new javax.swing.JCheckBox();
    queueedits = new javax.swing.JCheckBox();
    removereviewed = new javax.swing.JCheckBox();
    stripformatting = new javax.swing.JCheckBox();
    newversion = new javax.swing.JCheckBox();
    connectatstart = new javax.swing.JCheckBox();
    reversetable = new javax.swing.JCheckBox();
    jPanel3 = new javax.swing.JPanel();
    DefaultProject = new javax.swing.JLabel();
    defaultProjectField = new javax.swing.JTextField();
    jPanel12 = new javax.swing.JPanel();
    browserpick = new javax.swing.JCheckBox();
    browser2 = new javax.swing.JPanel();
    browserchooserButton = new javax.swing.JButton();
    browserField = new javax.swing.JTextField();
    jPanel11 = new javax.swing.JPanel();
    BColumnTakesYouTo = new javax.swing.JLabel();
    blockRadioPanel = new javax.swing.JPanel();
    blockButton = new javax.swing.JRadioButton();
    vipButton = new javax.swing.JRadioButton();
    vipeditButton = new javax.swing.JRadioButton();
    jSeparator1 = new javax.swing.JSeparator();
    showips = new javax.swing.JCheckBox();
    newpages = new javax.swing.JCheckBox();
    showwatch = new javax.swing.JCheckBox();
    jSeparator2 = new javax.swing.JSeparator();
    listprecedence = new javax.swing.JCheckBox();
    watchuserpages = new javax.swing.JCheckBox();
    watchmasschanges = new javax.swing.JCheckBox();
    watchpagemoves = new javax.swing.JCheckBox();
    watchnewpages = new javax.swing.JCheckBox();
    beeptempblack = new javax.swing.JCheckBox();
    beeppermblack = new javax.swing.JCheckBox();
    beeptempwatch = new javax.swing.JCheckBox();
    beeppermwatch = new javax.swing.JCheckBox();
    beepregexpblack = new javax.swing.JCheckBox();
    beepcollaborationwarning = new javax.swing.JCheckBox();
    jSeparator3 = new javax.swing.JSeparator();
    rwhiteuser = new javax.swing.JCheckBox();
    rwhitepage = new javax.swing.JCheckBox();
    rwhitesummary = new javax.swing.JCheckBox();
    rblackuser = new javax.swing.JCheckBox();
    rblackpage = new javax.swing.JCheckBox();
    rblacksummary = new javax.swing.JCheckBox();
    jSeparator4 = new javax.swing.JSeparator();
    blackreverted = new javax.swing.JCheckBox();
    revertedUsers = new javax.swing.JPanel();
    revertpermButton = new javax.swing.JRadioButton();
    reverttempButton = new javax.swing.JRadioButton();
    blackdeleted = new javax.swing.JCheckBox();
    speediedUsers = new javax.swing.JPanel();
    delpagepermButton = new javax.swing.JRadioButton();
    delpagetempButton = new javax.swing.JRadioButton();
    watchdeleted = new javax.swing.JCheckBox();
    watchspeediedArticles = new javax.swing.JPanel();
    watchdelpermButton = new javax.swing.JRadioButton();
    watchdeltempButton = new javax.swing.JRadioButton();
    watchwarned = new javax.swing.JCheckBox();
    watchwarnedPanel = new javax.swing.JPanel();
    watchwarnedpermButton = new javax.swing.JRadioButton();
    watchwarnedtempButton = new javax.swing.JRadioButton();
    jSeparator5 = new javax.swing.JSeparator();
    jPanel15 = new javax.swing.JPanel();
    exportchooserButton1 = new javax.swing.JButton();
    exportField1 = new javax.swing.JTextField();
    exportButton1 = new javax.swing.JButton();
    jPanel14 = new javax.swing.JPanel();
    importchooserButton = new javax.swing.JButton();
    importField = new javax.swing.JTextField();
    importButton = new javax.swing.JButton();
    jSeparator6 = new javax.swing.JSeparator();
    risk = new javax.swing.JCheckBox();
    jPanel2 = new javax.swing.JPanel();
    colorblist = new javax.swing.JCheckBox();
    colorblistButton = new javax.swing.JButton();
    jPanel4 = new javax.swing.JPanel();
    colorwatch = new javax.swing.JCheckBox();
    colorwatchButton = new javax.swing.JButton();
    jPanel5 = new javax.swing.JPanel();
    colorchanged = new javax.swing.JCheckBox();
    changedField = new javax.swing.JTextField();
    changedField.setText(config.getProperty("changedField"));
    colorchangedButton = new javax.swing.JButton();
    jPanel6 = new javax.swing.JPanel();
    colornew = new javax.swing.JCheckBox();
    colornewButton = new javax.swing.JButton();
    jPanel7 = new javax.swing.JPanel();
    jPanel78 = new javax.swing.JPanel();
    colorips = new javax.swing.JCheckBox();
    coloripsButton = new javax.swing.JButton();
    colornewusers = new javax.swing.JCheckBox();
    colornewusersButton = new javax.swing.JButton();
    jPanel8 = new javax.swing.JPanel();
    coloruserpage = new javax.swing.JCheckBox();
    coloruserpageButton = new javax.swing.JButton();
    jPanel9 = new javax.swing.JPanel();
    colormoves = new javax.swing.JCheckBox();
    colormovesButton = new javax.swing.JButton();
    configCtrlsPanel = new javax.swing.JPanel();
    configDefaults = new javax.swing.JButton();
    configCancel = new javax.swing.JButton();
    configSave = new javax.swing.JButton();
    IRCPannel = new javax.swing.JPanel();
    connectionsPanel = new ConnectionsPanel(this);
    irctoptopPanel1 = new javax.swing.JPanel();
    jPanel19 = new javax.swing.JPanel();
    jPanel10 = new javax.swing.JPanel();
    vandalism_nl_box = new javax.swing.JCheckBox();
    vandalism_fr_box = new javax.swing.JCheckBox();
    vandalism_en_box = new javax.swing.JCheckBox();
    vandalism_it_box = new javax.swing.JCheckBox();
    vandalism_cs_box = new javax.swing.JCheckBox();
    jPanel20 = new javax.swing.JPanel();
    VandalismStreamButton = new javax.swing.JButton();
    jLabel21 = new javax.swing.JLabel();
    jSeparator7 = new javax.swing.JSeparator();
    jLabel22 = new javax.swing.JLabel();
    jPanel13 = new javax.swing.JPanel();
    mediawikistreamCheckbox = new javax.swing.JCheckBox();
    jPanel16 = new javax.swing.JPanel();
    jLabel3 = new javax.swing.JLabel();
    channelField = new javax.swing.JTextField();
    jLabel4 = new javax.swing.JLabel();
    serverField = new javax.swing.JTextField();
    jLabel5 = new javax.swing.JLabel();
    portField = new javax.swing.JTextField();
    jPanel17 = new javax.swing.JPanel();
    jPanel27 = new javax.swing.JPanel();
    jPanel40 = new javax.swing.JPanel();
    jPanel41 = new javax.swing.JPanel();
    ircconButton = new javax.swing.JButton();
    ircdisconnectButton = new javax.swing.JButton();
    jLabel6 = new javax.swing.JLabel();
    jLabel7 = new javax.swing.JLabel();
    jLabel8 = new javax.swing.JLabel();
    jLabel9 = new javax.swing.JLabel();
    jLabel10 = new javax.swing.JLabel();
    jLabel11 = new javax.swing.JLabel();
    jLabel12 = new javax.swing.JLabel();
    jLabel13 = new javax.swing.JLabel();
    jLabel14 = new javax.swing.JLabel();
    jLabel15 = new javax.swing.JLabel();
    editorPane1 = new JEditorPane();
    aboutPanel = new javax.swing.JPanel();
    jScrollPane10 = new javax.swing.JScrollPane();
    jTextPane1 = new javax.swing.JTextPane();
    colorConfigPanel = new javax.swing.JPanel();
    colorConfigLabel = new JLabel();
    regexpConfigPanel = new javax.swing.JPanel();
    regexpConfigLabel = new JLabel();
    listsConfigPanel = new javax.swing.JPanel();
    listsConfigLabel = new JLabel();
    automaticConfigPanel = new javax.swing.JPanel();
    automaticConfigLabel = new JLabel();
    showConfigPanel = new javax.swing.JPanel();
    showConfigLabel = new JLabel();
    beepConfigPanel = new javax.swing.JPanel();
    beepConfigLabel = new JLabel();
    startConfigPanel = new javax.swing.JPanel();
    startConfigLabel = new JLabel();
    browserConfigPanel = new javax.swing.JPanel();
    browserConfigLabel = new JLabel();

    userPopupMenu = new JPopupMenu();

    userContributionsPopupItem = new JMenuItem(messages
        .getString("UserContributionsMenu"));
    userTalkPagePopupItem = new JMenuItem(messages
        .getString("UserTalkPageMenu"));
    userBlockPopupItem = new JMenuItem(messages.getString("UserBlockMenu"));
    user2WhitelistPopupItem = new JMenuItem(messages
        .getString("User2WhitelistMenu"));
    user2GreylistPopupItem = new JMenuItem(messages
        .getString("User2GreylistMenu"));
    user2BlacklistPopupItem = new JMenuItem(messages
        .getString("User2BlacklistMenu"));
//    user2WatchlistPopupItem = new JMenuItem(messages
//        .getString("User2WatchlistMenu"));
    user2TempWhitelistPopupItem = new JMenuItem(messages
        .getString("User2TempWhitelistMenu"));
    user2TempBlacklistPopupItem = new JMenuItem(messages
        .getString("User2TempBlacklistMenu"));
//    user2TempWatchlistPopupItem = new JMenuItem(messages
//        .getString("User2TempWatchlistMenu"));
    userNamePopupLabel = new JLabel();
    userNamePopupLabel.setBorder(javax.swing.BorderFactory.createEmptyBorder(0,
        14, 0, 0));

    userPopupMenu.add(userContributionsPopupItem);
    userPopupMenu.add(userTalkPagePopupItem);
    userPopupMenu.add(userBlockPopupItem);
    userPopupMenu.addSeparator();
    userPopupMenu.add(user2WhitelistPopupItem);
    userPopupMenu.add(user2GreylistPopupItem);
    userPopupMenu.add(user2BlacklistPopupItem);
//    userPopupMenu.add(user2WatchlistPopupItem);
    userPopupMenu.addSeparator();
    userPopupMenu.add(user2TempWhitelistPopupItem);
    userPopupMenu.add(user2TempBlacklistPopupItem);
//    userPopupMenu.add(user2TempWatchlistPopupItem);
    userPopupMenu.addSeparator();
    {
      JPanel mjp = new JPanel();
      mjp.setLayout(new FlowLayout(FlowLayout.LEFT));
      userPopupMenu.add(mjp);
      mjp.add(userNamePopupLabel);
    }

    userContributionsPopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        showUserContributions((String) popupRow[config.editorcol],
            (String) popupRow[config.projectcol]);
      }
    });
    userTalkPagePopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        showUserTalkPage((String) popupRow[config.editorcol],
            (String) popupRow[config.projectcol]);
      }
    });
    userBlockPopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        showBlockPage((String) popupRow[config.editorcol],
            (String) popupRow[config.projectcol]);
      }
    });
    user2WhitelistPopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        addRemoveFromWhitelist((String) popupRow[config.editorcol],
            (String) popupRow[config.projectcol]);
      }
    });
    user2GreylistPopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        addRemoveFromGreylist((String) popupRow[config.editorcol],
            (String) popupRow[config.projectcol]);
      }
    });
    user2BlacklistPopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        addRemoveFromBlacklist((String) popupRow[config.editorcol],
            (String) popupRow[config.projectcol]);
      }
    });
//    user2WatchlistPopupItem.addActionListener(new ActionListener() {
//      public void actionPerformed(ActionEvent e) {
//        addRemoveFromWatchlist((String) popupRow[config.editorcol],
//            (String) popupRow[config.projectcol]);
//      }
//    });
    user2TempWhitelistPopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        addRemoveFromTempWhitelist((String) popupRow[config.editorcol],
            (String) popupRow[config.projectcol]);
      }
    });
    user2TempBlacklistPopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        addRemoveFromTempBlacklist((String) popupRow[config.editorcol],
            (String) popupRow[config.projectcol]);
      }
    });
//    user2TempWatchlistPopupItem.addActionListener(new ActionListener() {
//      public void actionPerformed(ActionEvent e) {
//        addRemoveFromTempWatchlist((String) popupRow[config.editorcol],
//            (String) popupRow[config.projectcol]);
//      }
//    });

    projectPopupMenu = new JPopupMenu();

    projectRCPopupItem = new JMenuItem(messages
        .getString("ProjectRecentChangesMenu"));
    projectMainPagePopupItem = new JMenuItem(messages
        .getString("ProjectMainPageMenu"));
    projectNamePopupLabel = new JLabel();
    projectNamePopupLabel.setBorder(javax.swing.BorderFactory
        .createEmptyBorder(0, 14, 0, 0));

    projectPopupMenu.add(projectRCPopupItem);
    projectPopupMenu.add(projectMainPagePopupItem);
    projectPopupMenu.addSeparator();
    {
      JPanel mjp = new JPanel();
      mjp.setLayout(new FlowLayout(FlowLayout.LEFT));
      projectPopupMenu.add(mjp);
      mjp.add(projectNamePopupLabel);
    }

    projectRCPopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        showProjectRecentChanges((String) popupRow[config.projectcol]);
      }
    });
    projectMainPagePopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        showProjectMainPage((String) popupRow[config.projectcol]);
      }
    });

    xPopupMenu = new JPopupMenu();

    xAcceptPopupItem = new JMenuItem(messages.getString("XAcceptMenu"));
    xSimplyDeletePopupItem = new JMenuItem(messages
        .getString("XSimplyDeleteMenu"));
    xWarningPopupItem = new JMenuItem(messages.getString("XWarningMenu"));
    xWarningAndDeletePopupItem = new JMenuItem(messages
        .getString("XWarningAndDeleteMenu"));
    xNamePopupLabel = new JLabel();
    xNamePopupLabel.setBorder(javax.swing.BorderFactory.createEmptyBorder(0,
        14, 0, 0));
    xPopupMenu.add(xAcceptPopupItem);
    xPopupMenu.add(xSimplyDeletePopupItem);
    xPopupMenu.add(xWarningPopupItem);
    xPopupMenu.add(xWarningAndDeletePopupItem);
    xPopupMenu.addSeparator();
    {
      JPanel mjp = new JPanel();
      mjp.setLayout(new FlowLayout(FlowLayout.LEFT));
      xPopupMenu.add(mjp);
      mjp.add(xNamePopupLabel);
    }
    xAcceptPopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        acceptEdit(popupRowNumber, popupRow);
      }
    });
    xSimplyDeletePopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        simplyDeleteEdit(popupRowNumber, popupRow);
      }
    });
    xWarningPopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        warnEdit(popupRow);
      }
    });
    xWarningAndDeletePopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        warnEditAndRemove(popupRowNumber, popupRow);
      }
    });

    pagePopupMenu = new JPopupMenu();

    pageDiffPopupItem = new JMenuItem(messages.getString("PageDiffMenu"));
    pageHistoryPopupItem = new JMenuItem(messages.getString("PageHistoryMenu"));
    pageActualPopupItem = new JMenuItem(messages.getString("PageActualMenu"));
    pageLockPopupItem = new JMenuItem(messages.getString("PageLockMenu"));
    page2WatchlistPopupItem = new JMenuItem(messages
        .getString("Page2WatchlistMenu"));
    page2TempWatchlistPopupItem = new JMenuItem(messages
        .getString("Page2TempWatchlistMenu"));
    pageNamePopupLabel = new JLabel();
    pageNamePopupLabel.setBorder(javax.swing.BorderFactory.createEmptyBorder(0,
        14, 0, 0));
    pagePopupMenu.add(pageDiffPopupItem);
    pagePopupMenu.add(pageHistoryPopupItem);
    pagePopupMenu.add(pageActualPopupItem);
    pagePopupMenu.add(pageLockPopupItem);
    pagePopupMenu.add(page2WatchlistPopupItem);
    pagePopupMenu.add(page2TempWatchlistPopupItem);
    pagePopupMenu.addSeparator();
    {
      JPanel mjp = new JPanel();
      mjp.setLayout(new FlowLayout(FlowLayout.LEFT));
      pagePopupMenu.add(mjp);
      mjp.add(pageNamePopupLabel);
    }
    pageDiffPopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        showPageDiff(popupRowNumber, popupRow);
      }
    });
    pageHistoryPopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        showPageHistory((String) popupRow[config.articlecol],
            (String) popupRow[config.projectcol]);
      }
    });
    pageActualPopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        showActualPage((String) popupRow[config.articlecol],
            (String) popupRow[config.projectcol]);
      }
    });
    pageLockPopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        showLockPage((String) popupRow[config.articlecol],
            (String) popupRow[config.projectcol]);
      }
    });
    page2WatchlistPopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        addRemoveFromWatchlist((String) popupRow[config.articlecol],
            (String) popupRow[config.projectcol]);
      }
    });
    page2TempWatchlistPopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        addRemoveFromTempWatchlist((String) popupRow[config.articlecol],
            (String) popupRow[config.projectcol]);
      }
    });

    specialPagePopupMenu = new JPopupMenu();

    specialPageActionPopupItem = new JMenuItem("dummy");
    specialPageLogPopupItem = new JMenuItem(messages.getString("SpecialPageLogMenu"));
    specialPageNamePopupLabel = new JLabel();
    specialPageNamePopupLabel.setBorder(javax.swing.BorderFactory.createEmptyBorder(0,
        14, 0, 0));
    specialPagePopupMenu.add(specialPageActionPopupItem);
    specialPagePopupMenu.add(specialPageLogPopupItem);
    specialPagePopupMenu.addSeparator();
    {
      JPanel mjp = new JPanel();
      mjp.setLayout(new FlowLayout(FlowLayout.LEFT));
      specialPagePopupMenu.add(mjp);
      mjp.add(specialPageNamePopupLabel);
    }
    specialPageActionPopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        openBrowser((String) data.editstableModel.getValueAt(popupRowNumber,
            config.urlcol));
      }
    });
    specialPageLogPopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        showSpecialPageLog(popupRow);
      }
    });

    specialPage2PopupMenu = new JPopupMenu();

    specialPage2LogPopupItem = new JMenuItem(messages.getString("SpecialPageLogMenu"));
    specialPage2NamePopupLabel = new JLabel();
    specialPage2NamePopupLabel.setBorder(javax.swing.BorderFactory.createEmptyBorder(0,
        14, 0, 0));
    specialPage2PopupMenu.add(specialPage2LogPopupItem);
    specialPage2PopupMenu.addSeparator();
    {
      JPanel mjp = new JPanel();
      mjp.setLayout(new FlowLayout(FlowLayout.LEFT));
      specialPage2PopupMenu.add(mjp);
      mjp.add(specialPage2NamePopupLabel);
    }
    specialPage2LogPopupItem.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        openBrowser((String) data.editstableModel.getValueAt(popupRowNumber,
            config.urlcol));
      }
    });

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setTitle(messages.getString("SoftwareName")+config.version);
    setIconImage(getImage());
    jPanel1.setLayout(new java.awt.BorderLayout());

    statusLabel.setText(messages.getString("Ready"));
    jPanel1.add(statusLabel, java.awt.BorderLayout.CENTER);

    getContentPane().add(jPanel1, java.awt.BorderLayout.SOUTH);

    tab.setName("configuration");

    {
      userListPanel.setLayout(new TreeColumnGridBagLayout(jLabel13, jLabel14, jLabel15));

      GridBagConstraints c = new GridBagConstraints();
      int row = 0;

      c.gridx = 0;
      c.gridy = row++;
      c.weightx = 1;
      Font f = jLabel13.getFont();
      Font headerFont = new Font(f.getName(), Font.BOLD, f.getSize() + 2);
      jLabel13.setFont(headerFont);
      jLabel13.setHorizontalAlignment(SwingConstants.CENTER);
      Insets defaultInsets = c.insets;
      c.insets = new java.awt.Insets(5, 5, 5, 5);
      //c.insets = new Insets(2,2,2,2);
      c.fill = GridBagConstraints.BOTH;
      jLabel13.setText(messages.getString("Whitelist"));
      userListPanel.add(jLabel13, c);

      c.gridx = 1;
      jLabel14.setFont(headerFont);
      jLabel14.setHorizontalAlignment(SwingConstants.CENTER);
      jLabel14.setText(messages.getString("Greylist"));
      userListPanel.add(jLabel14, c);

      c.gridx = 2;
      jLabel15.setFont(headerFont);
      jLabel15.setHorizontalAlignment(SwingConstants.CENTER);
      jLabel15.setText(messages.getString("Blacklist"));
      userListPanel.add(jLabel15, c);

      c.gridx = 0;
      c.gridy = row++;
      c.weighty = 1;
      c.insets = defaultInsets;
      whitelistList.setModel(config.whitelistModel);
      whitelistList
      .addListSelectionListener(new javax.swing.event.ListSelectionListener() {
        public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
          whitelistListValueChanged(evt);
        }
      });
      jScrollPane6.setViewportView(whitelistList);
      userListPanel.add(jScrollPane6, c);

      c.gridx = 1;
      greylistList.setModel(config.greylistModel);
      greylistList
      .addListSelectionListener(new javax.swing.event.ListSelectionListener() {
        public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
          greylistListValueChanged(evt);
        }
      });
      jScrollPane8.setViewportView(greylistList);
      userListPanel.add(jScrollPane8, c);

      c.gridx = 2;
      blacklistList.setModel(config.blacklistModel);
      blacklistList
      .addListSelectionListener(new javax.swing.event.ListSelectionListener() {
        public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
          blacklistListValueChanged(evt);
        }
      });
      jScrollPane7.setViewportView(blacklistList);
      userListPanel.add(jScrollPane7, c);

      c.gridx = 0;
      c.gridy = row++;
      c.weighty = 0;
      jLabel26.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
      jLabel26.setLabelFor(userlistField);
      jLabel26.setText(messages.getString("UsernameOrIP") + ": ");
      userListPanel.add(jLabel26, c);

      c.gridx = 1;
      userListPanel.add(userlistField, c);

      c.gridx = 0;
      c.gridy = row++;
      whitelistAdd.setText(messages.getString("AddToWhitelist"));
      whitelistAdd.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          whitelistAddActionPerformed(evt);
        }
      });
      userListPanel.add(whitelistAdd, c);

      c.gridx = 1;
      greylistAdd.setText(messages.getString("AddToGreylist"));
      greylistAdd.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          greylistAddActionPerformed(evt);
        }
      });
      userListPanel.add(greylistAdd, c);

      c.gridx = 2;
      blacklistAdd.setText(messages.getString("AddToBlacklist"));
      blacklistAdd.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          blacklistAddActionPerformed(evt);
        }
      });
      userListPanel.add(blacklistAdd, c);

      c.gridx = 0;
      c.gridy = row++;
      whitelistRemove.setText(messages.getString("RemoveFromWhitelist"));
      whitelistRemove.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          whitelistRemoveActionPerformed(evt);
        }
      });
      userListPanel.add(whitelistRemove, c);

      c.gridx = 1;
      greylistRemove.setText(messages.getString("RemoveFromGreylist"));
      greylistRemove.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          greylistRemoveActionPerformed(evt);
        }
      });
      userListPanel.add(greylistRemove, c);

      c.gridx = 2;
      blacklistRemove.setText(messages.getString("RemoveFromBlacklist"));
      blacklistRemove.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          blacklistRemoveActionPerformed(evt);
        }
      });
      userListPanel.add(blacklistRemove, c);

      c.gridx = 0;
      c.gridy = row++;
      sortwhitelistButton.setText(messages.getString("SortWhitelist"));
      sortwhitelistButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          sortwhitelistButtonActionPerformed(evt);
        }
      });
      userListPanel.add(sortwhitelistButton, c);

      c.gridx = 1;
      sortgreylistButton.setText(messages.getString("SortGreylist"));
      sortgreylistButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          sortgreylistButtonActionPerformed(evt);
        }
      });
      userListPanel.add(sortgreylistButton, c);

      c.gridx = 2;
      sortblacklistButton.setText(messages.getString("SortBlacklist"));
      sortblacklistButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          sortblacklistButtonActionPerformed(evt);
        }
      });
      userListPanel.add(sortblacklistButton, c);

      c.gridx = 0;
      c.gridy = row++;
      importadminsButton.setText(messages.getString("ImportAdmins"));
      importadminsButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          importadminsButtonActionPerformed(evt);
        }
      });
      userListPanel.add(importadminsButton, c);

      c.gridx = 1;
      importbotsButton.setText(messages.getString("ImportBots"));
      importbotsButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          importbotsButtonActionPerformed(evt);
        }
      });
      userListPanel.add(importbotsButton, c);

      c.gridx = 0;
      c.gridy = row++;
      jLabel27.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
      jLabel27.setText(messages.getString("ImportAdminsToWhitelistFrom"));
      userListPanel.add(jLabel27, c);

      c.gridx = 1;
      whitelistimportField.setText(messages
          .getString("whitelistimportFieldlabel"));
      userListPanel.add(whitelistimportField, c);

      tab.addTab(messages.getString("UserLists"), userListPanel);
    }

    {
      temporaryPanel.setLayout(new TreeColumnGridBagLayout(jLabel9, jLabel10, jPanel22));

      GridBagConstraints c = new GridBagConstraints();
      int row = 0;

      c.gridx = 0;
      c.gridy = row++;
      c.weightx = 1;
      Font f = jLabel9.getFont();
      Font headerFont = new Font(f.getName(), Font.BOLD, f.getSize() + 2);
      jLabel9.setFont(headerFont);
      jLabel9.setHorizontalAlignment(SwingConstants.CENTER);
      Insets defaultInsets = c.insets;
      c.insets = new java.awt.Insets(5, 5, 5, 5);
      //c.insets = new Insets(2,2,2,2);
      c.fill = GridBagConstraints.BOTH;
      jLabel9.setText(messages.getString("TempWhitelist"));
      temporaryPanel.add(jLabel9, c);

      c.gridx = 1;
      jLabel10.setFont(headerFont);
      jLabel10.setHorizontalAlignment(SwingConstants.CENTER);
      jLabel10.setText(messages.getString("TempBlacklist"));
      temporaryPanel.add(jLabel10, c);

      c.gridx = 0;
      c.gridy = row++;
      c.weighty = 1;
      c.insets = defaultInsets;
      tempwhitelistList.setModel(config.tempwhitelistModel);
      tempwhitelistList.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
        public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
          tempwhitelistListValueChanged(evt);
        }
      });
      jScrollPane3.setViewportView(tempwhitelistList);
      temporaryPanel.add(jScrollPane3, c);

      c.gridx = 1;
      tempblacklistList.setModel(config.tempblacklistModel);
      tempblacklistList.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
        public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
          tempblacklistListValueChanged(evt);
        }
      });
      jScrollPane4.setViewportView(tempblacklistList);
      temporaryPanel.add(jScrollPane4, c);

      c.gridx = 0;
      c.gridy = row++;
      c.weighty = 0;
      jLabel24.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
      jLabel24.setText(messages.getString("UsernameIPOrPage") + ": ");
      temporaryPanel.add(jLabel24, c);

      c.gridx = 1;
      temporaryPanel.add(templistField, c);

      c.gridx = 0;
      c.gridy = row++;
      tempwhitelistAdd.setText(messages.getString("AddToTempWhitelist"));
      tempwhitelistAdd.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          tempwhitelistAddActionPerformed(evt);
        }
      });
      temporaryPanel.add(tempwhitelistAdd, c);

      c.gridx = 1;
      tempblacklistAdd.setText(messages.getString("AddToTempBlacklist"));
      tempblacklistAdd.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          tempblacklistAddActionPerformed(evt);
        }
      });
      temporaryPanel.add(tempblacklistAdd, c);

      c.gridx = 0;
      c.gridy = row++;
      tempwhitelistRemove.setText(messages.getString("RemoveFromTempWhitelist"));
      tempwhitelistRemove.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          tempwhitelistRemoveActionPerformed(evt);
        }
      });
      temporaryPanel.add(tempwhitelistRemove, c);

      c.gridx = 1;
      tempblacklistRemove.setText(messages.getString("RemoveFromTempBlacklist"));
      tempblacklistRemove.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          tempblacklistRemoveActionPerformed(evt);
        }
      });
      temporaryPanel.add(tempblacklistRemove, c);

      c.gridx = 0;
      c.gridy = row++;
      sorttempwhitelistButton.setText(messages.getString("SortWhitelist"));
      sorttempwhitelistButton
      .addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          sorttempwhitelistButtonActionPerformed(evt);
        }
      });
      temporaryPanel.add(sorttempwhitelistButton, c);

      c.gridx = 1;
      sorttempblacklistButton.setText(messages.getString("SortBlacklist"));
      sorttempblacklistButton
      .addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          sorttempblacklistButtonActionPerformed(evt);
        }
      });
      temporaryPanel.add(sorttempblacklistButton, c);

      c.gridx = 2;
      c.gridy = 0;
      temporaryPanel.add(jPanel22, c);

      tab.addTab(messages.getString("TempLists"), temporaryPanel);
    }

    {
      watchlistPanel.setLayout(new TreeColumnGridBagLayout(jLabel11, jLabel12, jPanel23));

      GridBagConstraints c = new GridBagConstraints();
      int row = 0;

      c.gridx = 0;
      c.gridy = row++;
      c.weightx = 1;
      Font f = jLabel11.getFont();
      Font headerFont = new Font(f.getName(), Font.BOLD, f.getSize() + 2);
      jLabel11.setFont(headerFont);
      jLabel11.setHorizontalAlignment(SwingConstants.CENTER);
      Insets defaultInsets = c.insets;
      c.insets = new java.awt.Insets(5, 5, 5, 5);
      //c.insets = new Insets(2,2,2,2);
      c.fill = GridBagConstraints.BOTH;
      jLabel11.setText(messages.getString("Watchlist"));
      watchlistPanel.add(jLabel11, c);

      c.gridx = 1;
      jLabel12.setFont(headerFont);
      jLabel12.setHorizontalAlignment(SwingConstants.CENTER);
      jLabel12.setText(messages.getString("TempWatchlist"));
      watchlistPanel.add(jLabel12, c);

      c.gridx = 0;
      c.gridy = row++;
      c.weighty = 1;
      c.insets = defaultInsets;
      watchlistList.setModel(config.watchlistModel);
      watchlistList
      .addListSelectionListener(new javax.swing.event.ListSelectionListener() {
        public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
          watchlistListValueChanged(evt);
        }
      });
      jScrollPane11.setViewportView(watchlistList);
      watchlistPanel.add(jScrollPane11, c);

      c.gridx = 1;
      tempwatchlistList.setModel(config.tempwatchlistModel);
      tempwatchlistList
          .addListSelectionListener(new javax.swing.event.ListSelectionListener() {
            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
              tempwatchlistListValueChanged(evt);
            }
          });
      jScrollPane5.setViewportView(tempwatchlistList);
      watchlistPanel.add(jScrollPane5, c);

      c.gridx = 0;
      c.gridy = row++;
      c.weighty = 0;
      jLabel30.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
      jLabel30.setLabelFor(articleField);
      jLabel30.setText(messages.getString("ArticleName") + ": ");
      watchlistPanel.add(jLabel30, c);

      c.gridx = 1;
      watchlistPanel.add(articleField, c);

      c.gridx = 0;
      c.gridy = row++;
      watchlistAdd.setText(messages.getString("Add"));
      watchlistAdd.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          watchlistAddActionPerformed(evt);
        }
      });
      watchlistPanel.add(watchlistAdd, c);

      c.gridx = 1;
      tempwatchlistAdd.setText(messages.getString("AddToTempWatchlist"));
      tempwatchlistAdd.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          tempwatchlistAddActionPerformed(evt);
        }
      });
      watchlistPanel.add(tempwatchlistAdd, c);

      c.gridx = 0;
      c.gridy = row++;
      watchlistRemove.setText(messages.getString("Remove"));
      watchlistRemove.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          watchlistRemoveActionPerformed(evt);
        }
      });
      watchlistPanel.add(watchlistRemove, c);

      c.gridx = 1;
      tempwatchlistRemove
          .setText(messages.getString("RemoveFromTempWatchlist"));
      tempwatchlistRemove
          .addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
              tempwatchlistRemoveActionPerformed(evt);
            }
          });
      watchlistPanel.add(tempwatchlistRemove, c);

      c.gridx = 0;
      c.gridy = row++;
      sortarticlesButton.setText(messages.getString("SortWatchlist"));
      sortarticlesButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          sortarticlesButtonActionPerformed(evt);
        }
      });
      watchlistPanel.add(sortarticlesButton, c);

      c.gridx = 1;
      sorttempwatchlistButton.setText(messages.getString("SortWatchlist"));
      sorttempwatchlistButton
          .addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
              sorttempwatchlistButtonActionPerformed(evt);
            }
          });
      watchlistPanel.add(sorttempwatchlistButton, c);

      c.gridx = 0;
      c.gridy = row++;
      watchlistimportButton.setText(messages.getString("ImportWatchlist"));
      watchlistimportButton
          .addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
              watchlistimportButtonActionPerformed(evt);
            }
          });
      watchlistPanel.add(watchlistimportButton, c);

      c.gridx = 2;
      c.gridy = 0;
      watchlistPanel.add(jPanel23, c);

      tab.addTab(messages.getString("Watchlists"), watchlistPanel);
    }

    {
      regexPanel.setLayout(new TreeColumnGridBagLayout(jLabel7, jLabel8, jPanel21));

      GridBagConstraints c = new GridBagConstraints();
      int row = 0;

      c.gridx = 0;
      c.gridy = row++;
      c.weightx = 1;
      Font f = jLabel7.getFont();
      Font headerFont = new Font(f.getName(), Font.BOLD, f.getSize() + 2);
      jLabel7.setFont(headerFont);
      jLabel7.setHorizontalAlignment(SwingConstants.CENTER);
      Insets defaultInsets = c.insets;
      c.insets = new java.awt.Insets(5, 5, 5, 5);
      //c.insets = new Insets(2,2,2,2);
      c.fill = GridBagConstraints.BOTH;
      jLabel7.setText(messages.getString("RegexpWhitelist"));
      regexPanel.add(jLabel7, c);

      c.gridx = 1;
      jLabel8.setFont(headerFont);
      jLabel8.setHorizontalAlignment(SwingConstants.CENTER);
      jLabel8.setText(messages.getString("RegexpBlacklist"));
      regexPanel.add(jLabel8, c);

      c.gridx = 0;
      c.gridy = row++;
      c.weighty = 1;
      c.insets = defaultInsets;
      regexpwhiteList.setModel(config.regexpwhiteModel);
      regexpwhiteList
      .addListSelectionListener(new javax.swing.event.ListSelectionListener() {
        public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
          regexpwhiteListValueChanged(evt);
        }
      });
      jScrollPane1.setViewportView(regexpwhiteList);
      regexPanel.add(jScrollPane1, c);

      c.gridx = 1;
      regexpblackList.setModel(config.regexpblackModel);
      regexpblackList
      .addListSelectionListener(new javax.swing.event.ListSelectionListener() {
        public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
          regexpblackListValueChanged(evt);
        }
      });
      jScrollPane2.setViewportView(regexpblackList);
      regexPanel.add(jScrollPane2, c);

      c.gridx = 0;
      c.gridy = row++;
      c.weighty = 0;
      jLabel23.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
      jLabel23.setText(messages.getString("regexp") + ": ");
      regexPanel.add(jLabel23, c);

      c.gridx = 1;
      regexpField.setText("");
      regexPanel.add(regexpField, c);

      c.gridx = 0;
      c.gridy = row++;
      regexpwhiteAdd.setText(messages.getString("AddToWhitelist"));
      regexpwhiteAdd.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          regexpwhiteAddActionPerformed(evt);
        }
      });
      regexPanel.add(regexpwhiteAdd, c);

      c.gridx = 1;
      regexpblackAdd.setText(messages.getString("AddToBlacklist"));
      regexpblackAdd.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          regexpblackAddActionPerformed(evt);
        }
      });
      regexPanel.add(regexpblackAdd, c);

      c.gridx = 0;
      c.gridy = row++;
      regexpwhiteRemove.setText(messages.getString("RemoveFromWhitelist"));
      regexpwhiteRemove.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          regexpwhiteRemoveActionPerformed(evt);
        }
      });
      regexPanel.add(regexpwhiteRemove, c);

      c.gridx = 1;
      regexpblackRemove.setText(messages.getString("RemoveFromBlacklist"));
      regexpblackRemove.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          regexpblackRemoveActionPerformed(evt);
        }
      });
      regexPanel.add(regexpblackRemove, c);

      c.gridx = 0;
      c.gridy = row++;
      sortregexpwhitelistButton.setText(messages.getString("SortWhitelist"));
      sortregexpwhitelistButton
      .addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          sortregexpwhitelistButtonActionPerformed(evt);
        }
      });
      regexPanel.add(sortregexpwhitelistButton, c);

      c.gridx = 1;
      sortregexpblacklistButton.setText(messages.getString("SortBlacklist"));
      sortregexpblacklistButton
      .addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          sortregexpblacklistButtonActionPerformed(evt);
        }
      });
      regexPanel.add(sortregexpblacklistButton, c);

      c.gridx = 2;
      c.gridy = 0;
      regexPanel.add(jPanel21, c);

      tab.addTab(messages.getString("regexpLists"), regexPanel);
    }

    configPanel1.setLayout(new java.awt.BorderLayout());

    // UIManager.put("ColorChooser.cancelText","Zrusit");
    // UIManager.getDefaults().setDefaultLocale(config.currentLocale);
    // Locale.setDefault(config.currentLocale);
    // JComponent.setDefaultLocale(config.currentLocale);

    hackColorChooser();

    // Configuration starts here
    {
      final class ListData {
        public static final String CONFIG = "config";

        public static final String GENERAL = "general";

        public static final String RECENT_CHANGES = "recent changes";

        public static final String LISTS = "lists";

        public static final String START = "start";

        public static final String LOCALIZATION = "localize";

        public static final String BROWSER = "browser";

        public static final String MISC = "misc";

        public static final String SHOW = "show";

        public static final String COLOR = "color";

        public static final String BEEP = "beep";

        public static final String IMPORT_EXPORT = "import export";

        public static final String AUTOMATIC = "automatic";

        public static final String REGEXP = "regexp";

        public static final String NONE = "none";

        public String ident;

        public String toDisplay;

        public ListData(String ident, String toDisplay) {
          this.ident = ident;
          this.toDisplay = toDisplay;
        }

        public String toString() {
          return toDisplay;
        }
      }

      configCardPanel = new JPanel();
      configCardPanel.setLayout(new java.awt.CardLayout());
      configCardPanel.add(new JScrollPane(startConfigPanel), ListData.START);
      configCardPanel.add(new JScrollPane(localizeConfigPanel),
          ListData.LOCALIZATION);
      configCardPanel
          .add(new JScrollPane(browserConfigPanel), ListData.BROWSER);
      configCardPanel.add(new JScrollPane(showConfigPanel), ListData.SHOW);
      configCardPanel.add(new JScrollPane(colorConfigPanel), ListData.COLOR);
      configCardPanel.add(new JScrollPane(beepConfigPanel), ListData.BEEP);
      configCardPanel.add(new JScrollPane(listsConfigPanel),
          ListData.IMPORT_EXPORT);
      configCardPanel.add(new JScrollPane(regexpConfigPanel), ListData.REGEXP);
      configCardPanel.add(new JScrollPane(automaticConfigPanel),
          ListData.AUTOMATIC);
      configCardPanel.add(new JScrollPane(miscConfigPanel), ListData.MISC);
      configCardPanel.add(new JPanel(), ListData.NONE);

      DefaultMutableTreeNode top = new DefaultMutableTreeNode(new ListData(
          ListData.CONFIG, messages.getString("CTConfiguration")));
      DefaultMutableTreeNode general = new DefaultMutableTreeNode(new ListData(
          ListData.GENERAL, messages.getString("CTGeneral")));
      top.add(general);
      DefaultMutableTreeNode recentChanges = new DefaultMutableTreeNode(
          new ListData(ListData.RECENT_CHANGES, messages
              .getString("CTRecentChanges")));
      top.add(recentChanges);
      DefaultMutableTreeNode lists = new DefaultMutableTreeNode(new ListData(
          ListData.LISTS, messages.getString("CTLists")));
      top.add(lists);

      DefaultMutableTreeNode start = new DefaultMutableTreeNode(new ListData(
          ListData.START, messages.getString("CTStart")));
      general.add(start);
      DefaultMutableTreeNode localization = new DefaultMutableTreeNode(
          new ListData(ListData.LOCALIZATION, messages
              .getString("CTLocalization")));
      general.add(localization);
      DefaultMutableTreeNode browser = new DefaultMutableTreeNode(new ListData(
          ListData.BROWSER, messages.getString("CTBrowser")));
      general.add(browser);
      DefaultMutableTreeNode misc = new DefaultMutableTreeNode(new ListData(
          ListData.MISC, messages.getString("CTMisc")));
      general.add(misc);

      DefaultMutableTreeNode show = new DefaultMutableTreeNode(new ListData(
          ListData.SHOW, messages.getString("CTShow")));
      recentChanges.add(show);
      DefaultMutableTreeNode color = new DefaultMutableTreeNode(new ListData(
          ListData.COLOR, messages.getString("CTColor")));
      recentChanges.add(color);
      DefaultMutableTreeNode beep = new DefaultMutableTreeNode(new ListData(
          ListData.BEEP, messages.getString("CTBeep")));
      recentChanges.add(beep);

      DefaultMutableTreeNode importExport = new DefaultMutableTreeNode(
          new ListData(ListData.IMPORT_EXPORT, messages
              .getString("CTImportExport")));
      lists.add(importExport);
      DefaultMutableTreeNode automatic = new DefaultMutableTreeNode(
          new ListData(ListData.AUTOMATIC, messages.getString("CTAutomatic")));
      lists.add(automatic);
      DefaultMutableTreeNode regexp = new DefaultMutableTreeNode(new ListData(
          ListData.REGEXP, messages.getString("CTRegexp")));
      lists.add(regexp);

      configTree = new JTree(top);
      configTree.getSelectionModel()
         .setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
      configTree.addTreeSelectionListener(new TreeSelectionListener() {
        public void valueChanged(TreeSelectionEvent e) {
          DefaultMutableTreeNode node = (DefaultMutableTreeNode) configTree
              .getLastSelectedPathComponent();

          if (node == null)
            return;

          Object nodeInfo = node.getUserObject();
          CardLayout cl = (CardLayout) (configCardPanel.getLayout());
          if (node.isLeaf()) {
            ListData ld = (ListData) nodeInfo;
            cl.show(configCardPanel, ld.ident);
          } else {
            cl.show(configCardPanel, ListData.NONE);
          }
        }
      });
      configTree.setSelectionPath(new TreePath(start.getPath()));
      configTree.expandPath(new TreePath(recentChanges.getPath()));
      configTree.expandPath(new TreePath(lists.getPath()));

      configListScrollPane = new JScrollPane(configTree);
    }

    configSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
        configListScrollPane, configCardPanel);
    configSplitPane.setDividerLocation(200);

    {
      localizeConfigPanel.setLayout(new java.awt.GridBagLayout());
      GridBagConstraints c = new GridBagConstraints();
      int row = 0;
      c.fill = GridBagConstraints.HORIZONTAL;
      c.gridwidth = 3;
      c.gridx = 0;
      c.gridy = row++;
      c.anchor = GridBagConstraints.LINE_START;

      localizeConfigLabel.setText(messages.getString("CPLocalization"));
      Font f = localizeConfigLabel.getFont();
      localizeConfigLabel.setFont(new Font(f.getName(), Font.BOLD,
          f.getSize() + 4));
      Insets defaultInsets = new java.awt.Insets(5, 5, 5, 5);
      c.insets = new java.awt.Insets(5, 5, 10, 0);
      localizeConfigPanel.add(localizeConfigLabel, c);
      c.insets = defaultInsets;

      jLabel2.setText(messages.getString("chooseLang"));
      c.gridwidth = 1;
      c.gridy = row++;
      localizeConfigPanel.add(jLabel2, c);

      langList.setModel(new javax.swing.DefaultComboBoxModel(langStrings));
      langList.setSelectedIndex(getLangInt());
      langList.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          langListActionPerformed(evt);
        }
      });
      c.gridx = 1;
      localizeConfigPanel.add(langList, c);

      jLabel28.setText(messages.getString("chooseTimeZone"));
      c.gridx = 0;
      c.gridy = row++;
      localizeConfigPanel.add(jLabel28, c);

      timeZoneList.setModel(new javax.swing.DefaultComboBoxModel(
          timeZoneStrings));
      timeZoneList.setSelectedIndex(getTimeZoneInt());
      timeZoneList.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          timeZoneListActionPerformed(evt);
        }
      });
      c.gridx = 1;
      localizeConfigPanel.add(timeZoneList, c);

      DefaultProject.setText(messages.getString("DefaultProject"));
      c.gridx = 0;
      c.gridy = row++;
      localizeConfigPanel.add(DefaultProject, c);

      defaultProjectField.setText(messages.getString("defaultprojectfield"));
      defaultProjectField.setMinimumSize(new java.awt.Dimension(30, 19));
      defaultProjectField.setPreferredSize(new java.awt.Dimension(100, 19));
      c.gridx = 1;
      localizeConfigPanel.add(defaultProjectField, c);

      c.gridx = 0;
      c.gridy = row++;
      c.gridwidth = 3;
      localizeConfigPanel.add(jSeparator1, c);

      c.gridy = row++;
      c.gridwidth = 1;
      jLabel29.setText(messages.getString("chooseFeel"));
      localizeConfigPanel.add(jLabel29, c);

      feelList.setModel(new javax.swing.DefaultComboBoxModel(feelStrings));
      feelList.setSelectedIndex(getFeelInt());
      themeList.setEnabled(feelList.getSelectedIndex() == 0);
      themeLabel.setEnabled(feelList.getSelectedIndex() == 0);
      feelList.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          feelListActionPerformed(evt);
        }
      });
      c.gridx = 1;
      localizeConfigPanel.add(feelList, c);

      c.gridx = 0;
      c.gridy = row++;
      c.insets = new java.awt.Insets(defaultInsets.top, 15,
          defaultInsets.bottom, defaultInsets.right);
      themeLabel.setText(messages.getString("chooseTheme"));
      localizeConfigPanel.add(themeLabel, c);
      c.insets = defaultInsets;

      themeList.setModel(new javax.swing.DefaultComboBoxModel(themeStrings));
      themeList.setSelectedIndex(getThemeInt());
      themeList.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          themeListActionPerformed(evt);
        }
      });
      c.gridx = 1;
      localizeConfigPanel.add(themeList, c);

      c.gridy = row++;
      c.gridwidth = 3;
      c.weighty = 1;
      localizeConfigPanel.add(new JLabel(), c);

      c.gridx = 2;
      c.gridy = 0;
      c.gridwidth = 1;
      c.gridheight = row;
      c.weightx = 1;
      localizeConfigPanel.add(new JLabel(), c);
    }

    {
      miscConfigPanel.setLayout(new java.awt.GridBagLayout());
      GridBagConstraints c = new GridBagConstraints();
      int row = 0;
      c.weightx = 1;
      c.gridx = 0;
      c.gridy = row++;
      c.anchor = GridBagConstraints.LINE_START;

      miscConfigLabel.setText(messages.getString("CPMisc"));
      Font f = miscConfigLabel.getFont();
      miscConfigLabel
          .setFont(new Font(f.getName(), Font.BOLD, f.getSize() + 4));
      Insets defaultInsets = c.insets;
      c.insets = new java.awt.Insets(5, 5, 10, 0);
      miscConfigPanel.add(miscConfigLabel, c);
      c.insets = defaultInsets;

      // configMiscPanel.add(jPanel18);
      autoscroll.setText(messages.getString("autoscrolllabel"));
      // autoscroll.setBorder(javax.swing.BorderFactory
      // .createEmptyBorder(0, 0, 0, 0));
      // autoscroll.setMargin(new java.awt.Insets(0, 0, 0, 0));
      c.gridy = row++;
      miscConfigPanel.add(autoscroll, c);

      queueedits.setText(messages.getString("queueeditslabel"));
      // queueedits.setBorder(javax.swing.BorderFactory
      // .createEmptyBorder(0, 0, 0, 0));
      // queueedits.setMargin(new java.awt.Insets(0, 0, 0, 0));
      queueedits.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          queueeditsActionPerformed(evt);
        }
      });
      c.gridy = row++;
      miscConfigPanel.add(queueedits, c);

      stripformatting.setText(messages.getString("stripformattinglabel"));
      // stripformatting.setBorder(javax.swing.BorderFactory.createEmptyBorder(0,
      // 0,
      // 0, 0));
      // stripformatting.setMargin(new java.awt.Insets(0, 0, 0, 0));
      c.gridy = row++;
      miscConfigPanel.add(stripformatting, c);

      reversetable.setText(messages.getString("reversetablelabel"));
      // reversetable.setBorder(javax.swing.BorderFactory.createEmptyBorder(0,
      // 0, 0,
      // 0));
      // reversetable.setMargin(new java.awt.Insets(0, 0, 0, 0));
      c.gridy = row++;
      miscConfigPanel.add(reversetable, c);

      c.gridy = row++;
      c.weighty = 1;
      miscConfigPanel.add(new JLabel(), c);
    }

    {
      startConfigPanel.setLayout(new java.awt.GridBagLayout());
      GridBagConstraints c = new GridBagConstraints();
      int row = 0;
      c.weightx = 1;
      c.gridx = 0;
      c.gridy = row++;
      c.anchor = GridBagConstraints.LINE_START;
      startConfigLabel.setText(messages.getString("CPStart"));
      Font f = startConfigLabel.getFont();
      startConfigLabel
          .setFont(new Font(f.getName(), Font.BOLD, f.getSize() + 4));
      Insets defaultInsets = c.insets;
      c.insets = new java.awt.Insets(5, 5, 10, 0);
      startConfigPanel.add(startConfigLabel, c);
      c.insets = defaultInsets;

      newversion.setText(messages.getString("newversionlabel"));
      // newversion.setBorder(javax.swing.BorderFactory
      // .createEmptyBorder(0, 0, 0, 0));
      // newversion.setMargin(new java.awt.Insets(0, 0, 0, 0));
      newversion.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          newversionActionPerformed(evt);
        }
      });
      c.gridy = row++;
      startConfigPanel.add(newversion, c);

      connectatstart.setText(messages.getString("connectatstartlabel"));
      connectatstart.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          connectatstartActionPerformed(evt);
        }
      });
      c.gridy = row++;
      startConfigPanel.add(connectatstart, c);

      c.gridy = row++;
      c.weighty = 1;
      startConfigPanel.add(new JLabel(), c);
    }

    {
      browserConfigPanel.setLayout(new java.awt.GridBagLayout());
      GridBagConstraints c = new GridBagConstraints();
      int row = 0;
      c.weightx = 1;
      c.gridx = 0;
      c.gridy = row++;
      c.anchor = GridBagConstraints.LINE_START;
      browserConfigLabel.setText(messages.getString("CPBrowser"));
      Font f = browserConfigLabel.getFont();
      browserConfigLabel.setFont(new Font(f.getName(), Font.BOLD,
          f.getSize() + 4));
      Insets defaultInsets = c.insets;
      c.insets = new java.awt.Insets(5, 5, 10, 0);
      browserConfigPanel.add(browserConfigLabel, c);
      c.insets = defaultInsets;

      singleclick.setText(messages.getString("singleclicklabel"));
      c.gridy = row++;
      browserConfigPanel.add(singleclick, c);

      browserpick.setText(messages.getString("browserpiclable"));
      browserpick.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          browserpickActionPerformed(evt);
        }
      });

      c.gridy = row++;
      browserConfigPanel.add(browserpick, c);

      browser2.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

      browserchooserButton.setText(messages.getString("browse"));
      browserchooserButton
          .addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
              browserchooserButtonActionPerformed(evt);
            }
          });

      browser2.add(browserchooserButton);

      browserField.setText(config.getProperty("browser"));
      browserField.setMinimumSize(new java.awt.Dimension(150, 19));
      browserField.setPreferredSize(new java.awt.Dimension(350, 19));
      browser2.add(browserField);

      c.gridy = row++;
      c.insets = new java.awt.Insets(defaultInsets.top, 15,
          defaultInsets.bottom, defaultInsets.right);
      browserConfigPanel.add(browser2, c);
      c.insets = defaultInsets;

      BColumnTakesYouTo.setText(messages.getString("BColumnTakesYouTo"));
      c.gridy = row++;
      c.insets = new java.awt.Insets(defaultInsets.top, defaultInsets.left + 5,
          defaultInsets.bottom, defaultInsets.right);
      browserConfigPanel.add(BColumnTakesYouTo, c);
      c.insets = defaultInsets;

      blockRadioPanel.setLayout(new GridLayout(3, 1));

      BColumnGroup.add(blockButton);
      blockButton.setText(messages.getString("blockButtonlabel"));
      blockButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          blockButtonActionPerformed(evt);
        }
      });

      blockRadioPanel.add(blockButton);

      BColumnGroup.add(vipButton);
      vipButton.setText(messages.getString("vipButtonlabel"));
      vipButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          vipButtonActionPerformed(evt);
        }
      });

      blockRadioPanel.add(vipButton);

      BColumnGroup.add(vipeditButton);
      vipeditButton.setText(messages.getString("vipeditbuttonlabel"));
      vipeditButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          vipeditButtonActionPerformed(evt);
        }
      });

      blockRadioPanel.add(vipeditButton);

      c.gridy = row++;
      c.insets = new java.awt.Insets(5, 15, 5, 5);
      browserConfigPanel.add(blockRadioPanel, c);
      c.insets = defaultInsets;

      c.gridy = row++;
      c.weighty = 1;
      browserConfigPanel.add(new JLabel(), c);
    }

    {
      showConfigPanel.setLayout(new java.awt.GridBagLayout());
      GridBagConstraints c = new GridBagConstraints();
      int row = 0;
      c.weightx = 1;
      c.fill = GridBagConstraints.HORIZONTAL;
      c.gridx = 0;
      c.gridy = row++;
      c.anchor = GridBagConstraints.LINE_START;
      showConfigLabel.setText(messages.getString("CPShow"));
      Font f = showConfigLabel.getFont();
      showConfigLabel
          .setFont(new Font(f.getName(), Font.BOLD, f.getSize() + 4));
      Insets defaultInsets = c.insets;
      c.insets = new java.awt.Insets(5, 5, 10, 0);
      showConfigPanel.add(showConfigLabel, c);
      c.insets = defaultInsets;

      showips.setText(messages.getString("IPedits"));
      showips.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          showipsActionPerformed(evt);
        }
      });
      c.gridy = row++;
      showConfigPanel.add(showips, c);

      newpages.setText(messages.getString("newpages"));
      newpages.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          newpagesActionPerformed(evt);
        }
      });
      c.gridy = row++;
      showConfigPanel.add(newpages, c);

      showwatch.setText(messages.getString("showwatchlabel"));
      showwatch.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          showwatchActionPerformed(evt);
        }
      });
      c.gridy = row++;
      showConfigPanel.add(showwatch, c);

      c.gridy = row++;
      showConfigPanel.add(jSeparator2, c);

      listprecedence.setText(messages.getString("listprecedencelabel"));
      listprecedence.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          listprecedenceActionPerformed(evt);
        }
      });
      c.gridy = row++;
      showConfigPanel.add(listprecedence, c);

      watchuserpages.setText(messages.getString("watchuserpageslabel"));
      c.gridy = row++;
      showConfigPanel.add(watchuserpages, c);

      watchmasschanges.setText(messages.getString("watcmasschangeslabel"));
      c.gridy = row++;
      showConfigPanel.add(watchmasschanges, c);

      watchpagemoves.setText(messages.getString("watchpagemoveslabel"));
      c.gridy = row++;
      showConfigPanel.add(watchpagemoves, c);

      watchnewpages.setText(messages.getString("watchnewpageslabel"));
      c.gridy = row++;
      showConfigPanel.add(watchnewpages, c);

      c.gridy = row++;
      showConfigPanel.add(jSeparator6, c);

      olddeleted.setText(messages.getString("olddeletedLabel"));
      c.gridy = row++;
      showConfigPanel.add(olddeleted, c);

      registerdeleted.setText(messages.getString("registerdeletedLabel"));
      c.gridy = row++;
      showConfigPanel.add(registerdeleted, c);

      removereviewed.setText(messages.getString("removereviewed"));
      c.gridy = row++;
      showConfigPanel.add(removereviewed, c);

      c.gridy = row++;
      c.weighty = 1;
      showConfigPanel.add(new JLabel(), c);
    }

    {
      beepConfigPanel.setLayout(new java.awt.GridBagLayout());
      GridBagConstraints c = new GridBagConstraints();
      int row = 0;
      c.weightx = 1;
      c.fill = GridBagConstraints.HORIZONTAL;
      c.gridx = 0;
      c.gridy = row++;
      c.anchor = GridBagConstraints.LINE_START;
      beepConfigLabel.setText(messages.getString("CPBeep"));
      Font f = beepConfigLabel.getFont();
      beepConfigLabel
          .setFont(new Font(f.getName(), Font.BOLD, f.getSize() + 4));
      Insets defaultInsets = c.insets;
      c.insets = new java.awt.Insets(5, 5, 10, 0);
      beepConfigPanel.add(beepConfigLabel, c);
      c.insets = defaultInsets;

      beeptempblack.setText(messages.getString("beeptempblacklabel"));
      c.gridy = row++;
      beepConfigPanel.add(beeptempblack, c);

      beeppermblack.setText(messages.getString("beeppermblacklabel"));
      c.gridy = row++;
      beepConfigPanel.add(beeppermblack, c);

      beeptempwatch.setText(messages.getString("beeptempwatchlabel"));
      c.gridy = row++;
      beepConfigPanel.add(beeptempwatch, c);

      beeppermwatch.setText(messages.getString("beeppermwatchlabel"));
      c.gridy = row++;
      beepConfigPanel.add(beeppermwatch, c);

      beepregexpblack.setText(messages.getString("beepregexpblacklabel"));
      c.gridy = row++;
      beepConfigPanel.add(beepregexpblack, c);

      beepcollaborationwarning.setText(messages.getString("beepcollaborationwarninglabel"));
      c.gridy = row++;
      beepConfigPanel.add(beepcollaborationwarning, c);

      c.gridy = row++;
      c.weighty = 1;
      beepConfigPanel.add(new JLabel(), c);
    }

    {
      regexpConfigPanel.setLayout(new java.awt.GridBagLayout());
      GridBagConstraints c = new GridBagConstraints();
      int row = 0;
      c.weightx = 1;
      c.gridx = 0;
      c.gridy = row++;
      c.anchor = GridBagConstraints.LINE_START;
      regexpConfigLabel.setText(messages.getString("CPRegexp"));
      Font f = regexpConfigLabel.getFont();
      regexpConfigLabel.setFont(new Font(f.getName(), Font.BOLD,
          f.getSize() + 4));
      Insets defaultInsets = c.insets;
      c.insets = new java.awt.Insets(5, 5, 10, 0);
      regexpConfigPanel.add(regexpConfigLabel, c);
      c.insets = defaultInsets;

      rwhiteuser.setText(messages.getString("rwhiteuserlabel"));
      c.gridy = row++;
      regexpConfigPanel.add(rwhiteuser, c);

      rwhitepage.setText(messages.getString("rwhitepagelabel"));
      c.gridy = row++;
      regexpConfigPanel.add(rwhitepage, c);

      rwhitesummary.setText(messages.getString("rwhitesummarylabel"));
      c.gridy = row++;
      regexpConfigPanel.add(rwhitesummary, c);

      rblackuser.setText(messages.getString("rblackuserlabel"));
      c.gridy = row++;
      regexpConfigPanel.add(rblackuser, c);

      rblackpage.setText(messages.getString("rblackpagelabel"));
      c.gridy = row++;
      regexpConfigPanel.add(rblackpage, c);

      rblacksummary.setText(messages.getString("rblacksummarylabel"));
      c.gridy = row++;
      regexpConfigPanel.add(rblacksummary, c);

      c.gridy = row++;
      c.weighty = 1;
      regexpConfigPanel.add(new JLabel(), c);
    }

    {
      automaticConfigPanel.setLayout(new java.awt.GridBagLayout());
      GridBagConstraints c = new GridBagConstraints();
      int row = 0;
      c.weightx = 1;
      c.gridx = 0;
      c.gridy = row++;
      c.anchor = GridBagConstraints.LINE_START;
      automaticConfigLabel.setText(messages.getString("CPAutomatic"));
      Font f = automaticConfigLabel.getFont();
      automaticConfigLabel.setFont(new Font(f.getName(), Font.BOLD,
          f.getSize() + 4));
      Insets defaultInsets = c.insets;
      c.insets = new java.awt.Insets(5, 5, 10, 0);
      automaticConfigPanel.add(automaticConfigLabel, c);
      c.insets = defaultInsets;

      blackreverted.setText(messages.getString("blackrevertedlabel"));
      blackreverted.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          blackrevertedActionPerformed(evt);
        }
      });
      c.gridy = row++;
      automaticConfigPanel.add(blackreverted, c);

      revertedUsers
          .setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));
      blackrevertedGroup.add(revertpermButton);
      revertpermButton.setText(messages.getString("revertpermButtonlabel"));
      revertedUsers.add(revertpermButton);

      blackrevertedGroup.add(reverttempButton);
      reverttempButton.setText(messages.getString("reverttempButtonlabel"));
      revertedUsers.add(reverttempButton);

      c.gridy = row++;
      automaticConfigPanel.add(revertedUsers, c);

      blackdeleted.setText(messages.getString("blackdeletedlabel"));
      blackdeleted.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          blackdeletedActionPerformed(evt);
        }
      });
      c.gridy = row++;
      automaticConfigPanel.add(blackdeleted, c);

      speediedUsers
          .setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

      blackdeletedGroup.add(delpagepermButton);
      delpagepermButton.setText(messages.getString("delpagepermButtonlabel"));
      speediedUsers.add(delpagepermButton);

      blackdeletedGroup.add(delpagetempButton);
      delpagetempButton.setText(messages.getString("delpagetempButtonlabel"));
      speediedUsers.add(delpagetempButton);

      c.gridy = row++;
      automaticConfigPanel.add(speediedUsers, c);

      watchdeleted.setText(messages.getString("watchdeletedlabel"));
      watchdeleted.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          watchdeletedActionPerformed(evt);
        }
      });
      c.gridy = row++;
      automaticConfigPanel.add(watchdeleted, c);

      watchspeediedArticles.setLayout(new java.awt.FlowLayout(
          java.awt.FlowLayout.LEFT));

      watchdeletedGroup.add(watchdelpermButton);
      watchdelpermButton.setText(messages.getString("watchdelpermButtonlabel"));
//      watchdelpermButton.addActionListener(new java.awt.event.ActionListener() {
//        public void actionPerformed(java.awt.event.ActionEvent evt) {
//          watchdelpermButtonActionPerformed(evt);
//        }
//      });

      watchspeediedArticles.add(watchdelpermButton);

      watchdeletedGroup.add(watchdeltempButton);
      watchdeltempButton.setText(messages.getString("watchdeltempButtonlabel"));
      watchspeediedArticles.add(watchdeltempButton);

      c.gridy = row++;
      automaticConfigPanel.add(watchspeediedArticles, c);


      watchwarned.setText(messages.getString("watchwarnedlabel"));
      watchwarned.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          watchwarnedActionPerformed(evt);
        }
      });
      c.gridy = row++;
      automaticConfigPanel.add(watchwarned, c);

      watchwarnedPanel.setLayout(new java.awt.FlowLayout(
          java.awt.FlowLayout.LEFT));

      watchwarnedGroup.add(watchwarnedpermButton);
      watchwarnedpermButton.setText(messages.getString("watchwarnedpermButtonlabel"));

      watchwarnedPanel.add(watchwarnedpermButton);

      watchwarnedGroup.add(watchwarnedtempButton);
      watchwarnedtempButton.setText(messages.getString("watchwarnedtempButtonlabel"));
      watchwarnedPanel.add(watchwarnedtempButton);

      c.gridy = row++;
      automaticConfigPanel.add(watchwarnedPanel, c);


      c.gridy = row++;
      c.weighty = 1;
      automaticConfigPanel.add(new JLabel(), c);
    }

    {
      listsConfigPanel.setLayout(new java.awt.GridBagLayout());
      GridBagConstraints c = new GridBagConstraints();
      int row = 0;
      c.weightx = 1;
      c.gridx = 0;
      c.gridy = row++;
      c.anchor = GridBagConstraints.LINE_START;
      listsConfigLabel.setText(messages.getString("CPImportExport"));
      Font f = listsConfigLabel.getFont();
      listsConfigLabel
          .setFont(new Font(f.getName(), Font.BOLD, f.getSize() + 4));
      Insets defaultInsets = c.insets;
      c.insets = new java.awt.Insets(5, 5, 10, 0);
      listsConfigPanel.add(listsConfigLabel, c);
      c.insets = defaultInsets;

      jPanel15.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

      exportchooserButton1.setText(messages.getString("browse"));
      exportchooserButton1
          .addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
              exportchooserButton1ActionPerformed(evt);
            }
          });

      jPanel15.add(exportchooserButton1);

      exportField1.setPreferredSize(new java.awt.Dimension(250, 19));
      jPanel15.add(exportField1);

      exportButton1.setText(messages.getString("exportLists"));
      exportButton1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          exportButton1ActionPerformed(evt);
        }
      });

      jPanel15.add(exportButton1);

      c.gridy = row++;
      listsConfigPanel.add(jPanel15, c);

      jPanel14.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

      importchooserButton.setText(messages.getString("browse"));
      importchooserButton
          .addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
              importchooserButtonActionPerformed(evt);
            }
          });

      jPanel14.add(importchooserButton);

      importField.setPreferredSize(new java.awt.Dimension(250, 19));
      jPanel14.add(importField);

      importButton.setText(messages.getString("importLists"));
      importButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          importButtonActionPerformed(evt);
        }
      });

      jPanel14.add(importButton);

      c.gridy = row++;
      listsConfigPanel.add(jPanel14, c);

      c.gridy = row++;
      c.weighty = 1;
      listsConfigPanel.add(new JLabel(), c);
    }

    {
      colorConfigPanel.setLayout(new java.awt.GridBagLayout());
      GridBagConstraints c = new GridBagConstraints();
      int row = 0;
      c.weightx = 1;
      c.gridx = 0;
      c.gridy = row++;
      c.anchor = GridBagConstraints.LINE_START;
      colorConfigLabel.setText(messages.getString("CPColor"));
      Font f = colorConfigLabel.getFont();
      colorConfigLabel
          .setFont(new Font(f.getName(), Font.BOLD, f.getSize() + 4));
      Insets defaultInsets = c.insets;
      c.insets = new java.awt.Insets(5, 5, 10, 0);
      colorConfigPanel.add(colorConfigLabel, c);
      c.insets = defaultInsets;

      jPanel11.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

      risk.setText(messages.getString("risklabel"));
      risk.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          riskActionPerformed(evt);
        }
      });
      jPanel11.add(risk);

      c.gridy = row++;
      colorConfigPanel.add(jPanel11, c);

      jPanel2.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

      colorblist.setText(messages.getString("colorblistlabel"));
      colorblistButton.setBackground(config.getColorProp("blacklistcolor"));
      jPanel2.add(colorblist);

      colorblistButton.setBackground(config.getColorProp("blacklistcolor"));
      colorblistButton.setText("     ");
      colorblistButton.setBackground(config.getColorProp("blacklistcolor"));
      colorblistButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          colorblistButtonActionPerformed(evt);
        }
      });

      jPanel2.add(colorblistButton);

      c.gridy = row++;
      jPanel2
          .setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
      // jPanel2.setMargin(new java.awt.Insets(0, 0, 0, 0));
      colorConfigPanel.add(jPanel2, c);

      jPanel4.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

      colorwatch.setText(messages.getString("colorwatchlabel"));
      jPanel4.add(colorwatch);

      colorwatchButton.setText("     ");
      colorwatchButton.setBackground(config.getColorProp("watchlistcolor"));
      colorwatchButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          colorwatchButtonActionPerformed(evt);
        }
      });

      jPanel4.add(colorwatchButton);

      c.gridy = row++;
      colorConfigPanel.add(jPanel4, c);

      jPanel5.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

      colorchanged.setText(messages.getString("colorchangedlabel"));
      jPanel5.add(colorchanged);

      changedField.setMinimumSize(new java.awt.Dimension(50, 19));
      changedField.setPreferredSize(new java.awt.Dimension(50, 19));
      jPanel5.add(changedField);

      colorchangedButton.setText("     ");
      colorchangedButton.setBackground(config.getColorProp("changedcolor"));
      colorchangedButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          colorchangedButtonActionPerformed(evt);
        }
      });

      jPanel5.add(colorchangedButton);

      c.gridy = row++;
      c.insets = new java.awt.Insets(0, 0, 0, 0);
      colorConfigPanel.add(jPanel5, c);
      c.insets = defaultInsets;

      jPanel6.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

      colornew.setText(messages.getString("colornewlabel"));
      jPanel6.add(colornew);

      colornewButton.setText("     ");
      colornewButton.setBackground(config.getColorProp("newcolor"));
      colornewButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          colornewButtonActionPerformed(evt);
        }
      });

      jPanel6.add(colornewButton);

      c.gridy = row++;
      colorConfigPanel.add(jPanel6, c);

      jPanel7.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

      colorips.setText(messages.getString("coloripslabel"));
      jPanel7.add(colorips);

      coloripsButton.setText("     ");
      coloripsButton.setBackground(config.getColorProp("ipcolor"));
      coloripsButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          coloripsButtonActionPerformed(evt);
        }
      });

      jPanel7.add(coloripsButton);

      c.gridy = row++;
      colorConfigPanel.add(jPanel7, c);

      jPanel78.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

      colornewusers.setText(messages.getString("colornewuserslabel"));
      jPanel78.add(colornewusers);

      colornewusersButton.setText("     ");
      colornewusersButton.setBackground(config.getColorProp("newusercolor"));
      colornewusersButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          colornewusersButtonActionPerformed(evt);
        }
      });

      jPanel78.add(colornewusersButton);

      c.gridy = row++;
      colorConfigPanel.add(jPanel78, c);

      jPanel8.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

      coloruserpage.setText(messages.getString("coloruserpagelabel"));
      jPanel8.add(coloruserpage);

      coloruserpageButton.setText("     ");
      coloruserpageButton.setBackground(config.getColorProp("userpagecolor"));
      coloruserpageButton
          .addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
              coloruserpageButtonActionPerformed(evt);
            }
          });

      jPanel8.add(coloruserpageButton);

      c.gridy = row++;
      colorConfigPanel.add(jPanel8, c);

      jPanel9.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

      colormoves.setText(messages.getString("colormoveslabel"));
      jPanel9.add(colormoves);

      colormovesButton.setText("     ");
      colormovesButton.setBackground(config.getColorProp("movecolor"));
      colormovesButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
          colormovesButtonActionPerformed(evt);
        }
      });

      jPanel9.add(colormovesButton);

      c.gridy = row++;
      colorConfigPanel.add(jPanel9, c);

      c.gridy = row++;
      c.weighty = 1;
      colorConfigPanel.add(new JLabel(), c);
    }

    configPanel1.add(configSplitPane, java.awt.BorderLayout.CENTER);

    configCtrlsPanel.setLayout(new java.awt.FlowLayout(
        java.awt.FlowLayout.RIGHT));

    configDefaults.setText(messages.getString("ConfigRestoreDefaults"));
    configDefaults.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
        configDefaultsActionPerformed(evt);
      }
    });

    configCtrlsPanel.add(configDefaults);

    configCancel.setText(messages.getString("ConfigCancel"));
    configCancel.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
        configCancelActionPerformed(evt);
      }
    });

    configCtrlsPanel.add(configCancel);

    configSave.setText(messages.getString("ConfigSave"));
    configSave.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
        configSaveActionPerformed(evt);
      }
    });

    configCtrlsPanel.add(configSave);

    configPanel1.add(configCtrlsPanel, java.awt.BorderLayout.SOUTH);

    tab.addTab(messages.getString("configuration"), configPanel1);

    irctoptopPanel1.setLayout(new java.awt.GridBagLayout());

    jPanel19.setLayout(new java.awt.BorderLayout());

    jPanel10.setLayout(new java.awt.GridLayout(4, 1));

    vandalism_nl_box.setText(messages.getString("vandalism_nl_box"));
    vandalism_nl_box.setBorder(javax.swing.BorderFactory.createEmptyBorder(0,
        0, 0, 0));
    vandalism_nl_box.setMargin(new java.awt.Insets(0, 0, 0, 0));
    vandalism_nl_box.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
        vandalism_nl_boxActionPerformed(evt);
      }
    });

    jPanel10.add(vandalism_nl_box);

    vandalism_fr_box.setText(messages.getString("vandalism_fr_wp"));
    vandalism_fr_box.setBorder(javax.swing.BorderFactory.createEmptyBorder(0,
        0, 0, 0));
    vandalism_fr_box.setMargin(new java.awt.Insets(0, 0, 0, 0));
    jPanel10.add(vandalism_fr_box);

    vandalism_en_box.setText(messages.getString("vandalism_en_box"));
    vandalism_en_box.setBorder(javax.swing.BorderFactory.createEmptyBorder(0,
        0, 0, 0));
    vandalism_en_box.setMargin(new java.awt.Insets(0, 0, 0, 0));
    vandalism_en_box.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
        vandalism_en_boxActionPerformed(evt);
      }
    });
    jPanel10.add(vandalism_en_box);

    vandalism_cs_box.setText(messages.getString("vandalism_cs_box"));
    vandalism_cs_box.setBorder(javax.swing.BorderFactory.createEmptyBorder(0,
        0, 0, 0));
    vandalism_cs_box.setMargin(new java.awt.Insets(0, 0, 0, 0));
    vandalism_cs_box.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
        vandalism_cs_boxActionPerformed(evt);
      }
    });
    jPanel10.add(vandalism_cs_box);

    vandalism_it_box.setText(messages.getString("vandalism_it_box"));
    vandalism_it_box.setBorder(javax.swing.BorderFactory.createEmptyBorder(0,
        0, 0, 0));
    vandalism_it_box.setMargin(new java.awt.Insets(0, 0, 0, 0));
    jPanel10.add(vandalism_it_box);

    jPanel19.add(jPanel10, java.awt.BorderLayout.CENTER);

    VandalismStreamButton.setText(messages.getString("Connect"));
    VandalismStreamButton
        .addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(java.awt.event.ActionEvent evt) {
            VandalismStreamButtonActionPerformed(evt);
          }
        });

    jPanel20.add(VandalismStreamButton);

    jPanel19.add(jPanel20, java.awt.BorderLayout.SOUTH);

    gridBagConstraints = new java.awt.GridBagConstraints();
    gridBagConstraints.gridx = 0;
    gridBagConstraints.gridy = 0;
    gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
    irctoptopPanel1.add(jPanel19, gridBagConstraints);

    jLabel21.setText("                                        ");
    gridBagConstraints = new java.awt.GridBagConstraints();
    gridBagConstraints.gridx = 0;
    gridBagConstraints.gridy = 4;
    gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
    irctoptopPanel1.add(jLabel21, gridBagConstraints);

    gridBagConstraints = new java.awt.GridBagConstraints();
    gridBagConstraints.gridx = 0;
    gridBagConstraints.gridy = 3;
    gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
    irctoptopPanel1.add(jSeparator7, gridBagConstraints);

    jLabel22.setText("                                        ");
    gridBagConstraints = new java.awt.GridBagConstraints();
    gridBagConstraints.gridx = 0;
    gridBagConstraints.gridy = 2;
    gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
    irctoptopPanel1.add(jLabel22, gridBagConstraints);

    jPanel13.setLayout(new javax.swing.BoxLayout(jPanel13,
        javax.swing.BoxLayout.Y_AXIS));

    mediawikistreamCheckbox.setText(messages
        .getString("MediawikiIRCConnection"));
    mediawikistreamCheckbox.setBorder(javax.swing.BorderFactory
        .createEmptyBorder(0, 0, 0, 0));
    mediawikistreamCheckbox.setMargin(new java.awt.Insets(0, 0, 0, 0));
    mediawikistreamCheckbox
        .addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(java.awt.event.ActionEvent evt) {
            mediawikistreamCheckboxActionPerformed(evt);
          }
        });

    jPanel13.add(mediawikistreamCheckbox);

    jPanel16.setLayout(new java.awt.GridLayout(3, 2));

    jLabel3.setText(messages.getString("Cchannel"));
    jPanel16.add(jLabel3);

    channelField.setText(config.getProperty("channel"));
    jPanel16.add(channelField);

    jLabel4.setText(messages.getString("Sserver"));
    jPanel16.add(jLabel4);

    serverField.setText("irc.wikimedia.org");
    jPanel16.add(serverField);

    jLabel5.setText(messages.getString("Port"));
    jPanel16.add(jLabel5);

    portField.setText("6667");
    jPanel16.add(portField);

    jPanel13.add(jPanel16);

    jPanel17.setLayout(new javax.swing.BoxLayout(jPanel17,
        javax.swing.BoxLayout.Y_AXIS));

    ircconButton.setText(messages.getString("Connect"));
    ircconButton.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
        ircconButtonActionPerformed(evt);
      }
    });

    jPanel27.add(ircconButton);

    ircdisconnectButton.setText(java.util.ResourceBundle.getBundle(
        "MessagesBundle").getString("disconnect"));
    ircdisconnectButton.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
        ircdisconnectButtonActionPerformed(evt);
      }
    });

    jPanel27.add(ircdisconnectButton);

    jPanel17.add(jPanel27);

    jLabel6.setText(messages.getString("multChannels"));
    jPanel17.add(jLabel6);

    jPanel13.add(jPanel17);

    gridBagConstraints = new java.awt.GridBagConstraints();
    gridBagConstraints.gridx = 0;
    gridBagConstraints.gridy = 6;
    irctoptopPanel1.add(jPanel13, gridBagConstraints);

    IRCPannel.add(irctoptopPanel1);

    tab.addTab(messages.getString("Connections"), IRCPannel);

    {
      //tab.addTab(messages.getString("Connections"), connectionsPanel);
    }

    {
      aboutPanel.setLayout(new javax.swing.BoxLayout(aboutPanel,
          javax.swing.BoxLayout.Y_AXIS));

      editorPane1.putClientProperty("charset", "UTF-8");
      String lang = config.currentLocale.getLanguage();
      URL helpURL = this.getClass().getResource("/About_"+lang+".html");
      if (helpURL == null)
        helpURL = this.getClass().getResource("/About.html");
      if (helpURL != null) {
        try {
          editorPane1.setPage(helpURL);
        } catch (IOException e) {
          System.err.println("Attempted to read a bad URL: " + helpURL);
        }
      } else {
        System.err.println("Couldn't find file: About.html");
      }

      editorPane1.addHyperlinkListener(new HyperlinkListener() {
        public void hyperlinkUpdate(HyperlinkEvent event) {
          if (event.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
            openBrowser(event.getURL().toString());
          }
        }
      });
      editorPane1.addPropertyChangeListener("page", new PropertyChangeListener() {
        public void propertyChange(PropertyChangeEvent evt) {
          try {
            int indexOf = editorPane1.getDocument()
            .getText(0, editorPane1.getDocument().getLength()).indexOf("{{Version}}");
            editorPane1.select(indexOf, indexOf+"{{Version}}".length());
            editorPane1.replaceSelection(messages.getString("SoftwareName")+config.version);
            editorPane1.setEditable(false);
            aboutLoaded = true;
          } catch (BadLocationException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
          }
        }
      });

      // synchronization HACK
      while (!aboutLoaded) {
        try {
          Thread.sleep(100);
        } catch (InterruptedException e1) {
        }
      }

      jScrollPane10.setViewportView(editorPane1);

      aboutPanel.add(jScrollPane10);

      tab.addTab(messages.getString("about"), aboutPanel);
    }

    getContentPane().add(tab, java.awt.BorderLayout.CENTER);
  }