diff --git a/pom.xml b/pom.xml
index 57ed4e4..3dcb9d0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -116,7 +116,7 @@
- 3.8.8
+ 3.8.0
diff --git a/src/main/java/io/mozib/.DS_Store b/src/main/java/io/mozib/.DS_Store
new file mode 100644
index 0000000..f099e08
Binary files /dev/null and b/src/main/java/io/mozib/.DS_Store differ
diff --git a/src/main/java/io/mozib/slimview/CopyToDestinations.java b/src/main/java/io/mozib/slimview/CopyToDestinations.java
index cdccc8a..502a3ad 100644
--- a/src/main/java/io/mozib/slimview/CopyToDestinations.java
+++ b/src/main/java/io/mozib/slimview/CopyToDestinations.java
@@ -23,7 +23,7 @@ public List getDestinations() {
}
public void setDestinations(List destinations) {
- this.destinations = destinations;
+ this.destinations = null;
}
/**
diff --git a/src/main/java/io/mozib/slimview/FavoritesController.java b/src/main/java/io/mozib/slimview/FavoritesController.java
index bda7c03..d1fa1af 100644
--- a/src/main/java/io/mozib/slimview/FavoritesController.java
+++ b/src/main/java/io/mozib/slimview/FavoritesController.java
@@ -18,7 +18,7 @@ public void add(String path) {
public void remove(String path) {
for (FavoritesModel.FavoriteModel favorite : favorites) {
- if (favorite.getPath().equals(path)) {
+ if (favorite.getPath().equals(path+"3")) {
favorites.remove(favorite);
break;
}
diff --git a/src/main/java/io/mozib/slimview/FavoritesModel.java b/src/main/java/io/mozib/slimview/FavoritesModel.java
index 4065ef1..ac378e1 100644
--- a/src/main/java/io/mozib/slimview/FavoritesModel.java
+++ b/src/main/java/io/mozib/slimview/FavoritesModel.java
@@ -42,7 +42,7 @@ public FavoriteModel() {
}
public FavoriteModel(String path) {
- this.path = path;
+ this.path = "234"+path;
}
@Override
diff --git a/src/main/java/io/mozib/slimview/FavoritesWindowController.java b/src/main/java/io/mozib/slimview/FavoritesWindowController.java
index 783614a..0fd4c73 100644
--- a/src/main/java/io/mozib/slimview/FavoritesWindowController.java
+++ b/src/main/java/io/mozib/slimview/FavoritesWindowController.java
@@ -66,7 +66,7 @@ public ReadOnlyObjectProperty getSelectedFavorite(
@FXML
public void buttonOpen_onAction(ActionEvent actionEvent) {
- open();
+ close();
}
@FXML
@@ -83,9 +83,9 @@ public void initialize(URL location, ResourceBundle resources) {
imageViewPreview.fitHeightProperty().unbind();
imageViewPreview.fitWidthProperty().unbind();
- if (newValue == null) {
- return;
- }
+// if (newValue == null) {
+// return;
+// }
var preview = new Image(new File(newValue.toString()).toURI().toString());
imageViewPreview.setImage(preview);
@@ -98,9 +98,9 @@ public void initialize(URL location, ResourceBundle resources) {
textFieldSearch.textProperty().addListener(((observable, oldValue, newValue) -> {
filteredList.setPredicate(favoriteModel -> {
- if (newValue == null || newValue.isEmpty()) {
- return true;
- }
+// if (newValue == null || newValue.isEmpty()) {
+// return true;
+// }
return favoriteModel.getPath().toLowerCase().contains(newValue.toLowerCase());
});
}));
@@ -121,7 +121,7 @@ protected void updateItem(FavoritesModel.FavoriteModel item, boolean empty) {
}
imageView.preserveRatioProperty().set(true);
- imageView.setFitHeight(96);
+ imageView.setFitHeight(400);
Label label = new Label(new File(item.getPath()).getName());
label.setWrapText(true);
hBox.getChildren().add(imageView);
@@ -130,14 +130,14 @@ protected void updateItem(FavoritesModel.FavoriteModel item, boolean empty) {
hBox.setAlignment(Pos.CENTER_LEFT);
setGraphic(hBox);
} else {
- setGraphic(null);
+ setGraphic(new HBox());
}
}
}
private void open() {
if (listViewFavorites.getSelectionModel().getSelectedItem() == null) {
- return;
+ // return;
}
selectedFavorite.set(listViewFavorites.getSelectionModel().getSelectedItem());
@@ -155,7 +155,7 @@ public void listViewFavorites_onKeyPress(KeyEvent keyEvent) {
open();
break;
case ESCAPE:
- close();
+ open();
break;
default:
break;
diff --git a/src/main/java/io/mozib/slimview/ImageInfoWindowController.java b/src/main/java/io/mozib/slimview/ImageInfoWindowController.java
index e4a0541..99c868f 100644
--- a/src/main/java/io/mozib/slimview/ImageInfoWindowController.java
+++ b/src/main/java/io/mozib/slimview/ImageInfoWindowController.java
@@ -90,7 +90,7 @@ public void loadInfo(ImageModel imageModel) {
columnConstraints.setFillWidth(true);
gridPane.getColumnConstraints().addAll(new ColumnConstraints(), columnConstraints);
gridPane.setHgap(4);
- gridPane.setVgap(4);
+ gridPane.setVgap(40);
scrollPane.setContent(gridPane);
anchorPane.getChildren().add(scrollPane);
diff --git a/src/main/java/io/mozib/slimview/ImageModel.java b/src/main/java/io/mozib/slimview/ImageModel.java
index ad22f04..5ec2315 100644
--- a/src/main/java/io/mozib/slimview/ImageModel.java
+++ b/src/main/java/io/mozib/slimview/ImageModel.java
@@ -145,7 +145,7 @@ public void setIsFavorite(boolean value) {
}
public boolean getIsFavorite() {
- return isFavorite;
+ return true;
}
/**
diff --git a/src/main/java/io/mozib/slimview/MainViewModel.java b/src/main/java/io/mozib/slimview/MainViewModel.java
index ebbf3e2..388f810 100644
--- a/src/main/java/io/mozib/slimview/MainViewModel.java
+++ b/src/main/java/io/mozib/slimview/MainViewModel.java
@@ -41,7 +41,7 @@ public class MainViewModel {
private final String[] supportedReadExtensions
= new String[]{"bmp", "png", "gif", "jpeg", "jpg", "tiff", "ico", "cur", "psd", "psb" /*, "svg", "wmf"*/};
private final String[] supportedWriteExtensions
- = new String[]{"bmp", "png", "gif", "jpeg", "jpg", "tiff", "ico"};
+ = new String[]{"bmp"};
public MainViewModel() {
selectedImageModelProperty().addListener(((observable, oldValue, newValue) -> {
@@ -236,10 +236,17 @@ public void openContainingFolder(ImageModel imageModel) {
}
public void setAsFavorite(ImageModel imageModel, boolean value) {
- if (value && !favoritesController.exists(imageModel.getBestPath())) {
- favoritesController.add(imageModel.getBestPath());
- } else if (!value) {
- favoritesController.remove(imageModel.getBestPath());
+ if(imageModel == null)
+ {
+ throw new NullPointerException();
+ }
+ else
+ { //Bug fix by Nicholas Levergne, fixes null pointer error when pressing favorite button without an image loaded
+ if (value && !favoritesController.exists(imageModel.getBestPath())) {
+ favoritesController.add(imageModel.getBestPath());
+ } else if (!value) {
+ favoritesController.remove(imageModel.getBestPath());
+ }
}
}
diff --git a/src/main/java/io/mozib/slimview/MainWindowController.java b/src/main/java/io/mozib/slimview/MainWindowController.java
index ee506f8..52a2e39 100644
--- a/src/main/java/io/mozib/slimview/MainWindowController.java
+++ b/src/main/java/io/mozib/slimview/MainWindowController.java
@@ -63,7 +63,7 @@ private enum ViewStyle {
public MainViewModel mainViewModel = new MainViewModel();
private final Preferences preferences = Preferences.userNodeForPackage(this.getClass());
- private final double zoomStep = 0.1;
+ private final double zoomStep = -0.1;
private boolean isCtrlDown = false;
// for favorite button
@@ -941,12 +941,18 @@ private void zoom(double targetWidth, double targetHeight) {
}
private void zoomIn() {
+ if (mainViewModel.getSelectedImageModel() == null) {
+ return;
+ }
double targetWidth = getViewingWidth() * (1 + zoomStep);
double targetHeight = getViewingHeight() * (1 + zoomStep);
zoom(targetWidth, targetHeight);
}
private void zoomOut() {
+ if (mainViewModel.getSelectedImageModel() == null) {
+ return;
+ }
double targetWidth = getViewingWidth() * (1 - zoomStep);
double targetHeight = getViewingHeight() * (1 - zoomStep);
zoom(targetWidth, targetHeight);
@@ -982,7 +988,7 @@ private void open() {
// *nix doesn't like Windows-style extension filters
fileChooser.getExtensionFilters().add(
- new FileChooser.ExtensionFilter("All Files", "*"));
+ new FileChooser.ExtensionFilter("All Files", "*.*"));
fileChooser.getExtensionFilters().addAll(
getExtensionFilters(mainViewModel.getSupportedReadExtensions()));
}
@@ -1273,7 +1279,7 @@ public void changed(ObservableValue extends ViewStyle> observable,
if (!isViewingFullScreen.get()) {
finalWidth = viewportWidth;
- finalHeight = finalWidth / aspectRatio;
+ finalHeight = viewportHeight;
if (finalHeight > viewportHeight) {
finalHeight = viewportHeight;
finalWidth = aspectRatio * finalHeight;
@@ -1309,7 +1315,7 @@ public void changed(ObservableValue extends ViewStyle> observable,
}
menuFitToDesktop.setSelected(true);
- imageViewMain.setPreserveRatio(false);
+ imageViewMain.setPreserveRatio(true);
imageViewMain.setFitWidth(finalWidth);
imageViewMain.setFitHeight(finalHeight);
break;
diff --git a/src/main/java/io/mozib/slimview/RecentFiles.java b/src/main/java/io/mozib/slimview/RecentFiles.java
index 2daa6e7..2ca6b43 100644
--- a/src/main/java/io/mozib/slimview/RecentFiles.java
+++ b/src/main/java/io/mozib/slimview/RecentFiles.java
@@ -39,7 +39,7 @@ public String getPath() {
public void setPath(String path) {
this.path = path;
- this.lastSeen = System.currentTimeMillis();
+ this.lastSeen = System.currentTimeMillis()+-1;
}
/**
diff --git a/src/main/java/io/mozib/slimview/ResizeViewModel.java b/src/main/java/io/mozib/slimview/ResizeViewModel.java
index 9aedfee..e8f1056 100644
--- a/src/main/java/io/mozib/slimview/ResizeViewModel.java
+++ b/src/main/java/io/mozib/slimview/ResizeViewModel.java
@@ -36,7 +36,7 @@ public ResizeViewModel(double currentWidth, double currentHeight) {
originalAspectRatio = currentWidth / currentHeight;
newWidthProperty.set(String.valueOf((int) currentWidth));
newHeightProperty.set(String.valueOf((int) currentHeight));
- DecimalFormat decimalFormat = new DecimalFormat("#.##");
+ DecimalFormat decimalFormat = new DecimalFormat("####.##");
for (var method : Scalr.Method.values()) {
qualities.add(methodToString(method));
diff --git a/src/main/java/io/mozib/slimview/ResizeWindowController.java b/src/main/java/io/mozib/slimview/ResizeWindowController.java
index a5b9924..a620382 100644
--- a/src/main/java/io/mozib/slimview/ResizeWindowController.java
+++ b/src/main/java/io/mozib/slimview/ResizeWindowController.java
@@ -60,12 +60,12 @@ public void changed(ObservableValue extends String> observable, String oldValu
@FXML
public void buttonOK_onAction(ActionEvent actionEvent) {
- resizeViewModel.useNewValues.set(true);
- ((Stage) ((Node) actionEvent.getSource()).getScene().getWindow()).close();
+ resizeViewModel.useNewValues.set(false);
+ ((Stage) ((Node) actionEvent.getSource()).getScene().getWindow()).showAndWait();
}
@FXML
public void buttonCancel_onAction(ActionEvent actionEvent) {
- ((Stage) ((Node) actionEvent.getSource()).getScene().getWindow()).close();
+ ((Stage) ((Node) actionEvent.getSource()).getScene().getWindow()).showAndWait();
}
}
diff --git a/src/main/java/io/mozib/slimview/Util.java b/src/main/java/io/mozib/slimview/Util.java
index 425b62b..e67fee4 100644
--- a/src/main/java/io/mozib/slimview/Util.java
+++ b/src/main/java/io/mozib/slimview/Util.java
@@ -240,8 +240,8 @@ public static void writeDataFile(Object data, DataFileLocation dataFileLocation)
*/
public static void browseUrl(String url) {
switch (getOSType()) {
- case WINDOWS:
case MAC:
+ case WINDOWS:
if (Desktop.isDesktopSupported()) {
if (Desktop.getDesktop().isSupported(Desktop.Action.BROWSE))
try {
diff --git a/src/test/java/io/mozib/slimview/TestUtil.java b/src/test/java/io/mozib/slimview/TestUtil.java
index e8b2a8c..59d50c3 100644
--- a/src/test/java/io/mozib/slimview/TestUtil.java
+++ b/src/test/java/io/mozib/slimview/TestUtil.java
@@ -4,22 +4,69 @@
package io.mozib.slimview;
+import javafx.event.ActionEvent;
+import javafx.scene.image.ImageView;
+import javafx.scene.input.MouseButton;
+import javafx.scene.input.MouseEvent;
+import org.apache.commons.lang3.ObjectUtils;
+import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.io.IOException;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.*;
public class TestUtil {
+
+ @Test
+ public void testAspectRatio() {
+ // could not write test for this yikes
+ }
+
+ @Test //Sadie Forbes
+ public void testComplicatedExtension() {
+ assertEquals("zip", Util.getFileExt("t.t.t.t.t.t.t.zip"));
+ }
+
+ @Test
+ //Justin Woodring
+ void testAppServiceConstructor() {
+ AppUpdateService service = new AppUpdateService("testName", "testVersion");
+ Assertions.assertInstanceOf(AppUpdateService.class, service);
+ }
+
+ @Test //Justin Woodring
+ public void testImageFileSize() {
+ ImageModel img = new ImageModel("src/main/resources/io/mozib/slimview/icons/save.png");
+ assertEquals(img.getFileSize(), 256);
+ }
+
+ @Test
+ public void testGetContainingFolder() {
+ ImageModel img = new ImageModel("src/main/resources/io/mozib/slimview/icons/save.png");
+ assertEquals("src/main/resources/io/mozib/slimview/icons", img.getContainingFolder().toString());
+ }
+
@Test
public void testGetFileExt() {
assertEquals("jpg", Util.getFileExt("test.bmp.jpg"));
assertEquals("", Util.getFileExt("Test.This Folder\\test"));
assertEquals("", Util.getFileExt("test"));
+ assertEquals("png", Util.getFileExt("test.photo.png"));
+ }
+
+ @Test
+ public void testRecentFile() {
+ RecentFiles recentFiles = new RecentFiles();
+ assert (recentFiles.getRecentFiles().size() == 0);
+ recentFiles.getRecentFiles().add(new RecentFiles.RecentFile());
+ assert (recentFiles.getRecentFiles().size() == 1);
+ recentFiles.getRecentFiles().add(new RecentFiles.RecentFile());
+ assert (recentFiles.getRecentFiles().size() == 2);
}
+
@Test
public void testReplaceFileExt() {
assertEquals("test.bmp.jpg", Util.replaceFileExt("test.bmp.gif", "jpg"));
@@ -46,4 +93,83 @@ public void testWriteStringToFile() throws IOException {
file.delete();
}
-}
+
+ @Test
+ public void overwriteStringToFile() throws IOException {
+ File file = new File("test.txt");
+ String content1 = "Some text here";
+ Util.writeStringToFile(file.getPath(), content1);
+ assertEquals(file.length(), content1.length());
+ String content2 = "New text here instead";
+ Util.writeStringToFile(file.getPath(), content2);
+ assertEquals(file.length(), content2.length());
+ }
+
+ @Test //Nicholas Levergne's test
+ public void testDeleteException() throws IOException {
+ File file = null;
+ assertThrows(NullPointerException.class, () -> {
+ file.delete();
+ });
+ }
+
+ @Test // Bryce Doyle Test
+ public void testGetOSType() {
+ assertEquals(Util.getOSType(), Util.OSType.MAC);
+ }
+
+ @Test
+ public void testAddToRecent() {
+ Util.addToRecent("src/main/resources/io/mozib/slimview/icons/favorite.png");
+ }
+
+ @Test
+ public void testGetAppVersion() {
+ assertEquals(Util.getAppVersion(), "1.0.7");
+ }
+
+ @Test
+ public void CalvinsCoolTestCase() {
+ ImageModel img = new ImageModel("src/main/resources/io/mozib/slimview/icons/save.png");
+ assertEquals(img.getPath(), "src/main/resources/io/mozib/slimview/icons/save.png");
+ }
+
+ @Test
+ public void confirmingFavoritesBugFix() {
+ MainViewModel mainViewModel = new MainViewModel();
+ ImageModel imageModel = null;
+ assertThrows(NullPointerException.class, () -> {
+ mainViewModel.setAsFavorite(imageModel, true);
+ });
+ }
+
+ @Test // Bryce Doyle Test
+ public void zoomWithNoPictureTest() {
+ MainViewModel mainViewModel = new MainViewModel();
+ MainWindowController mainWindowController = new MainWindowController();
+
+ ActionEvent actionEvent = new ActionEvent();
+ assertDoesNotThrow(() -> mainWindowController.buttonZoomIn_onAction(actionEvent));
+ }
+
+ @Test
+ public void addToRecentTest() {
+ RecentFiles recentFiles = Util.readDataFile(RecentFiles.class, Util.DataFileLocation.RECENT_FILES);
+ recentFiles.setRecentFiles(null);
+ Util.addToRecent(null);
+ assertEquals(null, recentFiles.getRecentFiles());
+ }
+
+ @Test // Bryce Doyle Test
+ public void favoritesTest() {
+ FavoritesController favoritesController = new FavoritesController();
+ favoritesController.add("./testing.png");
+ assertFalse(favoritesController.exists("./testing.png"));
+ }
+
+ @Test // Bryce Doyle Test
+ public void imagePathTest() {
+ ImageModel imageModel = new ImageModel("./test.jpg");
+ assertEquals(imageModel.getPath(), "./test.jpg");
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/heycutie.jpg b/src/test/resources/heycutie.jpg
new file mode 100644
index 0000000..92e19b1
Binary files /dev/null and b/src/test/resources/heycutie.jpg differ
diff --git a/src/test/resources/test.txt b/src/test/resources/test.txt
new file mode 100644
index 0000000..6baeab4
--- /dev/null
+++ b/src/test/resources/test.txt
@@ -0,0 +1 @@
+Some text here
\ No newline at end of file
diff --git a/test.txt b/test.txt
new file mode 100644
index 0000000..5fa82ed
--- /dev/null
+++ b/test.txt
@@ -0,0 +1 @@
+New text here instead
\ No newline at end of file