/**
   * 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;
 }
Esempio n. 5
0
  @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);
           }
         }
       });
 }
Esempio n. 9
0
  @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;");
    }
  }
Esempio n. 10
0
  @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;
        });
  }
Esempio n. 11
0
  /**
   * 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;
        });
  }