View Javadoc

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