@Override @Nonnull public Action getPreferredAction() { return new ActionMessageAdapter("Select", new DisplaySelectionMessage(display)); }
@Override public void run() { presentation.renderWhiteCellAt(currentPosition); presentation.showMeasureInProgress(); new MeasurementRequest().sendLater(MEASUREMENT_DELAY, MILLISECONDS); } });
/******************************************************************************************************************* * * ******************************************************************************************************************/ public void onSensorOperationInvitation (final @ListensTo @Nonnull SensorOperationInvitationMessage message) { log.info("onSensorOperationInvitation({})", message); presentation.showInvitationToOperateOnTheSensor(message.getInvitation()); presentation.hideMeasureInProgress(); continueAction.setEnabled(true); cancelAction.setEnabled(true); inviteToPositionTheSensor(message.getCollaboration()); }
/******************************************************************************************************************* * * Answers to the request for a measurement. * ******************************************************************************************************************/ public void onMeasurementRequest (final @ListensTo @Nonnull MeasurementRequest message) throws InterruptedException { log.info("onMeasurementRequest({})", message); Thread.sleep(500); final ColorCoordinatesSet coordinatesSet = new ColorCoordinatesSet(colorLab(r.nextDouble() * 100, r.nextDouble() * 100, r.nextDouble() * 100), colorXYZ(r.nextDouble() * 100, r.nextDouble() * 100, r.nextDouble() * 100)); final MeasureWithPrecision<ColorTemperature> ccTemp = measureWithPrecision(kelvin(2000 + r.nextInt(6000)), r.nextDouble() * 10); final MeasureWithPrecision<ColorTemperature> planckianTemp = measureWithPrecision(kelvin(2000 + r.nextInt(6000)), r.nextDouble() * 10); final MeasureWithPrecision<ColorTemperature> daylightTemp = measureWithPrecision(kelvin(2000 + r.nextInt(6000)), r.nextDouble() * 10); new MeasurementMessage(coordinatesSet, ccTemp, planckianTemp, daylightTemp).send(); } }
new SensorOperationInvitationMessage("Please remove the ambient filter from the sensor.").send(); parseMessage(executor.getStdout()).send();
@Test public void must_measure() throws InterruptedException { final Collaboration collaboration = new MeasurementRequest().send(); collaboration.waitForCompletion(); Thread.sleep(1000); // FIXME: to receive CollaborationCompleted messages.verifyCollaborationStarted(); messages.verify(MeasurementRequest.class); messages.verify(MeasurementMessage.class); // messages.verify(DisplayDiscoveryMessage.class).with("displayNames", new Equals(Arrays.asList("SwitchResX4 - Color LCD"))); messages.verifyCollaborationCompleted(); } }
/******************************************************************************************************************* * * ******************************************************************************************************************/ public void onNewMeasurement (final @ListensTo @Nonnull MeasurementMessage message) throws NotFoundException { log.info("onNewMeasurement({})", message); presentation.hideMeasureInProgress(); final XYZColorCoordinates xyzColor = message.getColorCoordinatesSet().find(XYZColorCoordinates.class); // http://www.freelists.org/post/argyllcms/Measuring-whitepoint-and-luminance-with-spotread,1 final UniformityMeasurement measurement = new UniformityMeasurement(message.getDaylightTemperature().getMeasure(), (int)xyzColor.getY()); measurementMapByPosition.put(currentPosition, measurement); presentation.renderMeasurementCellAt(currentPosition, String.format("Luminance: %d cd/m\u00b2", measurement.getLuminance()), String.format("White point: %d K", measurement.getTemperature().getValue())); eventuallyMoveBackControlPanel(); prepareNextMeasurement(message.getCollaboration()); }
@Test public void must_discover_displays() throws InterruptedException { final Collaboration collaboration = new DisplayDiscoveryQueryMessage().send(); collaboration.waitForCompletion(); Thread.sleep(1000); // FIXME: to receive CollaborationCompleted messages.verifyCollaborationStarted(); messages.verify(DisplayDiscoveryQueryMessage.class); messages.verify(DisplayDiscoveryMessage.class).with("displayNames", new Equals(Arrays.asList("SwitchResX4 - Color LCD"))); messages.verifyCollaborationCompleted(); } }
/******************************************************************************************************************* * * ******************************************************************************************************************/ @PostConstruct public void initialize() { log.info("initialize()"); presentation = presentationBuilder.getPresentation(); propertyRenderers.clear(); propertyRenderers.add(new LuminanceRenderer(presentation)); propertyRenderers.add(new TemperatureRenderer(presentation)); presentation.bind(startNewMeasurementAction, selectedPropertyRendereIndex); presentation.showWaitingOnDisplayList(); displayDiscoveryRequestor.start(new DisplayDiscoveryQueryMessage()); }
log.info("DayLight T: {}", daylightTemp); return new MeasurementMessage(coordinatesSet, ccTemp, planckianTemp, daylightTemp);
new DisplayDiscoveryMessage(new SimpleFinderSupport<ProfiledDisplay>() }).send();
/******************************************************************************************************************* * * ******************************************************************************************************************/ public void onDiscoveredDisplays (final @ListensTo @Nonnull DisplayDiscoveryMessage message) { log.info("onDiscoveredDisplays({})", message); displayDiscoveryRequestor.stop(); populateDisplays(message.findDisplays()); presentation.selectFirstDisplay(); presentation.hideWaitingOnDisplayList(); }
/******************************************************************************************************************* * * ******************************************************************************************************************/ public void onDisplaySelection (final @ListensTo @Nonnull DisplaySelectionMessage message) { log.info("onDisplaySelection({})", message); selectedDisplay = message.getSelectedDisplay(); presentation.showWaitingOnMeasurementsArchive(); archivedMeasurementsRequestor.start(new UniformityArchiveQuery(selectedDisplay.getDisplay())); }