diff options
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java | 70 |
1 files changed, 38 insertions, 32 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java index 5fbfbd41..68150210 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java @@ -514,6 +514,7 @@ public abstract class MainWindow { QuickTimer.scheduleAtFixedDelay(new Task() { private int failures = 0; private int ignoreCount = 0; + private String remoteString = ""; private boolean timeDiffChecked = false; @Override @@ -522,47 +523,52 @@ public abstract class MainWindow { long maxMemory = rt.maxMemory(); long totalMemory = rt.totalMemory(); long usedMemory = totalMemory - rt.freeMemory(); - String txt = "[" + FormatHelper.bytes(usedMemory, false) + "/" + String txt = "[JVM: " + FormatHelper.bytes(usedMemory, false) + "/" + FormatHelper.bytes(totalMemory, false); if (maxMemory != Long.MAX_VALUE) { txt += ", Limit: " + FormatHelper.bytes(maxMemory, false); } txt += "]"; - if (Session.getUserId() != null) { - if (ignoreCount > 0) { - ignoreCount -= 1; - } else { - try { - SatelliteStatus status = ThriftManager.getSatClient().getStatus(); - failures = 0; - txt += " [" + FormatHelper.bytes(status.availableStorageBytes, false) + "]"; - if (!timeDiffChecked) { - final long now = System.currentTimeMillis() / 1000; - final long diffSecs = Math.abs(now - status.serverTime); - LOGGER.debug("Clock diff client<->server: " + diffSecs + "s"); - timeDiffChecked = true; - if (diffSecs > TimeUnit.MINUTES.toMillis(10)) { - Gui.asyncMessageBox( - "ACHTUNG: Die Uhrzeit Ihres Computers weicht von der Uhrzeit auf dem Satellitenserver ab.\n" - + "Bitte stellen Sie sicher, dass die Uhr Ihres Computers richtig gestellt ist.\n" - + "Falls Ihre Sytemzeit korrekt gesetzt ist, ist möglicherweise die Uhrzeit auf\n" - + "dem Satellitenserver nicht korrekt eingestellt.\n" - + "In diesem Fall kann es - je nach Abweichung - zu unerwarteten Problemen mit den\n" - + "Start- und Endzeiten von Veranstaltungen kommen. Kontaktieren Sie in diesem\n" - + "Fall den zuständigen Administrator, damit die Uhrzeit auf dem Satellitenserver\n" - + "korrigiert werden kann.\n\n" + "Ihr Computer: " - + FormatHelper.longDate(now) + "\nSatelliten-Server: " - + FormatHelper.longDate(status.serverTime), - MessageType.WARNING, LOGGER, null); - } + if (ignoreCount > 0) { + ignoreCount -= 1; + } else if (Session.getUserId() != null) { + try { + SatelliteStatus status = ThriftManager.getSatClient().getStatus(); + failures = 0; + remoteString = " [Store: " + FormatHelper.bytes(status.availableStorageBytes, false) + "]"; + if (!timeDiffChecked) { + final long now = System.currentTimeMillis() / 1000; + final long diffSecs = Math.abs(now - status.serverTime); + LOGGER.debug("Clock diff client<->server: " + diffSecs + "s"); + timeDiffChecked = true; + if (diffSecs > TimeUnit.MINUTES.toMillis(10)) { + Gui.asyncMessageBox( + "ACHTUNG: Die Uhrzeit Ihres Computers weicht von der Uhrzeit auf dem Satellitenserver ab.\n" + + "Bitte stellen Sie sicher, dass die Uhr Ihres Computers richtig gestellt ist.\n" + + "Falls Ihre Sytemzeit korrekt gesetzt ist, ist möglicherweise die Uhrzeit auf\n" + + "dem Satellitenserver nicht korrekt eingestellt.\n" + + "In diesem Fall kann es - je nach Abweichung - zu unerwarteten Problemen mit den\n" + + "Start- und Endzeiten von Veranstaltungen kommen. Kontaktieren Sie in diesem\n" + + "Fall den zuständigen Administrator, damit die Uhrzeit auf dem Satellitenserver\n" + + "korrigiert werden kann.\n\n" + "Ihr Computer: " + + FormatHelper.longDate(now) + "\nSatelliten-Server: " + + FormatHelper.longDate(status.serverTime), + MessageType.WARNING, LOGGER, null); } - } catch (TException e) { - failures += 1; - ignoreCount = Math.min(10, failures / 3); } + // If user is not active and no upload is running, only update the value once a minute + // TODO: Count active uploads + long inactiveMins = (System.currentTimeMillis() - Gui.getLastUserActivityMillis()) / 60000l; + if (inactiveMins > 10 && UploadTask.getNumberOfUploads() == 0) { + ignoreCount = 30; + } + } catch (TException e) { + failures += 1; + ignoreCount = Math.min(10, failures / 3); + remoteString = " [Store: ???]"; } } - final String labelText = txt; + final String labelText = txt + remoteString; Gui.asyncExec(new Runnable() { @Override public void run() { |