001    /*
002     * LAPIS lightweight structured text processing system
003     *
004     * Copyright (C) 1998-2002 Carnegie Mellon University,
005     * Copyright (C) 2003 Massachusetts Institute of Technology.
006     * All rights reserved.
007     *
008     * This library is free software; you can redistribute it
009     * and/or modify it under the terms of the GNU General
010     * Public License as published by the Free Software
011     * Foundation, version 2.
012     *
013     * LAPIS homepage: http://graphics.lcs.mit.edu/lapis/
014     */
015    
016    package lapisx.swing;
017    
018    import java.awt.*;
019    import javax.swing.*;
020    
021    public class HighlightingScrollPane extends JScrollPane {
022        
023        static {
024            UIManager.put ("HighlightingScrollBarUI", "lapisx.swing.HighlightingScrollBarUI");
025        }
026    
027    
028        public HighlightingScrollPane () {
029            super ();
030        }
031    
032        public HighlightingScrollPane (Component view) {
033            super (view);
034        }
035        
036        public JScrollBar createVerticalScrollBar () {
037            return new HighlightingScrollBar (JScrollBar.VERTICAL);
038        }
039    
040        public JScrollBar createHorizontalScrollBar () {
041            return new HighlightingScrollBar (JScrollBar.HORIZONTAL);
042        }
043    
044        public void setVerticalHighlighter (ScrollBarHighlighter h) {
045            ((HighlightingScrollBar) getVerticalScrollBar ()).setHighlighter (h);
046        }
047            
048        public ScrollBarHighlighter getVerticalHighlighter () {
049            return ((HighlightingScrollBar) getVerticalScrollBar ()).getHighlighter ();
050        }
051    
052        public void setHorizontalHighlighter (ScrollBarHighlighter h) {
053            ((HighlightingScrollBar) getHorizontalScrollBar ()).setHighlighter (h);
054        }
055            
056        public ScrollBarHighlighter getHorizontalHighlighter () {
057            return ((HighlightingScrollBar) getHorizontalScrollBar ()).getHighlighter ();
058        }
059    
060        public class HighlightingScrollBar extends ScrollBar {
061            ScrollBarHighlighter highlighter;
062    
063            public HighlightingScrollBar (int orientation) {
064                super (orientation);
065            }
066        
067            public String getUIClassID () {
068                return "HighlightingScrollBarUI";
069            }
070        
071            public void setHighlighter (ScrollBarHighlighter h) {
072                this.highlighter = h;
073            }
074            
075            public ScrollBarHighlighter getHighlighter () {
076                return highlighter;
077            }
078        }
079    
080    }