List of usage examples for javafx.stage Window getWidth
public final double getWidth()
From source file:com.panemu.tiwulfx.control.LookupFieldController.java
/** * Show lookup dialog.//from ww w.j a v a 2 s . co m * * @param stage parent * @param initialValue this value will be returned if user clik the close * button instead of double clicking a row or click Select button * @param propertyName propertyName corresponds to searchCriteria * @param searchCriteria searchCriteria (nullable) * @return selected object or the initialValue */ public T show(final Window stage, T initialValue, String propertyName, String searchCriteria) { if (dialogStage == null) { PropertyDescriptor[] props = PropertyUtils.getPropertyDescriptors(recordClass); lookupWindow = new LookupWindow(); for (String clm : getColumns()) { for (PropertyDescriptor prop : props) { if (prop.getName().equals(clm)) { Class type = prop.getPropertyType(); if (type.equals(Boolean.class)) { lookupWindow.table.addColumn(new CheckBoxColumn<T>(clm)); } else if (type.equals(String.class)) { lookupWindow.table.addColumn(new TextColumn<T>(clm)); } else if (type.equals(Date.class)) { lookupWindow.table.addColumn(new LocalDateColumn<T>(clm)); } else if (Number.class.isAssignableFrom(type)) { if (Long.class.isAssignableFrom(type)) { lookupWindow.table.addColumn(new NumberColumn<T, Long>(clm, type)); } else { lookupWindow.table.addColumn(new NumberColumn<T, Double>(clm, type)); } } else { TableColumn column = new TableColumn(); column.setCellValueFactory(new PropertyValueFactory(clm)); lookupWindow.table.addColumn(column); } break; } } } dialogStage = new Stage(); if (stage instanceof Stage) { dialogStage.initOwner(stage); dialogStage.initModality(Modality.WINDOW_MODAL); } else { dialogStage.initOwner(null); dialogStage.initModality(Modality.APPLICATION_MODAL); } dialogStage.initStyle(StageStyle.UTILITY); dialogStage.setResizable(true); dialogStage.setScene(new Scene(lookupWindow)); dialogStage.getIcons().add(new Image( LookupFieldController.class.getResourceAsStream("/com/panemu/tiwulfx/res/image/lookup.png"))); dialogStage.setTitle(getWindowTitle()); dialogStage.getScene().getStylesheets() .add(getClass().getResource("/com/panemu/tiwulfx/res/tiwulfx.css").toExternalForm()); initCallback(lookupWindow, lookupWindow.table); } for (TableColumn column : lookupWindow.table.getTableView().getColumns()) { if (column instanceof BaseColumn && ((BaseColumn) column).getPropertyName().equals(propertyName)) { if (searchCriteria != null && !searchCriteria.isEmpty()) { TableCriteria tc = new TableCriteria(propertyName, TableCriteria.Operator.ilike_anywhere, searchCriteria); ((BaseColumn) column).setTableCriteria(tc); } else { ((BaseColumn) column).setTableCriteria(null); } break; } } selectedValue = initialValue; beforeShowCallback(lookupWindow.table); lookupWindow.table.reloadFirstPage(); if (stage != null) { /** * Since we support multiple monitors, ensure that the stage is * located in the center of parent stage. But we don't know the * dimension of the stage for the calculation, so we defer the * relocation after the stage is actually displayed. */ Runnable runnable = new Runnable() { public void run() { dialogStage.setX(stage.getX() + stage.getWidth() / 2 - dialogStage.getWidth() / 2); dialogStage.setY(stage.getY() + stage.getHeight() / 2 - dialogStage.getHeight() / 2); //set the opacity back to fully opaque dialogStage.setOpacity(1); } }; Platform.runLater(runnable); //set the opacity to 0 to minimize flicker effect dialogStage.setOpacity(0); } dialogStage.showAndWait(); return selectedValue; }
From source file:spdxedit.PackageEditor.java
/** * Opens the modal package editor for the provided package. * * @param pkg The package to edit. * @param relatablePackages Packages to which the edited package may optionally have defined relationships * @param parentWindow The parent window. *///from www . jav a2 s .c o m public static void editPackage(final SpdxPackage pkg, final List<SpdxPackage> relatablePackages, SpdxDocumentContainer documentContainer, Window parentWindow) { final PackageEditor packageEditor = new PackageEditor(pkg, relatablePackages, documentContainer); final Stage dialogStage = new Stage(); dialogStage.setTitle("Edit SPDX Package: " + pkg.getName()); dialogStage.initStyle(StageStyle.DECORATED); dialogStage.initModality(Modality.APPLICATION_MODAL); dialogStage.setY(parentWindow.getX() + parentWindow.getWidth() / 2); dialogStage.setY(parentWindow.getY() + parentWindow.getHeight() / 2); dialogStage.setResizable(false); try { FXMLLoader loader = new FXMLLoader(NewPackageDialog.class.getResource("/PackageEditor.fxml")); loader.setController(packageEditor); Pane pane = loader.load(); Scene scene = new Scene(pane); dialogStage.setScene(scene); dialogStage.getIcons().clear(); dialogStage.getIcons().add(UiUtils.ICON_IMAGE_VIEW.getImage()); //Populate the file list on appearance dialogStage.setOnShown(event -> { try { final SpdxFile dummyfile = new SpdxFile(pkg.getName(), null, null, null, null, null, null, null, null, null, null, null, null); TreeItem<SpdxFile> root = new TreeItem<>(dummyfile); packageEditor.filesTable.setRoot(root); //Assume a package without is external //TODO: replace with external packages or whatever alternate mechanism in 2.1 packageEditor.btnAddFile.setDisable(pkg.getFiles().length == 0); root.getChildren() .setAll(Stream.of(pkg.getFiles()) .sorted(Comparator.comparing(file -> StringUtils.lowerCase(file.getName()))) //Sort by file name .map(TreeItem<SpdxFile>::new).collect(Collectors.toList())); } catch (InvalidSPDXAnalysisException e) { logger.error("Unable to get files for package " + pkg.getName(), e); } packageEditor.tabFiles.setExpanded(true); }); //Won't assign this event through FXML - don't want to propagate the stage beyond this point. packageEditor.btnOk.setOnMouseClicked(event -> dialogStage.close()); dialogStage.showAndWait(); } catch (IOException ioe) { throw new RuntimeException("Unable to load dialog", ioe); } }