Невозможно создать новую задачу для индикатора выполнения в Java FX - PullRequest
0 голосов
/ 20 апреля 2019

Я создал индикатор выполнения в моем пользовательском интерфейсе контроллера Java FXML и передаю ему значения через executeWSButton. Я создаю новую задачу в методе createWorker () и привязываю значение свойства к индикатору выполнения.

Проблема в том, что я не могу создать новый Task () в методе createWorker (). Он работал нормально 6 месяцев назад, и я возобновил работу по разработке. Не могли бы вы предложить, что может быть причиной здесь

@FXML
public void executeWSButton(ActionEvent event) {
    outputTextScreen.appendText(newLine + " Execution for Process:  Started" + newLine);

    executeWS.setDisable(true);
    progressBar.setProgress(0);
    copyWorker = createWorker();
    if(testModule != "") {
        progressBar.progressProperty().unbind();
        progressBar.progressProperty().bind(copyWorker.progressProperty());
        new Thread(copyWorker).start();
        executeWS.setDisable(false);
    }
    else {
        outputTextScreen.appendText(" Execution for Process: " + Item + " do not have any current TestMethods to Call, Hence stopping the test" + newLine);

    }
}


public Task createWorker() {
        return new Task() {
            @Override
            protected Object call() throws Exception {

                Invoke_TestNG_Classes ws = new Invoke_TestNG_Classes();
                String output = ws.iterateThroughTestCases(inputfile_fp, GIfile_fp, testModule,excelPath);
                if(output.contains("Mark atleast"))
                {
                    updateProgress(1.0, 1.0);
                    outputTextScreen.appendText(
                            "Please mark atleast one test case with flag as Y in Testcase Execution sheet for "+ Item + newLine);
                    textOutput.setText("Test Execution Aborted");
                                        return true;
                }
                while (output.contains("Completed")) {
                    updateProgress(1.0, 1.0);
                    // progressBar.setAccessibleText("Completed");
                    System.out.println(output);
                    outputTextScreen.appendText("Webservice Execution for Process: " + Item + " Completed" + newLine);

                    textOutput.setText("Test Execution Completed");
                    return true;

                }
                return true;
            }

        };
    }
...