priorityThreshold = Detector.NORMAL_PRIORITY;
    private void postInitComponents() {        logger = new ConsoleLogger(this);                viewPanelLayout = (CardLayout) viewPanel.getLayout();                // Console starts out disabled        consoleSplitter.setDividerLocation(1.0);                // List of bug group tabs.        // This must be in the same order as GROUP_BY_ORDER_LIST!        bugTreeList = new JTree[]{byClassBugTree, byPackageBugTree, byBugTypeBugTree};                // Configure bug trees        for (int i = 0; i < bugTreeList.length; ++i) {            JTree bugTree = bugTreeList[i];            bugTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);            bugTree.setCellRenderer(bugCellRenderer);            bugTree.setRootVisible(false);            bugTree.setShowsRootHandles(true);            bugTree.addTreeSelectionListener(new TreeSelectionListener() {                public void valueChanged(TreeSelectionEvent e) {                    bugTreeSelectionChanged(e);                }            });        }                jarFileList.setModel(new DefaultListModel());        sourceDirList.setModel(new DefaultListModel());        classpathEntryList.setModel(new DefaultListModel());                // We use a special highlight painter to ensure that the highlights cover        // complete source lines, even though the source text doesn't        // fill the lines completely.        final Highlighter.HighlightPainter painter =        new DefaultHighlighter.DefaultHighlightPainter(sourceTextArea.getSelectionColor()) {            public Shape paintLayer(Graphics g, int offs0, int offs1,            Shape bounds, JTextComponent c, View view) {                try {                    Shape extent = view.modelToView(offs0, Position.Bias.Forward, offs1, Position.Bias.Backward, bounds);                    Rectangle rect = extent.getBounds();                    rect.x = 0;                    rect.width = bounds.getBounds().width;                    g.setColor(getColor());                    g.fillRect(rect.x, rect.y, rect.width, rect.height);                    return rect;                } catch (BadLocationException e) {                    return null;                }            }        };        Highlighter sourceHighlighter = new DefaultHighlighter() {            public Object addHighlight(int p0, int p1, Highlighter.HighlightPainter p)            throws BadLocationException {                return super.addHighlight(p0, p1, painter);            }        };        sourceTextArea.setHighlighter(sourceHighlighter);                updateTitle(getCurrentProject());                priorityThreshold = Detector.NORMAL_PRIORITY;                // Load the icon for the UMD logo        ClassLoader classLoader = this.getClass().getClassLoader();        ImageIcon logoIcon = new ImageIcon(classLoader.getResource("edu/umd/cs/findbugs/gui/logo_umd.png"));        logoLabel.setIcon(logoIcon);    }