При добавлении пагинации в javafx функция обратного вызова пагинации не вызывается - PullRequest
0 голосов
/ 25 сентября 2018

FXML

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Pagination?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.Pane?>

<Pane xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.medplus.posoffline.gui.ReturnsPickListController">
   <children>
      <Pane prefHeight="600.0" prefWidth="800.0">
         <children>
            <Label layoutX="5.0" layoutY="15.0" text="RequestId" />
            <TextField fx:id="requestId" layoutX="75.0" layoutY="15.0" prefWidth="140.0" />
            <Label layoutX="245.0" layoutY="15.0" text="Status" />
            <ComboBox fx:id="returnStatusComb" layoutX="295.0" layoutY="15.0" prefWidth="140.0">
            </ComboBox>
            <Label layoutX="470.0" layoutY="15.0" text="Type" />
            <ComboBox fx:id="returnTypeComb" layoutX="510.0" layoutY="15.0" prefWidth="140.0">
            </ComboBox>
            <Button layoutX="598.0" layoutY="60.0" mnemonicParsing="false" onAction="#searcReturnDetailsfroPickList" text="Search" />
                  <TableView fx:id="tableView" layoutY="95.0" prefHeight="450.0" prefWidth="800.0">
                    <columns>
                        <TableColumn fx:id="requestIdsBtn" minWidth="200.0" prefWidth="75.0" text="RequestID" />
                        <TableColumn fx:id="status" minWidth="200.0" prefWidth="75.0" text="Status" />
                        <TableColumn fx:id="type" minWidth="200.0" prefWidth="75.0" text="Type" />
                        <TableColumn fx:id="dateCreated" minWidth="200.0" prefWidth="75.0" text="DateCreated" />
                    </columns>
                  </TableView>
            <Pagination fx:id="returnsScreenpagination" layoutX="529.0" layoutY="394.0" prefHeight="200.0" prefWidth="200.0" />
         </children>
      </Pane>
   </children>
</Pane>

Контроллер

@Override
public void initialize(URL location, ResourceBundle resources) {
    setCombsValues(); 
    ReturnRequestSearchCriteria returnRequestSearchCriteria = new ReturnRequestSearchCriteria();

    returnRequestSearchCriteria.setDetailsRequired(false);

    try {
        returnRequests = transferUtility.getStoreReturnDetails(returnRequestSearchCriteria);
    } catch (TransferException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
     returnsScreenpagination = new Pagination(5,0);
     returnsScreenpagination.setPageFactory((Integer pageIndex) -> {
            System.out.println(pageIndex);
            if (UtilValidate.isEmpty(returnRequests)) {
                return null;
            } else {
                return createPage(pageIndex,returnRequests);
            }
        });






public TableView<ReturnRequest> createPage(int pageIndex,List<ReturnRequest> returnRequests) {



    status.setCellValueFactory(new PropertyValueFactory<ReturnRequest, ReturnRequestType>("status"));
    type.setCellValueFactory(new PropertyValueFactory<ReturnRequest, ReturnRequestStatus>("type"));
    dateCreated.setCellValueFactory(new PropertyValueFactory<ReturnRequest, Date>("dateCreated"));
    requestIdsBtn.setCellValueFactory(new PropertyValueFactory<ReturnRequest, String>("requestId"));
    requestIdsBtn.setSortable(false);

    dateCreated.setCellFactory(column -> {
        TableCell<ReturnRequest, Date> cell = new TableCell<ReturnRequest, Date>() {
            private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            @Override
            protected void updateItem(Date item, boolean empty) {
                super.updateItem(item, empty);
                if(empty) {
                    setText(null);
                }
                else {
                    this.setText(format.format(item));
                }
            }
        };
        return cell;
    });

    requestIdsBtn.setCellValueFactory(
            new Callback<TableColumn.CellDataFeatures<ReturnRequest, String>, 
            ObservableValue<String>>() {
                @Override
                public ObservableValue<String> call(CellDataFeatures<ReturnRequest, String> param) {
                    ObservableValue<String> obsLong = new SimpleLongProperty(param.getValue().getRequestId()).asString();
                    return  obsLong;
                }
            });

    requestIdsBtn.setCellFactory(
            new Callback<TableColumn<ReturnRequest, String>, TableCell<ReturnRequest, String>>() {

                @Override
                public TableCell<ReturnRequest, String> call(TableColumn<ReturnRequest, String> p) {
                    return new ButtonCell();
                }

            });

    List<ReturnRequest> sublist = returnRequests.subList(0, 5);
    System.out.println(sublist);
    observableProductList.addAll(sublist);
    tableView.setItems( observableProductList);
    return tableView;
}

Я не могу получить данные в TableView.В методе обратного вызова ... печать, которую я сохранил, она не печатается.

Пожалуйста, помогите получить данные в таблице в соответствии с моей нумерацией страниц.

Есть ли другой способотображать нумерацию страниц в JavaFX, включая файл FXML

при вызове метода обратного вызова нумерации страниц?

Заранее спасибо

...