/*
* GuiView.java
*/
package gui;
import business_layer.BusinessLayerManager;
import business_layer.Result;
import business_layer.ResultMessage;
import java.util.StringTokenizer;
import java.util.Vector;
import javax.swing.JTable;
import org.jdesktop.application.Action;
import org.jdesktop.application.SingleFrameApplication;
import org.jdesktop.application.FrameView;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
/**
* The application's main frame.
*/
public class GuiView extends FrameView {
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JMenuItem jMenuItem1;
private javax.swing.JMenuItem jMenuItem2;
private javax.swing.JMenuItem jMenuItem3;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JPanel jPanel6;
private javax.swing.JPanel jPanel7;
private javax.swing.JPanel jPanel8;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTextPane jTextPane1;
private javax.swing.JPanel mainPanel;
private javax.swing.JMenuBar menuBar;
private javax.swing.JTextField queryField;
private javax.swing.JButton resetButton;
private javax.swing.JButton sendButton;
// End of variables declaration//GEN-END:variables
private JDialog aboutBox;
private JDialog testBox;
private DataView dataView;
//
BusinessLayerManager blmanager = null;
public GuiView(SingleFrameApplication app) {
super(app);
initComponents();
srv = new guiserver.GuiServer();
blmanager = new BusinessLayerManager(this);
getRootPane().setDefaultButton(sendButton);
}
@Action
public void showAboutBox() {
if (aboutBox == null) {
JFrame mainFrame = Gui.getApplication().getMainFrame();
aboutBox = new GuiAboutBox(mainFrame);
aboutBox.setLocationRelativeTo(mainFrame);
}
Gui.getApplication().show(aboutBox);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
mainPanel = new javax.swing.JPanel();
jPanel1 = new javax.swing.JPanel();
jPanel6 = new javax.swing.JPanel();
javax.swing.JLabel appInputLabel = new javax.swing.JLabel();
queryField = new javax.swing.JTextField();
jPanel7 = new javax.swing.JPanel();
jPanel8 = new javax.swing.JPanel();
jScrollPane2 = new javax.swing.JScrollPane();
jTextPane1 = new javax.swing.JTextPane();
jPanel3 = new javax.swing.JPanel();
jPanel5 = new javax.swing.JPanel();
sendButton = new javax.swing.JButton();
jPanel4 = new javax.swing.JPanel();
resetButton = new javax.swing.JButton();
jPanel2 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
javax.swing.JLabel appOutputLabel = new javax.swing.JLabel();
menuBar = new javax.swing.JMenuBar();
javax.swing.JMenu fileMenu = new javax.swing.JMenu();
jMenuItem2 = new javax.swing.JMenuItem();
jMenuItem3 = new javax.swing.JMenuItem();
jMenuItem1 = new javax.swing.JMenuItem();
javax.swing.JMenuItem exitMenuItem = new javax.swing.JMenuItem();
javax.swing.JMenu helpMenu = new javax.swing.JMenu();
javax.swing.JMenuItem aboutMenuItem = new javax.swing.JMenuItem();
mainPanel.setName("mainPanel"); // NOI18N
mainPanel.setPreferredSize(new java.awt.Dimension(23, 23));
mainPanel.setLayout(new java.awt.BorderLayout());
jPanel1.setName("jPanel1"); // NOI18N
jPanel1.setPreferredSize(new java.awt.Dimension(1150, 110));
jPanel1.setLayout(new java.awt.GridLayout(2, 1, 10, 5));
jPanel6.setName("jPanel6"); // NOI18N
appInputLabel.setFont(appInputLabel.getFont().deriveFont(appInputLabel.getFont().getStyle() | java.awt.Font.BOLD, appInputLabel.getFont().getSize()+4));
org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(gui.Gui.class).getContext().getResourceMap(GuiView.class);
appInputLabel.setText(resourceMap.getString("appInputLabel.text")); // NOI18N
appInputLabel.setName("appInputLabel"); // NOI18N
queryField.setName("queryField"); // NOI18N
javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);
jPanel6.setLayout(jPanel6Layout);
jPanel6Layout.setHorizontalGroup(
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel6Layout.createSequentialGroup()
.addContainerGap()
.addComponent(appInputLabel)
.addGap(38, 38, 38)
.addComponent(queryField, javax.swing.GroupLayout.PREFERRED_SIZE, 696, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(215, Short.MAX_VALUE))
);
jPanel6Layout.setVerticalGroup(
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel6Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(appInputLabel)
.addComponent(queryField, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(35, 35, 35))
);
jPanel1.add(jPanel6);
jPanel7.setName("jPanel7"); // NOI18N
jPanel7.setLayout(new java.awt.GridLayout(1, 2, 10, 10));
jPanel8.setName("jPanel8"); // NOI18N
jScrollPane2.setName("jScrollPane2"); // NOI18N
jTextPane1.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jTextPane1.border.title"))); // NOI18N
jTextPane1.setName("jTextPane1"); // NOI18N
jScrollPane2.setViewportView(jTextPane1);
javax.swing.GroupLayout jPanel8Layout = new javax.swing.GroupLayout(jPanel8);
jPanel8.setLayout(jPanel8Layout);
jPanel8Layout.setHorizontalGroup(
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 500, Short.MAX_VALUE)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(0, 85, Short.MAX_VALUE)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 330, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 85, Short.MAX_VALUE)))
);
jPanel8Layout.setVerticalGroup(
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 52, Short.MAX_VALUE)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
);
jPanel7.add(jPanel8);
jPanel3.setName("jPanel3"); // NOI18N
jPanel3.setLayout(new java.awt.GridLayout(1, 2));
jPanel5.setName("jPanel5"); // NOI18N
sendButton.setText(resourceMap.getString("sendButton.text")); // NOI18N
sendButton.setName("sendButton"); // NOI18N
sendButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
sendButtonActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
jPanel5.setLayout(jPanel5Layout);
jPanel5Layout.setHorizontalGroup(
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel5Layout.createSequentialGroup()
.addGap(24, 24, 24)
.addComponent(sendButton, javax.swing.GroupLayout.PREFERRED_SIZE, 131, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(95, Short.MAX_VALUE))
);
jPanel5Layout.setVerticalGroup(
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel5Layout.createSequentialGroup()
.addContainerGap()
.addComponent(sendButton, javax.swing.GroupLayout.DEFAULT_SIZE, 30, Short.MAX_VALUE)
.addContainerGap())
);
jPanel3.add(jPanel5);
jPanel4.setName("jPanel4"); // NOI18N
resetButton.setText(resourceMap.getString("resetButton.text")); // NOI18N
resetButton.setName("resetButton"); // NOI18N
resetButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
resetButtonActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
jPanel4.setLayout(jPanel4Layout);
jPanel4Layout.setHorizontalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addGap(32, 32, 32)
.addComponent(resetButton, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(98, Short.MAX_VALUE))
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(resetButton, javax.swing.GroupLayout.DEFAULT_SIZE, 30, Short.MAX_VALUE)
.addContainerGap())
);
jPanel3.add(jPanel4);
jPanel7.add(jPanel3);
jPanel1.add(jPanel7);
mainPanel.add(jPanel1, java.awt.BorderLayout.NORTH);
jPanel2.setName("jPanel2"); // NOI18N
jPanel2.setLayout(new java.awt.BorderLayout(10, 10));
jScrollPane1.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));
jScrollPane1.setName("jScrollPane1"); // NOI18N
jPanel2.add(jScrollPane1, java.awt.BorderLayout.CENTER);
appOutputLabel.setFont(appOutputLabel.getFont().deriveFont(appOutputLabel.getFont().getStyle() | java.awt.Font.BOLD, appOutputLabel.getFont().getSize()+4));
appOutputLabel.setText(resourceMap.getString("appOutputLabel.text")); // NOI18N
appOutputLabel.setName("appOutputLabel"); // NOI18N
jPanel2.add(appOutputLabel, java.awt.BorderLayout.PAGE_START);
mainPanel.add(jPanel2, java.awt.BorderLayout.CENTER);
menuBar.setName("menuBar"); // NOI18N
fileMenu.setText(resourceMap.getString("fileMenu.text")); // NOI18N
fileMenu.setName("fileMenu"); // NOI18N
jMenuItem2.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));
jMenuItem2.setMnemonic('v');
jMenuItem2.setText(resourceMap.getString("jMenuItem2.text")); // NOI18N
jMenuItem2.setName("jMenuItem2"); // NOI18N
jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem2ActionPerformed(evt);
}
});
fileMenu.add(jMenuItem2);
jMenuItem3.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.CTRL_MASK));
jMenuItem3.setMnemonic('s');
jMenuItem3.setText(resourceMap.getString("jMenuItem3.text")); // NOI18N
jMenuItem3.setName("jMenuItem3"); // NOI18N
jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem3ActionPerformed(evt);
}
});
fileMenu.add(jMenuItem3);
jMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_D, java.awt.event.InputEvent.CTRL_MASK));
jMenuItem1.setText(resourceMap.getString("jMenuItem1.text")); // NOI18N
jMenuItem1.setName("jMenuItem1"); // NOI18N
jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem1ActionPerformed(evt);
}
});
fileMenu.add(jMenuItem1);
javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(gui.Gui.class).getContext().getActionMap(GuiView.class, this);
exitMenuItem.setAction(actionMap.get("quit")); // NOI18N
exitMenuItem.setName("exitMenuItem"); // NOI18N
fileMenu.add(exitMenuItem);
menuBar.add(fileMenu);
helpMenu.setText(resourceMap.getString("helpMenu.text")); // NOI18N
helpMenu.setName("helpMenu"); // NOI18N
aboutMenuItem.setAction(actionMap.get("showAboutBox")); // NOI18N
aboutMenuItem.setName("aboutMenuItem"); // NOI18N
helpMenu.add(aboutMenuItem);
menuBar.add(helpMenu);
setComponent(mainPanel);
setMenuBar(menuBar);
}// </editor-fold>//GEN-END:initComponents
private void sendButtonActionPerformed(java.awt.event.ActionEvent evt) {
String query = queryField.getText();
jTextPane1.setText("");
// jScrollPane1.removeAll();
//this actually runs the SQL query
if(!blmanager.runSQL(query))
jTextPane1.setText("Error in SQL syntax. Check the manual for supported syntax.");
}
public void reveiceResults(Result results) {
jTextPane1.setText(results.getResultMessage().getMessage());
if(results.getResultMessage().equals(ResultMessage.OK)){
//if this is a result for a query
if(results.getResultSet()!=null) {
MyModel model = new MyModel();
JTable jTable1 = new JTable(model);
Vector<String> elems = results.getResultSet();
String headers = elems.firstElement();
int count = 0;
StringTokenizer stHeaders = new StringTokenizer(headers, ",", false);
while (stHeaders.hasMoreTokens()) {
model.addColumn(stHeaders.nextToken());
count++;
}
int size = elems.size();
for(int k = 1; k < size; k++)
{
Object [] row = new Object[count];
String data = elems.elementAt(k);
if(!data.equals(headers)) {
int i = 0;
StringTokenizer stData = new StringTokenizer(data, ",", false);
while (stData.hasMoreTokens()) {
row[i] = stData.nextToken();
i++;
}
model.addRow (row);
}
}
jTable1.setName("jTable1"); // NOI18N
jScrollPane1.setViewportView(jTable1);
}
}
}
private void resetButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_resetButtonActionPerformed
queryField.setText("");
}//GEN-LAST:event_resetButtonActionPerformed
guiserver.GuiServer srv;
private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
if (srv == null)
srv = new guiserver.GuiServer();
srv.setVisible(true);
srv.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
}//GEN-LAST:event_jMenuItem2ActionPerformed
private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem3ActionPerformed
JFrame mainFrame = Gui.getApplication().getMainFrame();
testBox = new GuiTestBox(mainFrame, true);
testBox.setVisible(true);
}//GEN-LAST:event_jMenuItem3ActionPerformed
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed
JFrame mainFrame = Gui.getApplication().getMainFrame();
dataView = new DataView(mainFrame, true);
dataView.setVisible(true);
}//GEN-LAST:event_jMenuItem1ActionPerformed
}