📄 storagecanvas.java
字号:
//$Id: StorageCanvas.java,v 1.2 2000/10/28 16:55:18 daniela Exp $package org.ozoneDB.core.monitor;import org.ozoneDB.DxLib.*;import java.awt.*;import java.awt.event.*;public class StorageCanvas extends Canvas { static Color fontColor = new Color( 0, 0, 0 ); static Color bgColor = new Color( 230, 230, 240 ); static Color bg1Color = new Color( 210, 210, 210 ); static Color headColor = new Color( 200, 200, 170 ); // static Color headColor = new Color (248, 248, 192); static Color activeColor = new Color( 245, 0, 0 ); static Color passivColor = new Color( 89, 82, 238 ); static Color deathColor = new Color( 0, 235, 0 ); private static int gradientSteps = 5; private static Color[] gradientColors = gradient( passivColor, deathColor, gradientSteps ); private Graphics dbg; private Image dbImage; /** */ private static Color[] gradient( Color f, Color t, int steps ) { int rs = (t.getRed() - f.getRed()) / steps; int gs = (t.getGreen() - f.getGreen()) / steps; int bs = (t.getBlue() - f.getBlue()) / steps; Color[] colors = new Color[steps]; for (int i = 0; i < steps; i++) { colors[i] = new Color( f.getRed() + rs * i, f.getGreen() + gs * i, f.getBlue() + bs * i ); } return colors; } /** */ public StorageCanvas() { setBackground( bg1Color ); } /** */ public void update( Graphics g ) { if (dbImage == null) { /* BUG 1: deprecated function: size() */ dbImage = createImage( size().width, size().height ); dbg = dbImage.getGraphics(); } paint( dbg ); g.drawImage( dbImage, 0, 0, this ); } /** */ public void paint( Graphics g ) { super.paint( g ); Rectangle rect = getBounds(); g.setColor( bg1Color ); g.fillRect( 1, 1, rect.width - 2, rect.height - 2 ); g.draw3DRect( 1, 1, rect.width - 2, rect.height - 2, true ); g.setColor( headColor ); g.fillRect( 3, 3, rect.width - 5, 13 ); g.setColor( Color.white ); g.drawString( "Storage View", 6, 13 ); int viewHeight = (rect.height - 60) / 3; Rectangle osRect = new Rectangle( 10, rect.height - viewHeight * 3 - 40, rect.width - 20, viewHeight ); updateOS( g, osRect ); Rectangle csRect = new Rectangle( 10, rect.height - viewHeight * 2 - 25, rect.width - 20, viewHeight ); updateCS( g, csRect ); Rectangle psRect = new Rectangle( 10, rect.height - viewHeight - 10, rect.width - 20, viewHeight ); updatePS( g, psRect ); } /** */ public void updateOS( Graphics g, Rectangle rect ) { /* * g.setColor (fontColor); PersistenceSpace ps = Env.store.persistenceSpace; int percent = Env.store.dobjBuffer.size(); // + cl.size() > maxBufferSize String label = new String("ObjectSpace - " + Env.store.maxBufferSize / 1024 + "K max - " + new Integer(percent / 1024 ).toString() + "K used"); g.drawString (label, rect.x, rect.y + 12); g.setColor (bgColor); g.fillRect (rect.x, rect.y + 14, rect.width, rect.height - 14); g.draw3DRect (rect.x, rect.y + 14, rect.width, rect.height - 14, false); int y = 0, x = 0; int basex = rect.x + 1, basey = rect.y + 14 + 1; int pixw = 1, pixh = 1; //pixel-groesse berechnen while ((((rect.width-2)/pixw) * ((rect.height-14-2)/pixh)) > Env.objectSpace.idTable.count()) { pixw++; pixh++; } pixw = Math.max (1, pixw-1); pixh = Math.max (1, pixh-1); DxIterator it = Env.objectSpace.idTable.iterator(); ObjectContainer container; while ((container=(ObjectContainer)it.next()) != null) { if (container._object != null) g.setColor (activeColor); else if (container._clusterID == null || ps.containsKey (container._clusterID)) g.setColor (deathColor); else g.setColor (passivColor); g.fillRect (basex + x, basey + y, pixw, pixh); x += pixw; if ((x + pixw) >= rect.width-2) { x = 0; y += pixh; } } */ } /** */ public void updateCS( Graphics g, Rectangle rect ) { /* * g.setColor (fontColor); PersistenceSpace ps = Env.store.persistenceSpace; String label = new String("ClusterSpace - " + new Integer(ps.count()).toString() + " clusters loaded"); g.drawString (label, rect.x, rect.y + 12); g.setColor (bgColor); g.fillRect (rect.x, rect.y + 14, rect.width, rect.height - 14); g.draw3DRect (rect.x, rect.y + 14, rect.width, rect.height - 14, false); if (ps.count() > 0) { int x = 1; int cwidth = (rect.width-2) / Math.max(10, ps.count()); // int cwidth = (rect.width-2) / (Env.store.maxBufferSize / Env.store.maxClusterSize ); Cluster cl; int max = 0; //maximale cluster-groesse ermitteln DxIterator it = ps.iterator(); while ((cl=(Cluster)it.next()) != null) { max = Math.max (max, cl.count()); } it = ps.iterator(); while ((cl=(Cluster)it.next()) != null) { int colorIndex = Math.round (((float)cl.count()/(float)max) * ((float)gradientSteps-1)); g.setColor (gradientColors[colorIndex]); g.fill3DRect (rect.x+x, rect.y+14+2, cwidth-3, rect.height - 14 - 3, true); x += (cwidth - 1); } } */ } /** */ public void updatePS( Graphics g, Rectangle rect ) { /* * g.setColor (fontColor); PersistenceSpace ps = Env.store.persistenceSpace; String label = new String("PersistenceSpace - " + new Integer(ps.allClusters.count()).toString() + " clusters"); g.drawString (label, rect.x, rect.y + 12); g.setColor (bgColor); g.fillRect (rect.x, rect.y + 14, rect.width, rect.height - 14); g.draw3DRect (rect.x, rect.y + 14, rect.width, rect.height - 14, false); DxIterator it = ps.allClusters.iterator(); int x = 1; while (it.next()!=null) { ClusterID cid = (ClusterID)it.object(); if (ps.containsKey (cid)) g.setColor (deathColor); else g.setColor (passivColor); g.drawLine (rect.x+x, rect.y+14+1, rect.x+x, rect.y + rect.height - 1); x++; } */ } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -