001: /*
002: * Copyright (C) 2001-2003 Robert MacGrogan
003: *
004: * This library is free software; you can redistribute it and/or
005: * modify it under the terms of the GNU Lesser General Public
006: * License as published by the Free Software Foundation; either
007: * version 2.1 of the License, or (at your option) any later version.
008: *
009: * This library is distributed in the hope that it will be useful,
010: * but WITHOUT ANY WARRANTY; without even the implied warranty of
011: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
012: * Lesser General Public License for more details.
013: *
014: * You should have received a copy of the GNU Lesser General Public
015: * License along with this library; if not, write to the Free Software
016: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
017: *
018: *
019: * $Archive: SourceJammer$
020: * $FileName: FileEventListenerPluginPool.java$
021: * $FileID: 4676$
022: *
023: * Last change:
024: * $AuthorName: Rob MacGrogan$
025: * $Date: 4/21/03 9:28 PM$
026: * $Comment: Fix method name.$
027: */
028: package org.sourcejammer.client.event;
029:
030: import java.util.ArrayList;
031:
032: import org.sourcejammer.client.plugin.EventTimingType;
033: import org.sourcejammer.client.plugin.GUIContext;
034: import org.sourcejammer.client.plugin.SJClientFileEvent;
035: import org.sourcejammer.client.plugin.SJClientFileEventListener;
036: import org.sourcejammer.project.view.NodeInfo;
037: import org.sourcejammer.project.view.SJRequest;
038:
039: /**
040: * Title: $FileName: FileEventListenerPluginPool.java$
041: * @version $VerNum: 4$
042: * @author $AuthorName: Rob MacGrogan$<br><br>
043: *
044: * $Description: Implementations of client plugin objects.$<br>
045: * $KeyWordsOff: $<br><br>
046: *
047: * Default implementation of GUIContext.
048: */
049: public class FileEventListenerPluginPool {
050:
051: private ArrayList listeners = new ArrayList();
052: private GUIContext context = GUIContextImpl.getInstance();
053:
054: public FileEventListenerPluginPool() {
055: }
056:
057: public void addListener(SJClientFileEventListener listener) {
058: listeners.add(listener);
059: }
060:
061: public SJClientFileEventImpl getBasicEvent(SJRequest request,
062: Object source, EventTimingType timing) {
063: SJClientFileEventImpl event = new SJClientFileEventImpl();
064: event.setGUIContext(context);
065: event.setRequest(request);
066: event.setSource(source);
067: event.setTiming(timing);
068: return event;
069: }
070:
071: /**
072: * In this case, we pass the file that is about to be sent or that has just been
073: * sent to the server. File should be null on before and after event.
074: */
075: public void notifyFileAdded(SJRequest request, Object source,
076: EventTimingType timing, NodeInfo file) {
077: if (listeners.size() > 0) {
078: SJClientFileEventImpl ev = getBasicEvent(request, source,
079: timing);
080: ev.setFile(file);
081: for (int i = 0; i < listeners.size(); i++) {
082: SJClientFileEventListener listener = (SJClientFileEventListener) listeners
083: .get(i);
084: listener.fileAdded(ev);
085: }
086: }
087: }
088:
089: public void notifyFileCheckedOut(SJRequest request, Object source,
090: EventTimingType timing, NodeInfo file) {
091: if (listeners.size() > 0) {
092: SJClientFileEventImpl ev = getBasicEvent(request, source,
093: timing);
094: ev.setFile(file);
095: for (int i = 0; i < listeners.size(); i++) {
096: SJClientFileEventListener listener = (SJClientFileEventListener) listeners
097: .get(i);
098: listener.fileCheckedOut(ev);
099: }
100: }
101: }
102:
103: public void notifyFileCheckedIn(SJRequest request, Object source,
104: EventTimingType timing, NodeInfo file) {
105: if (listeners.size() > 0) {
106: SJClientFileEventImpl ev = getBasicEvent(request, source,
107: timing);
108: ev.setFile(file);
109: for (int i = 0; i < listeners.size(); i++) {
110: SJClientFileEventListener listener = (SJClientFileEventListener) listeners
111: .get(i);
112: listener.fileCheckedIn(ev);
113: }
114: }
115: }
116:
117: public void notifyFileCheckeOutUndone(SJRequest request,
118: Object source, EventTimingType timing, NodeInfo file) {
119: if (listeners.size() > 0) {
120: SJClientFileEventImpl ev = getBasicEvent(request, source,
121: timing);
122: ev.setFile(file);
123: for (int i = 0; i < listeners.size(); i++) {
124: SJClientFileEventListener listener = (SJClientFileEventListener) listeners
125: .get(i);
126: listener.fileCheckOutUndone(ev);
127: }
128: }
129: }
130:
131: public void notifyFileForceCheckedIn(SJRequest request,
132: Object source, EventTimingType timing, NodeInfo file) {
133: if (listeners.size() > 0) {
134: SJClientFileEventImpl ev = getBasicEvent(request, source,
135: timing);
136: ev.setFile(file);
137: for (int i = 0; i < listeners.size(); i++) {
138: SJClientFileEventListener listener = (SJClientFileEventListener) listeners
139: .get(i);
140: listener.fileForceCheckedIn(ev);
141: }
142: }
143: }
144:
145: public void notifyFileGet(SJRequest request, Object source,
146: EventTimingType timing, NodeInfo file) {
147: if (listeners.size() > 0) {
148: SJClientFileEventImpl ev = getBasicEvent(request, source,
149: timing);
150: ev.setFile(file);
151: for (int i = 0; i < listeners.size(); i++) {
152: SJClientFileEventListener listener = (SJClientFileEventListener) listeners
153: .get(i);
154: listener.fileGet(ev);
155: }
156: }
157: }
158:
159: public void notifyFileVersionGet(SJRequest request, Object source,
160: EventTimingType timing, NodeInfo file) {
161: if (listeners.size() > 0) {
162: SJClientFileEventImpl ev = getBasicEvent(request, source,
163: timing);
164: ev.setFile(file);
165: for (int i = 0; i < listeners.size(); i++) {
166: SJClientFileEventListener listener = (SJClientFileEventListener) listeners
167: .get(i);
168: listener.fileVersionGet(ev);
169: }
170: }
171: }
172:
173: public void notifyFileMoveCopy(SJRequest request, Object source,
174: EventTimingType timing, NodeInfo file) {
175: if (listeners.size() > 0) {
176: SJClientFileEventImpl ev = getBasicEvent(request, source,
177: timing);
178: ev.setFile(file);
179: for (int i = 0; i < listeners.size(); i++) {
180: SJClientFileEventListener listener = (SJClientFileEventListener) listeners
181: .get(i);
182: listener.fileMoveCopy(ev);
183: }
184: }
185: }
186:
187: public void notifyFileShared(SJRequest request, Object source,
188: EventTimingType timing, NodeInfo file) {
189: if (listeners.size() > 0) {
190: SJClientFileEventImpl ev = getBasicEvent(request, source,
191: timing);
192: ev.setFile(file);
193: for (int i = 0; i < listeners.size(); i++) {
194: SJClientFileEventListener listener = (SJClientFileEventListener) listeners
195: .get(i);
196: listener.fileShared(ev);
197: }
198: }
199: }
200:
201: public void notifyFileBranched(SJRequest request, Object source,
202: EventTimingType timing, NodeInfo file) {
203: if (listeners.size() > 0) {
204: SJClientFileEventImpl ev = getBasicEvent(request, source,
205: timing);
206: ev.setFile(file);
207: for (int i = 0; i < listeners.size(); i++) {
208: SJClientFileEventListener listener = (SJClientFileEventListener) listeners
209: .get(i);
210: listener.fileBranched(ev);
211: }
212: }
213: }
214:
215: public void notifyFileRenamed(SJRequest request, Object source,
216: EventTimingType timing, NodeInfo file) {
217: if (listeners.size() > 0) {
218: SJClientFileEventImpl ev = getBasicEvent(request, source,
219: timing);
220: ev.setFile(file);
221: for (int i = 0; i < listeners.size(); i++) {
222: SJClientFileEventListener listener = (SJClientFileEventListener) listeners
223: .get(i);
224: listener.fileRenamed(ev);
225: }
226: }
227: }
228:
229: public void notifyFileDescriptionChanged(SJRequest request,
230: Object source, EventTimingType timing, NodeInfo file) {
231: if (listeners.size() > 0) {
232: SJClientFileEventImpl ev = getBasicEvent(request, source,
233: timing);
234: ev.setFile(file);
235: for (int i = 0; i < listeners.size(); i++) {
236: SJClientFileEventListener listener = (SJClientFileEventListener) listeners
237: .get(i);
238: listener.fileDescriptionChanged(ev);
239: }
240: }
241: }
242:
243: public void notifyFileRemoved(SJRequest request, Object source,
244: EventTimingType timing, NodeInfo file) {
245: if (listeners.size() > 0) {
246: SJClientFileEventImpl ev = getBasicEvent(request, source,
247: timing);
248: ev.setFile(file);
249: for (int i = 0; i < listeners.size(); i++) {
250: SJClientFileEventListener listener = (SJClientFileEventListener) listeners
251: .get(i);
252: listener.fileRemoved(ev);
253: }
254: }
255: }
256:
257: public void notifyFileShareRemoved(SJRequest request,
258: Object source, EventTimingType timing, NodeInfo file) {
259: if (listeners.size() > 0) {
260: SJClientFileEventImpl ev = getBasicEvent(request, source,
261: timing);
262: ev.setFile(file);
263: for (int i = 0; i < listeners.size(); i++) {
264: SJClientFileEventListener listener = (SJClientFileEventListener) listeners
265: .get(i);
266: listener.fileShareRemoved(ev);
267: }
268: }
269: }
270:
271: public void notifyFileRolledBack(SJRequest request, Object source,
272: EventTimingType timing, NodeInfo file) {
273: if (listeners.size() > 0) {
274: SJClientFileEventImpl ev = getBasicEvent(request, source,
275: timing);
276: ev.setFile(file);
277: for (int i = 0; i < listeners.size(); i++) {
278: SJClientFileEventListener listener = (SJClientFileEventListener) listeners
279: .get(i);
280: listener.fileRolledBack(ev);
281: }
282: }
283: }
284:
285: public void notifyFileViewed(SJRequest request, Object source,
286: EventTimingType timing, NodeInfo file) {
287: if (listeners.size() > 0) {
288: SJClientFileEventImpl ev = getBasicEvent(request, source,
289: timing);
290: ev.setFile(file);
291: for (int i = 0; i < listeners.size(); i++) {
292: SJClientFileEventListener listener = (SJClientFileEventListener) listeners
293: .get(i);
294: listener.fileViewed(ev);
295: }
296: }
297: }
298:
299: public void notifyFileDiffViewed(SJRequest request, Object source,
300: EventTimingType timing, NodeInfo file) {
301: if (listeners.size() > 0) {
302: SJClientFileEventImpl ev = getBasicEvent(request, source,
303: timing);
304: ev.setFile(file);
305: for (int i = 0; i < listeners.size(); i++) {
306: SJClientFileEventListener listener = (SJClientFileEventListener) listeners
307: .get(i);
308: listener.fileDiffViewed(ev);
309: }
310: }
311: }
312:
313: public void notifyFileDetailsViewed(SJRequest request,
314: Object source, EventTimingType timing, NodeInfo file) {
315: if (listeners.size() > 0) {
316: SJClientFileEventImpl ev = getBasicEvent(request, source,
317: timing);
318: ev.setFile(file);
319: for (int i = 0; i < listeners.size(); i++) {
320: SJClientFileEventListener listener = (SJClientFileEventListener) listeners
321: .get(i);
322: listener.fileDetailsViewed(ev);
323: }
324: }
325: }
326:
327: }
|