/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package controlador.inspector; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.event.MouseEvent; /** * * @author ccandido */ public class InspectorItemSeparador extends InspectorItemBase { public InspectorItemSeparador(Inspector criador) { super(criador); Color c = getBackground(); c = new Color(c.getRed(), c.getGreen(), c.getBlue() - 15); //:BUG CORRIGIDO: Vinicius Oliveira Queiroz. setBackground(c); } public InspectorItemSeparador() { super(); Color c = getBackground(); c = new Color(c.getRed(), c.getGreen(), c.getBlue() - 15); //:BUG CORRIGIDO: Vinicius Oliveira Queiroz. setBackground(c); } /**Configura InspectorItemSeparador para ser base do componente. Um item a mais, invisível (visível, porém, invisível por conta da cor) colocado para facilitar o redesenho do inspector quando se oculta os últimos itens*/ public boolean endOFF = false; @Override protected void paintBase(Graphics2D g) { if (endOFF) { return; } setArea(null); Rectangle r = this.getBounds(); g.setColor(Color.GRAY); g.drawRoundRect(0, 0, r.width - 1, r.height - 1, 10, 10); g.setColor(Color.lightGray); g.drawRoundRect(5, 5, r.height - 10, r.height - 10, 4,4); int met = (r.height - 11) / 2; g.setColor(Color.black); g.drawLine(7, 6 + met, r.height - 7, 6 + met); if ('+' == getEstado()) { g.drawLine(6 + met, 7, 6 + met, r.height - 7); } g.setColor(Color.BLACK); Rectangle bkp = g.getClipBounds(); g.clipRect(0, 0, r.width - 1, r.height); if (isSelecionado()) { g.setFont(new Font(this.getFont().getFontName(), Font.BOLD, getFont().getSize())); g.drawRoundRect(0, 0, r.width - 1, r.height - 1, 10, 10); } int tmp = (r.width - g.getFontMetrics().stringWidth(getTexto())) / 2; g.drawString(getTexto(), tmp, (int) (r.height * 0.72)); g.setClip(bkp); } @Override public void mousePressed(MouseEvent e) { if (endOFF) return; super.mousePressed(e); Rectangle r = this.getBounds(); r = new Rectangle(5, 5, r.height - 10, r.height - 10); if (!r.contains(e.getPoint())) return; if ('+' == getEstado()) { setEstado('-'); } else { setEstado('+'); } Criador.HideShow(this, getEstado()); } private char estado = '-'; public char getEstado() { return estado; } public void setEstado(char estado) { if (this.estado != estado) { this.estado = estado; repaint(); } } }