package com.rgi.view.pane; import java.io.File; import java.util.List; import javafx.application.Platform; import javafx.scene.control.Menu; import javafx.scene.control.MenuBar; import javafx.scene.control.MenuItem; import javafx.stage.DirectoryChooser; import javafx.stage.FileChooser; import javafx.stage.Stage; import utility.TileStoreUtility; import com.rgi.store.tiles.TileStoreException; public class ViewerMenuBar extends MenuBar { FileChooser fileChooser = new FileChooser(); DirectoryChooser directoryChooser = new DirectoryChooser(); public ViewerMenuBar(final Stage mainStage, final TreePane tree) { super(); this.setFileChooser(); Menu file = new Menu("File"); MenuItem addGeoPackage = new MenuItem("Add GeoPackages"); addGeoPackage.setOnAction(actionEvent -> { List<File> files = this.fileChooser.showOpenMultipleDialog(mainStage); if(files != null && files.size() > 0) { // final TileReadersOptionWindow tileReadersOptionWindow = new TileReadersOptionWindow(TileStoreUtility.getTileStoreReaderAdapters(true, files), // readers -> { final JFrame viewWindow = new MapViewWindow(readers); // viewWindow.setLocationRelativeTo(null); // viewWindow.setVisible(true); // }); TileReadersOptionViewerWindow window = new TileReadersOptionViewerWindow(TileStoreUtility.getTileStoreReaderAdapters(true, files.toArray(new File[files.size()]))); window.getReaders().forEach(reader-> { try { tree.addTreeItem(reader); } catch(TileStoreException ex) { throw new RuntimeException(ex.getMessage()); } }); // if(tileReadersOptionWindow.needsInput()) // { // tileReadersOptionWindow.setLocationRelativeTo(null); // tileReadersOptionWindow.setVisible(true); // } // else // { // tileReadersOptionWindow.execute(); // } } }); MenuItem addTMS = new MenuItem("Add TMSs"); addTMS.setOnAction(actionEvent -> { File folder = this.directoryChooser.showDialog(mainStage); if(folder != null) { TileReadersOptionViewerWindow window = new TileReadersOptionViewerWindow(TileStoreUtility.getTileStoreReaderAdapters(true, new File[]{folder})); window.getReaders().forEach(reader-> { try { tree.addTreeItem(reader); } catch(TileStoreException ex) { throw new RuntimeException(ex.getMessage()); } }); //TODO needs input!! tms!!! // if(tileReadersOptionWindow.needsInput()) // { // tileReadersOptionWindow.setLocationRelativeTo(null); // tileReadersOptionWindow.setVisible(true); // } } }); MenuItem exitMenuItem = new MenuItem("Exit"); exitMenuItem.setOnAction(actionEvent -> Platform.exit()); file.getItems().addAll(addGeoPackage, addTMS, exitMenuItem); this.getMenus().add(file); } private void setFileChooser() { this.fileChooser.setTitle("Open GeoPackage file or TMS folder"); } }