package jeql.monitor.ui; import java.awt.Dimension; import java.awt.Font; import java.awt.GridLayout; import java.awt.SystemColor; import java.text.DecimalFormat; import javax.swing.BorderFactory; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingConstants; import jeql.monitor.MonitorModel; import com.vividsolutions.jts.util.Memory; public class MonitorStatusBar extends JPanel { MonitorModel monitorModel; JLabel lblRowStat = new JLabel(); JLabel lblTime = new JLabel(); JLabel lblMem = new JLabel(); JLabel lblScript = new JLabel(); public MonitorStatusBar() { super(); initUI(); } private static final Font STATUS_FONT = new Font("SanSerif", Font.BOLD, 12); public void initUI() { lblTime.setBackground(SystemColor.control); lblTime.setBorder(BorderFactory.createLoweredBevelBorder()); lblTime.setPreferredSize(new Dimension(21, 21)); lblTime.setHorizontalAlignment(SwingConstants.RIGHT); lblTime.setFont(STATUS_FONT); lblMem.setBackground(SystemColor.control); lblMem.setBorder(BorderFactory.createLoweredBevelBorder()); lblMem.setPreferredSize(new Dimension(21, 21)); lblMem.setHorizontalAlignment(SwingConstants.RIGHT); lblMem.setFont(STATUS_FONT); lblRowStat.setBackground(SystemColor.control); lblRowStat.setBorder(BorderFactory.createLoweredBevelBorder()); lblRowStat.setHorizontalAlignment(SwingConstants.RIGHT); lblRowStat.setFont(STATUS_FONT); lblScript.setBackground(SystemColor.control); lblScript.setBorder(BorderFactory.createLoweredBevelBorder()); lblScript.setHorizontalAlignment(SwingConstants.LEFT); setLayout(new GridLayout(1,4)); //statusBarPanel.add(lblScript); add(lblScript); add(lblMem); add(lblRowStat); add(lblTime); setBackground(SystemColor.control); } public void update() { setTime(monitorModel.getTimeString()); double time = monitorModel.getTime(); int rowsPerSec = (int) (monitorModel.getRowTotal() / time * 1000); setRowsPerSec(rowsPerSec); setMemory(Memory.usedTotalString()); } public void setModel(MonitorModel model) { //table.setModel(new MonitorItemsTableModel()); //table.initTable(); this.monitorModel = model; } public void setScript(String s) { lblScript.setText(s); } private void setTime(String s) { lblTime.setText(s); } private void setMemory(String s) { lblMem.setText(s); } private DecimalFormat format = new DecimalFormat("#,###"); private void setRowsPerSec(int rowsPerSec) { lblRowStat.setText(format.format(rowsPerSec) + " rows / sec"); } }