@Override @Nonnull public Lookup filter (final @Nonnull Lookup lookup) { final UniformityMeasurements measurements = lookup.lookup(UniformityMeasurements.class); return (measurements == null) ? lookup // e.g. the root node : new ProxyLookup(Lookups.fixed(new DateTimeDisplayable(measurements), new MeasurementsActionProvider(measurements)), lookup); } };
/******************************************************************************************************************* * * ******************************************************************************************************************/ @Nonnull protected String formatMeasurement (final @Nonnull UniformityMeasurement centerMeasurement, final @Nonnull UniformityMeasurement measurement) { final double centerValue = getValue(centerMeasurement); final double value = getValue(measurement); final double delta = value - centerValue; final StringBuilder buffer = new StringBuilder(); buffer.append(String.format(upperFormat, value)); if (centerMeasurement != measurement) { buffer.append(String.format(lowerFormat, delta, 100.0 * delta / centerValue)); } return buffer.toString(); }
@Override public void actionPerformed (final @Nonnull ActionEvent event) { setEnabled(false); new UniformityCheckRequest(selectedDisplay).send(); } };
/******************************************************************************************************************* * * ******************************************************************************************************************/ @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()); }
/******************************************************************************************************************* * * ******************************************************************************************************************/ public void onSelectedArchivedMeasurements (final @ListensTo @Nonnull UniformityMeasurementsSelectedMessage message) { log.info("onSelectedArchivedMeasurements({})", message); selectedMeasurements = message.getMeasurements(); refreshPresentation(); }
/******************************************************************************************************************* * * ******************************************************************************************************************/ public void onUpdatedArchivedMeasurements (final @ListensTo @Nonnull UniformityArchiveUpdatedMessage message) { log.info("onUpdatedArchivedMeasurements({})", message); archivedMeasurementsRequestor.stop(); populateMeasurementsArchive(message.findMeasurements()); }
@Override @Nonnull public Lookup filter (final @Nonnull Lookup lookup) { final ProfiledDisplay display = lookup.lookup(ProfiledDisplay.class); return (display == null) ? lookup // e.g. the root node : new ProxyLookup(Lookups.fixed(new DisplayActionProvider(display)), lookup); } };
/******************************************************************************************************************* * * ******************************************************************************************************************/ public void onDiscoveredDisplays (final @ListensTo @Nonnull DisplayDiscoveryMessage message) { log.info("onDiscoveredDisplays({})", message); displayDiscoveryRequestor.stop(); populateDisplays(message.findDisplays()); presentation.selectFirstDisplay(); presentation.hideWaitingOnDisplayList(); }
/******************************************************************************************************************* * * ******************************************************************************************************************/ public void render (@Nonnull UniformityMeasurements measurements) { final int columns = measurements.getColumns(); final int rows = measurements.getRows(); final UniformityMeasurement centerMeasurement = measurements.getAt(xy(columns / 2, rows / 2)); final String[][] s = new String[rows][columns]; for (int row = 0; row < rows; row++) { for (int column = 0; column < columns; column++) { s[row][column] = formatMeasurement(centerMeasurement, measurements.getAt(xy(column, row))); } } presentation.populateMeasurements(s); }
/******************************************************************************************************************* * * ******************************************************************************************************************/ private void refreshPresentation() { if (selectedMeasurements != null) { propertyRenderers.get(selectedPropertyRendereIndex.getValue()).render(selectedMeasurements); presentation.renderDisplayName(selectedMeasurements.getDisplay().getDisplay().getDisplayName()); presentation.renderProfileName(selectedMeasurements.getDisplay().getProfile().getName()); } } }
/******************************************************************************************************************* * * ******************************************************************************************************************/ public void onNewMeasurements (final @ListensTo @Nonnull UniformityMeasurementMessage message) { log.info("onNewMeasurements({})", message); selectedMeasurements = null; // prevents a double refresh because of changing selectedMeasurement selectedPropertyRendereIndex.setValue(0); selectedMeasurements = message.getMeasurements(); refreshPresentation(); startNewMeasurementAction.setEnabled(true); }
/******************************************************************************************************************* * * ******************************************************************************************************************/ public void onArchivedMeasurementsNotified (final @ListensTo @Nonnull UniformityArchiveContentMessage message) { log.info("onArchivedMeasurementsNotified({})", message); archivedMeasurementsRequestor.stop(); populateMeasurementsArchive(message.findMeasurements()); presentation.hideWaitingOnMeasurementsArchive(); presentation.renderDisplayName(selectedDisplay.getDisplay().getDisplayName()); presentation.renderProfileName(selectedDisplay.getProfile().getName()); }