/fin_val/src/production/artem/finance/gui/BankCatalog.java
Java | 500 lines | 360 code | 60 blank | 80 comment | 30 complexity | 3439f47d9f25d17b4c8b71fe89a614fb MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, IPL-1.0, Apache-2.0, LGPL-2.1, LGPL-2.0, BSD-3-Clause
- package artem.finance.gui;
-
- import javax.swing.JPanel;
-
- import java.awt.Dimension;
- import java.awt.Rectangle;
- import javax.swing.JButton;
- import javax.swing.JInternalFrame;
- import javax.swing.JOptionPane;
- import javax.swing.JTextField;
- import javax.swing.JScrollPane;
- import javax.swing.JTable;
- import javax.swing.ListSelectionModel;
- import javax.swing.event.ListSelectionEvent;
- import javax.swing.event.ListSelectionListener;
- import javax.swing.table.DefaultTableColumnModel;
- import javax.swing.table.TableColumn;
-
- import java.rmi.RemoteException;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Properties;
-
- import javax.swing.JLabel;
-
- import org.apache.commons.lang.StringUtils;
-
- import artem.finance.gui.db.BeansFactory;
- import artem.finance.server.persist.Bank;
- import artem.finance.server.persist.beans.BankBean;
-
-
- /**
- *
- * @author IB
- *
- */
-
- public class BankCatalog extends JInternalFrame {
-
- private static final long serialVersionUID = 1L;
- private JPanel jContentPane = null;
- private JButton addButton = null;
- private JTextField bankNameTextField = null;
- private JTextField bankFullNameTextField = null;
- private JButton delButton = null;
- private JScrollPane jScrollPane = null;
- private JTable jTable = null;
- private JButton cancelButton = null;
- private JLabel bankLabel = null;
- private JLabel bankFullNameLabel = null;
- private JButton editButton = null;
- private BeansFactory factory;
- private Bank selectedBank;
- private Properties properties;
-
-
- /**
- * This is the default constructor for BankCatalog class.
- */
- public BankCatalog(Properties properties)
- {
- super("",
- false, //resizable
- true, //closable
- false, //maximizable
- true);//iconifiable
- this.properties = properties;
- this.factory = BeansFactory.getInstance();
- initialize();
- }
-
- public Properties getLanguageLabelsProperties()
- {
- return properties;
- }
-
- /**
- * This method initializes this
- *
- * @return void
- */
- private void initialize()
- {
- this.setSize(490, 535);
- this.setContentPane(getJContentPane());
- this.setTitle(properties.getProperty("banks"));
- }
-
- /**
- * This method initializes jContentPane
- *
- * @return javax.swing.JPanel
- */
- private JPanel getJContentPane()
- {
- if (jContentPane == null)
- {
-
- bankFullNameLabel = new JLabel();
- bankFullNameLabel.setBounds(new Rectangle(195, 499, 150, 16));
- bankFullNameLabel.setText(properties.getProperty("bankFullName"));
- bankLabel = new JLabel();
- bankLabel.setBounds(new Rectangle(15, 499, 38, 16));
- bankLabel.setText(properties.getProperty("bank"));
- jContentPane = new JPanel();
- jContentPane.setLayout(null);
- jContentPane.setSize(new Dimension(690, 230));
- jContentPane.add(getAddButton(), null);
- jContentPane.add(getBankNameTextField(), null);
- jContentPane.add(getBankFullNameTextField(), null);
- jContentPane.add(getDelButton(), null);
- jContentPane.add(getJScrollPane(), null);
- jContentPane.setOpaque(true);
- jContentPane.add(getCancelButton(), null);
- jContentPane.add(bankLabel, null);
- jContentPane.add(bankFullNameLabel, null);
- jContentPane.add(getEditButton(), null);
-
- }
- return jContentPane;
- }
-
- /**
- * This method initializes addButton
- *
- * @return javax.swing.JButton
- */
- private JButton getAddButton()
- {
- if (addButton == null)
- {
- addButton = new JButton();
- addButton.setBounds(new Rectangle(15, 466, 140, 26));
- addButton.setText(properties.getProperty("add"));
- addButton.setEnabled(false);
- addButton.setVisible(false);
- addButton.addActionListener(new java.awt.event.ActionListener()
- {
- public void actionPerformed(java.awt.event.ActionEvent e)
- {
-
- final String bankName = bankNameTextField.getText();
- final String bankFullName = bankFullNameTextField.getText();
-
- //add new field or change current field in the table
- if( bankName == null || StringUtils.EMPTY.equals( bankName ) ){
- JOptionPane.showMessageDialog(getJTable(), properties.getProperty("bankNameMissing"));
- return;
- }
-
- if( bankFullName == null || StringUtils.EMPTY.equals( bankFullName ) ){
- JOptionPane.showMessageDialog(getJTable(), properties.getProperty("bankFullNameMissing"));
- return;
- }
-
- if(selectedBank == null )
- {
- try
- {
- selectedBank = new Bank();
-
- selectedBank.setName( bankName );
- selectedBank.setFulname( bankFullName );
- factory.getBankServiceSLSB().save(new BankBean(selectedBank));
- JOptionPane.showMessageDialog(getJTable(), selectedBank.getFulname()+" "+properties.getProperty("savedSuccessfully"));
- cleanTextFields();
- //update jTable
- getDatabaseTableModel().setData(getDataFromDb());
- getDatabaseTableModel().fireTableRowsInserted(getJTable().getRowCount()-1, getJTable().getRowCount()-1);
-
- getJTable().repaint();
-
- //Select the inserted row
- getJTable().getSelectionModel().setLeadSelectionIndex(getJTable().getRowCount());
-
- selectedBank = null;
- }catch(Exception ex)
- {
- JOptionPane.showMessageDialog(getJTable(), properties.getProperty("bank")+" "+properties.getProperty("notSaved")+ex.getMessage());
- selectedBank = null;
- }
- }else
- {
- try
- {
- selectedBank.setName( bankName );
- selectedBank.setFulname( bankFullName );
- factory.getBankServiceSLSB().saveOrUpdate( new BankBean(selectedBank) );
- JOptionPane.showMessageDialog(getJTable(), selectedBank.getFulname()+" "+properties.getProperty("updatedSuccessfully"));
- cleanTextFields();
- //update jTable
- getDatabaseTableModel().setData(getDataFromDb());
- int selected = getJTable().getSelectionModel().getLeadSelectionIndex();
- getDatabaseTableModel().fireTableRowsUpdated(selected, selected);//.fireTableRowsInserted(getJTable().getRowCount()-1, getJTable().getRowCount());
-
- getJTable().repaint();
-
- selectedBank = null;
- }catch(Exception ex)
- {
- JOptionPane.showMessageDialog(getJTable(), properties.getProperty("bank")+" "+properties.getProperty("notUpdated")+ex.getMessage());
- selectedBank = null;
- }
- }
- }
- });
- }
- return addButton;
- }
-
- private void cleanTextFields()
- {
- bankNameTextField.setText( StringUtils.EMPTY );
- bankFullNameTextField.setText( StringUtils.EMPTY );
- }
-
- /**
- * This method initializes bankNameTextField
- *
- * @return javax.swing.JTextField
- */
- private JTextField getBankNameTextField()
- {
- if (bankNameTextField == null)
- {
- bankNameTextField = new JTextField();
- bankNameTextField.setBounds(new Rectangle(15, 524, 165, 20));
- }
- return bankNameTextField;
- }
-
- /**
- * This method initializes bankFullNameTextField
- *
- * @return javax.swing.JTextField
- */
- private JTextField getBankFullNameTextField()
- {
- if (bankFullNameTextField == null)
- {
- bankFullNameTextField = new JTextField();
- bankFullNameTextField.setBounds(new Rectangle(196, 525, 275, 20));
- }
- return bankFullNameTextField;
- }
-
- /**
- * This method initializes updButton
- *
- * @return javax.swing.JButton
- */
- private JButton getDelButton()
- {
- if (delButton == null)
- {
- delButton = new JButton();
- delButton.setBounds(new Rectangle(165, 466, 140, 26));
- delButton.setText(properties.getProperty("delete"));
- delButton.setEnabled(false);
- delButton.setVisible(false);
- delButton.addActionListener(new java.awt.event.ActionListener()
- {
- public void actionPerformed(java.awt.event.ActionEvent e)
- {
- //delete selected field
- getBankNameTextField().setText( StringUtils.EMPTY );
- getBankFullNameTextField().setText( StringUtils.EMPTY );
-
- if (selectedBank == null)
- {
- JOptionPane.showMessageDialog(getJTable(), properties.getProperty("bankNotSelectedToDelete"));
- } else
- {
- try
- {
- factory.getBankServiceSLSB().delete(new BankBean(selectedBank));
- JOptionPane.showMessageDialog(getJTable(),selectedBank.getFulname() + " "+ properties.getProperty("deleted"));
- selectedBank = null;
-
- // update jTable
- getDatabaseTableModel().setData(getDataFromDb());
- int selectedRow = getJTable().getSelectionModel().getLeadSelectionIndex();
- getDatabaseTableModel().fireTableRowsDeleted(selectedRow, selectedRow);
-
- //getJTable().repaint();
-
- } catch (Exception ex)
- {
- JOptionPane.showMessageDialog(getJTable(), selectedBank.getFulname()+ " "+ properties.getProperty("notDeleted"));
- }
- }
- }
- });
- }
- return delButton;
- }
-
- /**
- * This method initializes jScrollPane
- *
- * @return javax.swing.JScrollPane
- */
- private JScrollPane getJScrollPane()
- {
- if (jScrollPane == null)
- {
- jScrollPane = new JScrollPane();
- jScrollPane.setBounds(new Rectangle(13, 15, 455, 446));
- jScrollPane.setViewportView(getJTable());
- }
- return jScrollPane;
- }
-
- private List<Object> getDataFromDb()
- {
- List<Object> data = new ArrayList<Object>();
-
- try
- {
- List<BankBean> banks = factory.getBankServiceSLSB().findAll();
-
- for(int i = 0; i< banks.size(); i++)
- {
- BankBean bank = banks.get(i);
- List<Object> raw = new ArrayList<Object>();
- raw.add(bank.getBank().getId());
- raw.add(bank.getBank().getName());
- raw.add(bank.getBank().getFulname());
- data.add(raw);
- }
- } catch (RemoteException e) {
- JOptionPane.showMessageDialog(getJTable(), "Can not get all banks from database."/*properties.getProperty("canNotGetAllBanksFromDB")*/);
- e.printStackTrace();
- }
- return data;
- }
-
- /**
- * Used for lazy data loading to the table. Fills the data only after first frame shoving
- */
- public void fillBanksTable()
- {
- getDatabaseTableModel().setData(getDataFromDb());
- getDatabaseTableModel().fireTableDataChanged();
- }
-
- /**
- * This method initializes jTable
- *
- * @return javax.swing.JTable
- */
- private JTable getJTable()
- {
- if (jTable == null)
- {
- DatabaseTableModel tableModel = new DatabaseTableModel(true);
-
- final List<String> names = new ArrayList<String>();
- names.add("");
- names.add(properties.getProperty("bank"));
- names.add(properties.getProperty("bankFullName"));
-
- tableModel.setColumnNames(names);
- final List<Class> types = new ArrayList<Class>(3);
- types.add(Long.class);
- types.add(String.class);
- types.add(String.class);
- //types.add(JRadioButton.class);
- tableModel.setColumnTypes(types);
-
- //Gets all the banks during loading!
- //tableModel.setData(getDataFromDb());
-
- jTable = new JTable(tableModel);
-
- DefaultTableColumnModel columns = (DefaultTableColumnModel) jTable.getColumnModel();
-
- TableColumn tc = columns.getColumn(0);
- tc.setPreferredWidth(0);
- tc = columns.getColumn(1);
- tc.setPreferredWidth(315);
- tc = columns.getColumn(2);
- tc.setPreferredWidth(815);
-
- jTable.setPreferredScrollableViewportSize(new Dimension(500, 70));
- jTable.setBounds(new Rectangle(15, 15, 455, 420));
- jTable.setFillsViewportHeight(true);
- //User can select only one row.
- jTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
- jTable.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
-
- public void valueChanged(ListSelectionEvent e)
- {
- int selectedRow = getJTable().getSelectionModel().getLeadSelectionIndex();
-
- Long id = (Long)getJTable().getModel().getValueAt(selectedRow, 0);
- String name = (String)getJTable().getModel().getValueAt(selectedRow, 1);
- String fulname = (String)getJTable().getModel().getValueAt(selectedRow, 2);
-
- selectedBank = new Bank();
- selectedBank.setId(id);
- selectedBank.setName(name);
- selectedBank.setFulname(fulname);
-
- getBankNameTextField().setText( name );
- getBankFullNameTextField().setText( fulname );
- }
-
- });
- }
- return jTable;
- }
-
- private DatabaseTableModel getDatabaseTableModel()
- {
- DatabaseTableModel model = (DatabaseTableModel)jTable.getModel();
- return model;
- }
- /**
- * This method initializes cancelButton
- *
- * @return javax.swing.JButton
- */
- private JButton getCancelButton()
- {
- if (cancelButton == null)
- {
- cancelButton = new JButton();
- cancelButton.setBounds(new Rectangle(315, 466, 145, 26));
- cancelButton.setText(properties.getProperty("cancel"));
- cancelButton.setEnabled(false);
- cancelButton.setVisible(false);
- cancelButton.addActionListener(new java.awt.event.ActionListener()
- {
- public void actionPerformed(java.awt.event.ActionEvent e)
- {
- //active
- editButton.setEnabled(true);
- editButton.setVisible(true);
- //not active
- addButton.setVisible(false);
- addButton.setEnabled(false);
- addButton.setText(properties.getProperty("add"));
- delButton.setVisible(false);
- delButton.setEnabled(false);
- cancelButton.setVisible(false);
- cancelButton.setEnabled(false);
- //change frame size
- setSize(490, 535);
- //clear textfields
- bankNameTextField.setText(null);
- bankFullNameTextField.setText(null);
-
- //Clear highlighting the selected row in the table
- int leadSelectionInd = getJTable().getSelectionModel().getLeadSelectionIndex();
- getJTable().getSelectionModel().removeSelectionInterval(leadSelectionInd, leadSelectionInd);
- }
- });
- }
- return cancelButton;
- }
-
-
-
-
- /**
- * This method initializes editButton1
- *
- * @return javax.swing.JButton
- */
- private JButton getEditButton()
- {
- if (editButton == null)
- {
- editButton = new JButton();
- editButton.setBounds(new Rectangle(15, 466, 140, 26));
- editButton.setText(properties.getProperty("edit"));
- editButton.addActionListener(new java.awt.event.ActionListener()
- {
- public void actionPerformed(java.awt.event.ActionEvent e)
- {
- //not active
- editButton.setEnabled(false);
- editButton.setVisible(false);
- //active
- addButton.setVisible(true);
- addButton.setEnabled(true);
- delButton.setVisible(true);
- delButton.setEnabled(true);
- cancelButton.setVisible(true);
- cancelButton.setEnabled(true);
- //change frame size
- setSize(490, 585);
- }
- });
- }
- return editButton;
- }
- }