Skip to content

Commit 818dcb1

Browse files
committed
sort files correctly and disable file selection when a file is not saved
1 parent c84f603 commit 818dcb1

3 files changed

Lines changed: 13 additions & 4 deletions

File tree

src/main/java/net/querz/mcmapviewer/DialogHelper.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@ public static void importImage(Stage primaryStage, MapView mapView) {
5151
mapView.setImageData(closest);
5252
mapView.update();
5353

54-
55-
5654
} catch (IOException e) {
5755
e.printStackTrace();
5856
}

src/main/java/net/querz/mcmapviewer/FileView.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package net.querz.mcmapviewer;
22

3+
import javafx.application.Platform;
34
import javafx.collections.FXCollections;
45
import javafx.scene.control.ListView;
56
import javafx.scene.control.SelectionMode;
@@ -27,7 +28,7 @@ public void reload() {
2728
this.files = new File[0];
2829
}
2930
this.files = files;
30-
Arrays.sort(this.files);
31+
Arrays.sort(this.files, this::compareMapFiles);
3132
getItems().clear();
3233
Arrays.stream(this.files).forEach(f -> getItems().add(new EditableFile(f)));
3334
getSelectionModel().select(selected);
@@ -43,7 +44,7 @@ public void setDirectory(File directory) {
4344
}
4445
this.files = files;
4546
this.directory = directory;
46-
Arrays.sort(this.files);
47+
Arrays.sort(this.files, this::compareMapFiles);
4748
getItems().clear();
4849
Arrays.stream(this.files).forEach(f -> getItems().add(new EditableFile(f)));
4950
getSelectionModel().select(0);
@@ -52,12 +53,21 @@ public void setDirectory(File directory) {
5253
}
5354
}
5455

56+
private int compareMapFiles(File a, File b) {
57+
String aName = a.getName();
58+
String sa = aName.substring(4, aName.length() - 4);
59+
String bName = b.getName();
60+
String sb = bName.substring(4, bName.length() - 4);
61+
return Integer.compare(Integer.parseInt(sa), Integer.parseInt(sb));
62+
}
63+
5564
public void setOnFileSelectionChanged(Consumer<EditableFile> consumer) {
5665
onFileSelectionChanged = consumer;
5766
getSelectionModel().selectedItemProperty().addListener((v, o, n) -> {
5867
if (getSelectionModel().getSelectedItem() != null && !getSelectionModel().getSelectedItem().equals(selected)) {
5968
for (EditableFile file : getItems()) {
6069
if (file.isEdited()) {
70+
Platform.runLater(() -> getSelectionModel().select(file));
6171
return;
6272
}
6373
}

src/main/java/net/querz/mcmapviewer/map/MapView.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,7 @@ private void onMouseClicked(MouseEvent e) {
279279

280280
public void setImageData(byte[] data) {
281281
imageData = data;
282+
mapFile.setEdited(true);
282283
}
283284

284285
private Point2i getPosOnImg(double mouseX, double mouseY) {

0 commit comments

Comments
 (0)