navigatorTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);    navigatorTree.addTreeSelectionListener(new TreeSelectionListener() { public void valueChanged(TreeSelectionEvent e) { navigatorTreeSelectionChanged(e); } });  navigatorTree.setCellRenderer(new FindBugsFrame.NavigatorCellRenderer()); navigatorTree.setRootVisible(false); navigatorTree.setShowsRootHandles(false);
    private void postInitComponents() {	logger = new ConsoleLogger(this);		viewPanelLayout = (CardLayout) viewPanel.getLayout();	navigatorTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);		// Add a tree selection listener to the navigator tree, so we can	// ensure that the view is always consistent with the current selection.	navigatorTree.addTreeSelectionListener(new TreeSelectionListener() {	    public void valueChanged(TreeSelectionEvent e) {		navigatorTreeSelectionChanged(e);	    }	});		navigatorTree.setCellRenderer(new FindBugsFrame.NavigatorCellRenderer());	navigatorTree.setRootVisible(false);	navigatorTree.setShowsRootHandles(false);        // Console starts out disabled        consoleSplitter.setDividerLocation(1.0);        	bugTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);	bugTree.setCellRenderer(new FindBugsFrame.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());		groupByChooser.addItem(GROUP_BY_CLASS);	groupByChooser.addItem(GROUP_BY_PACKAGE);	groupByChooser.addItem(GROUP_BY_BUG_TYPE);	        // 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);    }