Java 类javafx.scene.control.TableRow 实例源码
项目:marathonv5
文件:JavaFXElementPropertyAccessor.java
public Point2D getPoint(TableView<?> tableView, int columnIndex, int rowIndex) {
Set<Node> tableRowCell = tableView.lookupAll(".table-row-cell");
TableRow<?> row = null;
for (Node tableRow : tableRowCell) {
TableRow<?> r = (TableRow<?>) tableRow;
if (r.getIndex() == rowIndex) {
row = r;
break;
}
}
Set<Node> cells = row.lookupAll(".table-cell");
for (Node node : cells) {
TableCell<?, ?> cell = (TableCell<?, ?>) node;
if (tableView.getColumns().indexOf(cell.getTableColumn()) == columnIndex) {
Bounds bounds = cell.getBoundsInParent();
Point2D localToParent = cell.localToParent(bounds.getWidth() / 2, bounds.getHeight() / 2);
Point2D rowLocal = row.localToScene(localToParent, true);
return rowLocal;
}
}
return null;
}
项目:marathonv5
文件:JavaFXElementPropertyAccessor.java
public TableCell<?, ?> getVisibleCellAt(TableView<?> tableView, int row, int column) {
Set<Node> lookupAll = getTableCells(tableView);
TableCell<?, ?> cell = null;
for (Node node : lookupAll) {
TableCell<?, ?> cell1 = (TableCell<?, ?>) node;
TableRow<?> tableRow = cell1.getTableRow();
TableColumn<?, ?> tableColumn = cell1.getTableColumn();
if (tableRow.getIndex() == row && tableColumn == tableView.getColumns().get(column)) {
cell = cell1;
break;
}
}
if (cell != null) {
return cell;
}
return null;
}
项目:marathonv5
文件:JavaFXTableViewElementScrollTest.java
public Point2D getPoint(TableView<?> tableView, int columnIndex, int rowIndex) {
Set<Node> tableRowCell = tableView.lookupAll(".table-row-cell");
TableRow<?> row = null;
for (Node tableRow : tableRowCell) {
TableRow<?> r = (TableRow<?>) tableRow;
if (r.getIndex() == rowIndex) {
row = r;
break;
}
}
Set<Node> cells = row.lookupAll(".table-cell");
for (Node node : cells) {
TableCell<?, ?> cell = (TableCell<?, ?>) node;
if (tableView.getColumns().indexOf(cell.getTableColumn()) == columnIndex) {
Bounds bounds = cell.getBoundsInParent();
Point2D localToParent = cell.localToParent(bounds.getWidth() / 2, bounds.getHeight() / 2);
Point2D rowLocal = row.localToScene(localToParent, true);
return rowLocal;
}
}
return null;
}
项目:marathonv5
文件:RFXComponentTest.java
public Point2D getPoint(TableView<?> tableView, int columnIndex, int rowIndex) {
Set<Node> tableRowCell = tableView.lookupAll(".table-row-cell");
TableRow<?> row = null;
for (Node tableRow : tableRowCell) {
TableRow<?> r = (TableRow<?>) tableRow;
if (r.getIndex() == rowIndex) {
row = r;
break;
}
}
Set<Node> cells = row.lookupAll(".table-cell");
for (Node node : cells) {
TableCell<?, ?> cell = (TableCell<?, ?>) node;
if (tableView.getColumns().indexOf(cell.getTableColumn()) == columnIndex) {
Bounds bounds = cell.getBoundsInParent();
Point2D localToParent = cell.localToParent(bounds.getWidth() / 2, bounds.getHeight() / 2);
Point2D rowLocal = row.localToScene(localToParent, true);
return rowLocal;
}
}
return null;
}
项目:karate
文件:VarsPanel.java
public VarsPanel(AppSession session) {
this.session = session;
table = new TableView();
table.setPrefWidth(300);
table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
setCenter(table);
TableColumn nameCol = new TableColumn("Variable");
nameCol.setMinWidth(120);
nameCol.setMaxWidth(250);
nameCol.setCellValueFactory(new PropertyValueFactory("name"));
nameCol.setCellFactory(c -> new StringTooltipCell());
TableColumn typeCol = new TableColumn("Type");
typeCol.setMinWidth(45);
typeCol.setMaxWidth(60);
typeCol.setCellValueFactory(new PropertyValueFactory("type"));
TableColumn<Var, ScriptValue> valueCol = new TableColumn("Value");
valueCol.setCellValueFactory(c -> new ReadOnlyObjectWrapper(c.getValue().getValue()));
valueCol.setCellFactory(c -> new VarValueCell());
table.getColumns().addAll(nameCol, typeCol, valueCol);
table.setItems(session.getVars());
table.setRowFactory(tv -> {
TableRow<Var> row = new TableRow<>();
row.setOnMouseClicked(e -> {
if (e.getClickCount() == 2 && !row.isEmpty()) {
Var var = row.getItem();
session.logVar(var);
}
});
return row ;
});
}
项目:OpenVSP3Plugin
文件:DesignVariableTableCell.java
@Override
@SuppressWarnings("unchecked")
protected void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if (!empty) {
TableView<DesignVariable> tv = getTableView();
TableRow<DesignVariable> tr = getTableRow();
if ((tv != null) && (tr != null)) {
if (tv.getItems().get(getTableRow().getIndex()).isOutput()) {
setTextFill(Color.BLUE);
} else if (tv.getItems().get(getTableRow().getIndex()).getValue().equals("INVALID")) {
setTextFill(Color.ORANGE);
} else {
setTextFill(Color.GREEN);
}
} else {
setTextFill(Color.YELLOW);
}
setText(item);
} else {
setText("");
}
}
项目:vars-annotation
文件:TableViewExt.java
private void recomputeVisibleIndexes() {
firstIndex = -1;
lastIndex = -1;
// Work out which of the rows are visible
double tblViewHeight = tableView.getHeight();
double headerHeight = tableView.lookup(".column-header-background").getBoundsInLocal().getHeight();
double viewPortHeight = tblViewHeight - headerHeight;
for(TableRow<T> r : rows) {
double minY = r.getBoundsInParent().getMinY();
double maxY = r.getBoundsInParent().getMaxY();
boolean hidden = (maxY < 0) || (minY > viewPortHeight);
// boolean fullyVisible = !hidden && (maxY <= viewPortHeight) && (minY >= 0);
if (!hidden) {
if (firstIndex < 0 || r.getIndex() < firstIndex) {
firstIndex = r.getIndex();
}
if (lastIndex < 0 || r.getIndex() > lastIndex) {
lastIndex = r.getIndex();
}
}
}
}
项目:ServerBrowser
文件:SampServerTable.java
private void initTableRowFactory() {
setRowFactory(facotry -> {
final TableRow<SampServer> row = new TableRow<>();
row.setOnMouseClicked(clicked -> {
// A row has been clicked, so we want to hide the previous context menu
contextMenu.hide();
if (Objects.nonNull(row.getItem())) {
// If there is an item in this row, we want to proceed further
handleClick(row, clicked);
} else {
// Otherwise we clear the selection.
getSelectionModel().clearSelection();
}
});
return row;
});
}
项目:trex-stateless-gui
文件:ImportedPacketTableView.java
@Override
public TableRow call(TableView param) {
TableRow row = new TableRow();
row.itemProperty().addListener(new ChangeListener() {
@Override
public void changed(ObservableValue observable, Object oldValue, Object newValue) {
updateRowStyle(row);
}
});
rowsToHighlight.addListener(new ListChangeListener<Integer>() {
@Override
public void onChanged(ListChangeListener.Change<? extends Integer> c) {
updateRowStyle(row);
}
});
return row;
}
项目:rpmjukebox
文件:LoveButtonTableCellFactoryTest.java
@Test
public void shouldSinglePrimaryClickOnCellTrackInPlaylist() {
TableCell<TrackTableModel, String> tableCell = cellFactory.call(new TableColumn<>());
tableCell.setItem("trackId");
Track track = new Track("123", "Artist Name", "Artist Image", "456", "Album Name", "Album Image", 2000, "789",
"Track Name", 1, "Location", true, Arrays.asList("Genre 1", "Genre 2"));
track.setPlaylistId(999);
TrackTableModel trackTableModel = new TrackTableModel(track);
@SuppressWarnings("unchecked")
TableRow<TrackTableModel> mockTableRow = (TableRow<TrackTableModel>)mock(TableRow.class);
when(mockTableRow.getItem()).thenReturn(trackTableModel);
ReflectionTestUtils.invokeMethod(tableCell, "setTableRow", mockTableRow);
when(mockPlaylistManager.isTrackInPlaylist(anyInt(), anyString())).thenReturn(true);
tableCell.onMouseClickedProperty().get()
.handle(getMouseEvent(MouseEvent.MOUSE_CLICKED, MouseButton.PRIMARY, 1));
verify(mockPlaylistManager, never()).addTrackToPlaylist(PLAYLIST_ID_FAVOURITES, track);
verify(mockPlaylistManager, times(1)).removeTrackFromPlaylist(PLAYLIST_ID_FAVOURITES, track);
verify(getMockEventManager(), times(1)).fireEvent(Event.PLAYLIST_CONTENT_UPDATED, track.getPlaylistId());
}
项目:rpmjukebox
文件:LoveButtonTableCellFactoryTest.java
@Test
public void shouldSinglePrimaryClickOnCellTrackNotInPlaylist() {
TableCell<TrackTableModel, String> tableCell = cellFactory.call(new TableColumn<>());
tableCell.setItem("trackId");
Track track = new Track("123", "Artist Name", "Artist Image", "456", "Album Name", "Album Image", 2000, "789",
"Track Name", 1, "Location", true, Arrays.asList("Genre 1", "Genre 2"));
track.setPlaylistId(999);
TrackTableModel trackTableModel = new TrackTableModel(track);
@SuppressWarnings("unchecked")
TableRow<TrackTableModel> mockTableRow = (TableRow<TrackTableModel>)mock(TableRow.class);
when(mockTableRow.getItem()).thenReturn(trackTableModel);
ReflectionTestUtils.invokeMethod(tableCell, "setTableRow", mockTableRow);
when(mockPlaylistManager.isTrackInPlaylist(anyInt(), anyString())).thenReturn(false);
tableCell.onMouseClickedProperty().get()
.handle(getMouseEvent(MouseEvent.MOUSE_CLICKED, MouseButton.PRIMARY, 1));
verify(mockPlaylistManager, times(1)).addTrackToPlaylist(PLAYLIST_ID_FAVOURITES, track);
verify(mockPlaylistManager, never()).removeTrackFromPlaylist(PLAYLIST_ID_FAVOURITES, track);
verify(getMockEventManager(), times(1)).fireEvent(Event.PLAYLIST_CONTENT_UPDATED, track.getPlaylistId());
}
项目:mars-sim
文件:AnimatedTableRow.java
private void moveDataWithAnimation(final TableView<Person> sourceTable,
final TableView<Person> destinationTable,
final Pane commonTableAncestor, final TableRow<Person> row) {
// Create imageview to display snapshot of row:
final ImageView imageView = createImageView(row);
// Start animation at current row:
final Point2D animationStartPoint = row.localToScene(new Point2D(0, 0)); // relative to Scene
final Point2D animationEndPoint = computeAnimationEndPoint(destinationTable); // relative to Scene
// Set start location
final Point2D startInRoot = commonTableAncestor.sceneToLocal(animationStartPoint); // relative to commonTableAncestor
imageView.relocate(startInRoot.getX(), startInRoot.getY());
// Create animation
final Animation transition = createAndConfigureAnimation(
sourceTable, destinationTable, commonTableAncestor, row,
imageView, animationStartPoint, animationEndPoint);
// add animated image to display
commonTableAncestor.getChildren().add(imageView);
// start animation
transition.play();
}
项目:grantmaster
文件:SummaryHighlighterRowFactory.java
@Override
public TableRow<EditableTableRowItem> call(TableView<EditableTableRowItem> p) {
final TableRow<EditableTableRowItem> row = new TableRow<EditableTableRowItem>() {
@Override
protected void updateItem(EditableTableRowItem entityWrapper, boolean empty) {
super.updateItem(entityWrapper, empty);
if (!empty && entityWrapper != null && entityWrapper.getIsSummary()) {
if (!getStyleClass().contains("summaryRow")) {
getStyleClass().add("summaryRow");
}
} else {
getStyleClass().removeAll(Collections.singleton("summaryRow"));
}
}
};
return row;
}
项目:WhoWhatWhere
文件:VisualTraceController.java
private void setTableContextMenu()
{
tableTrace.setRowFactory(param ->
{
TableRow<TraceLineInfo> row = new TableRow<>();
MenuItem moreGeoIPInfo = new MenuItem(" Show GeoIP results from multiple sources");
moreGeoIPInfo.setOnAction(event9 -> Main.openInBrowser(GeoIPResolver.getSecondaryGeoIpPrefix() + row.getItem().ipAddressProperty().get()));
Menu copyMenu = generateCopyMenu(row);
ContextMenu rowMenu = new ContextMenu(moreGeoIPInfo, copyMenu);
row.contextMenuProperty().bind(Bindings.when(Bindings.isNotNull(row.itemProperty())).then(rowMenu).otherwise((ContextMenu) null));
return row;
});
}
项目:mzmine3
文件:SpinnerTableCell.java
public SpinnerTableCell(TableColumn<T, Integer> column, int min, int max) {
spinner = new Spinner<>(min, max, 1);
spinner.editableProperty().bind(column.editableProperty());
spinner.disableProperty().bind(column.editableProperty().not());
tableRowProperty().addListener(e -> {
TableRow<?> row = getTableRow();
if (row == null)
return;
MsSpectrumDataSet dataSet = (MsSpectrumDataSet) row.getItem();
if (dataSet == null)
return;
spinner.getValueFactory().valueProperty().bindBidirectional(dataSet.lineThicknessProperty());
disableProperty().bind(dataSet.renderingTypeProperty().isEqualTo(MsSpectrumType.CENTROIDED));
});
}
项目:mzmine3
文件:SpinnerTableCell.java
public SpinnerTableCell(TableColumn<T, Integer> column, int min, int max) {
spinner = new Spinner<>(min, max, 1);
spinner.editableProperty().bind(column.editableProperty());
spinner.disableProperty().bind(column.editableProperty().not());
tableRowProperty().addListener(e -> {
TableRow<?> row = getTableRow();
if (row == null)
return;
ChromatogramPlotDataSet dataSet = (ChromatogramPlotDataSet) row.getItem();
if (dataSet == null)
return;
spinner.getValueFactory().valueProperty().bindBidirectional(dataSet.lineThicknessProperty());
});
}
项目:Cachoeira
文件:RecentProjectsRowFactory.java
@Override
public TableRow<File> call(TableView<File> param) {
TableRow<File> row = new TableRow<>();
row.setOnMousePressed(event -> {
if (event.isPrimaryButtonDown() && event.getClickCount() == 2 && !row.isEmpty()) {
File recentProject = row.getItem();
if (recentProject.exists()) {
DataService.getInstance().loadProject(recentProject);
if (controller.getView().getStage().isShowing()) {
controller.getView().getStage().close(); //закрываем стартовое окно
}
} else {
Alert alert = new Alert(Alert.AlertType.ERROR, "File does not exist");
alert.showAndWait();
RecentProjectsController.getInstance().removeRecentProject(recentProject);
SettingsManager.getInstance().writeRecentProjects(RecentProjectsController.getInstance().getRecentProjects());
}
}
});
return row;
}
项目:bgfinancas
文件:Tabela.java
public void prepararTabelaSelecao(TableView<T> tabela, int numTabela){
prepararTabela(tabela, numTabela);
tabela.setOnKeyReleased(event -> {
Kernel.controlador.acaoAlterar(numTabela+10);
});
tabela.setRowFactory((TableView<T> paramP) -> {
TableRow<T> row = new TableRow<>();
row.setOnMouseClicked((MouseEvent mouseEvent) -> {
if (mouseEvent.getClickCount()==2 && (!row.isEmpty())) {
Kernel.controlador.acaoAlterar(numTabela);
}
if (mouseEvent.getClickCount()==1 && (!row.isEmpty())) {
Kernel.controlador.acaoAlterar(numTabela+10);
}
});
return row;
});
}
项目:curly
文件:AppController.java
private void updateRowHighlight(TableRow<Map<String, String>> row) {
int r = 160;
int g = 160;
int b = 160;
if (highlightedRows.isEmpty()) {
r = 255;
g = 255;
b = 255;
} else if (highlightedRows.contains(row.getIndex())) {
r = 200;
g = 255;
b = 200;
}
if (row.getIndex() % 2 == 1) {
r = Math.max(0, r-16);
g = Math.max(0, g-16);
b = Math.max(0, b-16);
}
row.setBackground(new Background(new BackgroundFill(Color.rgb(r, g, b), null, null)));
}
项目:LightningPlayer
文件:FXMLController.java
private void createDoubleClickTableListener() {
playListTable.setRowFactory(tv -> {
TableRow<PlaylistElement> row = new TableRow<>();
row.setOnMouseClicked(event -> {
if (event.getClickCount() == 2 && !row.isEmpty()) {
PlayerFX.getInstance().setPlaylistIndex(row.getIndex());
PlayerFX.getInstance().setActualMedia(PlayerFX.getInstance().getActualPlaylist().get(row.getIndex()).asMedia());
PlayerFX.getInstance().play();
PlayerFX.getInstance().autonext(this);
setAvailability();
}
});
return row;
});
}
项目:LIMES
文件:CustomGuiTest.java
public static TableRow<?> getFirstRowOfTableView(String tableSelector) {
TableView<?> tableView = new FxRobot().lookup(tableSelector).query();
List<Node> current = tableView.getChildrenUnmodifiable();
while (current.size() == 1) {
current = ((Parent) current.get(0)).getChildrenUnmodifiable();
}
current = ((Parent) current.get(1)).getChildrenUnmodifiable();
while (!(current.get(0) instanceof TableRow)) {
current = ((Parent) current.get(0)).getChildrenUnmodifiable();
}
Node node = current.get(0);
if (node instanceof TableRow) {
return (TableRow<?>) node;
} else {
throw new RuntimeException("Expected Group with only TableRows as children");
}
}
项目:Introspect-Framework
文件:RfxTable.java
/**
* @param row Index of the row
* @return the corresponding row
*/
public TableRow<?> getRow(int row) {
List<Node> current = getChildrenUnmodifiable();
while (current.size() == 1) {
current = ((Parent) current.get(0)).getChildrenUnmodifiable();
}
current = ((Parent) current.get(1)).getChildrenUnmodifiable();
while (!(current.get(0) instanceof TableRow)) {
current = ((Parent) current.get(0)).getChildrenUnmodifiable();
}
Node node = current.get(row);
if (node instanceof TableRow) {
return (TableRow<?>) node;
} else {
throw new RuntimeException("Expected Group with only TableRows as children");
}
}
项目:CloudTrailViewer
文件:TableWidgetController.java
@Override
public void configure(DashboardWidget widget, EventTableService eventTableService, DatabaseService databaseService) {
super.configure(widget, eventTableService, databaseService);
tableView.setPrefWidth(widget.getWidth());
tableView.setPrefHeight(widget.getHeight());
tableView.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
addTopColumns(widget);
tableView.setItems(keyValueData);
tableView.setRowFactory(tv -> {
TableRow<KeyIntegerValue> row = new TableRow<>();
row.setOnMouseClicked(event -> {
if (!row.isEmpty()) {
KeyIntegerValue rowData = row.getItem();
eventTableService.setTableEvents(keyValueMap.get(rowData.getField()));
}
});
return row;
});
}
项目:lawless-legends
文件:SheetEditorControllerImpl.java
/**
* Initializes the controller class.
*/
@Override
public void initialize(URL url, ResourceBundle rb) {
super.initialize();
tableData = FXCollections.observableArrayList();
table.setItems(tableData);
table.setEditable(true);
table.setRowFactory(tableView -> {
final TableRow<Row> row = new TableRow<>();
final ContextMenu contextMenu = new ContextMenu(
createMenuItem("Insert Row", () -> tableData.add(row.getIndex(), new Row())),
createMenuItem("Clone Row", () -> cloneRow(row.getItem())),
createMenuItem("Delete Row", () -> deleteRowWithConfirmation(row.getItem()))
);
row.contextMenuProperty().bind(
Bindings.when(row.emptyProperty())
.then((ContextMenu) null)
.otherwise(contextMenu)
);
return row;
});
}
项目:qgu
文件:TaskTableView.java
/*********************************************
* *
* CONTEXT MENU FACTORY *
* *
*********************************************/
private TableRow<ObservableGanttTask> tableRowFactory(TableView<ObservableGanttTask> table) {
final TableRow<ObservableGanttTask> row = new TableRow<>();
row.contextMenuProperty().bind(
Bindings.when(Bindings.isNull(row.itemProperty()))
.then((ContextMenu)null)
.otherwise(Bindings.when(row.indexProperty().isEqualTo(0))
.then(makeFirstTaskContextMenu())
.otherwise(makeRegularTaskContextMenu(row))));
return row;
}
项目:vars-annotation
文件:TableViewExt.java
public TableViewExt(TableView<T> tableView) {
this.tableView = tableView;
// Callback to monitor row creation and to identify visible screen rows
final Callback<TableView<T>, TableRow<T>> rf = tableView.getRowFactory();
final Callback<TableView<T>, TableRow<T>> modifiedRowFactory = param -> {
TableRow<T> r = rf != null ? rf.call(param) : new TableRow<>();
// Save row, this implementation relies on JaxaFX re-using TableRow efficiently
// TODO has been causing gui issues. I wonder if it's because rows are never removed
rows.add(r);
return r;
};
tableView.setRowFactory(modifiedRowFactory);
}
项目:ServerBrowser
文件:SampServerTable.java
private void handleClick(final TableRow<SampServer> row, final MouseEvent clicked) {
if (clicked.getButton() == MouseButton.PRIMARY) {
handleLeftClick(row);
} else if (clicked.getButton() == MouseButton.SECONDARY) {
handleRightClick(row, clicked);
}
}
项目:ServerBrowser
文件:SampServerTable.java
private void handleRightClick(final TableRow<SampServer> row, final MouseEvent clicked) {
final List<SampServer> selectedServers = getSelectionModel().getSelectedItems();
if (getSelectionModel().getSelectedIndices().contains(row.getIndex())) {
// In case the current selection model contains the clicked row, we want to open the
// context menu on the current selection mode
displayMenu(selectedServers, clicked.getScreenX(), clicked.getScreenY());
} else {
// Otherwise we will select the clicked item and open the context menu on it
displayMenu(Arrays.asList(row.getItem()), clicked.getScreenX(), clicked.getScreenY());
}
}
项目:ServerBrowser
文件:SampServerTable.java
private void handleLeftClick(final TableRow<SampServer> row) {
final Long lastLeftClickTime = (Long) row.getUserData();
final boolean wasDoubleClick = Objects.nonNull(lastLeftClickTime) && System.currentTimeMillis() - lastLeftClickTime < 300;
final boolean onlyOneSelectedItem = getSelectionModel().getSelectedItems().size() == 1;
if (wasDoubleClick && onlyOneSelectedItem) {
if (ClientPropertiesController.getPropertyAsBoolean(Property.CONNECT_ON_DOUBLECLICK)) {
getFirstIfAnythingSelected().ifPresent(server -> GTAController.tryToConnect(server.getAddress(), server.getPort()));
}
} else {
row.setUserData(Long.valueOf(System.currentTimeMillis()));
}
}
项目:Mod-Tools
文件:ClickableTableView.java
public ClickableTableView(String[] columns) {
setRowFactory(tv -> {
TableRow<E> row = new TableRow<>();
row.setOnMouseClicked(event -> {
if (!row.isEmpty()) {
current = row.getItem();
modified = true;
}
});
return row;
});
for (String column : columns) {
addColumn(column, 600 / columns.length);
}
}
项目:Gargoyle
文件:CTableRowSkin.java
private VirtualFlow<TableRow<T>> getVirtualFlow() {
Parent p = getSkinnable();
while (p != null) {
if (p instanceof VirtualFlow) {
return (VirtualFlow<TableRow<T>>) p;
}
p = p.getParent();
}
return null;
}
项目:Gargoyle
文件:CTableViewSkin.java
/** {@inheritDoc} */
@Override
public TableRow<T> createCell() {
TableRow<T> cell;
if (tableView.getRowFactory() != null) {
cell = tableView.getRowFactory().call(tableView);
} else {
cell = new CTableRow<T>();
}
cell.updateTableView(tableView);
return cell;
}
项目:tornadofx-controls
文件:ExpandableTableRowSkin.java
/**
* Create the ExpandableTableRowSkin and listen to changes for the item this table row represents. When the
* item is changed, the old expanded node, if any, is removed from the children list of the TableRow.
*
* @param tableRow The table row to apply this skin for
* @param expander The expander column, used to retrieve the expanded node when this row is expanded
*/
public ExpandableTableRowSkin(TableRow<S> tableRow, TableRowExpanderColumn<S> expander) {
super(tableRow);
this.tableRow = tableRow;
this.expander = expander;
tableRow.itemProperty().addListener((observable, oldValue, newValue) -> {
if (oldValue != null) {
Node expandedNode = this.expander.getExpandedNode(oldValue);
if (expandedNode != null) getChildren().remove(expandedNode);
}
});
}
项目:CSVboard
文件:Tools.java
private void setSelection(TableRow row) {
if (row.isSelected()) {
table.getSelectionModel().clearSelection(row.getIndex());
} else {
table.getSelectionModel().select(row.getIndex());
}
}
项目:Retrospector
文件:ReviewListController.java
/**
* Initializes the controller class.
*/
@Override
public void initialize(URL url, ResourceBundle rb) {
reviewTable.setPlaceholder(new Text("^ Click 'New' to create a Review"));
reviewTable.getSelectionModel().selectedItemProperty().addListener((observe, old, neo) -> {
setReview(neo);
});
reviewTable.setRowFactory(tv -> {
// Display 'X Days Ago'
TableRow<Review> row = new TableRow<Review>() {
private Tooltip tooltip = new Tooltip();
@Override
public void updateItem(Review review, boolean empty) {
super.updateItem(review, empty);
if (review == null) {
setTooltip(null);
} else {
long age = ChronoUnit.DAYS.between(review.getDate(), LocalDate.now());
tooltip.setText(age + " days ago");
setTooltip(tooltip);
}
}
};
// Quickly switch to editing a review
row.setOnMouseClicked(event -> {
if (event.getClickCount() == 2 && (!row.isEmpty())) {
showReviewEditor();
}
});
return row;
});
ratingColumn.setCellValueFactory(new PropertyValueFactory<>("Rating"));
userColumn.setCellValueFactory(new PropertyValueFactory<>("User"));
dateColumn.setCellValueFactory(new PropertyValueFactory<>("Date"));
}
项目:opc-ua-client
文件:MonitoredEventRowFactory.java
private void updateRowStyle(TableRow<T> row) {
if (row.getItem() == null) {
return;
}
row.pseudoClassStateChanged(BAD_CLASS, row.getItem().getLastError() != null);
row.getItem().lasterrorProperty().addListener(l -> row.pseudoClassStateChanged(BAD_CLASS, row.getItem().getLastError() != null));
}
项目:Redress-Disassembler
文件:CodePaneController.java
public CodePaneController(){
this.widthProperty().addListener(c->{
final double w = this.getWidth();
addressColumn.setPrefWidth(w/6);
dataTypeColumn.setPrefWidth(w/6);
codeColumn.setPrefWidth(w/6);
commentColumn.setPrefWidth(w / 2);
});
addressColumn.setCellValueFactory(new PropertyValueFactory<>("address"));
dataTypeColumn.setCellValueFactory(new PropertyValueFactory<>("informationType"));
codeColumn.setCellValueFactory(new PropertyValueFactory<>("text"));
commentColumn.setCellValueFactory(new PropertyValueFactory<>("comment"));
this.setRowFactory(tableView -> {
TableRow<DisplaySet> row = new TableRow<>();
row.itemProperty().addListener((obs, prev, cur) -> {
row.setStyle("");
if (cur == null)
return;
if(cur.getData() instanceof TableSeperator){
row.setStyle("-fx-background-color: "+((TableSeperator)cur.getData()).getColor());
}
});
return row;
});
this.getColumns().addAll(addressColumn,dataTypeColumn, codeColumn, commentColumn);
}
项目:trex-stateless-gui
文件:ImportedPacketTableView.java
/**
* Update row higlighted style
*
* @param row
*/
private void updateRowStyle(TableRow row) {
if (row != null && row.getItem() != null) {
row.getStyleClass().remove("highlightedRow");
int index = ((ImportPcapTableData) row.getItem()).getIndex();
if (rowsToHighlight.contains(index)) {
row.getStyleClass().add("highlightedRow");
}
}
}
项目:rpmjukebox
文件:TrackTableCellFactoryTest.java
private void updateTableCell(TableCell<TrackTableModel, String> tableCell, Track track) {
tableCell.setItem(track.getTrackName());
TrackTableModel trackTableModel = new TrackTableModel(track);
TableRow<TrackTableModel> tableRow = new TableRow<>();
tableRow.setItem(trackTableModel);
tableCell.updateTableRow(tableRow);
}
项目:mars-sim
文件:AnimatedTableRow.java
private TranslateTransition createAndConfigureAnimation(
final TableView<Person> sourceTable,
final TableView<Person> destinationTable,
final Pane commonTableAncestor, final TableRow<Person> row,
final ImageView imageView, final Point2D animationStartPoint,
Point2D animationEndPoint) {
final TranslateTransition transition = new TranslateTransition(ANIMATION_DURATION, imageView);
// At end of animation, actually move data, and remove animated image
transition.setOnFinished(createAnimationFinishedHandler(sourceTable, destinationTable, commonTableAncestor, row.getItem(), imageView));
// configure transition
transition.setByX(animationEndPoint.getX() - animationStartPoint.getX()); // absolute translation, computed from coords relative to Scene
transition.setByY(animationEndPoint.getY() - animationStartPoint.getY()); // absolute translation, computed from coords relative to Scene
return transition;
}