Package edu.mit.blocks.codeblockutil

Source Code of edu.mit.blocks.codeblockutil.CToolTipUI

package edu.mit.blocks.codeblockutil;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Insets;

import javax.swing.CellRendererPane;
import javax.swing.JComponent;
import javax.swing.JTextArea;
import javax.swing.JToolTip;
import javax.swing.plaf.basic.BasicToolTipUI;

public class CToolTip extends JToolTip {

    private static final long serialVersionUID = 328149080249L;
    private Color background = new Color(255, 255, 225);

    private CToolTip() {
        this(new Color(255, 255, 225));
    }

    public CToolTip(Color background) {
        this.background = background;
        updateUI();
    }

    public void updateUI() {
        setUI(new CToolTipUI(background));
    }
}

class CToolTipUI extends BasicToolTipUI {

    private static final int WIDTH = 150;
    private CellRendererPane renderer;
    private JTextArea textArea;
    private Color background;

    public CToolTipUI(Color background) {
        super();
        this.background = background;
        renderer = new CellRendererPane();
        textArea = new JTextArea();
        textArea.setMargin(new Insets(0, 3, 0, 0));
        renderer.removeAll();
        renderer.add(textArea);
        textArea.setFont(new Font("Ariel", Font.PLAIN, 11));
        textArea.setWrapStyleWord(true);
        textArea.setLineWrap(true);
        textArea.setWrapStyleWord(true);
    }

    public void paint(Graphics g, JComponent c) {
        Dimension size = c.getSize();
        textArea.setBackground(background);
        renderer.paintComponent(g, textArea, c, 1, 1,
                size.width - 1, size.height - 1, true);
    }

    public Dimension getPreferredSize(JComponent c) {
        String tipText = ((JToolTip) c).getTipText();
        if (tipText == null) {
            return new Dimension(0, 0);
        }
        textArea.setText(tipText);
        Dimension d = textArea.getPreferredSize();
        d.width = Math.min(d.width, WIDTH);
        d.height++;
        textArea.setSize(d);
        return d;
        //return textArea.getPreferredSize();
    }
}
TOP

Related Classes of edu.mit.blocks.codeblockutil.CToolTipUI

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.