sysperfana/perfinvestigator/com.nokia.carbide.cpp.pi/src/com/nokia/carbide/cpp/internal/pi/utils/DebugDialog.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sysperfana/perfinvestigator/com.nokia.carbide.cpp.pi/src/com/nokia/carbide/cpp/internal/pi/utils/DebugDialog.java Thu Feb 11 15:32:31 2010 +0200
@@ -0,0 +1,173 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the License "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:
+ *
+ */
+
+/*
+ * DebugDialog.java
+ */
+package com.nokia.carbide.cpp.internal.pi.utils;
+
+import java.awt.BorderLayout;
+import java.awt.GridLayout;
+
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+public class DebugDialog extends JDialog
+{
+ private static final long serialVersionUID = -7397509550206778612L;
+ private JPanel panel;
+ private JLabel freeMemory;
+ private JLabel totalMemory;
+ private JLabel usedMemory;
+ private static Runtime runtime;
+ private static long time4;
+
+ private static void setTime4(long newTime) {
+ time4 = newTime;
+ }
+
+ private static void setRuntime(Runtime newRuntime)
+ {
+ runtime = newRuntime;
+ }
+
+ public DebugDialog()
+ {
+ setTime4(0);
+ setRuntime(Runtime.getRuntime());
+
+ freeMemory = new JLabel(Messages.getString("DebugDialog.notInitialised")); //$NON-NLS-1$
+ totalMemory = new JLabel(Messages.getString("DebugDialog.notInitialised")); //$NON-NLS-1$
+ usedMemory = new JLabel(Messages.getString("DebugDialog.notInitialised")); //$NON-NLS-1$
+
+ this.setTitle(Messages.getString("DebugDialog.debugDialog")); //$NON-NLS-1$
+ panel = (JPanel) this.getContentPane();
+ panel.setLayout(new BorderLayout());
+ panel.add(getMemoryPanel(), BorderLayout.CENTER);
+ panel.add(getButtonPanel(), BorderLayout.SOUTH);
+ this.pack();
+ panel.updateUI();
+ }
+
+ private JPanel getButtonPanel()
+ {
+ JPanel mp = new JPanel();
+ mp.add(getRefreshButton());
+ mp.add(getGarbageCollectionButton());
+ mp.add(getTestButton());
+ return mp;
+ }
+
+ private JPanel getMemoryPanel()
+ {
+ JPanel mp = new JPanel();
+ mp.setLayout(new GridLayout(3, 2));
+
+ mp.add(new JLabel(Messages.getString("DebugDialog.freeMemory"))); //$NON-NLS-1$
+ mp.add(freeMemory);
+ mp.add(new JLabel(Messages.getString("DebugDialog.totalMemory"))); //$NON-NLS-1$
+ mp.add(totalMemory);
+ mp.add(new JLabel(Messages.getString("DebugDialog.usedMemory"))); //$NON-NLS-1$
+ mp.add(usedMemory);
+// refreshMemoryStatus();
+ return mp;
+ }
+
+ public void refreshMemoryStatus()
+ {
+ long free = runtime.freeMemory() / 1000;
+ long total = runtime.totalMemory() / 1000;
+ long used = total - free;
+
+ freeMemory.setText("" + free); //$NON-NLS-1$
+ totalMemory.setText("" + total); //$NON-NLS-1$
+ usedMemory.setText("" + used); //$NON-NLS-1$
+ }
+
+ private JButton getRefreshButton()
+ {
+ JButton refresh = new JButton(Messages.getString("DebugDialog.refresh")); //$NON-NLS-1$
+ refresh.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(java.awt.event.ActionEvent e)
+ {
+ refreshMemoryStatus();
+ }
+ });
+ return refresh;
+ }
+
+ private JButton getGarbageCollectionButton()
+ {
+ JButton garbage = new JButton(Messages.getString("DebugDialog.garbage")); //$NON-NLS-1$
+ garbage.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(java.awt.event.ActionEvent e)
+ {
+ //runs garbage collection
+ garbageCollection();
+ }
+ });
+ return garbage;
+ }
+ private JButton getTestButton()
+ {
+ JButton refresh = new JButton(Messages.getString("DebugDialog.test")); //$NON-NLS-1$
+ refresh.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(java.awt.event.ActionEvent e)
+ {
+ refreshMemoryStatus();
+ }
+ });
+ return refresh;
+ }
+
+ public static void garbageCollection()
+ {
+ long time1 = System.currentTimeMillis();
+ //Time time = new Time(System.currentTimeMillis());
+ runtime.runFinalization();
+ runtime.gc();
+ long time2 = System.currentTimeMillis();
+ long time3 = time2 - time1;
+ time4 = time4 + time3;
+ System.out.println(Messages.getString("DebugDialog.garbageCollected1") + time3 + Messages.getString("DebugDialog.garbageCollected2") + time4 + Messages.getString("DebugDialog.garbageCollected3")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ //Time time2 = new Time(System.currentTimeMillis());
+ }
+
+ public static void printMemoryUsage()
+ {
+ //Runtime runtime = Runtime.getRuntime();
+
+ long free = runtime.freeMemory() / 1000;
+ long total = runtime.totalMemory() / 1000;
+ long used = total - free;
+ System.out.println(Messages.getString("DebugDialog.currentMemory") + used); //$NON-NLS-1$
+ }
+
+ public static String getCurrentMemoryUsage()
+ {
+ long free = runtime.freeMemory() / 1000000;
+ long total = runtime.totalMemory() / 1000000;
+ long used = total - free;
+ return "" + used + "/" + total; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+}