package com.drawbridge.utils;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;
import com.drawbridge.Main;
public class ErrorPopup extends JPanel
{
private final Color mColor = Color.decode("#006AD5");
private JLabel mTitleLabel;
private JLabel mDescriptionLabel;
private final String mTitle;
private final String mDescription;
private static final long serialVersionUID = 1L;
public ErrorPopup(String title, String description){
if(description == null)
throw new RuntimeException("No description given!");
mTitle = title;
mDescription = description;
initVisualProperties();
}
public void initVisualProperties(){
setOpaque(true);
setBackground(mColor);
mTitleLabel = new JLabel(mTitle);
mTitleLabel.setFont(Main.mainFont.deriveFont(24.0f));
mTitleLabel.setForeground(Color.white);
mTitleLabel.setBorder(BorderFactory.createEmptyBorder(5, 10, 0, 0));
mDescriptionLabel = new JLabel(mDescription);
mDescriptionLabel.setFont(Main.mainFont.deriveFont(14.0f));
mDescriptionLabel.setForeground(Color.white);
mDescriptionLabel.setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 0));
BoxLayout b = new BoxLayout(this, BoxLayout.Y_AXIS);
this.setLayout(b);
this.add(mTitleLabel);
this.add(mDescriptionLabel);
//set width
int titleWidth = this.getFontMetrics(mTitleLabel.getFont()).stringWidth(mTitle) + 40;
int descriptionWidth = this.getFontMetrics(mDescriptionLabel.getFont()).stringWidth(mDescription) + 40;
mTitleLabel.setPreferredSize(new Dimension(titleWidth, 30));
mDescriptionLabel.setPreferredSize(new Dimension(descriptionWidth, 30));
this.setSize(this.getPreferredSize());
}
@Override
public boolean equals(Object o){
if(o instanceof ErrorPopup){
ErrorPopup ep = (ErrorPopup) o;
if(ep.mDescription.equals(mDescription) && ep.mTitle.equals(mTitle)){
return true;
}
}
return false;
}
}