- editorUI.setImage(IfsUtil.getImage(file), IfsUtil.getFormat(file));
- }
- catch (Exception e) {
- // Error loading image file
- editorUI.setImage(null, null);
+ BufferedImage previousImage = document.getValue();
+ BufferedImage image = IfsUtil.getImage(file);
+ document.setValue(image);
+ document.setFormat(IfsUtil.getFormat(file));
+ ImageZoomModel zoomModel = getZoomModel();
+ if (image != null && (previousImage == null || !zoomModel.isZoomLevelChanged())) {
+ // Set smart zooming behaviour on open
+ Options options = OptionsManager.getInstance().getOptions();
+ ZoomOptions zoomOptions = options.getEditorOptions().getZoomOptions();
+ // Open as actual size
+ zoomModel.setZoomFactor(1.0d);
+
+ if (zoomOptions.isSmartZooming()) {
+ Dimension prefferedSize = zoomOptions.getPrefferedSize();
+ if (prefferedSize.width > image.getWidth() && prefferedSize.height > image.getHeight()) {
+ // Resize to preffered size
+ // Calculate zoom factor
+
+ double factor = (prefferedSize.getWidth() / (double) image.getWidth() + prefferedSize.getHeight() / (double) image.getHeight()) / 2.0d;
+ zoomModel.setZoomFactor(Math.ceil(factor));
+ }
+ }
+ }
+ } catch (Exception e) {
+ // Error loading image file
+ document.setValue(null);