/*
* Copyright (c) 2010-2016, Sikuli.org, sikulix.com
* Released under the MIT License.
*
*/
package org.sikuli.ide;
import java.awt.*;
import javax.swing.*;
import com.explodingpixels.macwidgets.plaf.EmphasizedLabelUI;
import java.util.Date;
import org.sikuli.basics.Settings;
class SikuliIDEStatusBar extends JPanel {
private JLabel _lblMsg;
private JLabel _lblCaretPos;
private String currentContentType = "???";
private int currentRow;
private int currentCol;
private long starting;
public SikuliIDEStatusBar() {
setLayout(new BorderLayout());
setPreferredSize(new Dimension(10, 20));
JPanel rightPanel = new JPanel(new BorderLayout());
rightPanel.setOpaque(false);
_lblMsg = new JLabel();
_lblMsg.setPreferredSize(new Dimension(400, 20));
_lblMsg.setUI(new EmphasizedLabelUI());
_lblMsg.setFont(new Font("Monaco", Font.TRUETYPE_FONT, 11));
_lblCaretPos = new JLabel();
_lblCaretPos.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 15));
_lblCaretPos.setUI(new EmphasizedLabelUI());
_lblCaretPos.setFont(UIManager.getFont("Button.font").deriveFont(11.0f));
setCaretPosition(1, 1);
resetMessage();
add(_lblMsg, BorderLayout.WEST);
add(_lblCaretPos, BorderLayout.LINE_END);
// add(rightPanel, BorderLayout.EAST);
}
public void setCurrentContentType(String ct) {
if (ct == null) {
return;
}
currentContentType = ct.replaceFirst(".*?\\/", "");
setCaretPosition(-1, 0);
}
public void setCaretPosition(int row, int col) {
if (row > -1) {
currentRow = row;
currentCol = col;
}
_lblCaretPos.setText(String.format("(%s) | R: %d | C: %d", currentContentType, currentRow, currentCol));
if (starting > 0 && new Date().getTime() - starting > 3000) {
resetMessage();
}
}
public void setMessage(String text) {
_lblMsg.setText(" " + text);
repaint();
starting = new Date().getTime();
}
public void resetMessage() {
setMessage(SikuliIDE.runTime.SikuliVersionIDE + " (" + SikuliIDE.runTime.SikuliVersionBuild + ")");
starting = 0;
}
// @Override
// protected void paintComponent(Graphics g) {
// super.paintComponent(g);
// int y = 0;
// g.setColor(new Color(156, 154, 140));
// g.drawLine(0, y, getWidth(), y);
// y++;
// g.setColor(new Color(196, 194, 183));
// g.drawLine(0, y, getWidth(), y);
// }
}