| ProxyBookDataDisplay.java |
1 /**
2 * Distribution License:
3 * BibleDesktop is free software; you can redistribute it and/or modify it under
4 * the terms of the GNU General Public License, version 2 as published by
5 * the Free Software Foundation. This program is distributed in the hope
6 * that it will be useful, but WITHOUT ANY WARRANTY; without even the
7 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
8 * See the GNU General Public License for more details.
9 *
10 * The License is available on the internet at:
11 * http://www.gnu.org/copyleft/gpl.html
12 * or by writing to:
13 * Free Software Foundation, Inc.
14 * 59 Temple Place - Suite 330
15 * Boston, MA 02111-1307, USA
16 *
17 * Copyright: 2005
18 * The copyright to this program is held by it's authors.
19 *
20 * ID: $Id: ProxyBookDataDisplay.java 2115 2011-03-12 20:29:39Z dmsmith $
21 */
22 package org.crosswire.bibledesktop.display;
23
24 import java.awt.Component;
25 import java.beans.PropertyChangeEvent;
26
27 import org.crosswire.bibledesktop.passage.KeyChangeListener;
28 import org.crosswire.jsword.book.Book;
29 import org.crosswire.jsword.passage.Key;
30
31 /**
32 * An implementation of BookDataDisplay that simply proxies all requests to an
33 * underlying BookDataDisplay.
34 * <p>
35 * Useful for chaining a few BookDataDisplays together to add functionality
36 * component by component.
37 * </p>
38 *
39 * @see gnu.gpl.License for license details.<br>
40 * The copyright to this program is held by it's authors.
41 * @author Joe Walker [joe at eireneh dot com]
42 */
43 public class ProxyBookDataDisplay implements BookDataDisplay {
44 /**
45 * Setup the proxy
46 */
47 public ProxyBookDataDisplay(BookDataDisplay proxy) {
48 this.proxy = proxy;
49 }
50
51 /**
52 * Accessor for the proxy
53 *
54 * @return Returns the proxy.
55 */
56 protected BookDataDisplay getProxy() {
57 return proxy;
58 }
59
60 /* (non-Javadoc)
61 * @see org.crosswire.bibledesktop.display.BookDataDisplay#addKeyChangeListener(org.crosswire.bibledesktop.passage.KeyChangeListener)
62 */
63 public void addKeyChangeListener(KeyChangeListener listener) {
64 proxy.addKeyChangeListener(listener);
65 }
66
67 /* (non-Javadoc)
68 * @see org.crosswire.bibledesktop.display.BookDataDisplay#removeKeyChangeListener(org.crosswire.bibledesktop.passage.KeyChangeListener)
69 */
70 public void removeKeyChangeListener(KeyChangeListener listener) {
71 proxy.removeKeyChangeListener(listener);
72 }
73
74 /* (non-Javadoc)
75 * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
76 */
77 public void propertyChange(PropertyChangeEvent evt) {
78 proxy.propertyChange(evt);
79 }
80
81 /* (non-Javadoc)
82 * @see org.crosswire.bibledesktop.display.BookDataDisplay#addURIEventListener(org.crosswire.bibledesktop.display.URIEventListener)
83 */
84 public void addURIEventListener(URIEventListener listener) {
85 proxy.addURIEventListener(listener);
86 }
87
88 /* (non-Javadoc)
89 * @see org.crosswire.bibledesktop.display.BookDataDisplay#removeURIEventListener(org.crosswire.bibledesktop.display.URIEventListener)
90 */
91 public void removeURIEventListener(URIEventListener listener) {
92 proxy.removeURIEventListener(listener);
93 }
94
95 /* (non-Javadoc)
96 * @see org.crosswire.bibledesktop.display.BookDataDisplay#copy()
97 */
98 public void copy() {
99 proxy.copy();
100 }
101
102 /* (non-Javadoc)
103 * @see org.crosswire.bibledesktop.display.BookDataDisplay#getComponent()
104 */
105 public Component getComponent() {
106 return proxy.getComponent();
107 }
108
109 /* (non-Javadoc)
110 * @see org.crosswire.bibledesktop.display.BookDataDisplay#clearBookData()
111 */
112 public void clearBookData() {
113 setBookData(null, null);
114 }
115
116 /* (non-Javadoc)
117 * @see org.crosswire.bibledesktop.display.BookDataDisplay#setBookData(org.crosswire.jsword.book.Book[], org.crosswire.jsword.passage.Key)
118 */
119 public void setBookData(Book[] books, Key key) {
120 proxy.setBookData(books, key);
121 }
122
123 /* (non-Javadoc)
124 * @see org.crosswire.bibledesktop.display.BookDataDisplay#setCompareBooks(boolean)
125 */
126 public void setCompareBooks(boolean compare) {
127 proxy.setCompareBooks(compare);
128 }
129
130 /* (non-Javadoc)
131 * @see org.crosswire.bibledesktop.display.BookDataDisplay#refresh()
132 */
133 public void refresh() {
134 proxy.refresh();
135 }
136
137 /* (non-Javadoc)
138 * @see java.lang.Object#toString()
139 */
140 @Override
141 public String toString() {
142 return proxy.toString();
143 }
144
145 /* (non-Javadoc)
146 * @see org.crosswire.bibledesktop.display.BookDataDisplay#getKey()
147 */
148 public Key getKey() {
149 return getProxy().getKey();
150 }
151
152 /* (non-Javadoc)
153 * @see org.crosswire.bibledesktop.display.BookDataDisplay#getBooks()
154 */
155 public Book[] getBooks() {
156 return getProxy().getBooks();
157 }
158
159 /* (non-Javadoc)
160 * @see org.crosswire.bibledesktop.display.BookDataDisplay#getFirstBook()
161 */
162 public Book getFirstBook() {
163 return getProxy().getFirstBook();
164 }
165
166 /**
167 * The component to which we proxy
168 */
169 private BookDataDisplay proxy;
170 }
171