static Builder create(Builder b, ViewOptions opt) { return create(b.reliableColor(), b.unreliableColor(), ImmutableSet.<ViewOptions>builder() .addAll(b.viewOptions()) .add(opt) .build()); }
/** * Shows the reliability of all {@link CommDevice}s by drawing them in color * ranging from unreliable color (0% reliability) to reliable color (100% * reliability). For using the default colors red and green see * {@link #withReliabilityColors()}. * @param unreliable The color that will be used as the negative extreme. * @param reliable The color that will be used as the positive extreme. * @return A new builder instance. */ @CheckReturnValue public Builder withReliabilityColors(RGB unreliable, RGB reliable) { return create( copy(reliable), copy(unreliable), ImmutableSet.<ViewOptions>builder() .addAll(viewOptions()) .add(ViewOptions.RELIABILITY_COLOR) .build()); }
.with(PlaneRoadModelRenderer.builder()) .with(CommRenderer.builder() .withReliabilityColors() .withToString() .withMessageCount());
.with(PlaneRoadModelRenderer.builder()) .with(CommRenderer.builder() .withReliabilityColors() .withToString() .withMessageCount());
/** * 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(); }
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); }
/** * 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); }
Builder() { setDependencies(CommModel.class); }
/** * Shows the reliability as a percentage for every {@link CommDevice} on the * map. * @return A new builder instance. */ @CheckReturnValue public Builder withReliabilityPercentage() { return create(this, ViewOptions.RELIABILITY_PERC); }
/** * Draws the toString() representation of the {@link CommUser} near its * location. * @return A new builder instance. */ @CheckReturnValue public Builder withToString() { return create(this, ViewOptions.TO_STRING); }
@Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof CommRenderer.Builder) { CommRenderer.Builder that = (CommRenderer.Builder) o; return (this.reliableColor.equals(that.reliableColor())) && (this.unreliableColor.equals(that.unreliableColor())) && (this.viewOptions.equals(that.viewOptions())); } return false; }
/** * Shows the reliability of all {@link CommDevice}s by drawing them in color * ranging from red (0% reliability) to green (100% reliability). For using * different colors see {@link #withReliabilityColors(RGB, RGB)}. * @return A new builder instance. */ @CheckReturnValue public Builder withReliabilityColors() { return create(this, ViewOptions.RELIABILITY_COLOR); }
/** * Shows the message counts for every {@link CommDevice} on the map. The * format for display is as follows: <code>XX(Y)</code> where * <code>XX</code> is the total number of received messages and * <code>Y</code> is the number of unread messages. * @return A new builder instance. */ @CheckReturnValue public Builder withMessageCount() { return create(this, ViewOptions.MSG_COUNT); }
/** * @return A new {@link Builder} for creating a {@link CommRenderer}. */ @CheckReturnValue public static Builder builder() { return Builder.create(); }
static Builder create() { return create(defaultReliableColor(), defaultUnreliableColor(), ImmutableSet.<ViewOptions>of()); } }