Package io.github.asyncronous.toast.ui

Source Code of io.github.asyncronous.toast.ui.ToastWindow

package io.github.asyncronous.toast.ui;

import com.atlauncher.utils.Utils;
import io.github.asyncronous.toast.ToasterConstants;
import io.github.asyncronous.toast.thread.ToastAnimator;

import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JWindow;
import javax.swing.UIManager;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GraphicsDevice.WindowTranslucency;
import java.awt.GraphicsEnvironment;
import java.awt.Insets;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

/**
* Main Toaster Notification class
*/
public final class ToastWindow extends JWindow {
    private final JLabel ICON = new JLabel();
    private final JTextArea MESSAGE = new JTextArea();

    public ToastWindow() {
        this.MESSAGE.setFont((Font) UIManager.get(ToasterConstants.FONT));
        this.MESSAGE.setBackground((Color) UIManager.get(ToasterConstants.BG_COLOR));
        this.MESSAGE.setForeground((Color) UIManager.get(ToasterConstants.MSG_COLOR));
        this.MESSAGE.setLineWrap(true);
        this.MESSAGE.setEditable(false);
        this.MESSAGE.setMargin(new Insets(2, 2, 2, 2));
        this.MESSAGE.setWrapStyleWord(true);

        if (!((Boolean) UIManager.get(ToasterConstants.OPAQUE)) && Utils.isJava7OrAbove(false) && GraphicsEnvironment
                .getLocalGraphicsEnvironment().getDefaultScreenDevice().isWindowTranslucencySupported
                        (WindowTranslucency.TRANSLUCENT)) {
            this.setOpacity((Float) UIManager.get(ToasterConstants.OPACITY));
        }

        JPanel CONTENT_PANEL = new JPanel(new BorderLayout(1, 1));
        CONTENT_PANEL.setBackground((Color) UIManager.get(ToasterConstants.BORDER_COLOR));
        JPanel WRAPPER_PANEL = new JPanel(new BorderLayout(2, 2));
        WRAPPER_PANEL.setBackground((Color) UIManager.get(ToasterConstants.BG_COLOR));
        WRAPPER_PANEL.add(this.ICON, BorderLayout.WEST);
        WRAPPER_PANEL.add(this.MESSAGE, BorderLayout.CENTER);
        CONTENT_PANEL.setBorder(BorderFactory.createEtchedBorder());
        CONTENT_PANEL.add(WRAPPER_PANEL);

        this.setFocusable(false);
        this.setAlwaysOnTop(true);
        this.setLocationRelativeTo(null);
        this.setMinimumSize(new Dimension(250, 100));
        this.getContentPane().add(CONTENT_PANEL);
        this.pack();

        this.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                setVisible(false);
                dispose();
            }
        });
    }

    /**
     * Sets the text of the message
     *
     * @param text The text you would like to pop
     */
    public void setText(String text) {
        this.MESSAGE.setText(text);
    }

    /**
     * Gets the text of the message
     *
     * @return The text of the message
     */
    public String getText() {
        return this.MESSAGE.getText();
    }

    /**
     * Sets the icon of the message
     *
     * @param icon The icon you would like to pop
     */
    public void setIcon(Icon icon) {
        this.ICON.setIcon(icon);
    }

    /**
     * Gets the icon of the message
     *
     * @return The icon of the message
     */
    public Icon getIcon() {
        return this.ICON.getIcon();
    }

    /**
     * Called to pop the message
     */
    public void pop() {
        new ToastAnimator(this).execute();
    }
}
TOP

Related Classes of io.github.asyncronous.toast.ui.ToastWindow

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.