void updateStatusInfo() {
        if (metafast.progress.currentRunningStep != null) {
            String s = metafast.progress.currentRunningStep.getStageName(curLang) + " " +
                    "(" + ((curLang == 0) ? "stage " : "этап ") + (metafast.progress.doneSteps + 1) + ((curLang == 0) ? " of " : " из ") + metafast.progress.allSteps +")";
            if (Tool.isInterrupted) {
                if (runningThread != null) {
                    s += (curLang == 0) ? " (interrupting...)" : " (прерывание...)";
                } else {
                    s += (curLang == 0) ? " (interrupted)" : " (прерван)";
                    runningStage.setForeground(Color.RED);
                }
            }
            runningStage.setText(s);
        }

        if (runningThread == null && !Tool.isInterrupted) {
            // clearing the status
            runningStage.setText("");
            runningStage.setForeground(Color.BLACK);
            remainingTime.setText("");
            return;
        }

        elapsedTime.setText(metafast.progress.getRunningTime());
        remainingTime.setText(metafast.progress.getRemainingTime());
        overallProgress.setText(String.format("%.1f%%", metafast.progress.progress * 100.0));
    }