From 6426cafcf65c8cda7b740ce5b2174d23165b2396 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 25 Aug 2015 18:21:12 +0200 Subject: [client] Display memory usage --- .../java/org/openslx/dozmod/gui/MainWindow.java | 56 ++++++++++++++++++---- 1 file changed, 46 insertions(+), 10 deletions(-) (limited to 'dozentenmodul/src/main/java') 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 bb62da38..b6727d2c 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java @@ -15,8 +15,10 @@ import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JFrame; +import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; @@ -46,7 +48,10 @@ import org.openslx.dozmod.gui.window.VirtualizerNoticeWindow; import org.openslx.dozmod.state.UploadWizardState; import org.openslx.dozmod.thrift.GuiErrorCallback; import org.openslx.dozmod.thrift.Session; +import org.openslx.dozmod.util.FormatHelper; import org.openslx.thrifthelper.ThriftManager; +import org.openslx.util.QuickTimer; +import org.openslx.util.QuickTimer.Task; public abstract class MainWindow { @@ -310,7 +315,7 @@ public abstract class MainWindow { JMenuBar menuBar = new JMenuBar(); mainWindow.setJMenuBar(menuBar); - JMenu cascadeFileMenu = new JMenu("File"); + JMenu cascadeFileMenu = new JMenu("Session"); menuBar.add(cascadeFileMenu); JMenuItem logoutItem = new JMenuItem("Logout"); @@ -318,6 +323,21 @@ public abstract class MainWindow { JMenuItem exitItem = new JMenuItem("Exit"); cascadeFileMenu.add(exitItem); + // the About menu button + JMenu cascadeAboutMenu = new JMenu("About"); + menuBar.add(cascadeAboutMenu); + + JMenuItem disclaimerItem = new JMenuItem("Disclaimer"); + JMenuItem virtualizerNoticeItem = new JMenuItem("Virtualizer"); + cascadeAboutMenu.add(disclaimerItem); + cascadeAboutMenu.add(virtualizerNoticeItem); + + menuBar.add(Box.createHorizontalGlue()); + final JLabel memStats = new JLabel(); + menuBar.add(memStats); + + // Define actions + logoutItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { @@ -333,15 +353,6 @@ public abstract class MainWindow { } }); - // the About menu button - JMenu cascadeAboutMenu = new JMenu("About"); - menuBar.add(cascadeAboutMenu); - - JMenuItem disclaimerItem = new JMenuItem("Disclaimer"); - JMenuItem virtualizerNoticeItem = new JMenuItem("Virtualizer"); - cascadeAboutMenu.add(disclaimerItem); - cascadeAboutMenu.add(virtualizerNoticeItem); - disclaimerItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { @@ -355,6 +366,31 @@ public abstract class MainWindow { VirtualizerNoticeWindow.open(mainWindow); } }); + + // Debug label + + QuickTimer.scheduleAtFixedDelay(new Task() { + + @Override + public void fire() { + Runtime rt = Runtime.getRuntime(); + long maxMemory = rt.maxMemory(); + long totalMemory = rt.totalMemory(); + long usedMemory = totalMemory - rt.freeMemory(); + String txt = "[" + FormatHelper.bytes(usedMemory, false) + "/" + + FormatHelper.bytes(totalMemory, false); + if (maxMemory != Long.MAX_VALUE) { + txt += ", limit: " + FormatHelper.bytes(maxMemory, false); + } + final String labelText = txt + "]"; + Gui.asyncExec(new Runnable() { + @Override + public void run() { + memStats.setText(labelText); + } + }); + } + }, 10, 2001); } } -- cgit v1.2.3-55-g7522