diff --git a/src/main/java/ru/di9/ss14/extractor/gui/MainController.java b/src/main/java/ru/di9/ss14/extractor/gui/MainController.java index 5945992..eee8613 100644 --- a/src/main/java/ru/di9/ss14/extractor/gui/MainController.java +++ b/src/main/java/ru/di9/ss14/extractor/gui/MainController.java @@ -17,7 +17,6 @@ import ru.di9.ss14.extractor.ContentRec; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; -import java.io.OutputStream; import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; @@ -26,8 +25,6 @@ import java.util.Map; import java.util.ResourceBundle; import java.util.SortedSet; -import static java.lang.System.out; - public class MainController implements Initializable { private static final int STATE_NOT_LOADED = 0; private static final int STATE_LOAD_IN_PROGRESS = 1; @@ -64,7 +61,7 @@ public class MainController implements Initializable { mapForkLoaded.clear(); manager.getForkVersions().forEach(forkVersion -> { - var forkVersionItem = new TreeItem<>("\uD83D\uDCE6 " + forkVersion); + var forkVersionItem = new TreeItemExt<>("\uD83D\uDCE6 " + forkVersion); forkVersionItem.getChildren().add(new TreeItem<>("(загрузка...)")); forkVersionItem.expandedProperty().addListener((observable, oldValue, newValue) -> { if (!newValue || mapForkLoaded.get(forkVersionItem) != STATE_NOT_LOADED) { @@ -84,11 +81,13 @@ public class MainController implements Initializable { forkVersionItem.setExpanded(false); forkVersionItem.getChildren().clear(); - SortedSet paths = ((ContentRec) event.getSource().getValue()).getChildren(); + var rootRec = (ContentRec) event.getSource().getValue(); + SortedSet paths = rootRec.getChildren(); createTreeItems(forkVersionItem, paths); mapForkLoaded.put(forkVersionItem, STATE_LOADED); forkVersionItem.setExpanded(true); + forkVersionItem.setContextMenuBuilder(() -> createFolderContextMenu(rootRec, "\uD83D\uDCBE Сохранить в...")); }); var thread = new Thread(task); @@ -151,7 +150,11 @@ public class MainController implements Initializable { } private ContextMenu createFolderContextMenu(ContentRec contentRec) { - var menuItem = new MenuItem("\uD83D\uDCBE Сохранить папку '%s' в...".formatted(contentRec.getName())); + return createFolderContextMenu(contentRec, "\uD83D\uDCBE Сохранить папку '%s' в...".formatted(contentRec.getName())); + } + + private ContextMenu createFolderContextMenu(ContentRec contentRec, String title) { + var menuItem = new MenuItem(title); menuItem.setOnAction(event -> { var dirChooser = new DirectoryChooser(); dirChooser.setTitle("Сохранить " + contentRec.getName());