package application.draw; import java.awt.Color; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; public class SensorBoxWithLabel extends Box { public String attribute; public String getAttribute() { return attribute; } public void setAttribute(String a) { attribute=a; } public void draw(Graphics g, int x, int y) { x1=x; y1=y; this.draw(g); } public boolean isInside(int x, int y) { setSize(); if(x<x1) return false; if(x1+width<x) return false; if(y<y1) return false; if(y1+height<y) return false; return true; } public void setLabel(String l) { label=l; } public void setColor(Color c) { color=c; } public void setSize() { height=fmetrics.getMaxAscent()+fmetrics.getMaxDescent()+2; width=fmetrics.stringWidth(label)+2; } public FigCanvas canvas; public void setCanvas(FigCanvas c) { canvas=c; } public void setFont(Font f) { font=f; fmetrics=canvas.getFontMetrics(f); } public FontMetrics fmetrics; public Font font; public boolean getCheckState() { return isChecked; } public void setCheckState(boolean b) { isChecked=b; } public boolean isChecked; public void draw(Graphics g) { Color cc=g.getColor(); Font cf=g.getFont(); g.setFont(this.font); this.setSize(); if(this.isChecked){ g.setColor(color); g.fillRect(x1,y1,width,height); g.setColor(Color.black); g.drawString(label,x1,y1+height-fmetrics.getMaxDescent()-1); } else{ g.setColor(Color.white); g.fillRect(x1,y1,width,height); g.setColor(color); g.drawRect(x1,y1,width,height); g.drawString(label,x1,y1+height-fmetrics.getMaxDescent()-1); } g.setFont(cf); g.setColor(cc); } public void setPosition(int x, int y) { x1=x; y1=y; } public String label; public SensorBoxWithLabel(String l, FigCanvas c) { label=l; canvas=c; setFont(new Font("Dialog", Font.BOLD, 8)); } }