Author: closettop_nightlybuild
Date: 2013-02-07 19:31:06-0800
New Revision: 19910

Modified:
   trunk/src/argouml-app/src/org/argouml/ui/HeapMonitor.java

Log:
Issue 5760 - memory display always red with Java 1.6

see issue at http://argouml.tigris.org/issues/show_bug.cgi?id=5760

Change-Id: If97207b6e6ea3273f90be41ecbf840030efc55e5
Contributed-by: Laurent BRAUD

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=19910&r1=19909&r2=19910
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/ui/HeapMonitor.java   (original)
+++ trunk/src/argouml-app/src/org/argouml/ui/HeapMonitor.java   2013-02-07 
19:31:06-0800
@@ -1,6 +1,6 @@
-/* $Id$
+/* $Id: HeapMonitor.java 19743 2011-10-04 02:47:51Z tfmorris $
  *****************************************************************************
- * Copyright (c) 2009,2011 Contributors - see below
+ * Copyright (c) 2009-2013 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
@@ -8,6 +8,7 @@
  *
  * Contributors:
  *    tfmorris
+ *    Laurent Braud
  *****************************************************************************
  *
  * Some portions of this file was previously release using the BSD License:
@@ -60,9 +61,15 @@
     private static final int WARN_THRESHOLD = 75;
     private static final int CRITICAL_THRESHOLD = 90;
     
-    private static final Color WARN_COLOR  = new Color(255, 190, 125);
+    private static final Color OK_COLOR = new Color(0, 200, 100);
+
+    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 Color CURRENT_USED_COLOR = new Color(0, 0, 0);
+
+    private static final Color CURRENT_HEAP_COLOR = new Color(255, 255, 0);
 
     private static final long M = 1024 * 1024;
     
@@ -91,40 +98,39 @@
     public void paint (Graphics g) {        
         Rectangle bounds = getBounds();
         int usedX = (int) (used * bounds.width / max);
-        int totalX = (int) (total * bounds.width / max);
+        int currentHeapX = (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(getBackground().darker());
-        g.fillRect(0, 0, Math.min(usedX, warnX), bounds.height);
-        
+        g.setColor(OK_COLOR);
+        g.fillRect(0, 0, warnX, bounds.height);
+
         g.setColor(WARN_COLOR);
-        g.fillRect(warnX, 0, 
-                Math.min(usedX - warnX, dangerX - warnX), 
-                bounds.height);
-        
+        g.fillRect(warnX, 0, dangerX - warnX, bounds.height);
+
         g.setColor(CRITICAL_COLOR);
-        g.fillRect(dangerX, 0, 
-                Math.min(usedX - dangerX, bounds.width - dangerX), 
-                bounds.height);
+        g.fillRect(dangerX, 0, bounds.width - dangerX, bounds.height);
+
+        // Thin bar to show current used
+        g.setColor(CURRENT_USED_COLOR);
+        g.fillRect(usedX - 2, 0, 2, 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(CURRENT_HEAP_COLOR);
+        g.fillRect(currentHeapX - 2, 0, 2, bounds.height);
 
         g.setColor(getForeground());
 
         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);
         
         g.setColor(savedColor);
+       
     }
 
     /*

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=3048066

To unsubscribe from this discussion, e-mail: 
[[email protected]].

Reply via email to