svn commit: r19743 - trunk/src/argouml-app/src/org/argouml/ui/HeapMonitor.java
[email protected] Mon, 3 Oct 2011 19:47:51 -0700 (PDT)
| Newsgroups | gmane.comp.lang.uml.argouml.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: tfmorris
Date: 2011-10-03 19:47:51-0700
New Revision: 19743
Modified:
trunk/src/argouml-app/src/org/argouml/ui/HeapMonitor.java
Log:
Switch heap display from currently allocated heap to max (possibly) available
Modified: trunk/src/argouml-app/src/org/argouml/ui/HeapMonitor.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/ui/HeapMonitor.java?view=diff&pathrev=19743&r1=19742&r2=19743
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/ui/HeapMonitor.java (original)
+++ trunk/src/argouml-app/src/org/argouml/ui/HeapMonitor.java 2011-10-03 19:47:51-0700
@@ -1,6 +1,6 @@
/* $Id$
*****************************************************************************
- * Copyright (c) 2009 Contributors - see below
+ * Copyright (c) 2009,2011 Contributors - see below
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -57,12 +57,12 @@
public class HeapMonitor extends JComponent implements ActionListener {
// % thresholds for bar color changes
- private static final int ORANGE_THRESHOLD = 70;
- private static final int RED_THRESHOLD = 90;
+ private static final int WARN_THRESHOLD = 75;
+ private static final int CRITICAL_THRESHOLD = 90;
- private static final Color GREEN = new Color(0, 255, 0);
- private static final Color ORANGE = new Color(255, 190, 125);
- private static final Color RED = new Color(255, 70, 70);
+ private static final Color WARN_COLOR = new Color(255, 190, 125);
+ private static final Color CRITICAL_COLOR = new Color(255, 70, 70);
+ private static final Color TOTAL_COLOR = new Color(255,255,0);
private static final long M = 1024 * 1024;
@@ -90,32 +90,36 @@
public void paint (Graphics g) {
Rectangle bounds = getBounds();
- int usedX = (int) (used * bounds.width / total);
- int warnX = ORANGE_THRESHOLD * bounds.width / 100;
- int dangerX = RED_THRESHOLD * bounds.width / 100;
+ int usedX = (int) (used * bounds.width / max);
+ int totalX = (int) (total * bounds.width / max);
+ int warnX = WARN_THRESHOLD * bounds.width / 100;
+ int dangerX = CRITICAL_THRESHOLD * bounds.width / 100;
Color savedColor = g.getColor();
-// g.setColor(GREEN);
- // TODO: We want something minimally distracting here. Another option
- // might be just the background color with a solid end line.
g.setColor(getBackground().darker());
g.fillRect(0, 0, Math.min(usedX, warnX), bounds.height);
- g.setColor(ORANGE);
+ g.setColor(WARN_COLOR);
g.fillRect(warnX, 0,
Math.min(usedX - warnX, dangerX - warnX),
bounds.height);
- g.setColor(RED);
+ g.setColor(CRITICAL_COLOR);
g.fillRect(dangerX, 0,
Math.min(usedX - dangerX, bounds.width - dangerX),
bounds.height);
+ // Thin bar to show current allocated heap size
+ g.setColor(TOTAL_COLOR);
+ g.fillRect(totalX-2, 0,
+ Math.min(2, bounds.width-totalX),
+ bounds.height);
+
g.setColor(getForeground());
- String s = MessageFormat.format("{0}M used of {1}M total",
- new Object[] {(long) (used / M), (long) (total / M) });
+ String s = MessageFormat.format("{0}M used of {1}M max",
+ new Object[] {(long) (used / M), (long) (max / M) });
int x = (bounds.width - g.getFontMetrics().stringWidth(s)) / 2;
int y = (bounds.height + g.getFontMetrics().getHeight()) / 2;
g.drawString(s, x, y);
@@ -138,8 +142,8 @@
used = total - free;
String tip = MessageFormat.format(
- "Heap use: {0}% {1}M used of {2}M total. Max: {3}M",
- new Object[] {used * 100 / total, (long) (used / M),
+ "Heap use: {0}% {1}M used of {2}M heap. Max: {3}M",
+ new Object[] {used * 100 / max, (long) (used / M),
(long) (total / M), (long) (max / M)
});
setToolTipText(tip);
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2849659
To unsubscribe from this discussion, e-mail: [[email protected]].