public FileInfoTablePanel() { tableItems = FXCollections.observableArrayList(); tableView = new TableView<>(tableItems); final TableColumn<FileInfoPath, String> col0 = new TableColumn<>("Name"); col0.setCellValueFactory( p -> new ReadOnlyObjectWrapper<>(p.getValue().getFileInfo().getFilename())); col0.prefWidthProperty().bind(tableView.widthProperty().multiply(0.3)); tableView.getColumns().add(col0); final TableColumn<FileInfoPath, String> col1 = new TableColumn<>("Path"); col1.setCellValueFactory(p -> new ReadOnlyObjectWrapper<>(p.getValue().getPath())); col1.prefWidthProperty().bind(tableView.widthProperty().multiply(0.6)); tableView.getColumns().add(col1); final TableColumn<FileInfoPath, String> col2 = new TableColumn<>("Size"); col2.setCellValueFactory( p -> new ReadOnlyObjectWrapper<>( BackupUtil.humanReadableByteCount(p.getValue().getFileInfo().getSize()))); col2.prefWidthProperty().bind(tableView.widthProperty().multiply(0.1)); tableView.getColumns().add(col2); final TableColumn<FileInfoPath, String> col3 = new TableColumn<>("Alg"); col3.setCellValueFactory( p -> new ReadOnlyObjectWrapper<>(p.getValue().getFileInfo().getDigestAlg().name())); col3.prefWidthProperty().bind(tableView.widthProperty().multiply(0.1)); tableView.getColumns().add(col3); final TableColumn<FileInfoPath, String> col4 = new TableColumn<>("Digest"); col4.setCellValueFactory( p -> new ReadOnlyObjectWrapper<>(p.getValue().getFileInfo().getDigest())); col4.prefWidthProperty().bind(tableView.widthProperty().multiply(0.2)); tableView.getColumns().add(col4); final TableColumn<FileInfoPath, String> col5 = new TableColumn<>("Timestamp"); col5.setCellValueFactory( p -> new ReadOnlyObjectWrapper<>(p.getValue().getFileInfo().getLastModifiedStr())); col5.prefWidthProperty().bind(tableView.widthProperty().multiply(0.2)); tableView.getColumns().add(col5); final TableColumn<FileInfoPath, Integer> col6 = new TableColumn<>("Path Len"); col6.setCellValueFactory(p -> new ReadOnlyObjectWrapper<>(p.getValue().getPath().length())); col6.prefWidthProperty().bind(tableView.widthProperty().multiply(0.1)); tableView.getColumns().add(col6); tableView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE); // pathList.setVisibleRowCount(4); tableView.setPrefHeight(100); label = new Label(); final ScrollPane scrollPane = GuiUtils.createScrollPane(tableView); setCenter(scrollPane); setBottom(label); setFileInfo(null, null); }
// https://docs.oracle.com/javafx/2/ui_controls/table-view.htm @SuppressWarnings("unchecked") public DataPanel(final String string) { super(string); tableView = new ScrollPane(); tableView.setPrefSize(Region.USE_COMPUTED_SIZE, Region.USE_COMPUTED_SIZE); tableView.setMaxSize(Region.USE_COMPUTED_SIZE, Region.USE_COMPUTED_SIZE); // set(MsstGuiPckg.getInstance().getGuiPreferredSize().propertyDataPanelWithHeight(), // MsstGuiPckg.getInstance().getGuiPreferredSize().propertyDataPanelWithWidth()); elementName = new TableColumn<>("element-name"); elementValue = new TableColumn<>("element-value"); elementName.setCellValueFactory(new PropertyValueFactory<TableEntry, String>("elementName")); elementValue.setCellValueFactory(new PropertyValueFactory<TableEntry, String>("elementValue")); dataTable = new TableView<TableEntry>(); dataTable.getColumns().addAll(elementName, elementValue); dataTable.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY); dataTable.setPrefHeight( MsstGuiPckg.getInstance().getGuiPreferredSize().propertyDataPanelWithHeight()); dataTable.setPrefWidth( MsstGuiPckg.getInstance().getGuiPreferredSize().propertyDataPanelWithWidth()); dataTable.setEditable(true); tableView.setContent(dataTable); ; tableView.setFitToHeight(true); tableView.setFitToWidth(true); setContent(tableView); }