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);
}
}