First Commit.
Implemented the Client Master form - add, delete and update.
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.6" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
+ <Properties>
+ <Property name="defaultCloseOperation" type="int" value="2"/>
+ <Property name="title" type="java.lang.String" value="Clients Master"/>
+ </Properties>
+ <SyntheticProperties>
+ <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+ <SyntheticProperty name="generateCenter" type="boolean" value="false"/>
+ </SyntheticProperties>
+ <AuxValues>
+ <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+ <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
+ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+ </AuxValues>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="jScrollPane1" max="32767" attributes="0"/>
+ <Group type="102" attributes="0">
+ <Component id="buttonAdd" min="-2" pref="113" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="buttonUpdate" min="-2" pref="113" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="buttonDelete" min="-2" pref="113" max="-2" attributes="0"/>
+ <EmptySpace pref="22" max="32767" attributes="0"/>
+ <Component id="buttonClearSelection" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="buttonClose" min="-2" pref="108" max="-2" attributes="0"/>
+ </Group>
+ <Group type="102" alignment="0" attributes="0">
+ <Group type="103" groupAlignment="1" max="-2" attributes="0">
+ <Component id="jLabel5" alignment="0" max="32767" attributes="0"/>
+ <Component id="jLabel4" alignment="0" pref="113" max="32767" attributes="0"/>
+ <Component id="jLabel3" alignment="0" max="32767" attributes="0"/>
+ <Component id="jLabel2" alignment="0" max="32767" attributes="0"/>
+ <Component id="jLabel1" alignment="0" max="32767" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="textClientName" max="32767" attributes="0"/>
+ <Component id="jScrollPane2" max="32767" attributes="0"/>
+ <Component id="textContactPerson" alignment="0" max="32767" attributes="0"/>
+ <Component id="textPhoneNumber" alignment="0" max="32767" attributes="0"/>
+ <Component id="textMailID" alignment="0" max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="jScrollPane1" min="-2" pref="145" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="buttonAdd" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="buttonUpdate" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="buttonDelete" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="buttonClose" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="buttonClearSelection" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace type="separate" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel1" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="textClientName" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="jLabel2" min="-2" max="-2" attributes="0"/>
+ <Component id="jScrollPane2" min="-2" pref="61" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace min="-2" pref="10" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="textContactPerson" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabel3" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace type="unrelated" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel4" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="textPhoneNumber" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace type="unrelated" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel5" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="textMailID" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Container class="javax.swing.JScrollPane" name="jScrollPane1">
+ <AuxValues>
+ <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+ </AuxValues>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JTable" name="tableClients">
+ <Properties>
+ <Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
+ <Connection code="new javax.swing.table.DefaultTableModel(
 new Object [][] {

 },
 new String [] {
 "id", "Client Name"
 }
) {
 Class[] types = new Class [] {
 java.lang.Integer.class, java.lang.String.class
 };

 public Class getColumnClass(int columnIndex) {
 return types [columnIndex];
 }
 @Override
 public boolean isCellEditable (int row, int col) {
 return false;
 }
}" type="code"/>
+ </Property>
+ <Property name="columnModel" type="javax.swing.table.TableColumnModel" editor="org.netbeans.modules.form.editors2.TableColumnModelEditor">
+ <TableColumnModel selectionModel="1">
+ <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
+ <Title/>
+ <Editor/>
+ <Renderer/>
+ </Column>
+ <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
+ <Title/>
+ <Editor/>
+ <Renderer/>
+ </Column>
+ </TableColumnModel>
+ </Property>
+ <Property name="selectionMode" type="int" value="0"/>
+ <Property name="showGrid" type="boolean" value="true"/>
+ <Property name="tableHeader" type="javax.swing.table.JTableHeader" editor="org.netbeans.modules.form.editors2.JTableHeaderEditor">
+ <TableHeader reorderingAllowed="true" resizingAllowed="true"/>
+ </Property>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Component class="javax.swing.JButton" name="buttonAdd">
+ <Properties>
+ <Property name="mnemonic" type="int" value="65"/>
+ <Property name="text" type="java.lang.String" value="Add"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonAddActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="buttonDelete">
+ <Properties>
+ <Property name="mnemonic" type="int" value="68"/>
+ <Property name="text" type="java.lang.String" value="Delete"/>
+ <Property name="enabled" type="boolean" value="false"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonDeleteActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="buttonUpdate">
+ <Properties>
+ <Property name="mnemonic" type="int" value="85"/>
+ <Property name="text" type="java.lang.String" value="Update"/>
+ <Property name="enabled" type="boolean" value="false"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonUpdateActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel1">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Client Name"/>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="textClientName">
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel2">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Client Address"/>
+ </Properties>
+ </Component>
+ <Container class="javax.swing.JScrollPane" name="jScrollPane2">
+ <AuxValues>
+ <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+ </AuxValues>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JTextArea" name="textClientAddress">
+ <Properties>
+ <Property name="columns" type="int" value="20"/>
+ <Property name="rows" type="int" value="5"/>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Component class="javax.swing.JLabel" name="jLabel3">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Contact Person"/>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="textContactPerson">
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel4">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Phone Number"/>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="textPhoneNumber">
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel5">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Mail ID"/>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="textMailID">
+ </Component>
+ <Component class="javax.swing.JButton" name="buttonClose">
+ <Properties>
+ <Property name="mnemonic" type="int" value="67"/>
+ <Property name="text" type="java.lang.String" value="Close"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonCloseActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="buttonClearSelection">
+ <Properties>
+ <Property name="mnemonic" type="int" value="83"/>
+ <Property name="text" type="java.lang.String" value="Clear Selection"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonClearSelectionActionPerformed"/>
+ </Events>
+ </Component>
+ </SubComponents>
+</Form>
--- /dev/null
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package habeas;
+
+import java.util.ArrayList;
+import javax.swing.JOptionPane;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import javax.swing.event.TableModelEvent;
+import javax.swing.event.TableModelListener;
+import javax.swing.plaf.basic.BasicListUI;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableModel;
+
+/**
+ *
+ * @author hari
+ */
+public class ClientMasterDialog extends javax.swing.JDialog {
+
+ /**
+ * Creates new form ClientMasterDialog
+ * @param parent
+ * @param modal
+ */
+ public ClientMasterDialog(java.awt.Frame parent, boolean modal) {
+ super(parent, modal);
+ initComponents();
+ populateTable ();
+ tableClients.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
+ @Override
+ public void valueChanged(ListSelectionEvent lse) {
+ int r = getSelectedClient ();
+ if (r == -1) {
+ buttonAdd.setEnabled(true);
+ buttonUpdate.setEnabled(false);
+ buttonDelete.setEnabled(false);
+ return;
+ }
+
+ ArrayList<Object> clients = Utility.getClientDetails (r);
+ for (int q = 0; q < clients.size(); q += 5) {
+ textClientName.setText (clients.get(q).toString());
+ textClientAddress.setText(clients.get(q+1).toString());
+ textContactPerson.setText(clients.get(q+2).toString());
+ textMailID.setText(clients.get(q+3).toString());
+ textPhoneNumber.setText(clients.get(q+4).toString());
+ }
+ buttonAdd.setEnabled(false);
+ buttonUpdate.setEnabled(true);
+ buttonDelete.setEnabled(true);
+ }
+ });
+ }
+
+ private int getSelectedClient () {
+ int i = tableClients.getSelectedRow();
+ if (i == -1)
+ return -1;
+
+ DefaultTableModel mdl = (DefaultTableModel)tableClients.getModel();
+ int r = (int)mdl.getValueAt(i, 0);
+ return r;
+ }
+
+ private void populateTable () {
+ DefaultTableModel mdl = (DefaultTableModel)tableClients.getModel();
+ mdl.setRowCount(0);
+ ArrayList<Object> clientsdata = Utility.getClientsNameAndId();
+ if (clientsdata == null) return;
+ for (int i = 0 ; i < clientsdata.size(); i +=2) {
+ mdl.addRow(new Object[] {
+ clientsdata.get(i), clientsdata.get(i+1)});
+ }
+ }
+
+ /**
+ * 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() {
+
+ jScrollPane1 = new javax.swing.JScrollPane();
+ tableClients = new javax.swing.JTable();
+ buttonAdd = new javax.swing.JButton();
+ buttonDelete = new javax.swing.JButton();
+ buttonUpdate = new javax.swing.JButton();
+ jLabel1 = new javax.swing.JLabel();
+ textClientName = new javax.swing.JTextField();
+ jLabel2 = new javax.swing.JLabel();
+ jScrollPane2 = new javax.swing.JScrollPane();
+ textClientAddress = new javax.swing.JTextArea();
+ jLabel3 = new javax.swing.JLabel();
+ textContactPerson = new javax.swing.JTextField();
+ jLabel4 = new javax.swing.JLabel();
+ textPhoneNumber = new javax.swing.JTextField();
+ jLabel5 = new javax.swing.JLabel();
+ textMailID = new javax.swing.JTextField();
+ buttonClose = new javax.swing.JButton();
+ buttonClearSelection = new javax.swing.JButton();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ setTitle("Clients Master");
+
+ tableClients.setModel(new javax.swing.table.DefaultTableModel(
+ new Object [][] {
+
+ },
+ new String [] {
+ "id", "Client Name"
+ }
+ ) {
+ Class[] types = new Class [] {
+ java.lang.Integer.class, java.lang.String.class
+ };
+
+ public Class getColumnClass(int columnIndex) {
+ return types [columnIndex];
+ }
+ @Override
+ public boolean isCellEditable (int row, int col) {
+ return false;
+ }
+ });
+ tableClients.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
+ tableClients.setShowGrid(true);
+ jScrollPane1.setViewportView(tableClients);
+ tableClients.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
+
+ buttonAdd.setMnemonic('A');
+ buttonAdd.setText("Add");
+ buttonAdd.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ buttonAddActionPerformed(evt);
+ }
+ });
+
+ buttonDelete.setMnemonic('D');
+ buttonDelete.setText("Delete");
+ buttonDelete.setEnabled(false);
+ buttonDelete.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ buttonDeleteActionPerformed(evt);
+ }
+ });
+
+ buttonUpdate.setMnemonic('U');
+ buttonUpdate.setText("Update");
+ buttonUpdate.setEnabled(false);
+ buttonUpdate.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ buttonUpdateActionPerformed(evt);
+ }
+ });
+
+ jLabel1.setText("Client Name");
+
+ jLabel2.setText("Client Address");
+
+ textClientAddress.setColumns(20);
+ textClientAddress.setRows(5);
+ jScrollPane2.setViewportView(textClientAddress);
+
+ jLabel3.setText("Contact Person");
+
+ jLabel4.setText("Phone Number");
+
+ jLabel5.setText("Mail ID");
+
+ buttonClose.setMnemonic('C');
+ buttonClose.setText("Close");
+ buttonClose.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ buttonCloseActionPerformed(evt);
+ }
+ });
+
+ buttonClearSelection.setMnemonic('S');
+ buttonClearSelection.setText("Clear Selection");
+ buttonClearSelection.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ buttonClearSelectionActionPerformed(evt);
+ }
+ });
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
+ getContentPane().setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jScrollPane1)
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(buttonAdd, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(buttonUpdate, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(buttonDelete, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 22, Short.MAX_VALUE)
+ .addComponent(buttonClearSelection)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(buttonClose, javax.swing.GroupLayout.PREFERRED_SIZE, 108, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGroup(layout.createSequentialGroup()
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
+ .addComponent(jLabel5, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jLabel4, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 113, Short.MAX_VALUE)
+ .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(textClientName)
+ .addComponent(jScrollPane2)
+ .addComponent(textContactPerson)
+ .addComponent(textPhoneNumber)
+ .addComponent(textMailID))))
+ .addContainerGap())
+ );
+ layout.setVerticalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(buttonAdd)
+ .addComponent(buttonUpdate)
+ .addComponent(buttonDelete)
+ .addComponent(buttonClose)
+ .addComponent(buttonClearSelection))
+ .addGap(18, 18, 18)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel1)
+ .addComponent(textClientName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jLabel2)
+ .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 61, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGap(10, 10, 10)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(textContactPerson, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(jLabel3))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel4)
+ .addComponent(textPhoneNumber, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel5)
+ .addComponent(textMailID, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ );
+
+ pack();
+ }// </editor-fold>//GEN-END:initComponents
+
+ private void buttonCloseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonCloseActionPerformed
+ // TODO add your handling code here:
+ dispose ();
+ }//GEN-LAST:event_buttonCloseActionPerformed
+
+ private void buttonClearSelectionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonClearSelectionActionPerformed
+ clearFields();
+ }//GEN-LAST:event_buttonClearSelectionActionPerformed
+
+ private void buttonAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonAddActionPerformed
+ // TODO add your handling code here:
+ boolean rt = Utility.addClient (textClientName.getText(), textClientAddress.getText(),
+ textContactPerson.getText(), textMailID.getText(),
+ textPhoneNumber.getText());
+
+ if (rt == true) {
+ JOptionPane.showMessageDialog(this, SUCCESSFULLY_ADDED);
+ clearFields();
+ populateTable();
+ }
+ else
+ JOptionPane.showMessageDialog (this, ERROR_IN_ADDING);
+ }//GEN-LAST:event_buttonAddActionPerformed
+ private static final String SUCCESSFULLY_ADDED = "Successfully added";
+ private static final String ERROR_IN_ADDING = "Error in adding";
+
+ private void buttonDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonDeleteActionPerformed
+ // TODO add your handling code here:
+ int r = getSelectedClient();
+ if (r == -1) return;
+ int conf = JOptionPane.showConfirmDialog(this, CONFIRM_DELETE_CLIENT);
+ if (conf == JOptionPane.YES_OPTION) {
+ boolean rt = Utility.deleteClient (r);
+ if (rt == true) {
+ JOptionPane.showMessageDialog(this, SUCCESSFULLY_DELETED);
+ clearFields();
+ populateTable();
+ }
+ else
+ JOptionPane.showMessageDialog(this, ERROR_IN_DELETING);
+ }
+ }//GEN-LAST:event_buttonDeleteActionPerformed
+ private static final String ERROR_IN_DELETING = "Error in deleting";
+
+ private void buttonUpdateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonUpdateActionPerformed
+ // TODO add your handling code here:
+ int r = getSelectedClient();
+ if (r == -1 ) return;
+ boolean rt = Utility.updateClient (r, textClientName.getText(),
+ textClientAddress.getText(), textContactPerson.getText(),
+ textMailID.getText(), textPhoneNumber.getText());
+ if (rt == true) {
+ JOptionPane.showMessageDialog(this, SUCCESSFULLY_UPDATED);
+ clearFields();
+ populateTable();
+ } else {
+ JOptionPane.showMessageDialog(this, ERROR_IN_UPDATING);
+ }
+
+ }//GEN-LAST:event_buttonUpdateActionPerformed
+ private static final String ERROR_IN_UPDATING = "Error in updating";
+ private static final String SUCCESSFULLY_UPDATED = "Successfully updated";
+ private static final String SUCCESSFULLY_DELETED = "Successfully deleted";
+ private static final String CONFIRM_DELETE_CLIENT = "Are you sure? This will"
+ + " also delete all other data associated with this client";
+
+ private void clearFields() {
+ // TODO add your handling code here:
+ tableClients.clearSelection();
+ textClientAddress.setText ("");
+ textClientName.setText ("");
+ textContactPerson.setText("");
+ textMailID.setText("");
+ textPhoneNumber.setText("");
+ }
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(ClientMasterDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(ClientMasterDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(ClientMasterDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(ClientMasterDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //</editor-fold>
+
+ /* Create and display the dialog */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ ClientMasterDialog dialog = new ClientMasterDialog(new javax.swing.JFrame(), true);
+ dialog.addWindowListener(new java.awt.event.WindowAdapter() {
+ @Override
+ public void windowClosing(java.awt.event.WindowEvent e) {
+ System.exit(0);
+ }
+ });
+ dialog.setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton buttonAdd;
+ private javax.swing.JButton buttonClearSelection;
+ private javax.swing.JButton buttonClose;
+ private javax.swing.JButton buttonDelete;
+ private javax.swing.JButton buttonUpdate;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabel2;
+ private javax.swing.JLabel jLabel3;
+ private javax.swing.JLabel jLabel4;
+ private javax.swing.JLabel jLabel5;
+ private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JScrollPane jScrollPane2;
+ private javax.swing.JTable tableClients;
+ private javax.swing.JTextArea textClientAddress;
+ private javax.swing.JTextField textClientName;
+ private javax.swing.JTextField textContactPerson;
+ private javax.swing.JTextField textMailID;
+ private javax.swing.JTextField textPhoneNumber;
+ // End of variables declaration//GEN-END:variables
+}
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
+ <Properties>
+ <Property name="defaultCloseOperation" type="int" value="2"/>
+ <Property name="title" type="java.lang.String" value="Connection"/>
+ <Property name="locationByPlatform" type="boolean" value="true"/>
+ <Property name="resizable" type="boolean" value="false"/>
+ </Properties>
+ <SyntheticProperties>
+ <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+ <SyntheticProperty name="generateCenter" type="boolean" value="false"/>
+ </SyntheticProperties>
+ <AuxValues>
+ <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+ <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
+ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+ </AuxValues>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" attributes="0">
+ <Component id="jLabel1" min="-2" pref="139" max="-2" attributes="0"/>
+ <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
+ </Group>
+ <Group type="102" alignment="0" attributes="0">
+ <Group type="103" groupAlignment="1" attributes="0">
+ <Component id="txtDatabaseURL" min="-2" pref="231" max="-2" attributes="0"/>
+ <Component id="buttonApply" min="-2" pref="92" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="buttonClose" max="32767" attributes="0"/>
+ <Component id="buttonChooseFile" pref="93" max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="jLabel1" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="txtDatabaseURL" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="buttonChooseFile" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace pref="29" max="32767" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="buttonClose" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="buttonApply" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="jLabel1">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Path to Database"/>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="txtDatabaseURL">
+ </Component>
+ <Component class="javax.swing.JButton" name="buttonChooseFile">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Choose..."/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonChooseFileActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="buttonClose">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Close"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonCloseActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="buttonApply">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Apply"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonApplyActionPerformed"/>
+ </Events>
+ </Component>
+ </SubComponents>
+</Form>
--- /dev/null
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package habeas;
+
+import java.util.prefs.Preferences;
+import javax.swing.JFileChooser;
+
+/**
+ *
+ * @author hari
+ */
+public class DatabaseSettingsDialog extends javax.swing.JDialog {
+
+ /**
+ * Creates new form DatabaseSettings
+ */
+ public DatabaseSettingsDialog(java.awt.Frame parent, boolean modal) {
+ super(parent, modal);
+ initComponents();
+ txtDatabaseURL.setText(Utility.connectionURL);
+ }
+
+ /**
+ * 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() {
+
+ jLabel1 = new javax.swing.JLabel();
+ txtDatabaseURL = new javax.swing.JTextField();
+ buttonChooseFile = new javax.swing.JButton();
+ buttonClose = new javax.swing.JButton();
+ buttonApply = new javax.swing.JButton();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ setTitle("Connection");
+ setLocationByPlatform(true);
+ setResizable(false);
+
+ jLabel1.setText("Path to Database");
+
+ buttonChooseFile.setText("Choose...");
+ buttonChooseFile.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ buttonChooseFileActionPerformed(evt);
+ }
+ });
+
+ buttonClose.setText("Close");
+ buttonClose.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ buttonCloseActionPerformed(evt);
+ }
+ });
+
+ buttonApply.setText("Apply");
+ buttonApply.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ buttonApplyActionPerformed(evt);
+ }
+ });
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
+ getContentPane().setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 139, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGap(0, 0, Short.MAX_VALUE))
+ .addGroup(layout.createSequentialGroup()
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(txtDatabaseURL, javax.swing.GroupLayout.PREFERRED_SIZE, 231, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(buttonApply, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(buttonClose, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(buttonChooseFile, javax.swing.GroupLayout.DEFAULT_SIZE, 93, Short.MAX_VALUE))))
+ .addContainerGap())
+ );
+ layout.setVerticalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(jLabel1)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(txtDatabaseURL, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(buttonChooseFile))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 29, Short.MAX_VALUE)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(buttonClose)
+ .addComponent(buttonApply))
+ .addContainerGap())
+ );
+
+ pack();
+ }// </editor-fold>//GEN-END:initComponents
+
+ private void buttonApplyActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonApplyActionPerformed
+ // TODO add your handling code here
+ Utility.setConnectionURL (txtDatabaseURL.getText());
+ }//GEN-LAST:event_buttonApplyActionPerformed
+
+ private void buttonCloseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonCloseActionPerformed
+ // TODO add your handling code here:
+ dispose();
+ }//GEN-LAST:event_buttonCloseActionPerformed
+
+ private void buttonChooseFileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonChooseFileActionPerformed
+ // TODO add your handling code here:
+ JFileChooser chooser = new JFileChooser ();
+ int i = chooser.showOpenDialog(this);
+ if (i == JFileChooser.APPROVE_OPTION) {
+ txtDatabaseURL.setText(chooser.getSelectedFile().getAbsolutePath());
+ }
+ }//GEN-LAST:event_buttonChooseFileActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(DatabaseSettingsDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(DatabaseSettingsDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(DatabaseSettingsDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(DatabaseSettingsDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //</editor-fold>
+ //</editor-fold>
+
+ /* Create and display the dialog */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ DatabaseSettingsDialog dialog = new DatabaseSettingsDialog(new javax.swing.JFrame(), true);
+ dialog.addWindowListener(new java.awt.event.WindowAdapter() {
+ @Override
+ public void windowClosing(java.awt.event.WindowEvent e) {
+ System.exit(0);
+ }
+ });
+ dialog.setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton buttonApply;
+ private javax.swing.JButton buttonChooseFile;
+ private javax.swing.JButton buttonClose;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JTextField txtDatabaseURL;
+ // End of variables declaration//GEN-END:variables
+}
--- /dev/null
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package habeas;
+
+import java.sql.*;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+
+/**
+ *
+ * @author hari
+ */
+public class Habeas {
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String[] args) {
+ // TODO code application logic here
+ Utility.getConnectionURL();
+
+ try {
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (ClassNotFoundException ex) {
+ Logger.getLogger(Habeas.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ Logger.getLogger(Habeas.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ Logger.getLogger(Habeas.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (UnsupportedLookAndFeelException ex) {
+ Logger.getLogger(Habeas.class.getName()).log(Level.SEVERE, null, ex);
+ }
+
+ MainFrame frame = new MainFrame ();
+ frame.setVisible(true);
+ }
+
+}
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
+ <NonVisualComponents>
+ <Menu class="javax.swing.JMenuBar" name="jMenuBar1">
+ <SubComponents>
+ <Menu class="javax.swing.JMenu" name="menuMaster">
+ <Properties>
+ <Property name="mnemonic" type="int" value="77"/>
+ <Property name="text" type="java.lang.String" value="Master"/>
+ </Properties>
+ <SubComponents>
+ <MenuItem class="javax.swing.JMenuItem" name="menuClientMaster">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Client Master..."/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="menuClientMasterActionPerformed"/>
+ </Events>
+ </MenuItem>
+ </SubComponents>
+ </Menu>
+ <Menu class="javax.swing.JMenu" name="menuSettings">
+ <Properties>
+ <Property name="mnemonic" type="int" value="83"/>
+ <Property name="text" type="java.lang.String" value="Settings"/>
+ </Properties>
+ <SubComponents>
+ <MenuItem class="javax.swing.JMenuItem" name="menuDatabaseSettings">
+ <Properties>
+ <Property name="mnemonic" type="int" value="68"/>
+ <Property name="text" type="java.lang.String" value="Database..."/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="menuDatabaseSettingsActionPerformed"/>
+ </Events>
+ </MenuItem>
+ </SubComponents>
+ </Menu>
+ </SubComponents>
+ </Menu>
+ </NonVisualComponents>
+ <Properties>
+ <Property name="defaultCloseOperation" type="int" value="3"/>
+ <Property name="title" type="java.lang.String" value="Habeas - Law Office Manager"/>
+ <Property name="locationByPlatform" type="boolean" value="true"/>
+ </Properties>
+ <SyntheticProperties>
+ <SyntheticProperty name="menuBar" type="java.lang.String" value="jMenuBar1"/>
+ <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+ <SyntheticProperty name="generateCenter" type="boolean" value="false"/>
+ </SyntheticProperties>
+ <AuxValues>
+ <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+ <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
+ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+ </AuxValues>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <EmptySpace min="0" pref="586" max="32767" attributes="0"/>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <EmptySpace min="0" pref="292" max="32767" attributes="0"/>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+</Form>
--- /dev/null
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package habeas;
+
+/**
+ *
+ * @author hari
+ */
+public class MainFrame extends javax.swing.JFrame {
+
+ /**
+ * Creates new form MainFrame
+ */
+ public MainFrame() {
+ initComponents();
+ }
+
+ /**
+ * 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() {
+
+ jMenuBar1 = new javax.swing.JMenuBar();
+ menuMaster = new javax.swing.JMenu();
+ menuClientMaster = new javax.swing.JMenuItem();
+ menuSettings = new javax.swing.JMenu();
+ menuDatabaseSettings = new javax.swing.JMenuItem();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
+ setTitle("Habeas - Law Office Manager");
+ setLocationByPlatform(true);
+
+ menuMaster.setMnemonic('M');
+ menuMaster.setText("Master");
+
+ menuClientMaster.setText("Client Master...");
+ menuClientMaster.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ menuClientMasterActionPerformed(evt);
+ }
+ });
+ menuMaster.add(menuClientMaster);
+
+ jMenuBar1.add(menuMaster);
+
+ menuSettings.setMnemonic('S');
+ menuSettings.setText("Settings");
+
+ menuDatabaseSettings.setMnemonic('D');
+ menuDatabaseSettings.setText("Database...");
+ menuDatabaseSettings.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ menuDatabaseSettingsActionPerformed(evt);
+ }
+ });
+ menuSettings.add(menuDatabaseSettings);
+
+ jMenuBar1.add(menuSettings);
+
+ setJMenuBar(jMenuBar1);
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
+ getContentPane().setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 586, Short.MAX_VALUE)
+ );
+ layout.setVerticalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 292, Short.MAX_VALUE)
+ );
+
+ pack();
+ }// </editor-fold>//GEN-END:initComponents
+
+ private void menuDatabaseSettingsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_menuDatabaseSettingsActionPerformed
+ // TODO add your handling code here:
+ DatabaseSettingsDialog frm = new DatabaseSettingsDialog (this, true);
+ frm.setVisible(true);
+ }//GEN-LAST:event_menuDatabaseSettingsActionPerformed
+
+ private void menuClientMasterActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_menuClientMasterActionPerformed
+ // TODO add your handling code here:
+ ClientMasterDialog frm = new ClientMasterDialog (this, true);
+ frm.setVisible(true);
+ }//GEN-LAST:event_menuClientMasterActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //</editor-fold>
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new MainFrame().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JMenuBar jMenuBar1;
+ private javax.swing.JMenuItem menuClientMaster;
+ private javax.swing.JMenuItem menuDatabaseSettings;
+ private javax.swing.JMenu menuMaster;
+ private javax.swing.JMenu menuSettings;
+ // End of variables declaration//GEN-END:variables
+}
--- /dev/null
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package habeas;
+
+import java.util.ArrayList;
+import java.util.prefs.Preferences;
+import java.sql.*;
+import java.util.Dictionary;
+import java.util.HashMap;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.swing.JOptionPane;
+
+/**
+ *
+ * @author hari
+ */
+public class Utility {
+
+ static void setConnectionURL(String text) {
+ connectionURL = text;
+ Preferences.userRoot().put("ConnectionURL", text);
+ }
+
+ static ArrayList<Object> getClientDetails(int r) {
+ ArrayList<Object> res = new ArrayList <>();
+ try {
+ Connection conn = DriverManager.getConnection("jdbc:sqlite:"+connectionURL);
+ PreparedStatement st = conn.prepareStatement("SELECT * FROM clients WHERE id=?;");
+ st.setInt(1, r);
+ ResultSet rs = st.executeQuery();
+ while (rs.next()) {
+ res.add (rs.getString("ClientName"));
+ res.add(rs.getString("ClientAddress"));
+ res.add (rs.getString("ContactPerson"));
+ res.add (rs.getString("MailID"));
+ res.add (rs.getString("ContactNumber"));
+ }
+ conn.close ();
+ return res;
+
+ } catch (SQLException ex) {
+ Logger.getLogger(Utility.class.getName()).log(Level.SEVERE, null, ex);
+ return null;
+ }
+
+ }
+
+ static boolean addClient(String client_name, String client_address,
+ String contact_person, String email_id, String phone_number) {
+ if ("".equals(client_name))
+ return false;
+ try {
+ Connection conn = DriverManager.getConnection("jdbc:sqlite:" + connectionURL);
+ PreparedStatement st = conn.prepareStatement("INSERT INTO clients (ClientName,"
+ + "ClientAddress, ContactPerson, MailID, ContactNumber) VALUES (?, ?, ?, ?, ?);");
+ st.setString(1, client_name);
+ st.setString(2, client_address);
+ st.setString(3, contact_person);
+ st.setString (4, email_id);
+ st.setString (5, phone_number);
+ st.execute();
+ conn.close();
+ return true;
+
+ } catch (SQLException ex) {
+ Logger.getLogger(Utility.class.getName()).log(Level.SEVERE, null, ex);
+ return false;
+ }
+
+
+ }
+
+ static boolean deleteClient(int r) {
+ try {
+ Connection conn = DriverManager.getConnection("jdbc:sqlite:" + connectionURL);
+ PreparedStatement st = conn.prepareStatement("DELETE FROM clients WHERE id=?;");
+ PreparedStatement st2 = conn.prepareStatement("DELETE FROM legalnotices WHERE ClientId=?;");
+ st.setInt(1, r);
+ st2.setInt (1, r);
+ st.execute();
+ st2.execute();
+ conn.close();
+ return true;
+ } catch (SQLException ex) {
+ Logger.getLogger(Utility.class.getName()).log(Level.SEVERE, null, ex);
+ return false;
+ }
+
+ }
+
+ static boolean updateClient(int r, String client_name, String client_address,
+ String contact_person, String mail_id, String phone_number) {
+ if ("".equals(client_name))
+ return false;
+ try {
+ Connection conn = DriverManager.getConnection("jdbc:sqlite:" + connectionURL);
+ PreparedStatement st = conn.prepareStatement("UPDATE clients SET "
+ + "ClientName=?, ClientAddress=?,"
+ + "ContactPerson=?, MailID=?, ContactNumber=? WHERE id=?;");
+ st.setString(1, client_name);
+ st.setString(2, client_address);
+ st.setString(3, contact_person);
+ st.setString(4, mail_id);
+ st.setString(5, phone_number);
+ st.setInt (6, r);
+ st.execute();
+ conn.close();
+ return true;
+ } catch (SQLException ex) {
+ Logger.getLogger(Utility.class.getName()).log(Level.SEVERE, null, ex);
+ return false;
+ }
+
+
+ }
+ public Utility () {
+
+ }
+ public static String connectionURL ;
+
+ /**
+ *
+ * @return
+ */
+ public static ArrayList<Object> getClientsNameAndId () {
+ ArrayList<Object> data = new ArrayList<>();
+ try {
+ Connection conn = DriverManager.getConnection("jdbc:sqlite:" + connectionURL);
+ Statement st = conn.createStatement();
+ ResultSet rs = st.executeQuery("SELECT id, ClientName from clients;");
+ while (rs.next()) {
+ data.add(rs.getInt("id"));
+ data.add(rs.getString("ClientName"));
+ }
+ conn.close();
+ return data;
+ } catch (SQLException ex) {
+ Logger.getLogger(Utility.class.getName()).log(Level.SEVERE, null, ex);
+ return null;
+ }
+
+ }
+
+ public static void getConnectionURL () {
+ connectionURL = Preferences.userRoot().get("ConnectionURL", "legaldb");
+ }
+
+}