001: /*
002: * Gruntspud
003: *
004: * Copyright (C) 2002 Brett Smith.
005: *
006: * Written by: Brett Smith <t_magicthize@users.sourceforge.net>
007: *
008: * This program is free software; you can redistribute it and/or
009: * modify it under the terms of the GNU Library General Public License
010: * as published by the Free Software Foundation; either version 2 of
011: * the License, or (at your option) any later version.
012: * This program is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of
014: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
015: * GNU Library General Public License for more details.
016: *
017: * You should have received a copy of the GNU Library General Public
018: * License along with this program; if not, write to the Free Software
019: * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
020: */
021:
022: package gruntspud.ui.view;
023:
024: import javax.swing.Icon;
025: import javax.swing.JComponent;
026: import javax.swing.event.EventListenerList;
027:
028: /**
029: * Description of the Class
030: *
031: *@author magicthize
032: *@created 26 May 2002
033: */
034: public abstract class AbstractView implements View {
035: private ViewManager manager;
036: private String name;
037: private String toolTipText;
038: private Icon icon;
039: protected EventListenerList listenerList = new EventListenerList();
040:
041: /**
042: * Creates a new AbstractView object.
043: *
044: * @param name DOCUMENT ME!
045: * @param icon DOCUMENT ME!
046: * @param toolTipText DOCUMENT ME!
047: */
048: public AbstractView(String name, Icon icon, String toolTipText) {
049: this .name = name;
050: this .icon = icon;
051: this .toolTipText = toolTipText;
052: }
053:
054: /**
055: * DOCUMENT ME!
056: *
057: * @param evt DOCUMENT ME!
058: */
059: public void viewEventNotify(ViewEvent evt) {
060: }
061:
062: /**
063: * DOCUMENT ME!
064: *
065: * @return DOCUMENT ME!
066: */
067: public ViewManager getManager() {
068: return manager;
069: }
070:
071: /**
072: * DOCUMENT ME!
073: *
074: * @param name DOCUMENT ME!
075: */
076: public void setViewName(String name) {
077: this .name = name;
078: }
079:
080: /**
081: * DOCUMENT ME!
082: *
083: * @param toolTipText DOCUMENT ME!
084: */
085: public void setViewToolTipText(String toolTipText) {
086: this .toolTipText = toolTipText;
087: }
088:
089: /**
090: * DOCUMENT ME!
091: *
092: * @param icon DOCUMENT ME!
093: */
094: public void setIcon(Icon icon) {
095: this .icon = icon;
096: }
097:
098: /**
099: * DOCUMENT ME!
100: *
101: * @return DOCUMENT ME!
102: */
103: public String getViewName() {
104: return name;
105: }
106:
107: /**
108: * DOCUMENT ME!
109: *
110: * @return DOCUMENT ME!
111: */
112: public Icon getViewIcon() {
113: return icon;
114: }
115:
116: /**
117: * DOCUMENT ME!
118: *
119: * @return DOCUMENT ME!
120: */
121: public String getViewToolTipText() {
122: return toolTipText;
123: }
124:
125: /**
126: * DOCUMENT ME!
127: *
128: * @param manager DOCUMENT ME!
129: */
130: public void start(ViewManager manager) {
131: this .manager = manager;
132: }
133:
134: /**
135: * DOCUMENT ME!
136: *
137: * @return DOCUMENT ME!
138: */
139: public ViewManager getViewManager() {
140: return manager;
141: }
142:
143: /**
144: * DOCUMENT ME!
145: *
146: * @return DOCUMENT ME!
147: */
148: public abstract JComponent getViewComponent();
149:
150: /**
151: * DOCUMENT ME!
152: *
153: * @param listener DOCUMENT ME!
154: */
155: public void addViewListener(ViewListener listener) {
156: listenerList.add(ViewListener.class, listener);
157: }
158:
159: /**
160: * DOCUMENT ME!
161: *
162: * @param listener DOCUMENT ME!
163: */
164: public void removeViewListener(ViewListener listener) {
165: listenerList.remove(ViewListener.class, listener);
166: }
167:
168: /**
169: * DOCUMENT ME!
170: *
171: * @param evt DOCUMENT ME!
172: */
173: public void fireViewEvent(ViewEvent evt) {
174: ViewListener[] l = (ViewListener[]) listenerList
175: .getListeners(ViewListener.class);
176:
177: for (int i = l.length - 1; i >= 0; i--) {
178: l[i].viewEvent(evt);
179: }
180: }
181:
182: //
183: }
|