EMMA Coverage Report (generated Wed Feb 13 07:49:24 ICT 2008)
[all classes][net.sourceforge.hiveboard.command]

COVERAGE SUMMARY FOR SOURCE FILE [GuiContextHandler.java]

nameclass, %method, %block, %line, %
GuiContextHandler.java100% (1/1)100% (21/21)100% (420/420)100% (78/78)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class GuiContextHandler100% (1/1)100% (21/21)100% (420/420)100% (78/78)
GuiContextHandler (): void 100% (1/1)100% (68/68)100% (15/15)
contextChanged (GuiContext): void 100% (1/1)100% (17/17)100% (7/7)
isAbsentFromBoard (): boolean 100% (1/1)100% (4/4)100% (1/1)
isBoardDestroyable (): boolean 100% (1/1)100% (4/4)100% (1/1)
isBoardInitiator (): boolean 100% (1/1)100% (4/4)100% (1/1)
isBoardSelected (): boolean 100% (1/1)100% (4/4)100% (1/1)
isDrawBoardInitiator (): boolean 100% (1/1)100% (4/4)100% (1/1)
isDrawBoardSelected (): boolean 100% (1/1)100% (4/4)100% (1/1)
isNotificationTokenSettable (): boolean 100% (1/1)100% (4/4)100% (1/1)
isParticipantRemovable (): boolean 100% (1/1)100% (4/4)100% (1/1)
isParticipantTokenSettable (): boolean 100% (1/1)100% (4/4)100% (1/1)
isSelectedAccountModifiable (): boolean 100% (1/1)100% (4/4)100% (1/1)
isSelfAdmin (): boolean 100% (1/1)100% (4/4)100% (1/1)
isSelfInitiator (): boolean 100% (1/1)100% (4/4)100% (1/1)
isTokenRequestable (): boolean 100% (1/1)100% (4/4)100% (1/1)
setBoardRepository (BoardRepository): void 100% (1/1)100% (4/4)100% (2/2)
setGuiContext (GuiContext): void 100% (1/1)100% (7/7)100% (3/3)
updateAccountProperties (GuiContext): void 100% (1/1)100% (40/40)100% (7/7)
updateBoardProperties (GuiContext): void 100% (1/1)100% (126/126)100% (16/16)
updateNotificationProperties (GuiContext): void 100% (1/1)100% (49/49)100% (9/9)
updateParticipantProperties (GuiContext): void 100% (1/1)100% (57/57)100% (6/6)

1//  Copyright 2004-2007 Jean-Francois Poilpret
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14 
15package net.sourceforge.hiveboard.command;
16 
17import net.sourceforge.hiveboard.AccountRole;
18import net.sourceforge.hiveboard.Board;
19import net.sourceforge.hiveboard.EventType;
20import net.sourceforge.hiveboard.model.BoardRepository;
21import net.sourceforge.hiveboard.util.GuiContext;
22import net.sourceforge.hiveboard.util.GuiContextListener;
23import net.sourceforge.hiveboard.util.TokenSetterHelper;
24import net.sourceforge.hivegui.application.AbstractPropertyBean;
25 
26public class GuiContextHandler
27        extends                AbstractPropertyBean 
28        implements        GuiContextListener
29{
30        static public final String        SELF_ADMIN                                        = "selfAdmin";
31        static public final String        ACCOUNT_MODIFIABLE                        = "selectedAccountModifiable";
32        static public final String        BOARD_SELECTED                                = "boardSelected";
33        static public final String        DRAW_BOARD_SELECTED                        = "drawBoardSelected";
34        static public final String        BOARD_INITIATOR                                = "boardInitiator";
35        static public final String        DRAW_BOARD_INITIATOR                = "drawBoardInitiator";
36        static public final String        ABSENT_FROM_BOARD                        = "absentFromBoard";
37        static public final String        TOKEN_REQUESTABLE                        = "tokenRequestable";
38        static public final String        BOARD_DESTROYABLE                        = "boardDestroyable";
39        static public final String        SELF_INITIATOR                                = "selfInitiator";
40        static public final String        NOTIFICATION_TOKEN_SETTABLE        = "notificationTokenSettable";
41        static public final String        PARTICIPANT_REMOVABLE                = "participantRemovable";
42        static public final String        PARTICIPANT_TOKEN_SETTABLE        = "participantTokenSettable";
43 
44        public GuiContextHandler()
45        {
46                setProperty(SELF_ADMIN, false);
47                setProperty(ACCOUNT_MODIFIABLE, false);
48                setProperty(SELF_INITIATOR, false);
49                setProperty(BOARD_SELECTED, false);
50                setProperty(DRAW_BOARD_SELECTED, false);
51                setProperty(ABSENT_FROM_BOARD, false);
52                setProperty(BOARD_INITIATOR, false);
53                setProperty(DRAW_BOARD_INITIATOR, false);
54                setProperty(TOKEN_REQUESTABLE, false);
55                setProperty(BOARD_DESTROYABLE, false);
56                setProperty(NOTIFICATION_TOKEN_SETTABLE, false);
57                setProperty(PARTICIPANT_REMOVABLE, false);
58                setProperty(PARTICIPANT_TOKEN_SETTABLE, false);
59        }
60        
61        public void        setBoardRepository(BoardRepository repository)
62        {
63                _repository = repository;
64        }
65 
66        public void                setGuiContext(GuiContext context)
67        {
68                _guiContext = context;
69                context.addContextListener(this);
70        }
71 
72        public boolean        isSelfAdmin()
73        {
74                return getBooleanProperty(SELF_ADMIN);
75        }
76        
77        public boolean        isSelectedAccountModifiable()
78        {
79                return getBooleanProperty(ACCOUNT_MODIFIABLE);
80        }
81 
82        public boolean        isBoardSelected()
83        {
84                return getBooleanProperty(BOARD_SELECTED);
85        }
86        
87        public boolean        isDrawBoardSelected()
88        {
89                return getBooleanProperty(DRAW_BOARD_SELECTED);
90        }
91        
92        public boolean        isBoardInitiator()
93        {
94                return getBooleanProperty(BOARD_INITIATOR);
95        }
96        
97        public boolean        isDrawBoardInitiator()
98        {
99                return getBooleanProperty(DRAW_BOARD_INITIATOR);
100        }
101        
102        public boolean        isAbsentFromBoard()
103        {
104                return getBooleanProperty(ABSENT_FROM_BOARD);
105        }
106        
107        public boolean        isTokenRequestable()
108        {
109                return getBooleanProperty(TOKEN_REQUESTABLE);
110        }
111        
112        public boolean        isSelfInitiator()
113        {
114                return getBooleanProperty(SELF_INITIATOR);
115        }
116        
117        public boolean        isBoardDestroyable()
118        {
119                return getBooleanProperty(BOARD_DESTROYABLE);
120        }
121 
122        public boolean        isNotificationTokenSettable()
123        {
124                return getBooleanProperty(NOTIFICATION_TOKEN_SETTABLE);
125        }
126 
127        public boolean        isParticipantRemovable()
128        {
129                return getBooleanProperty(PARTICIPANT_REMOVABLE);
130        }
131 
132        public boolean        isParticipantTokenSettable()
133        {
134                return getBooleanProperty(PARTICIPANT_TOKEN_SETTABLE);
135        }
136        
137        public void contextChanged(GuiContext context)
138        {
139                if (context.getIdentity() == null)
140                {
141                        return;
142                }
143                updateAccountProperties(context);
144                updateBoardProperties(context);
145                updateParticipantProperties(context);
146                updateNotificationProperties(context);
147        }
148 
149        protected void updateAccountProperties(GuiContext context)
150        {
151                boolean enabled;
152 
153                enabled = context.getIdentity().isAdmin();
154                setProperty(SELF_ADMIN, enabled);
155 
156                enabled =                context.getAccount() != null
157                                        &&        context.getIdentity().isAdmin();
158                setProperty(ACCOUNT_MODIFIABLE, enabled);
159 
160                enabled = context.getIdentity().getRole() == AccountRole.INITIATOR;
161                setProperty(SELF_INITIATOR, enabled);
162        }
163 
164        protected void updateBoardProperties(GuiContext context)
165        {
166                boolean enabled;
167                int id = context.getIdentity().getId();
168 
169                enabled = context.getBoard() != null;
170                setProperty(BOARD_SELECTED, enabled);
171 
172                enabled = context.getDrawBoard() != null;
173                setProperty(DRAW_BOARD_SELECTED, enabled);
174 
175                enabled =                context.getBoard() != null 
176                                        &&        !context.getBoard().getPresents().contains(id);
177                setProperty(ABSENT_FROM_BOARD, enabled);
178 
179                enabled =                context.getBoard() != null
180                                        &&        context.getBoard().getInitiator() == id;
181                setProperty(BOARD_INITIATOR, enabled);
182                
183                enabled =                context.getDrawBoard() != null
184                                        &&        context.getDrawBoard().getInitiator() == id;
185                setProperty(DRAW_BOARD_INITIATOR, enabled);
186                
187                enabled =                context.getDrawBoard() != null
188                                        &&        context.getDrawBoard().getInitiator() != id
189                                        &&        context.getDrawBoard().getWriter() != id;
190                setProperty(TOKEN_REQUESTABLE, enabled);
191                
192                enabled =                context.getBoard() != null
193                                        &&        context.getBoard().getInitiator() == id
194                                        &&        context.getBoard().getPresents().isEmpty();
195                setProperty(BOARD_DESTROYABLE, enabled);
196        }
197 
198        protected void updateParticipantProperties(GuiContext context)
199        {
200                boolean enabled;
201                int id = context.getIdentity().getId();
202 
203                enabled =                 context.getBoard() != null 
204                                        &&        context.getParticipant() != null
205                                        &&        context.getBoard().getInitiator() == id
206                                        &&        !context.getParticipant().isInitiator();
207                setProperty(PARTICIPANT_REMOVABLE, enabled);
208 
209                enabled =                 context.getBoard() != null 
210                                        &&        context.getParticipant() != null
211                                        &&        context.getParticipant().isPresent()
212                                        &&        !context.getParticipant().isWriter()
213                                        &&        TokenSetterHelper.canGiveToken(context.getBoard(), id);
214                setProperty(PARTICIPANT_TOKEN_SETTABLE, enabled);
215        }
216 
217        protected void updateNotificationProperties(GuiContext context)
218        {
219                boolean enabled;
220                int id = context.getIdentity().getId();
221 
222                enabled = false;
223                if (        context.getNotification() != null
224                        &&        context.getNotification().getType() == EventType.EVT_REQUEST_TOKEN)
225                {
226                        Board board = _repository.getBoard(context.getNotification().getWhere());
227                        int who = context.getNotification().getWho();
228                        if (        board != null
229                                &&        board.getPresents().contains(who)
230                                &&        who != board.getWriter()
231                                &&        TokenSetterHelper.canGiveToken(board, id))
232                        {
233                                enabled = true;
234                        }
235                }
236                setProperty(NOTIFICATION_TOKEN_SETTABLE, enabled);
237        }
238 
239        protected GuiContext                _guiContext;
240        protected BoardRepository        _repository;
241}

[all classes][net.sourceforge.hiveboard.command]
EMMA 2.0.5312 (C) Vladimir Roubtsov