Controller.java 文件源码

java
阅读 23 收藏 0 点赞 0 评论 0

项目:minc-launcher 作者:
private void setupModsListView() {
    listViewMods.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
    listViewMods.setCellFactory(CheckBoxListCell.forListView(new Callback<ModRow, ObservableValue<Boolean>>() {
        @Override
        public ObservableValue<Boolean> call(ModRow item) {
            return item.onProperty();
        }
    }));

    // Set up filtered data
    FilteredList<ModRow> filteredModsByText = new FilteredList<>(modList.getMods(), p -> true);
    FilteredList<ModRow> filteredModsByStatus = new FilteredList<>(filteredModsByText, p -> true);

    // filter with name
    textFieldModsFilter.textProperty().addListener((observable, oldValue, newValue) -> {
        filteredModsByText.setPredicate(modRow -> {
            // If filter text is empty, display all persons.
            if (newValue == null || newValue.isEmpty()) {
                return true;
            }

            // Compare first name and last name of every modRow with filter text.
            String lowerCaseFilter = newValue.toLowerCase();

            if (modRow.getFile() != null && modRow.getFile().getName().toLowerCase().contains(lowerCaseFilter)) {
                return true; // Filter matches name.
            }
            return false; // Does not match.
        });
    });

    toggleGrooupMods.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {
        public void changed(ObservableValue<? extends Toggle> ov,
                            Toggle old_toggle, Toggle new_toggle) {
            if (toggleGrooupMods.getSelectedToggle() != null) {
                System.out.println(toggleGrooupMods.getSelectedToggle());
                if (radioButtonModsAll.isSelected()) {
                    filteredModsByStatus.setPredicate(row -> {
                        return true;
                    });
                } else if (radioButtonModsEnabled.isSelected()) {
                    filteredModsByStatus.setPredicate(row -> {
                        return row.isChecked();
                    });
                } else if (radioButtonModsDisabled.isSelected()) {
                    filteredModsByStatus.setPredicate(row -> {
                        return !row.isChecked();
                    });
                } else {
                    log.error("what?");
                }
            }
        }
    });

    listViewMods.setItems(filteredModsByStatus);

    modList.getEnabled().addListener(new SetChangeListener<ModRow>() {
        @Override
        public void onChanged(Change<? extends ModRow> c) {
            log.debug("modified: c=" + c);
            labelEanbledModsCount.setText(ResStrings.get("label.enabled.mods") + ": " + modList.getEnabled().size());
        }
    });

    loadModList();
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号