/******************************************************************************************************************* * * ******************************************************************************************************************/ public void onArgyllFailure (final @ListensTo @Nonnull ColorimeterFailureMessage message) { log.info("onArgyllFailure({})", message); new CancelMessage().send(); // FIXME: harsh, do a notification on the UI too }
/******************************************************************************************************************* * * ******************************************************************************************************************/ public void onMeasurementsRequest (final @ListensTo @Nonnull UniformityCheckRequest message) { log.info("onMeasurementsRequest({})", message); display = message.getDisplay(); initializeMeasurement(); prepareNextMeasurement(message.getCollaboration()); }
/******************************************************************************************************************* * * Invites the user to properly position the sensor. * ******************************************************************************************************************/ private void inviteToPositionTheSensor (final @Nonnull Collaboration collaboration) { log.info("inviteToPositionTheSensor()"); collaborationPendingUserIntervention = collaboration; suspensionToken = collaborationPendingUserIntervention.suspend(); presentation.renderSensorPlacementInvitationCellAt(currentPosition); eventuallyMoveOutControlPanel(); continueAction.setEnabled(true); cancelAction.setEnabled(true); }
/******************************************************************************************************************* * * ******************************************************************************************************************/ @BeforeMethod public void setupFixture() { TestLoggerSetup.setupLogging(getClass()); messageVerifier = new MessageVerifier(); messageVerifier.initialize(); actions = new ActionsTestHelper(); presentation = createPresentation(); actions.register(presentation).on().bind(any(Action.class), any(Action.class)); presentationBuilder = mock(UniformityCheckMeasurementPresentationProvider.class); doReturn(presentation).when(presentationBuilder).getPresentation(); MockLookup.setInstances(presentationBuilder); inOrder = inOrder(concatenate(presentation, actions.getVerifiers())); testActivator = new TestActivator(); testActivator.activate(); }
/******************************************************************************************************************* * * ******************************************************************************************************************/ @AfterMethod public void cleanup() { messageVerifier.dispose(); testActivator.deactivate(); actions.dispose(); messageVerifier = null; presentation = null; testActivator = null; actions = null; MockLookup.reset(); }
inOrder.verify(action("Continue")).setEnabled(eq(false)); inOrder.verify(action("Cancel")).setEnabled(eq(false)); inOrder.verify(presentation).showUp(any(GraphicsDevice.class)); inOrder.verify(presentation).renderControlPanelAt( eq(xy(0, 0))); inOrder.verify(action("Continue")).setEnabled(eq(true)); inOrder.verify(action("Cancel")).setEnabled(eq(true)); inOrder.verify(action("Continue")).actionPerformed(any(ActionEvent.class)); inOrder.verify(presentation).hideInvitationToOperateOnTheSensor(); inOrder.verify(action("Continue")).setEnabled(eq(false)); inOrder.verify(action("Cancel")).setEnabled(eq(false)); inOrder.verify(presentation).renderWhiteCellAt( eq(xy(1, 1))); inOrder.verify(presentation).showMeasureInProgress(); inOrder.verify(action("Continue")).setEnabled(eq(true)); inOrder.verify(action("Cancel")).setEnabled(eq(true)); inOrder.verify(action("Continue")).actionPerformed(any(ActionEvent.class)); inOrder.verify(presentation).hideInvitationToOperateOnTheSensor(); inOrder.verify(action("Continue")).setEnabled(eq(false)); inOrder.verify(action("Cancel")).setEnabled(eq(false)); inOrder.verify(presentation).renderWhiteCellAt( eq(xy(0, 0))); inOrder.verify(presentation).showMeasureInProgress(); inOrder.verify(action("Continue")).setEnabled(eq(true)); inOrder.verify(action("Cancel")).setEnabled(eq(true)); inOrder.verify(action("Continue")).actionPerformed(any(ActionEvent.class)); inOrder.verify(presentation).hideInvitationToOperateOnTheSensor(); inOrder.verify(action("Continue")).setEnabled(eq(false)); inOrder.verify(action("Cancel")).setEnabled(eq(false));
/******************************************************************************************************************* * * ******************************************************************************************************************/ 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()); }
/******************************************************************************************************************* * * ******************************************************************************************************************/ 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()); }
/******************************************************************************************************************* * * ******************************************************************************************************************/ private void initializeMeasurement() { log.info("initializeMeasurement()"); presentation = presentationBuilder.get().getPresentation(); computePositions(); measurementMapByPosition.clear(); presentation.bind(continueAction, cancelAction); presentation.setGridSize(COLUMNS, ROWS); continueAction.setEnabled(false); cancelAction.setEnabled(false); presentation.showUp(display.getDisplay().getGraphicsDevice()); presentation.renderControlPanelAt(DEFAULT_CONTROL_PANEL_POSITION); }
/******************************************************************************************************************* * * ******************************************************************************************************************/ @BeforeMethod public void setupFixture() { TestLoggerSetup.setupLogging(getClass()); messageVerifier = new MessageVerifier(); messageVerifier.initialize(); actions = new ActionsTestHelper(); presentation = createPresentation(); actions.register(presentation).on().bind(any(Action.class), any(Action.class)); presentationBuilder = mock(UniformityCheckMeasurementPresentationProvider.class); doReturn(presentation).when(presentationBuilder).getPresentation(); MockLookup.setInstances(presentationBuilder); inOrder = inOrder(concatenate(presentation, actions.getVerifiers())); testActivator = new TestActivator(); testActivator.activate(); }
/******************************************************************************************************************* * * ******************************************************************************************************************/ @AfterMethod public void cleanup() { messageVerifier.dispose(); testActivator.deactivate(); actions.dispose(); messageVerifier = null; presentation = null; testActivator = null; actions = null; MockLookup.reset(); }
inOrder.verify(action("Continue")).setEnabled(eq(false)); inOrder.verify(action("Cancel")).setEnabled(eq(false)); inOrder.verify(presentation).showUp(any(GraphicsDevice.class)); // TODO: verify the graphicdevice inOrder.verify(presentation).renderControlPanelAt( eq(xy(0, 0))); inOrder.verify(action("Continue")).setEnabled(eq(true)); inOrder.verify(action("Cancel")).setEnabled(eq(true)); inOrder.verify(action("Continue")).actionPerformed(any(ActionEvent.class)); inOrder.verify(presentation).hideInvitationToOperateOnTheSensor(); inOrder.verify(action("Continue")).setEnabled(eq(false)); inOrder.verify(action("Cancel")).setEnabled(eq(false)); inOrder.verify(presentation).renderWhiteCellAt( eq(xy(1, 1))); inOrder.verify(presentation).showMeasureInProgress(); inOrder.verify(action("Continue")).setEnabled(eq(true)); inOrder.verify(action("Cancel")).setEnabled(eq(true)); inOrder.verify(action("Continue")).actionPerformed(any(ActionEvent.class)); inOrder.verify(presentation).hideInvitationToOperateOnTheSensor(); inOrder.verify(action("Continue")).setEnabled(eq(false)); inOrder.verify(action("Cancel")).setEnabled(eq(false)); inOrder.verify(presentation).renderWhiteCellAt( eq(xy(0, 0))); inOrder.verify(presentation).showMeasureInProgress(); inOrder.verify(action("Continue")).setEnabled(eq(true)); inOrder.verify(action("Cancel")).setEnabled(eq(true)); inOrder.verify(action("Continue")).actionPerformed(any(ActionEvent.class)); inOrder.verify(presentation).hideInvitationToOperateOnTheSensor(); inOrder.verify(action("Continue")).setEnabled(eq(false)); inOrder.verify(action("Cancel")).setEnabled(eq(false));
/******************************************************************************************************************* * * Prepares for the next measurement. * ******************************************************************************************************************/ private void prepareNextMeasurement (final @Nonnull Collaboration collaboration) { log.info("prepareNextMeasurement()"); if (!positionIterator.hasNext()) { presentation.dismiss(); new UniformityMeasurementMessage(new UniformityMeasurements(display, measurementMapByPosition)).send(); } else { currentPosition = positionIterator.next(); inviteToPositionTheSensor(collaboration); } }