1 package org.lucane.applications.sqlnavigator; 2 3 import java.awt.*; 4 import javax.swing.*; 5 import javax.swing.event.*; 6 7 import org.lucane.client.widgets.ManagedWindow; 8 9 12 class Navigator extends ManagedWindow 13 implements ListSelectionListener 14 { 15 transient SqlPlugin plugin; 16 JPanel result; 17 QueryPanel query; 18 JList tables; 19 JTextArea messages; 20 JScrollPane jspMessages; 21 22 25 public Navigator(SqlPlugin plugin) 26 { 27 super(plugin, plugin.getTitle()); 28 this.plugin = plugin; 29 setExitPluginOnClose(true); 30 31 result = new JPanel(); 32 result.setLayout(new BorderLayout()); 33 query = new QueryPanel(this); 34 tables = new JList(); 35 messages = new JTextArea(3, 10); 36 37 JPanel jpm = new JPanel(); 38 jpm.setBorder(BorderFactory.createTitledBorder(plugin.tr("messages") + " ")); 39 jpm.setLayout(new BorderLayout()); 40 41 jspMessages = new JScrollPane(messages); 42 jpm.add(jspMessages, BorderLayout.CENTER); 43 44 JPanel jpq = new JPanel(); 45 jpq.setBorder(BorderFactory.createTitledBorder(plugin.tr("queries") + " ")); 46 jpq.setLayout(new BorderLayout()); 47 jpq.add(query, BorderLayout.CENTER); 48 49 tables.setFixedCellWidth(175); 50 tables.addListSelectionListener(this); 51 52 getContentPane().setLayout(new BorderLayout()); 53 54 JSplitPane jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true 55 ,new JScrollPane(tables), result); 56 jsp.setDividerSize(10); 57 jsp.setOneTouchExpandable(true); 58 59 JPanel jp = new JPanel(); 60 jp.setLayout(new BorderLayout()); 61 jp.add(jpq, BorderLayout.CENTER); 62 jp.add(jpm, BorderLayout.SOUTH); 63 64 getContentPane().add(jsp, BorderLayout.CENTER); 65 getContentPane().add(jp, BorderLayout.SOUTH); 66 67 setTitle(plugin.getTitle()); 68 setPreferredSize(new Dimension(800, 600)); 69 show(); 70 } 71 72 73 77 public void valueChanged(ListSelectionEvent lse) 78 { 79 String query = "select * from " + (String )tables.getSelectedValue(); 80 SqlResult sr = plugin.executeQuery(query); 81 result.setVisible(false); 82 result.removeAll(); 83 84 JScrollPane sp = plugin.getScrollPane(sr); 85 86 if(sp == null) 87 sp = new JScrollPane(); 88 89 result.add(sp, BorderLayout.CENTER); 90 91 result.setVisible(true); 92 } 93 94 99 public void write(String s) 100 { 101 messages.append(s+"\n"); 102 JScrollBar jsb = jspMessages.getVerticalScrollBar(); 103 jsb.setValue(jsb.getMaximum()); 104 } 105 } 106 | Popular Tags |