package jaist.css.covis;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JTextArea;
public class JTextAreaToggleAntiAlias extends JTextArea implements MouseListener{
private static final long serialVersionUID = -8299619738797635210L;
private boolean aaOn;
Font font;
// private HighlightedDocument document = new HighlightedDocument();
public JTextAreaToggleAntiAlias(){
// setDocument(document);
setAntiAlias(true);
// document.setHighlightStyle(HighlightedDocument.JAVA_STYLE);
addMouseListener(this);
}
public JTextAreaToggleAntiAlias(int w, int h){
this();
}
public JTextAreaToggleAntiAlias(String s){
this();
setText(s);
}
public void setFont(Font f){
font = f;
super.setFont(f);
repaint();
}
public void setFontSize(int s){
Font f = new Font(font.getName(), font.getStyle(), s);
setFont(f);
}
public void setFontSizePlus(int s){
Font f = new Font(font.getName(), font.getStyle(), font.getSize()+s);
setFont(f);
}
public void setAntiAlias(boolean aaOn)
{
this.aaOn = aaOn;
}
public void paintComponent(Graphics g)
{
if (aaOn)
{
((Graphics2D) g).addRenderingHints(new RenderingHints(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON));
}
else
{
((Graphics2D) g).addRenderingHints(new RenderingHints(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF));
}
super.paintComponent(g);
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
if (e.isControlDown()){
if (e.getButton()==MouseEvent.BUTTON1){
setFontSizePlus(-2);
} else {
setFontSizePlus(2);
}
}
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
};