Package clips.kek.direction

Source Code of clips.kek.direction.DlgDirectionSearch

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/*
* DlgDirectionSearch.java
*
* Created on 27.02.2009, 13:14:39
*/

package clips.kek.direction;

import cli_fmw.delegate.directory.complex.DirectoryLocator;
import cli_fmw.main.ClipsException;
import cli_fmw.utils.ModalDialog;
import cli_fmw.utils.EmptyDialog;
import cli_fmw.utils.MessageBox;
import cli_fmw.utils.ModalDialog;
import cli_fmw.utils.SelectorEditableExceptional;
import cli_fmw.utils.table_config_states.StateSaver;
import cli_fmw.utils.table_config_states.TableState;
import clips.delegate.client.ClientLocal;
import clips.delegate.directory.simple.committeeReason.DirectoryCommitteeReason;
import clips.delegate.directory.simple.committeeReason.DirectoryCommitteeReasonItem;
import clips.delegate.doctor.direction.DirectionFactoryLocal;
import clips.delegate.doctor.direction.DirectionLocal;
import clips.delegate.kek.CommitteeDirectionData;
import clips.delegate.kek.CommitteeLocal;
import clips.userseach.PanelUserSearch;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import org.infotechservice.ICalendar.DateEvent;
import org.infotechservice.ICalendar.DateListener;

/**
*
* @author lacoste
*/
public class DlgDirectionSearch extends ModalDialog {
    private Date dateFrom, dateTill;
    private DirectoryCommitteeReasonItem comReason;
    private List<DirectionLocal> directionList;      //итератор найденных направлений
    private ArrayList<CommitteeDirectionData> comDirMembers;
    private ArrayList<CommitteeDirectionData> comDirMembersToAdd;
    private CommitteeLocal committee;
    private ClientLocal client = null;

    /** Creates new form DlgDirectionSearch */
    public DlgDirectionSearch(java.awt.Frame parent, CommitteeLocal commitee) throws ClipsException {
        super(parent, "Поиск направлений", null);
        initComponents();
        this.committee = commitee;

        //заполняем комбобокс типов направлений
        DirectoryCommitteeReason dirComReasons = DirectoryLocator.getDirectory(DirectoryCommitteeReason.class);
        SelectorEditableExceptional<DirectoryCommitteeReasonItem> ii = dirComReasons.getItems();
        for (int i = 0; i < ii.size(); i++) {
            DirectoryCommitteeReasonItem item = ii.get(i);
            cbComReasons.addItem(item);
        }
        cbComReasons.setSelectedItem(dirComReasons.getItemFromID(0));

        dateChooserFrom.addDateListener(new DateListener() {

            @Override
            public void dateChanged(DateEvent evt) {
                dateFrom = dateChooserFrom.getDate();
            }
        });

        dateChooserTill.addDateListener(new DateListener() {

            @Override
            public void dateChanged(DateEvent evt) {
                dateTill = dateChooserTill.getDate();
            }
        });

        tabDirList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

        tabDirList.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

            @Override
            public void valueChanged(ListSelectionEvent e) {
                btSelect.setEnabled(tabDirList.getSelectedRowCount() > 0);
            }
        });

    StateSaver.attachTo(this);
    }

    public ArrayList<CommitteeDirectionData> getDirMemList() {
        return comDirMembersToAdd;
    }

    private void resizeColumn() {
    TableState          state = new TableState();
    state.setPreferredWidth(TableModelDirMemList.COL_DIRMEM_ID,    2);
    state.setPreferredWidth(TableModelDirMemList.COL_CLIENT,    11);
    state.setPreferredWidth(TableModelDirMemList.COL_DATE,      6);
    state.setPreferredWidth(TableModelDirMemList.COL_MKB,      11);
    state.setPreferredWidth(TableModelDirMemList.COL_REASON,    10);
    state.setPreferredWidth(TableModelDirMemList.COL_DESC,      10);
    state.setPreferredWidth(TableModelDirMemList.COL_COLLAB,    10);
      StateSaver.setDefaultState(this, tabDirList, state);

  }

    /** 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() {

        jPanel1 = new javax.swing.JPanel();
        jPanel8 = new javax.swing.JPanel();
        jPanel4 = new javax.swing.JPanel();
        jPanel7 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        cbClient = new javax.swing.JCheckBox();
        jLabel2 = new javax.swing.JLabel();
        jPanel2 = new javax.swing.JPanel();
        cbComReasons = new javax.swing.JComboBox();
        jPanel5 = new javax.swing.JPanel();
        tfClient = new javax.swing.JTextField();
        btClient = new javax.swing.JButton();
        jPanel6 = new javax.swing.JPanel();
        jPanel9 = new javax.swing.JPanel();
        jLabel3 = new javax.swing.JLabel();
        dateChooserFrom = new org.infotechservice.ICalendar.components.ICDateChooser();
        jLabel4 = new javax.swing.JLabel();
        dateChooserTill = new org.infotechservice.ICalendar.components.ICDateChooser();
        jPanel10 = new javax.swing.JPanel();
        btSearch = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        tabDirList = new cli_fmw.utils.sorted_table.SortedTable();
        jPanel3 = new javax.swing.JPanel();
        btSelect = new javax.swing.JButton();
        btCancel = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Поиск направлений на комиссию");

        jPanel8.setLayout(new java.awt.BorderLayout());

        jPanel4.setLayout(new java.awt.BorderLayout(5, 0));

        jPanel7.setLayout(new java.awt.GridLayout(3, 1, 3, 5));

        jLabel1.setText("по типу: ");
        jPanel7.add(jLabel1);

        cbClient.setText("по пациенту:");
        cbClient.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cbClientActionPerformed(evt);
            }
        });
        jPanel7.add(cbClient);

        jLabel2.setText("по дате:");
        jPanel7.add(jLabel2);

        jPanel4.add(jPanel7, java.awt.BorderLayout.LINE_START);

        jPanel2.setLayout(new java.awt.GridLayout(3, 1, 5, 5));

        cbComReasons.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cbComReasonsActionPerformed(evt);
            }
        });
        jPanel2.add(cbComReasons);

        jPanel5.setLayout(new java.awt.BorderLayout());

        tfClient.setColumns(40);
        tfClient.setEditable(false);
        jPanel5.add(tfClient, java.awt.BorderLayout.CENTER);

        btClient.setText("...");
        btClient.setEnabled(false);
        btClient.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btClientActionPerformed(evt);
            }
        });
        jPanel5.add(btClient, java.awt.BorderLayout.LINE_END);

        jPanel2.add(jPanel5);

        jPanel6.setLayout(new java.awt.BorderLayout());

        jPanel9.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 0, 0));

        jLabel3.setText("с:  ");
        jPanel9.add(jLabel3);

        dateChooserFrom.setPreferredSize(new java.awt.Dimension(130, 29));
        jPanel9.add(dateChooserFrom);

        jLabel4.setText("  по:  ");
        jPanel9.add(jLabel4);

        dateChooserTill.setPreferredSize(new java.awt.Dimension(130, 29));
        jPanel9.add(dateChooserTill);

        jPanel6.add(jPanel9, java.awt.BorderLayout.LINE_START);

        jPanel10.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 0, 0));

        btSearch.setText("Поиск");
        btSearch.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btSearchActionPerformed(evt);
            }
        });
        jPanel10.add(btSearch);

        jPanel6.add(jPanel10, java.awt.BorderLayout.LINE_END);

        jPanel2.add(jPanel6);

        jPanel4.add(jPanel2, java.awt.BorderLayout.CENTER);

        jPanel8.add(jPanel4, java.awt.BorderLayout.PAGE_START);

        jScrollPane1.setBorder(javax.swing.BorderFactory.createTitledBorder("Выберите направления, для которых следует создать комиссию"));

        tabDirList.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {},
                {},
                {},
                {}
            },
            new String [] {

            }
        ));
        jScrollPane1.setViewportView(tabDirList);

        jPanel8.add(jScrollPane1, java.awt.BorderLayout.CENTER);

        jPanel3.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));

        btSelect.setText("Выбрать");
        btSelect.setEnabled(false);
        btSelect.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btSelectActionPerformed(evt);
            }
        });
        jPanel3.add(btSelect);

        btCancel.setText("Отмена");
        btCancel.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btCancelActionPerformed(evt);
            }
        });
        jPanel3.add(btCancel);

        jPanel8.add(jPanel3, java.awt.BorderLayout.PAGE_END);

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE, 652, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE, 417, Short.MAX_VALUE)
                .addContainerGap())
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void cbComReasonsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbComReasonsActionPerformed
        if (cbComReasons.getSelectedItem() instanceof DirectoryCommitteeReasonItem) {
            comReason = (DirectoryCommitteeReasonItem) cbComReasons.getSelectedItem();
        } else {
            comReason = null;
        }
}//GEN-LAST:event_cbComReasonsActionPerformed

    private void btSelectActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btSelectActionPerformed
        if (tabDirList.getSelectedRowCount() == 0) {
            return;
        }
        try {
            comDirMembersToAdd = new ArrayList<CommitteeDirectionData>();
            int[] selRow = tabDirList.getSelectedRowsSorted();
            for (int i = 0; i < selRow.length; i++) {
                if (!comDirMembers.get(selRow[i]).getDirection(getAuditManager()).isOrdered()) {
                    comDirMembersToAdd.add(comDirMembers.get(selRow[i]));
                }
            }
            setDlgResult(ModalDialog.DLG_OK);
            dispose();
        } catch (ClipsException e) {
            MessageBox.showException(e);
        }
}//GEN-LAST:event_btSelectActionPerformed

    private void btCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btCancelActionPerformed
        setDlgResult(ModalDialog.DLG_CANCEL);
        dispose();
}//GEN-LAST:event_btCancelActionPerformed

    private void cbClientActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbClientActionPerformed
        try {
            if (cbClient.isSelected()) {
                EmptyDialog dlg = new EmptyDialog(this, "Поиск пациента", getAuditManager());
                PanelUserSearch panel = new PanelUserSearch(dlg, PanelUserSearch.MODE_SELECT);
                dlg.addNewPage(panel, null);
                dlg.setVisible(true);
                if (dlg.getDlgResult() == ModalDialog.DLG_OK) {
                    client = panel.getSelectedClient();
                    tfClient.setText(client.toString());
                    btClient.setEnabled(true);
                } else {
                    client = null;
                    tfClient.setText("");
                    btClient.setEnabled(false);
                    cbClient.setSelected(false);
                }
            } else {
                client = null;
                tfClient.setText("");
                btClient.setEnabled(false);
            }
        } catch (ClipsException ex) {
            MessageBox.showException(ex);
        }
}//GEN-LAST:event_cbClientActionPerformed

    private void btClientActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btClientActionPerformed
        try {
            EmptyDialog dlg = new EmptyDialog(null, "Выбор пациента", getAuditManager());
            PanelUserSearch panel = new PanelUserSearch(dlg, PanelUserSearch.MODE_SELECT);
            dlg.addNewPage(panel, null);
            dlg.setVisible(true);
            if (dlg.getDlgResult() == ModalDialog.DLG_OK) {
                client = panel.getSelectedClient();
                tfClient.setText(client.toString());
                btClient.setEnabled(true);
            }
        } catch (ClipsException ex) {
            MessageBox.showException(ex);
        }
}//GEN-LAST:event_btClientActionPerformed

    private void btSearchActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btSearchActionPerformed
        try {
            int comReasonID = comReason == null ? 0 : comReason.getID();
            int clientID = client == null ? 0 : client.getID();
            DirectionFactoryLocal factory = new DirectionFactoryLocal(getAuditManager());
            directionList = factory.findDirectionListToComm(comReasonID, clientID, dateFrom, dateTill);
            comDirMembers = new ArrayList<CommitteeDirectionData>();
            for (int i = 0; i < directionList.size(); i++) {
                CommitteeDirectionData data = new CommitteeDirectionData(committee);
                data.setDirection(directionList.get(i));
                comDirMembers.add(data);
            }
            tabDirList.setModel(new TableModelDirMemList(comDirMembers));
            tabDirList.setDefaultRenderer(Object.class, new TableCellRendererDirectionList());
            resizeColumn();
        } catch (ClipsException e) {MessageBox.showException(e);}
}//GEN-LAST:event_btSearchActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btCancel;
    private javax.swing.JButton btClient;
    private javax.swing.JButton btSearch;
    private javax.swing.JButton btSelect;
    private javax.swing.JCheckBox cbClient;
    private javax.swing.JComboBox cbComReasons;
    private org.infotechservice.ICalendar.components.ICDateChooser dateChooserFrom;
    private org.infotechservice.ICalendar.components.ICDateChooser dateChooserTill;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel10;
    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.JPanel jPanel9;
    private javax.swing.JScrollPane jScrollPane1;
    private cli_fmw.utils.sorted_table.SortedTable tabDirList;
    private javax.swing.JTextField tfClient;
    // End of variables declaration//GEN-END:variables

}
TOP

Related Classes of clips.kek.direction.DlgDirectionSearch

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.