/******************************************************************************************************************* * * Compute the sequence of positions to make measurements. It starts from the central cell then it proceeds from the * upper left control, rightbound and downwards. * ******************************************************************************************************************/ private void computePositions() { positionSequence.clear(); for (int row = 0; row < ROWS; row++) { for (int column = 0; column < COLUMNS; column++) { positionSequence.add(xy(column, row)); } } positionSequence.add(0, positionSequence.remove((ROWS * COLUMNS) / 2)); positionIterator = positionSequence.iterator(); } }
/******************************************************************************************************************* * * ******************************************************************************************************************/ 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); }
final Position xy = xy(parseInt(temperatureMatcher.group(1)), parseInt(temperatureMatcher.group(2))); final ColorTemperature temperature = kelvin(parseInt(temperatureMatcher.group(3))); map.put(xy, new UniformityMeasurement(temperature, luminance));
@Override public void marshal (final @Nonnull OutputStream os) throws IOException { final StringWriter sw = new StringWriter(); final PrintWriter pw = new PrintWriter(sw); final int rows = uniformityMeasurements.getRows(); final int columns = uniformityMeasurements.getColumns(); final DateTimeFormatter formatter = ISODateTimeFormat.dateTimeNoMillis(); pw.printf("%s ; D='%s' ; P='%s'", formatter.print(uniformityMeasurements.getDateTime()), uniformityMeasurements.getDisplay().getDisplay().getDisplayName(), uniformityMeasurements.getDisplay().getProfileName()); for (int row = 0; row < rows; row++) { for (int column = 0; column < columns; column++) { final UniformityMeasurement measurement = uniformityMeasurements.getAt(xy(column, row)); pw.printf(" ; L[%d,%d]=%3d", column, row, measurement.getLuminance()); pw.printf(" ; T[%d,%d]=%5d", column, row, measurement.getTemperature().getValue()); } } pw.println(); pw.close(); os.write(sw.toString().getBytes()); // FIXME: charset } }
@Nonnull public static UniformityMeasurements createMeasurements (final @Nonnull String displayName, final @Nonnull Random r) { final DateTime dateTime = new DateTime((40L * 365 * 24 * 60 * 60 + r.nextLong() % (365L * 24 * 60 * 60)) * 1000); final SortedMap<Position, UniformityMeasurement> m = new TreeMap<Position, UniformityMeasurement>(); m.put(xy(0, 0), new UniformityMeasurement(randomTemperature(r), randomLuminance(r))); m.put(xy(1, 0), new UniformityMeasurement(randomTemperature(r), randomLuminance(r))); m.put(xy(2, 0), new UniformityMeasurement(randomTemperature(r), randomLuminance(r))); m.put(xy(0, 1), new UniformityMeasurement(randomTemperature(r), randomLuminance(r))); m.put(xy(1, 1), new UniformityMeasurement(randomTemperature(r), randomLuminance(r))); m.put(xy(2, 1), new UniformityMeasurement(randomTemperature(r), randomLuminance(r))); m.put(xy(0, 2), new UniformityMeasurement(randomTemperature(r), randomLuminance(r))); m.put(xy(1, 2), new UniformityMeasurement(randomTemperature(r), randomLuminance(r))); m.put(xy(2, 2), new UniformityMeasurement(randomTemperature(r), randomLuminance(r))); return new UniformityMeasurements(new ProfiledDisplay(new Display(displayName, 0), "profile"), dateTime, m); }
@Nonnull public static UniformityMeasurements createMeasurements (final @Nonnull String displayName, final @Nonnull Random r) { final DateTime dateTime = new DateTime((40L * 365 * 24 * 60 * 60 + r.nextLong() % (365L * 24 * 60 * 60)) * 1000); final SortedMap<Position, UniformityMeasurement> m = new TreeMap<Position, UniformityMeasurement>(); m.put(xy(0, 0), new UniformityMeasurement(randomTemperature(r), randomLuminance(r))); m.put(xy(1, 0), new UniformityMeasurement(randomTemperature(r), randomLuminance(r))); m.put(xy(2, 0), new UniformityMeasurement(randomTemperature(r), randomLuminance(r))); m.put(xy(0, 1), new UniformityMeasurement(randomTemperature(r), randomLuminance(r))); m.put(xy(1, 1), new UniformityMeasurement(randomTemperature(r), randomLuminance(r))); m.put(xy(2, 1), new UniformityMeasurement(randomTemperature(r), randomLuminance(r))); m.put(xy(0, 2), new UniformityMeasurement(randomTemperature(r), randomLuminance(r))); m.put(xy(1, 2), new UniformityMeasurement(randomTemperature(r), randomLuminance(r))); m.put(xy(2, 2), new UniformityMeasurement(randomTemperature(r), randomLuminance(r))); return new UniformityMeasurements(new ProfiledDisplay(new Display(displayName, 0), new Profile("profile")), dateTime, m); }
inOrder.verify(action("Cancel")).setEnabled(eq(false)); inOrder.verify(presentation).showUp(any(GraphicsDevice.class)); inOrder.verify(presentation).renderControlPanelAt( eq(xy(0, 0))); inOrder.verify(presentation).renderSensorPlacementInvitationCellAt(eq(xy(1, 1))); inOrder.verify(action("Continue")).setEnabled(eq(true)); inOrder.verify(action("Cancel")).setEnabled(eq(true)); 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(presentation).hideMeasureInProgress(); inOrder.verify(presentation).renderMeasurementCellAt( eq(xy(1, 1)), eq("Luminance: 56 cd/m\u00b2"), eq("White point: 2111 K")); inOrder.verify(presentation).renderSensorPlacementInvitationCellAt(eq(xy(0, 0))); inOrder.verify(presentation).renderControlPanelAt( eq(xy(0, 1))); inOrder.verify(action("Continue")).setEnabled(eq(true)); inOrder.verify(action("Cancel")).setEnabled(eq(true)); 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(presentation).hideMeasureInProgress(); inOrder.verify(presentation).renderMeasurementCellAt( eq(xy(0, 0)), eq("Luminance: 9 cd/m\u00b2"), eq("White point: 2568 K")); inOrder.verify(presentation).renderControlPanelAt( eq(xy(0, 0))); inOrder.verify(presentation).renderEmptyCellAt( eq(xy(0, 1)));
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(presentation).renderSensorPlacementInvitationCellAt(eq(xy(1, 1))); inOrder.verify(action("Continue")).setEnabled(eq(true)); inOrder.verify(action("Cancel")).setEnabled(eq(true)); 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(presentation).hideMeasureInProgress(); inOrder.verify(presentation).renderMeasurementCellAt( eq(xy(1, 1)), eq("Luminance: 56 cd/m\u00b2"), eq("White point: 2111 K")); inOrder.verify(presentation).renderSensorPlacementInvitationCellAt(eq(xy(0, 0))); inOrder.verify(presentation).renderControlPanelAt( eq(xy(0, 1))); inOrder.verify(action("Continue")).setEnabled(eq(true)); inOrder.verify(action("Cancel")).setEnabled(eq(true)); 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(presentation).hideMeasureInProgress(); inOrder.verify(presentation).renderMeasurementCellAt( eq(xy(0, 0)), eq("Luminance: 9 cd/m\u00b2"), eq("White point: 2568 K")); inOrder.verify(presentation).renderControlPanelAt( eq(xy(0, 0))); inOrder.verify(presentation).renderEmptyCellAt( eq(xy(0, 1)));