KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > lucane > applications > sqlnavigator > Navigator


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 /**
10  * SQLNavigator
11  */

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     /**
23      * Constructor.
24      */

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     /**
74      * ListSelectionListener Interface.
75      * Display selected table content
76      */

77     public void valueChanged(ListSelectionEvent lse)
78     {
79         String JavaDoc query = "select * from " + (String JavaDoc)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     /**
95      * Display some text in the bottom area
96      *
97      * @param s the text to write
98      */

99     public void write(String JavaDoc s)
100     {
101         messages.append(s+"\n");
102         JScrollBar jsb = jspMessages.getVerticalScrollBar();
103         jsb.setValue(jsb.getMaximum());
104     }
105 }
106
Popular Tags