package jetbrains.mps.editor.contextActionsTool.pluginSolution.plugin; /*Generated by MPS */ import javax.swing.JLabel; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import java.awt.Graphics; import java.awt.Color; import java.awt.Font; public class HoverLabel extends JLabel { private boolean isHovered = false; private boolean strong = false; public HoverLabel(String text) { super(text); addMouseListener(new MouseAdapter() { @Override public void mouseEntered(MouseEvent event) { isHovered = true; repaint(); } @Override public void mouseExited(MouseEvent event) { isHovered = false; strong = false; repaint(); } @Override public void mousePressed(MouseEvent event) { strong = true; repaint(); } @Override public void mouseReleased(MouseEvent event) { strong = false; repaint(); } }); addMouseMotionListener(new MouseMotionAdapter() { @Override public void mouseDragged(MouseEvent event) { isHovered = false; strong = false; repaint(); } }); } protected boolean isHighlighted() { return isHovered; } protected boolean isStrong() { return strong; } protected boolean isStrongHightlight() { return isHighlighted() && isStrong(); } @Override public void paint(Graphics g_) { if (isHighlighted() || isStrongHightlight()) { Graphics g = g_.create(); try { g.setColor(new Color(0, 0, 255, (isStrongHightlight() ? 60 : 20))); g.fillRect(0, 0, getWidth(), getHeight()); g.setColor(new Color(0, 0, 255, (isStrongHightlight() ? 100 : 40))); g.drawRect(0, 0, getWidth() - 1, getHeight() - 1); } finally { g.dispose(); } } super.paint(g_); } @Override public void setFont(Font font) { super.setFont(font); } }