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

COVERAGE SUMMARY FOR SOURCE FILE [PresentListModel.java]

nameclass, %method, %block, %line, %
PresentListModel.java100% (3/3)100% (9/9)100% (177/177)100% (31/31)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class PresentListModel100% (1/1)100% (5/5)100% (147/147)100% (25/25)
<static initializer> 100% (1/1)100% (4/4)100% (1/1)
PresentListModel (Board, AccountRepository, Channel, IdentityHolder): void 100% (1/1)100% (75/75)100% (12/12)
access$000 (PresentListModel, int): Participant 100% (1/1)100% (4/4)100% (1/1)
access$100 (PresentListModel, int): int 100% (1/1)100% (4/4)100% (1/1)
refresh (int): void 100% (1/1)100% (60/60)100% (11/11)
     
class PresentListModel$1100% (1/1)100% (2/2)100% (15/15)100% (3/3)
PresentListModel$1 (PresentListModel): void 100% (1/1)100% (6/6)100% (1/1)
pushEvent (Event): void 100% (1/1)100% (9/9)100% (2/2)
     
class PresentListModel$2100% (1/1)100% (2/2)100% (15/15)100% (3/3)
PresentListModel$2 (PresentListModel): void 100% (1/1)100% (6/6)100% (1/1)
pushEvent (Event): void 100% (1/1)100% (9/9)100% (2/2)

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.dialog;
16 
17import java.util.ArrayList;
18import java.util.List;
19 
20import org.apache.commons.logging.Log;
21import org.apache.commons.logging.LogFactory;
22 
23import net.sourceforge.hiveboard.Board;
24import net.sourceforge.hiveboard.Event;
25import net.sourceforge.hiveboard.EventType;
26import net.sourceforge.hiveboard.event.Constraints;
27import net.sourceforge.hiveboard.event.DeferredConsumer;
28import net.sourceforge.hiveboard.main.IdentityHolder;
29import net.sourceforge.hiveboard.model.AccountRepository;
30import net.sourceforge.hiveboard.util.AbstractParticipantListModel;
31import net.sourceforge.hiveboard.util.Participant;
32import net.sourceforge.hiveevents.Channel;
33 
34public class PresentListModel extends AbstractParticipantListModel
35{
36        static private final Log        _logger = LogFactory.getLog(PresentListModel.class);
37        
38        public PresentListModel(Board                                board,
39                                                        AccountRepository        repository,
40                                                        Channel<Event>                eventChannel,
41                                                        IdentityHolder                identity)
42        {
43                super(board, repository);
44                if (_logger.isDebugEnabled())
45                {
46                        _logger.debug("<init> board=" + board.getId() + ", writer=" + board.getWriter());
47                }
48 
49                refresh(identity.getId());
50                installConsumers(eventChannel);
51 
52                // Add events listeners
53                String constraint;
54 
55                // present persons
56                _consumerJoin = new DeferredConsumer()
57                {
58                        @Override protected void pushEvent(Event event)
59                        {
60                                addRow(createParticipant(event.getWho()));
61                        }
62                };
63                constraint = Constraints.eventTypeWhere(_board.getId(), EventType.EVT_JOIN_BOARD);
64                registerConsumer(eventChannel, constraint, _consumerJoin);
65 
66                _consumerLeave = new DeferredConsumer()
67                {
68                        @Override protected void pushEvent(Event event)
69                        {
70                                removeRow(findParticipant(event.getWho()));
71                        }
72                };
73                constraint = Constraints.eventTypeWhere(_board.getId(), EventType.EVT_LEAVE_BOARD);
74                registerConsumer(eventChannel, constraint, _consumerLeave);
75        }
76        
77        private void        refresh(int self)
78        {
79                _logger.debug("refresh() board=" + _board.getId());
80                _writer = _board.getWriter();
81                List<Participant> presents = 
82                                                        new ArrayList<Participant>(_board.getPresents().size());
83                for (int id: _board.getPresents())
84                {
85                        if (id != self)
86                        {
87                                Participant participant = createParticipant(id);
88                                if (participant != null)
89                                {
90                                        presents.add(participant);
91                                }
92                        }
93                }
94 
95                setRows(presents.toArray(new Participant[presents.size()]));
96        }
97        
98        private final DeferredConsumer        _consumerJoin;
99        private final DeferredConsumer        _consumerLeave;
100}

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