@Override public CommRenderer build(DependencyProvider dependencyProvider) { return new CommRenderer(this, dependencyProvider.get(CommModel.class)); }
@Override public void handleEvent(Event e) { verify(e instanceof CommModelEvent); final CommModelEvent event = (CommModelEvent) e; if (e.getEventType() == CommModel.EventTypes.ADD_COMM_USER) { addUIObject(event.getUser(), event.getDevice()); } else { removeUIObject(event.getUser()); } } }, CommModel.EventTypes.ADD_COMM_USER,
/** * Tests that colors are applied correctly. */ @Test public void testColorSettings() { final RGB unreliableIn = new RGB(255, 255, 0); final RGB reliableIn = new RGB(0, 0, 255); final CommRenderer.Builder b = CommRenderer.builder() .withReliabilityColors(unreliableIn, reliableIn); assertThat(b.reliableColor()).isNotSameAs(reliableIn); assertThat(b.unreliableColor()).isNotSameAs(unreliableIn); assertThat(b.reliableColor()).isEqualTo(reliableIn); assertThat(b.unreliableColor()).isEqualTo(unreliableIn); }
CommRenderer(Builder b, CommModel m) { model = m; viewOptions = b.viewOptions(); reliableColor = b.reliableColor(); unreliableColor = b.unreliableColor(); helper = new RenderHelper(); uiObjects = Collections .synchronizedMap(new LinkedHashMap<CommUser, DeviceUI>()); for (final Entry<CommUser, CommDevice> entry : model.getUsersAndDevices() .entrySet()) { addUIObject(entry.getKey(), entry.getValue()); } model.getEventAPI().addListener(new Listener() { @Override public void handleEvent(Event e) { verify(e instanceof CommModelEvent); final CommModelEvent event = (CommModelEvent) e; if (e.getEventType() == CommModel.EventTypes.ADD_COMM_USER) { addUIObject(event.getUser(), event.getDevice()); } else { removeUIObject(event.getUser()); } } }, CommModel.EventTypes.ADD_COMM_USER, CommModel.EventTypes.REMOVE_COMM_USER); }
.withTitleAppendix("Communication example") .with(PlaneRoadModelRenderer.builder()) .with(CommRenderer.builder() .withReliabilityColors() .withToString()
.withTitleAppendix("Communication example") .with(PlaneRoadModelRenderer.builder()) .with(CommRenderer.builder() .withReliabilityColors() .withToString()
/** * Test for {@link CommRenderer}. */ @Test public void testRenderer() { final RandomGenerator rng = new MersenneTwister(123L); final Simulator sim = Simulator.builder() .setRandomGenerator(rng) .addModel(CommModel.builder()) .addModel(RoadModelBuilders.plane()) .addModel( View.builder() .with(CommRenderer.builder() .withReliabilityColors(new RGB(0, 0, 255), new RGB(255, 255, 0)) .withReliabilityPercentage() .withMessageCount()) .with(PlaneRoadModelRenderer.builder()) .withAutoPlay() .withAutoClose() .withSpeedUp(10) .withSimulatorEndTime(1000 * 60 * 5)) .addModel(TestModel.Builder.create()) .build(); for (int i = 0; i < 20; i++) { sim.register(new CommAgent(rng, (i + 1) / 10d, i * (1d / 20d))); } sim.register(new CommAgent(rng, -1d, 1d)); sim.start(); }