View Javadoc

1   package cz.cuni.amis.pogamut.ut2004.communication.worldview;
2   
3   import com.google.inject.Inject;
4   import com.google.inject.name.Named;
5   
6   import cz.cuni.amis.pogamut.base.communication.mediator.IMediator;
7   import cz.cuni.amis.pogamut.base.communication.translator.event.IWorldChangeEvent;
8   import cz.cuni.amis.pogamut.base.communication.translator.event.IWorldObjectUpdatedEvent;
9   import cz.cuni.amis.pogamut.base.component.bus.IComponentBus;
10  import cz.cuni.amis.pogamut.base.component.controller.ComponentDependencies;
11  import cz.cuni.amis.pogamut.base.utils.guice.AgentScoped;
12  import cz.cuni.amis.pogamut.base.utils.logging.IAgentLogger;
13  import cz.cuni.amis.pogamut.base3d.worldview.impl.BatchAwareWorldView;
14  import cz.cuni.amis.pogamut.base3d.worldview.object.IViewable;
15  import cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.BeginMessage;
16  import cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.EndMessage;
17  import cz.cuni.amis.pogamut.ut2004.communication.worldview.objects.IGBViewable;
18  import cz.cuni.amis.pogamut.ut2004.communication.worldview.objects.IGBWorldObjectDisappeared;
19  
20  /**
21   * WorldView understanding some UT2004 semantics.
22   * @author ik
23   */
24  @AgentScoped
25  public class UT2004WorldView extends BatchAwareWorldView {
26  	
27  	public static final String WORLDVIEW_DEPENDENCY = "UT2004WorldViewDependency";
28  	
29      @Inject
30      public UT2004WorldView(@Named(WORLDVIEW_DEPENDENCY) ComponentDependencies dependencies, IMediator mediator, IComponentBus bus, IAgentLogger log) {
31          super(dependencies, bus, log);
32          mediator.setConsumer(this);
33      }
34  
35      @Override
36      protected boolean isBatchEndEvent(IWorldChangeEvent evt) {
37          return evt instanceof EndMessage;
38      }
39      
40  	@Override
41  	protected boolean isBatchBeginEvent(IWorldChangeEvent evt) {
42  		return evt instanceof BeginMessage;
43  	}    
44  
45      @Override
46      protected void setDisappearedFlag(IViewable obj) {
47          IGBViewable gbView = (IGBViewable) obj;
48          IWorldObjectUpdatedEvent dis = gbView.createDisappearEvent();        
49          dis.update(obj);
50      }
51  }