use of javafx.scene.control.TableView in project bisq-desktop by bisq-network.
the class ArbitratorSelectionView method addArbitratorsGroup.
private void addArbitratorsGroup() {
TableGroupHeadline tableGroupHeadline = new TableGroupHeadline(Res.get("account.arbitratorSelection.whichDoYouAccept"));
GridPane.setRowIndex(tableGroupHeadline, ++gridRow);
GridPane.setColumnSpan(tableGroupHeadline, 2);
GridPane.setMargin(tableGroupHeadline, new Insets(40, -10, -10, -10));
root.getChildren().add(tableGroupHeadline);
tableView = new TableView<>();
GridPane.setRowIndex(tableView, gridRow);
GridPane.setColumnSpan(tableView, 2);
GridPane.setMargin(tableView, new Insets(60, -10, 5, -10));
root.getChildren().add(tableView);
autoSelectAllMatchingCheckBox = addCheckBox(root, ++gridRow, Res.get("account.arbitratorSelection.autoSelect"));
GridPane.setColumnSpan(autoSelectAllMatchingCheckBox, 2);
GridPane.setHalignment(autoSelectAllMatchingCheckBox, HPos.LEFT);
GridPane.setColumnIndex(autoSelectAllMatchingCheckBox, 0);
GridPane.setMargin(autoSelectAllMatchingCheckBox, new Insets(0, -10, 0, -10));
autoSelectAllMatchingCheckBox.setOnAction(event -> model.setAutoSelectArbitrators(autoSelectAllMatchingCheckBox.isSelected()));
TableColumn<ArbitratorListItem, String> dateColumn = new AutoTooltipTableColumn<>(Res.get("account.arbitratorSelection.regDate"));
dateColumn.setSortable(false);
dateColumn.setCellValueFactory(param -> new ReadOnlyObjectWrapper<>(param.getValue().getRegistrationDate()));
dateColumn.setMinWidth(140);
dateColumn.setMaxWidth(140);
TableColumn<ArbitratorListItem, String> nameColumn = new AutoTooltipTableColumn<>(Res.get("shared.onionAddress"));
nameColumn.setSortable(false);
nameColumn.setCellValueFactory(param -> new ReadOnlyObjectWrapper<>(param.getValue().getAddressString()));
nameColumn.setMinWidth(90);
TableColumn<ArbitratorListItem, String> languagesColumn = new AutoTooltipTableColumn<>(Res.get("account.arbitratorSelection.languages"));
languagesColumn.setSortable(false);
languagesColumn.setCellValueFactory(param -> new ReadOnlyObjectWrapper<>(param.getValue().getLanguageCodes()));
languagesColumn.setMinWidth(130);
TableColumn<ArbitratorListItem, ArbitratorListItem> selectionColumn = new AutoTooltipTableColumn<ArbitratorListItem, ArbitratorListItem>(Res.get("shared.accept")) {
{
setMinWidth(60);
setMaxWidth(60);
setSortable(false);
}
};
selectionColumn.setCellValueFactory((arbitrator) -> new ReadOnlyObjectWrapper<>(arbitrator.getValue()));
selectionColumn.setCellFactory(new Callback<TableColumn<ArbitratorListItem, ArbitratorListItem>, TableCell<ArbitratorListItem, ArbitratorListItem>>() {
@Override
public TableCell<ArbitratorListItem, ArbitratorListItem> call(TableColumn<ArbitratorListItem, ArbitratorListItem> column) {
return new TableCell<ArbitratorListItem, ArbitratorListItem>() {
private final CheckBox checkBox = new AutoTooltipCheckBox();
private TableRow tableRow;
private BooleanProperty selectedProperty;
private void updateDisableState(final ArbitratorListItem item) {
boolean selected = model.isAcceptedArbitrator(item.arbitrator);
item.setIsSelected(selected);
boolean hasMatchingLanguage = model.hasMatchingLanguage(item.arbitrator);
if (!hasMatchingLanguage) {
model.onRemoveArbitrator(item.arbitrator);
if (selected)
item.setIsSelected(false);
}
boolean isMyOwnRegisteredArbitrator = model.isMyOwnRegisteredArbitrator(item.arbitrator);
checkBox.setDisable(!hasMatchingLanguage || isMyOwnRegisteredArbitrator);
tableRow = getTableRow();
if (tableRow != null) {
tableRow.setOpacity(hasMatchingLanguage && !isMyOwnRegisteredArbitrator ? 1 : 0.4);
if (isMyOwnRegisteredArbitrator) {
String text = Res.get("account.arbitratorSelection.cannotSelectHimself");
tableRow.setTooltip(new Tooltip(text));
tableRow.setOnMouseClicked(e -> new Popup<>().warning(text).show());
} else if (!hasMatchingLanguage) {
tableRow.setTooltip(new Tooltip(Res.get("account.arbitratorSelection.noMatchingLang")));
tableRow.setOnMouseClicked(e -> new Popup<>().warning(Res.get("account.arbitratorSelection.noLang")).show());
} else {
tableRow.setOnMouseClicked(null);
tableRow.setTooltip(null);
}
}
}
@Override
public void updateItem(final ArbitratorListItem item, boolean empty) {
super.updateItem(item, empty);
if (item != null && !empty) {
selectedProperty = item.isSelectedProperty();
languageCodesListChangeListener = c -> updateDisableState(item);
model.languageCodes.addListener(languageCodesListChangeListener);
isSelectedChangeListener = (observable, oldValue, newValue) -> checkBox.setSelected(newValue);
selectedProperty.addListener(isSelectedChangeListener);
checkBox.setSelected(model.isAcceptedArbitrator(item.arbitrator));
checkBox.setOnAction(e -> {
if (checkBox.isSelected()) {
onAddArbitrator(item);
} else if (model.isDeselectAllowed(item)) {
onRemoveArbitrator(item);
} else {
new Popup<>().warning(Res.get("account.arbitratorSelection.minOne")).show();
checkBox.setSelected(true);
}
item.setIsSelected(checkBox.isSelected());
});
updateDisableState(item);
setGraphic(checkBox);
} else {
model.languageCodes.removeListener(languageCodesListChangeListener);
if (selectedProperty != null)
selectedProperty.removeListener(isSelectedChangeListener);
setGraphic(null);
if (checkBox != null)
checkBox.setOnAction(null);
if (tableRow != null)
tableRow.setOnMouseClicked(null);
}
}
};
}
});
// noinspection unchecked
tableView.getColumns().addAll(dateColumn, nameColumn, languagesColumn, selectionColumn);
tableView.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
}
use of javafx.scene.control.TableView in project TestFX by TestFX.
the class TableViewMatchersTest method containsRow_after_edited_cell.
@Test
@Ignore("Issue #449")
public void containsRow_after_edited_cell() throws TimeoutException {
// given:
TableColumn<Person, String> tableColumn0 = new TableColumn<>("name");
tableColumn0.setEditable(true);
tableColumn0.setCellFactory(TextFieldTableCell.forTableColumn());
tableColumn0.setCellValueFactory(new PropertyValueFactory<>("name"));
tableColumn0.setPrefWidth(150);
TableColumn<Person, Number> tableColumn1 = new TableColumn<>("age");
tableColumn1.setCellValueFactory(new PropertyValueFactory<>("age"));
tableColumn1.setEditable(true);
TableView<Person> tableView = new TableView<>();
tableView.setEditable(true);
tableView.getColumns().setAll(tableColumn0, tableColumn1);
Person alice = new Person("alice", 30);
Person bob = new Person("bob", 41);
tableView.setItems(observableArrayList(alice, bob));
FxToolkit.setupSceneRoot(() -> new StackPane(tableView));
WaitForAsyncUtils.waitForFxEvents();
clickOn("alice");
clickOn("alice");
press(KeyCode.BACK_SPACE);
write("not alice!");
press(KeyCode.ENTER);
// then:
assertThat(tableView, TableViewMatchers.containsRow("not alice!", 30));
}
use of javafx.scene.control.TableView in project financial by greatkendy123.
the class MyController method add2AllTeamFWF_from_tableProfit.
/**
* 利润表修改总团队服务费(累积该团队的服务费)
* @time 2018年1月5日
* @param teamFWF
*/
public static void add2AllTeamFWF_from_tableProfit(TableView<ProfitInfo> table, Double teamFWF) {
try {
ProfitInfo profitInfo = TableUtil.getItem(table).filtered(info -> "总团队服务费".equals(info.getProfitType())).get(0);
String allTeamFWF = NumUtil.digit0(NumUtil.getNum(profitInfo.getProfitAccount()) + teamFWF);
profitInfo.setProfitAccount(allTeamFWF);
table.refresh();
} catch (Exception e) {
e.printStackTrace();
}
}
use of javafx.scene.control.TableView in project financial by greatkendy123.
the class TGExportExcelService method getTGWaizhaiExcelModel.
/**
* 导出托管公司的团队外债与团队外债明细
* @return
*/
private TGExcelModel getTGWaizhaiExcelModel() {
TGExcelModel excelModel = new TGExcelModel();
List<String> titleList = new LinkedList<>();
List<Object[]> data = new LinkedList<>();
List<String> titleSumList = new LinkedList<>();
List<Object[]> dataSum = new LinkedList<>();
// 取值
// 传给Excel的外债数据
Map<String, List<Object[]>> teamMap = new LinkedHashMap<>();
ObservableList<Node> items = tgController.tgWZTeamHBox.getChildren();
// 存放总和表
ObservableList<TypeValueInfo> sumItems = tgController.tgWZTeam.getItems();
if (CollectUtil.isHaveValue(sumItems)) {
List<Object[]> teamList = tgController.tgWZTeam.getItems().stream().map(info -> {
Object[] obj = new Object[2];
obj[0] = info.getType();
obj[1] = info.getValue();
return obj;
}).collect(Collectors.toList());
String key = tgController.tgWZTeam.getColumns().get(0).getText() + "#" + tgController.tgWZTeam.getColumns().get(1).getText();
teamMap.put(key, teamList);
}
// 存放明细表
if (CollectUtil.isHaveValue(items)) {
for (Node node : items) {
TableView<CurrentMoneyInfo> table = (TableView<CurrentMoneyInfo>) node;
List<Object[]> teamList = table.getItems().stream().map(info -> {
Object[] obj = new Object[2];
obj[0] = info.getMingzi();
obj[1] = info.getShishiJine();
return obj;
}).collect(Collectors.toList());
String key = table.getColumns().get(0).getText() + "#" + table.getColumns().get(1).getText();
teamMap.put(key, teamList);
}
}
excelModel.setColumnList(titleList);
excelModel.setData(data);
excelModel.setColumnSumList(titleSumList);
excelModel.setDataSum(dataSum);
excelModel.setSheetName("外债");
// 设值
excelModel.setWaiZai(true);
excelModel.setWaizhaiMap(teamMap);
return excelModel;
}
use of javafx.scene.control.TableView in project MiscellaneousStudy by mikoto2000.
the class TableViewSample method start.
@Override
public void start(Stage stage) {
// TableView にルート要素を指定しながらインスタンス化
TableView<TableData> tableView = new TableView<>();
// 列の定義
TableColumn<TableData, String> firstNameCol = new TableColumn<>("First Name");
firstNameCol.setCellValueFactory(new PropertyValueFactory<>("firstName"));
TableColumn<TableData, String> lastNameCol = new TableColumn<>("Last Name");
lastNameCol.setCellValueFactory(new PropertyValueFactory<>("lastName"));
ObservableList<TableColumn<TableData, ?>> columns = tableView.getColumns();
columns.add(firstNameCol);
columns.add(lastNameCol);
// テーブルレコードの作成
ObservableList<TableData> tableDatas = FXCollections.observableArrayList();
TableData tableData01 = new TableData("First", "Last");
tableDatas.add(tableData01);
TableData tableData02 = new TableData("Fukuzo", "Moguro");
tableDatas.add(tableData02);
TableData tableData03 = new TableData("Mikoto", "Ohyuki");
tableDatas.add(tableData03);
tableView.setItems(tableDatas);
// シーン作成
Scene scene = new Scene(tableView);
stage.setScene(scene);
stage.setTitle("Table View Sample");
stage.show();
}
Aggregations