@Override public synchronized void setText2(String text) { super.setText2(text); if (myOriginal.isRunning()) { myOriginal.setText2(text); } }
@Override public synchronized void setFraction(double fraction) { super.setFraction(fraction); if (myOriginal.isRunning()) { myOriginal.setFraction(fraction); } }
@Override public synchronized void start() { if (isRunning()) return; super.start(); myOriginalStarted = false; myStartupAlarm.addRequest(myShowRequest, SHOW_DELAY); }
@Override public synchronized void stop() { if (myOriginal.isRunning()) { myOriginal.stop(); } else { myStartupAlarm.cancelAllRequests(); if (!myOriginalStarted && myOriginal instanceof Disposable) { // dispose original because start & stop were not called so original progress might not have // released its resources Disposer.dispose(((Disposable) myOriginal)); } } // needed only for correct assertion of !progress.isRunning() in // ApplicationImpl.runProcessWithProgressSynchroniously final Semaphore semaphore = new Semaphore(); semaphore.down(); SwingUtilities.invokeLater( new Runnable() { @Override public void run() { semaphore.waitFor(); if (myDialog != null) { // System.out.println("myDialog.destroyProcess()"); myDialog.close(DialogWrapper.OK_EXIT_CODE); myDialog = null; } } }); try { super.stop(); // should be last to not leaveModal before closing the dialog } finally { semaphore.up(); } }
@Override public void setIndeterminate(boolean indeterminate) { super.setIndeterminate(indeterminate); myOriginal.setIndeterminate(indeterminate); }
@Override public final void cancel() { super.cancel(); myOriginal.cancel(); }