/** * Initializes the controller class. * * @param url * @param rb */ @Override public void initialize(URL url, ResourceBundle rb) { setupTable(); inflateTable(); atracaoTableView.setRowFactory( (TableView<Atracao> atracaoTablewView) -> { final TableRow<Atracao> row = new TableRow<>(); row.addEventFilter( MouseEvent.MOUSE_PRESSED, (MouseEvent event) -> { final int index = row.getIndex(); this.currentSelectedRow = index; if (index >= 0 && index < atracaoTablewView.getItems().size()) { atracaoTableView.getSelectionModel().select(index); textField1.setText(atracaoTableView.getItems().get(index).getIdAtracao()); textArea2.setText(atracaoTableView.getItems().get(index).getDescricao()); textField3.setText( atracaoTableView.getItems().get(index).getClassificacaoEtaria()); textField4.setText(atracaoTableView.getItems().get(index).getLocal()); textField5.setText(atracaoTableView.getItems().get(index).getEvento()); textField6.setText(atracaoTableView.getItems().get(index).getData()); event.consume(); } }); return row; }); }
/** * Erzeugt eine TableView mit den Daten aus der Datenbank. * * @return Eine TableView mit Polizist Daten */ private Node getPolizistAnsichtInnereTabelle() { refreshPolizistAnsicht(); // Name Spalte TableColumn<PolizistDaten, String> SpalteName = new TableColumn<>("Name"); SpalteName.setMinWidth(200); SpalteName.setCellValueFactory(new PropertyValueFactory<>("Name")); // GebDatum Spalte TableColumn<PolizistDaten, String> SpalteDatum = new TableColumn<>("Geburtsdatum"); SpalteDatum.setMinWidth(200); SpalteDatum.setCellValueFactory(new PropertyValueFactory<>("GebDatum")); // Nationalitaet Spalte TableColumn<PolizistDaten, String> SpalteNation = new TableColumn<>("Nationalität"); SpalteNation.setMinWidth(200); SpalteNation.setCellValueFactory(new PropertyValueFactory<>("Nation")); // Geschlecht Spalte TableColumn<PolizistDaten, String> SpalteGeschlecht = new TableColumn<>("Geschlecht"); SpalteGeschlecht.setMinWidth(200); SpalteGeschlecht.setCellValueFactory(new PropertyValueFactory<>("Geschlecht")); // Todesdatum Spalte TableColumn<PolizistDaten, String> SpalteTod = new TableColumn<>("Todesdatum"); SpalteTod.setMinWidth(200); SpalteTod.setCellValueFactory(new PropertyValueFactory<>("TodDatum")); // Dienstgrad Spalte TableColumn<PolizistDaten, String> SpalteGrad = new TableColumn<>("Dienstgrad"); SpalteGrad.setMinWidth(200); SpalteGrad.setCellValueFactory(new PropertyValueFactory<>("Dienstgrad")); Tabelle.setItems(PolizistDatenListe); Tabelle.getColumns().add(SpalteName); Tabelle.getColumns().add(SpalteDatum); Tabelle.getColumns().add(SpalteNation); Tabelle.getColumns().add(SpalteGeschlecht); Tabelle.getColumns().add(SpalteTod); Tabelle.getColumns().add(SpalteGrad); Tabelle.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE); // Doppelklicke auf Spalten sollen Detailansichten oeffnen: Tabelle.setRowFactory( param -> { TableRow<PolizistDaten> Spalte = new TableRow<>(); Spalte.setOnMouseClicked( event -> { if (event.getClickCount() == 2 && (!Spalte.isEmpty())) { erzeugeDetailAnsicht(Spalte.getItem()); } }); return Spalte; }); return Tabelle; }
@Override public void initialize(URL location, ResourceBundle resources) { // TODO Auto-generated method stub this.tbViewColData.setCellValueFactory(cellData -> cellData.getValue().DataProperty()); this.tbViewColArquivo.setCellValueFactory(cellData -> cellData.getValue().FileNameProperty()); File file = new File("./relatorios/"); if (file.exists()) { File[] m = file.listFiles(); for (File f : m) { Path path = FileSystems.getDefault().getPath("./relatorios"); BasicFileAttributes attributes; try { attributes = Files.readAttributes(path, BasicFileAttributes.class); FileTime creationTime = attributes.creationTime(); data.add(new TableHistoricoData(creationTime.toString(), f.getPath())); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } this.tbViewHistorico.getItems().addAll(data); } this.tbViewHistorico.setRowFactory( tv -> { TableRow<TableHistoricoData> row = new TableRow<>(); row.setOnMouseClicked( event -> { if (event.getClickCount() == 2 && (!row.isEmpty())) { TableHistoricoData rowData = row.getItem(); try { Thread t = new Thread() { public void run() { if (Desktop.isDesktopSupported()) if (Desktop.getDesktop().isSupported(Action.OPEN)) { Desktop op = Desktop.getDesktop(); if (new File(rowData.getFileName()).exists()) { try { op.open(new File(rowData.getFileName())); } catch (IOException e) { e.printStackTrace(); } } } } }; t.start(); } catch (Exception e) { e.printStackTrace(); } } }); return row; }); }
private ContextMenu createContextMenu(final TableRow<T> row) { ContextMenu menu = new ContextMenu(); ContextMenu tableMenu = row.getTableView().getContextMenu(); if (tableMenu != null) { menu.getItems().addAll(tableMenu.getItems()); menu.getItems().add(new SeparatorMenuItem()); } menu.getItems().addAll(menuItemFactory.call(row.getItem())); return menu; }
@Override protected void updateItem(SubscriptionItem item, boolean empty) { super.updateItem(item, empty); if (empty) return; if (item.getActive()) { setStyle("-fx-font-weight: bold;"); } else { setStyle("-fx-font-weight: normal;"); } }
/** * Sets up the entire TableView with all its functionalities. * * @return The created TableView. */ private TableView<FilterInput> setUpTableView() { // Set up table view final TableView<FilterInput> tableView = new TableView<>(); tableView.setEditable(true); tableView.setMinWidth(522); tableView.setMinHeight(280); // Set up columns setUpFilterColumn(tableView); setUpTypeColumn(tableView); setUpOriginColumn(tableView); setUpColorColumn(tableView); setUpPriorityColumn(tableView); setUpLegalityColumn(tableView); setUpActiveColumn(tableView); // Insert data from database into table tableView.setItems(data); // Set select/deselect on mouse click tableView.setRowFactory( tableViewLambda -> { final TableRow<FilterInput> row = new TableRow<>(); row.addEventFilter( MouseEvent.MOUSE_PRESSED, event -> { final int index = row.getIndex(); if (index >= 0 && index < tableView.getItems().size() && tableView.getSelectionModel().isSelected(index)) { tableView.getSelectionModel().clearSelection(); event.consume(); } }); return row; }); return tableView; }
@Override public TableRow<T> call(TableView<T> table) { final TableRow<T> row; if (rowFactory == null) { row = new TableRow<T>(); } else { row = rowFactory.call(table); } row.itemProperty() .addListener( new ChangeListener<T>() { @Override public void changed(ObservableValue<? extends T> observable, T oldValue, T newValue) { if (newValue == null) { row.setContextMenu(null); } else { row.setContextMenu(createContextMenu(row)); } } }); return row; }
@Override public void apply(TableRow<JsonNode> row, Relation relation) { row.setOnMouseClicked( event -> { Route route = back.peek().getRoute(relation); if (route == null) { return; } if (!row.isEmpty() && event.getButton() == MouseButton.PRIMARY && event.getClickCount() == 2) { JsonNode item = row.getItem(); if (item == null) { return; } try { push(extract(route, item)); } catch (QueryException e) { log.error("Unable to push page: %s", route.getPath(), e); } } }); }
@Override public void updateSelected(boolean empty) { super.updateSelected(empty); if (empty) return; if (getItem() == null) return; // When the user clicks, we want to make it look // like the element has been read if (getItem().getActive()) { setStyle("-fx-font-weight: bold;"); } else { setStyle("-fx-font-weight: normal;"); } }
@FXML public void initialize() { System.out.println("<main_contr>: controller initiation"); // observableTeams = FXCollections.observableArrayList(BetterDataGenerator.generateTeams()); observableTeams = FXCollections.observableArrayList(); teamsTable.setPlaceholder(new Label("No matching data")); FilteredList<Team> filteredTeams = new FilteredList<>(observableTeams, p -> false); teamSearcherTextField .textProperty() .addListener( (observable, oldValue, newValue) -> { if (newValue != null && newValue.length() == 3 && oldValue.length() < newValue.length()) { System.out.println("<main_contr>: query to db for '" + newValue + "'"); observableTeams.clear(); observableTeams.addAll(dbHandle.loadTeams()); } filteredTeams.setPredicate( team -> { if (newValue == null || newValue.isEmpty() || newValue.length() < 3) { return false; } String lowerCaseFilter = newValue.toLowerCase(); if (lowerCaseFilter.equals("all")) { return true; } else if (team.getTeamName().toLowerCase().contains(lowerCaseFilter)) { return true; } else if (team.getSupervisor() != null && team.getSupervisor() .toString() .toLowerCase() .contains(lowerCaseFilter)) { return true; } return false; }); }); FilteredList<Team> orphanTeams = new FilteredList<>( observableTeams, team -> { if (team.getSupervisor() == null) { return true; } else { return false; } }); SortedList<Team> sortedFilteredTeams = new SortedList<>(filteredTeams); sortedFilteredTeams.comparatorProperty().bind(teamsTable.comparatorProperty()); teamsTable.setItems(sortedFilteredTeams); SortedList<Team> sortedOrphanTeams = new SortedList<>(orphanTeams); sortedOrphanTeams.comparatorProperty().bind(orphanTeamsTable.comparatorProperty()); orphanTeamsTable.setItems(sortedOrphanTeams); teamsTable.setRowFactory( p -> { TableRow<Team> row = new TableRow<>(); row.setOnMouseClicked( event -> { if (event.getClickCount() == 2 && !row.isEmpty()) { Team selectedTeam = row.getItem(); handleTeamDoubleClick(selectedTeam); } }); return row; }); }
/** * Highlights a row if a matching query is found within that row. If there is no matching query, * the row's style is set to null (default). */ @Override void setFactory() { setRowFactory( tr -> { TableRow<T> row = new TableRow<T>() { @Override protected void updateItem(T item, boolean empty) { super.updateItem(item, empty); if (item != null) { if (matchingItems.contains(item)) { setStyle( "-fx-background-color: " + SearchableControl.highlightColourString + "; "); } else { setStyle(null); } } } }; row.setOnDragDetected( event -> { if (!row.isEmpty()) { Integer index = row.getIndex(); Dragboard db = row.startDragAndDrop(TransferMode.MOVE); db.setDragView(row.snapshot(null, null)); ClipboardContent cc = new ClipboardContent(); cc.put(DataFormat.PLAIN_TEXT, index); db.setContent(cc); event.consume(); } }); row.setOnDragOver( event -> { Dragboard db = event.getDragboard(); if (db.hasContent(DataFormat.PLAIN_TEXT)) { if (row.getIndex() != (Integer) db.getContent(DataFormat.PLAIN_TEXT)) { event.acceptTransferModes(TransferMode.COPY_OR_MOVE); event.consume(); } } }); row.setOnDragDropped( event -> { Dragboard db = event.getDragboard(); if (db.hasContent(DataFormat.PLAIN_TEXT)) { int draggedIndex = (Integer) db.getContent(DataFormat.PLAIN_TEXT); T draggedItem = table.getItems().remove(draggedIndex); int dropIndex; if (row.isEmpty()) { dropIndex = table.getItems().size(); } else { dropIndex = row.getIndex(); } table.getItems().add(dropIndex, draggedItem); event.setDropCompleted(true); table.getSelectionModel().select(dropIndex); event.consume(); } }); return row; }); }