package jeql.monitor.ui; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.SystemColor; import java.text.DecimalFormat; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JSplitPane; import javax.swing.JTextArea; import jeql.monitor.MonitorModel; import jeql.util.SwingUtil; public class MonitorFrame extends JFrame { BorderLayout borderLayout1 = new BorderLayout(); JPanel mainPanel = new JPanel(); JTextArea text = new JTextArea(); JLabel lblRowStat = new JLabel(); JLabel lblTime = new JLabel(); JLabel lblMem = new JLabel(); JLabel lblScript = new JLabel(); JPanel titlePanel = new JPanel(); JPanel statusBarPanel = new JPanel(); JSplitPane jSplitPane1 = new JSplitPane(); MonitorItemsPanel itemsPanel = new MonitorItemsPanel(); MonitorStatusBar statusBar; private String currStmt = null; int rowCount = 0; private static final String MON_TITLE = "JEQL Monitor"; public MonitorFrame() { //super((Frame) null, MON_TITLE, false); super(MON_TITLE); try { init(); } catch (Exception ex) { ex.printStackTrace(); } } public void setVisible(boolean visible) { pack(); pack(); SwingUtil.centerOnScreen(this); super.setVisible(visible); } private void init() throws Exception { statusBar = new MonitorStatusBar(); //setAlwaysOnTop(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); /* text.setMinimumSize(new Dimension(400, 50)); text.setPreferredSize(new Dimension(900, 600)); text.setBackground(SystemColor.control); lblTime.setBorder(BorderFactory.createLoweredBevelBorder()); lblTime.setPreferredSize(new Dimension(21, 21)); lblTime.setHorizontalAlignment(SwingConstants.RIGHT); lblTime.setBackground(SystemColor.control); lblMem.setBorder(BorderFactory.createLoweredBevelBorder()); lblMem.setPreferredSize(new Dimension(21, 21)); lblMem.setHorizontalAlignment(SwingConstants.RIGHT); lblMem.setBackground(SystemColor.control); lblRowStat.setBackground(SystemColor.control); lblRowStat.setBorder(BorderFactory.createLoweredBevelBorder()); lblRowStat.setBackground(SystemColor.control); lblRowStat.setHorizontalAlignment(SwingConstants.RIGHT); lblScript.setBackground(SystemColor.text); //lblScript.setBorder(BorderFactory.createLoweredBevelBorder()); lblScript.setBackground(SystemColor.control); lblScript.setHorizontalAlignment(SwingConstants.LEFT); statusBarPanel.setLayout(new GridLayout(1,3)); //statusBarPanel.add(lblScript); statusBarPanel.add(lblRowStat); statusBarPanel.add(lblMem); statusBarPanel.add(lblTime); statusBarPanel.setBackground(SystemColor.control); */ titlePanel.setLayout(new GridLayout(1,1)); titlePanel.add(lblScript); titlePanel.setBackground(SystemColor.control); //titlePanel.setBorder(BorderFactory.createRaisedBevelBorder()); /* jSplitPane1.setOrientation(JSplitPane.VERTICAL_SPLIT); jSplitPane1.add(itemsPanel, JSplitPane.TOP); jSplitPane1.add(dataPanel, JSplitPane.BOTTOM); jSplitPane1.setBorder(new EmptyBorder(2,2,2,2)); jSplitPane1.setResizeWeight(0.5); */ mainPanel.setLayout(new BorderLayout()); //controlPanel.add(text, BorderLayout.CENTER); //mainPanel.add(jSplitPane1, BorderLayout.CENTER); mainPanel.add(itemsPanel, BorderLayout.CENTER); mainPanel.add(statusBar, BorderLayout.SOUTH); mainPanel.setBorder(BorderFactory.createLoweredBevelBorder()); mainPanel.setBackground(SystemColor.control); this.setResizable(true); this.getContentPane().setLayout(new BorderLayout()); //this.getContentPane().add(titlePanel, BorderLayout.NORTH); this.getContentPane().add(mainPanel, BorderLayout.CENTER); // this.getContentPane().add(statusBarPanel, BorderLayout.SOUTH); // this.getContentPane().add(new MonitorToolBar(), BorderLayout.NORTH); } public void setScript(String s) { if (s == null) return; lblScript.setText(s); setTitle(MON_TITLE + " - " + s); } public void update() { itemsPanel.update(); statusBar.update(); } public void end() { itemsPanel.end(); statusBar.update(); } public void setModel(MonitorModel model) { itemsPanel.setModel(model); statusBar.setModel(model); } public void setText(String s) { text.setText(s); } public void setTime(String s) { lblTime.setText(s); } public void setMemory(String s) { lblMem.setText(s); } private DecimalFormat format = new DecimalFormat("#,###"); public void setRowsPerSec(int rowsPerSec) { lblRowStat.setText(format.format(rowsPerSec) + " rows / sec"); } public static void main(String[] args) { // put up a test dialog MonitorFrame d = new MonitorFrame(); d.setVisible(true); System.exit(0); } }