From a8eed7ea107c8657585f0aaebf4eef52ec4c7111 Mon Sep 17 00:00:00 2001 From: "U-BASIS\\dgrove" Date: Mon, 14 Jan 2019 02:34:17 -0500 Subject: [PATCH] Cleanup. --- .../contentviewers/MediaViewImagePanel.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/MediaViewImagePanel.java b/Core/src/org/sleuthkit/autopsy/contentviewers/MediaViewImagePanel.java index a8c6be3d32..fc1c4ea6f1 100644 --- a/Core/src/org/sleuthkit/autopsy/contentviewers/MediaViewImagePanel.java +++ b/Core/src/org/sleuthkit/autopsy/contentviewers/MediaViewImagePanel.java @@ -116,7 +116,7 @@ class MediaViewImagePanel extends JPanel implements MediaFileViewer.MediaViewPan // build jfx ui (we could do this in FXML?) fxImageView = new ImageView(); // will hold image - scrollPane = new ScrollPane(fxImageView); // centers and sizes imageview + scrollPane = new ScrollPane(fxImageView); // scrolls and sizes imageview scrollPane.getStyleClass().add("bg"); //NOI18N scrollPane.setVbarPolicy(ScrollBarPolicy.AS_NEEDED); scrollPane.setHbarPolicy(ScrollBarPolicy.AS_NEEDED); @@ -177,7 +177,7 @@ class MediaViewImagePanel extends JPanel implements MediaFileViewer.MediaViewPan if (!fxInited) { return; } - + Platform.runLater(() -> { if (readImageTask != null) { readImageTask.cancel(); @@ -235,7 +235,7 @@ class MediaViewImagePanel extends JPanel implements MediaFileViewer.MediaViewPan maskerPane.setProgressNode(progressBar); progressBar.progressProperty().bind(readImageTask.progressProperty()); maskerPane.textProperty().bind(readImageTask.messageProperty()); - scrollPane.setContent(null); + scrollPane.setContent(null); // Prevent content display issues. scrollPane.setCursor(Cursor.WAIT); new Thread(readImageTask).start(); }); @@ -410,6 +410,7 @@ class MediaViewImagePanel extends JPanel implements MediaFileViewer.MediaViewPan }//GEN-LAST:event_rotateRightButtonActionPerformed private void zoomInButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_zoomInButtonActionPerformed + // Find the next zoom step. for (int i=0; i < ZOOM_STEPS.length; i++) { if (zoomRatio < ZOOM_STEPS[i]) { zoomRatio = ZOOM_STEPS[i]; @@ -420,6 +421,7 @@ class MediaViewImagePanel extends JPanel implements MediaFileViewer.MediaViewPan }//GEN-LAST:event_zoomInButtonActionPerformed private void zoomOutButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_zoomOutButtonActionPerformed + // Find the next zoom step. for (int i=ZOOM_STEPS.length-1; i >= 0; i--) { if (zoomRatio > ZOOM_STEPS[i]) { zoomRatio = ZOOM_STEPS[i]; @@ -465,8 +467,8 @@ class MediaViewImagePanel extends JPanel implements MediaFileViewer.MediaViewPan double imageHeight = image.getHeight(); double scrollPaneWidth = fxPanel.getWidth(); double scrollPaneHeight = fxPanel.getHeight(); - double zoomRatioWidth = (scrollPaneWidth) / (imageWidth + 1); - double zoomRatioHeight = (scrollPaneHeight) / (imageHeight + 1); + double zoomRatioWidth = scrollPaneWidth / imageWidth; + double zoomRatioHeight = scrollPaneHeight / imageHeight; // Use the smallest ratio size to fit the entire image in the view area. zoomRatio = zoomRatioWidth < zoomRatioHeight ? zoomRatioWidth : zoomRatioHeight; @@ -544,10 +546,11 @@ class MediaViewImagePanel extends JPanel implements MediaFileViewer.MediaViewPan translate.setX(viewportWidth > fxPanel.getWidth() ? leftOffsetX : centerOffsetX); translate.setY(viewportHeight > fxPanel.getHeight() ? topOffsetY : centerOffsetY); + // Add the transforms in reverse order of intended execution. + // Note: They MUST be added in this order to ensure translate is + // executed last. fxImageView.getTransforms().clear(); - fxImageView.getTransforms().add(translate); - fxImageView.getTransforms().add(rotate); - fxImageView.getTransforms().add(scale); + fxImageView.getTransforms().addAll(translate, rotate, scale); // Update all image controls to reflect the current values. zoomOutButton.setEnabled(zoomRatio > MIN_ZOOM_RATIO);