Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/dma/ihm/game/calendar/events/GameCalendarStopBeforeGamedayEvent.java


1   package org.dma.ihm.game.calendar.events;
2   
3   import java.util.*;
4   import org.dma.ihm.controller.*;
5   import org.dma.ihm.controller.data.*;
6   import org.dma.ihm.game.league.*;
7   import org.dma.ihm.game.league.helper.*;
8   
9   import org.dma.ihm.game.match.*;
10  
11  /**
12   *  GameCalendarStopBeforeGamedayEvent Special class that contains all gameDays
13   *  of a specific date, and stops for a "gui break"
14   *
15   * @author     Bernhard von Gunten / Arik Dasen
16   * @created    December 29, 2001
17   */
18  public class GameCalendarStopBeforeGamedayEvent extends GameCalendarEvent {
19  
20    /**  Vector of all gamedays */
21    private Vector gameCalendarGameDayEvents = null;
22  
23  
24    /**
25     *  Create new event
26     *
27     * @param  source  The source of this event
28     * @param  day     The day of this event
29     */
30    public GameCalendarStopBeforeGamedayEvent(Object source, Calendar day) {
31      super(source, day, "GameCalendarStopBeforeGamedayEvent");
32      this.gameCalendarGameDayEvents = new Vector();
33    }
34  
35  
36    /**
37     *  Add new gameDay on this "gui break"
38     *
39     * @param  gameCalendarGameDayEvent  The gameDay to be added to this event
40     */
41    public void addGameCalendarGameDayEvent(GameCalendarGameDayEvent gameCalendarGameDayEvent) {
42      this.gameCalendarGameDayEvents.add(gameCalendarGameDayEvent);
43    }
44  
45  
46    /**
47     *  Returns if online is needed by userinterests
48     *
49     * @return    Returns true if online is "wished"
50     */
51    public boolean needsOnline() {
52      return (getInterestedUsers().size() > 0);
53    }
54  
55  
56    /**
57     *  Returns users that are interested in this stopBeforeGameDayEvent
58     *
59     * @return    All users interested in this event
60     */
61    public Vector getInterestedUsers() {
62      // Result with all users who want to stop
63      Vector interestedUsers = new Vector();
64  
65      // Gell all users playing this great game
66      User[] allUsers = Controller.getScenario().getUsers();
67  
68      // Check if anyone is interested in these games.
69      for (int i = 0; i < allUsers.length; i++) {
70        if (allUsers[i].isInterestedInLeagueElements(getLeagueElements())) {
71          // Check if user is intersted in leagueElement
72          if (allUsers[i].getStopForGames() == User.STOP_FOR_ALL_GAMES) {
73            // User want's to stop for all games in element
74            interestedUsers.add(allUsers[i]);
75          } else {
76            // User only wants to stop for games he'll really play
77            Vector players = Controller.getScenario().getUsersWithinMatches(getMatches(), true);
78            if (players.indexOf(allUsers[i]) > -1) {
79              interestedUsers.add(allUsers[i]);
80            }
81          }
82        }
83      }
84  
85      return interestedUsers;
86    }
87  
88  
89    /**
90     *  Returns all matches of all gameDays
91     *
92     * @return    All matches of all gameDays
93     */
94    public Vector getMatches() {
95      Vector result = new Vector();
96      for (int i = 0; i < gameCalendarGameDayEvents.size(); i++) {
97        GameCalendarGameDayEvent tmp = (GameCalendarGameDayEvent) gameCalendarGameDayEvents.get(i);
98        Vector matches = tmp.getMatches();
99        for (int n = 0; n < matches.size(); n++) {
100         result.add(matches.get(n));
101       }
102     }
103     return result;
104   }
105 
106 
107   /**
108    *  Returns gameDayEvent for a single User
109    *
110    * @param  user  The user looking for
111    * @return       The gameDay for a user (if found)
112    */
113   public GameCalendarGameDayEvent getGameCalendarGameDayEvent(User user) {
114     for (int i = 0; i < gameCalendarGameDayEvents.size(); i++) {
115       GameCalendarGameDayEvent tmp = (GameCalendarGameDayEvent) gameCalendarGameDayEvents.get(i);
116       if (tmp.isUserInvolved(user)) {
117         return tmp;
118       }
119     }
120     return null;
121   }
122 
123 
124   /**
125    *  Returns all leagueElements
126    *
127    * @return    All leagueElements of this event
128    */
129   public Vector getLeagueElements() {
130     Vector result = new Vector();
131     for (int i = 0; i < gameCalendarGameDayEvents.size(); i++) {
132       GameCalendarGameDayEvent tmp = (GameCalendarGameDayEvent) gameCalendarGameDayEvents.get(i);
133       result.add(tmp.getLeagueElement());
134     }
135     return result;
136   }
137 
138 
139   /**  Plays the event */
140   public void play() {
141     super.play();
142   }
143 
144 }