List of usage examples for javafx.stage Stage showAndWait
public void showAndWait()
From source file:snpviewer.SnpViewer.java
public void removeSamples(ActionEvent event) { FXMLLoader loader = new FXMLLoader(getClass().getResource("RemoveSamplesInterface.fxml")); try {//from www. j av a 2 s.co m Pane pane = (Pane) loader.load(); RemoveSamplesInterfaceController removeController = (RemoveSamplesInterfaceController) loader .getController(); Scene scene = new Scene(pane); Stage stage = new Stage(); stage.setScene(scene); scene.getStylesheets().add(SnpViewer.class.getResource("SnpViewerStyleSheet.css").toExternalForm()); stage.getIcons().add(new Image(this.getClass().getResourceAsStream("icon.png"))); stage.setTitle("Remove Samples"); removeController.setSamples(affObserve, unObserve); stage.initModality(Modality.APPLICATION_MODAL); stage.showAndWait(); List<Integer> indicesToRemove = removeController.getSamplesToRemove(); //System.out.println(indicesToRemove.toString()); if (indicesToRemove.isEmpty()) { return; } ArrayList<Integer> affsToRemove = new ArrayList<>(); ArrayList<Integer> unsToRemove = new ArrayList<>(); for (Integer r : indicesToRemove) { if (r < affObserve.size()) {//index corresponds to affFiles affsToRemove.add(r); } else {//index corresponds to unFiles r -= affObserve.size(); unsToRemove.add(r); } } ArrayList<File> dirsToDelete = new ArrayList<>(); if (!affsToRemove.isEmpty()) { Collections.sort(affsToRemove, Collections.reverseOrder()); for (int i : affsToRemove) { dirsToDelete.add(affObserve.get(i).getOutputDirectory()); affObserve.remove(i); } } if (!unsToRemove.isEmpty()) { Collections.sort(unsToRemove, Collections.reverseOrder()); for (int i : unsToRemove) { dirsToDelete.add(unObserve.get(i).getOutputDirectory()); unObserve.remove(i); } } if (affObserve.isEmpty() && unObserve.isEmpty()) { resetView(); } else { refreshView(null, false); } saveProject(); for (File dir : dirsToDelete) { FileUtils.deleteDirectory(dir); } } catch (Exception ex) { Dialogs.showErrorDialog(null, "Sample removal failed - please see " + "details for stack trace and report this error.", "Remove Samples Failed!", "SnpViewer", ex); } }
From source file:snpviewer.SnpViewer.java
public void autoFindRegions() { if (affObserve.isEmpty()) { Dialogs.showErrorDialog(null,/* w ww . j av a 2 s . c o m*/ "Find Regions can only be run when there " + "is at least one Affected sample in the project. Use the " + "'Add Affected' button/menu item to add Affected samples.", "No Affected samples to analyze!", "SnpViewer"); return; } Stage stage = new Stage(); FXMLLoader loader = new FXMLLoader(getClass().getResource("FindRegionsInterface.fxml")); try { Pane page = (Pane) loader.load(); FindRegionsInterfaceController findReg = (FindRegionsInterfaceController) loader.getController(); Scene scene = new Scene(page); stage.setScene(scene); scene.getStylesheets().add(SnpViewer.class.getResource("SnpViewerStyleSheet.css").toExternalForm()); setProgressMode(true); stage.initModality(Modality.APPLICATION_MODAL); stage.getIcons().add(new Image(this.getClass().getResourceAsStream("icon.png"))); stage.showAndWait(); if (findReg.getCancelled()) { setProgressMode(false); return; } //int w, double r, boolean con, int refWind, double refCut, //int minReportSize, int minReportRun, double het, double dischord) int window = Integer.parseInt(findReg.getWindow()); double regionLength = Double.parseDouble(findReg.getRegionLength()); boolean checkConcordant = findReg.getCheckConcordance(); int refineWindow = Integer.parseInt(findReg.getRefineSize()); double refineTolerance = Double.parseDouble(findReg.getRefineTolerance()); int minReport = Integer.parseInt(findReg.getReportLength()); int minReportRun = Integer.parseInt(findReg.getReportMinSnps()); double hetTolerance = Double.parseDouble(findReg.getHetTolerance()); double dischordTolerance = Double.parseDouble(findReg.getDischordTolerance()); boolean autosomesOnly = findReg.getAutosomesOnly(); LinkedHashSet<String> c = new LinkedHashSet(); for (Object item : chromosomeSelector.getItems()) { if (item instanceof String) { String chrom = (String) item; if (autosomesOnly) { if (chrom.matches("\\d+")) {//only add autosomes c.add(chrom); } } else { c.add(chrom); } } } final RegionFinder regionFinder = new RegionFinder(c, affFiles, unFiles, window, regionLength, checkConcordant, refineWindow, refineTolerance, minReport, minReportRun, hetTolerance, dischordTolerance); regionFinder.setOnSucceeded(new EventHandler<WorkerStateEvent>() { @Override public void handle(WorkerStateEvent t) { progressBar.progressProperty().unbind(); progressMessage.textProperty().unbind(); progressMessage.setText("Done"); progressTitle.textProperty().unbind(); setProgressMode(false); Object result = t.getSource().getValue(); ArrayList<RegionSummary> foundRegions = new ArrayList<>(); if (result instanceof ArrayList) { for (Object r : (ArrayList) result) { if (r instanceof RegionSummary) { RegionSummary reg = (RegionSummary) r; foundRegions.add(reg); } } if (foundRegions.size() > 0) { FXMLLoader tableLoader = new FXMLLoader( getClass().getResource("MultiRegionReporter.fxml")); try { Pane tablePane = (Pane) tableLoader.load(); MultiRegionReporterController multiReg = (MultiRegionReporterController) tableLoader .getController(); Scene tableScene = new Scene(tablePane); Stage tableStage = new Stage(); tableStage.setScene(tableScene); tableScene.getStylesheets().add( SnpViewer.class.getResource("SnpViewerStyleSheet.css").toExternalForm()); multiReg.displayData(foundRegions); tableStage.setTitle("Find Regions Results"); tableStage.getIcons() .add(new Image(this.getClass().getResourceAsStream("icon.png"))); tableStage.initModality(Modality.NONE); tableStage.show(); } catch (Exception ex) { Dialogs.showErrorDialog(null, "Error displaying" + " results from Find Regions Method.", "Find Regions Error!", "SnpViewer", ex); } } else { Dialogs.showInformationDialog(null, "No regions " + "found.", "Find Regions", "SnpViewer"); } savedRegions.addAll(foundRegions); RegionSummary sorter = new RegionSummary(); sorter.mergeRegionsByPosition(savedRegions); } saveProject(); int c = chromosomeSelector.getSelectionModel().getSelectedIndex(); if (c > -1) { selectionOverlayPane.getChildren().clear(); selectionOverlayPane.getChildren().add(dragSelectRectangle); drawSavedRegions((String) chromosomeBoxList[c]); } progressMessage.setText(""); progressTitle.setText(""); progressBar.progressProperty().set(0); } }); regionFinder.setOnFailed(new EventHandler<WorkerStateEvent>() { @Override public void handle(WorkerStateEvent t) { progressBar.progressProperty().unbind(); progressMessage.textProperty().unbind(); progressMessage.setText("Failed!"); progressTitle.textProperty().unbind(); Dialogs.showErrorDialog(null, "Find Regions method failed.", "Error!", "SnpViewer", t.getSource().getException()); setProgressMode(false); progressMessage.setText(""); progressTitle.setText(""); progressBar.progressProperty().set(0); } }); regionFinder.setOnCancelled(new EventHandler<WorkerStateEvent>() { @Override public void handle(WorkerStateEvent t) { progressBar.progressProperty().unbind(); progressMessage.textProperty().unbind(); progressMessage.setText("Cancelled"); progressTitle.textProperty().unbind(); Dialogs.showErrorDialog(null, "Find Regions method Cancelled.", "Cancelled", "SnpViewer"); setProgressMode(false); progressMessage.setText(""); progressTitle.setText(""); progressBar.progressProperty().set(0); } }); cancelButton.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent actionEvent) { regionFinder.cancel(); } }); progressBar.progressProperty().unbind(); progressMessage.textProperty().unbind(); progressTitle.textProperty().unbind(); progressBar.progressProperty().bind(regionFinder.progressProperty()); progressMessage.textProperty().bind(regionFinder.messageProperty()); progressTitle.textProperty().bind(regionFinder.titleProperty()); regionFinder.start(); } catch (IOException ex) { Dialogs.showErrorDialog(null, "Error starting Find Regions method.", "Error!", "SnpViewer", ex); progressBar.progressProperty().unbind(); progressMessage.textProperty().unbind(); progressTitle.textProperty().unbind(); setProgressMode(false); } }