Package clips.doctor.certificate.controlPanels

Source Code of clips.doctor.certificate.controlPanels.PanelSelectableEdit

/*
* PanelTextField.java
*
* Created on 24 Декабрь 2008 г., 14:44
*/

package clips.doctor.certificate.controlPanels;

import cli_fmw.main.ClipsException;
import cli_fmw.report.panels.model.FilteredComboBoxModel;
import cli_fmw.utils.MessageBox;
import clips.Main;
import clips.delegate.doctor.certificate.tag.interfaces.TypeSelectableEdit;
import java.awt.event.ItemEvent;
import javax.swing.DefaultComboBoxModel;
import framework.utils.PairIntStr;
import java.awt.Dimension;
import java.awt.event.ItemListener;
import javax.swing.JScrollPane;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;

/**
*
* @author  vip
*/
public class PanelSelectableEdit extends javax.swing.JPanel {
   
    private TypeSelectableEdit tag;
    DefaultComboBoxModel model;
    private JScrollPane parentScrollPane;
   
    /** Creates new form PanelTextField */
    public PanelSelectableEdit(TypeSelectableEdit certTag, JScrollPane parentScrollPane) {
        initComponents();
        this.tag = certTag;
        this.parentScrollPane = parentScrollPane;
        jTextPane1.setText(tag.getReportParam().getUserName());
        if (Main.DEVELOPED_ON) {
            jTextPane1.setToolTipText(tag.getTagName());
        }
       
        //запрет прокрутки внутреннего скролла
        //jScrollPane2.getVerticalScrollBar().setUnitIncrement(0);

        PairIntStr[] pairArray = tag.getAllItems();
        PairIntStr founded = null;
        Integer id = tag.getItem();
    if (id != null){
      for (int i = 0; i < pairArray.length; i++) {
        PairIntStr pairIntStr = pairArray[i];
        if (pairIntStr.num == id) {
          founded = pairIntStr;
        }
      }

      if (founded == null) {
        //В случае если в базе лежит не валидное значение ругаемся и выводим первое значение
        MessageBox.showWarning("Параметр справки " + this.tag.getTitle() + "содержит невалидное значение с индексом " + id);
        founded = pairArray[0];
      }
    }

        model = new DefaultComboBoxModel(pairArray);
        FilteredComboBoxModel filteredModel = new FilteredComboBoxModel(jComboBox1, false) {

            @Override
            public Object addItem(String txt) {
                try {
                    tag.setText(txt, false);
                    model.addElement(txt);
                    return txt;
                } catch (ClipsException ex) {
                    MessageBox.showException(ex);
                    return null;
                }
            }
        };
        filteredModel.setContainModel(model);

        jComboBox1.setSelectedItem(founded);
        jComboBox1.addItemListener(new ItemListener() {

            @Override
            public void itemStateChanged(ItemEvent e) {
                try {
                    Object item = e.getItem();
                    tag.setItem(((PairIntStr)item).num);
                    tag.setText("", true);
                    jTextField1.setText("");
                    jTextField1.setEditable(tag.isEditable());
                    jTextField1.setEnabled(tag.isEditable());
                } catch (ClipsException ex) {
                    MessageBox.showException(ex);
                }
            }
        });
        /*jComboBox1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    Object item = jComboBox1.getSelectedItem();
                    tag.setItem(((PairIntStr)item).num);
                    tag.setText("", true);
                    jTextField1.setText("");
                    jTextField1.setEditable(tag.isEditable());
                } catch (ClipsException ex) {
                    ex.printStackTrace();
                }
            }
        });*/
        jTextField1.setText(tag.getText());
        jTextField1.setEditable(tag.isEditable());
        jTextField1.setEnabled(tag.isEditable());
        jTextField1.getDocument().addDocumentListener(new DocumentListener() {

            @Override
            public void insertUpdate(DocumentEvent e) {
                changeValue();
            }

            @Override
            public void removeUpdate(DocumentEvent e) {
                changeValue();
            }

            @Override
            public void changedUpdate(DocumentEvent e) {
                changeValue();
            }

            private void changeValue() {
                try {
                    tag.setText(jTextField1.getText(), false);
                } catch (ClipsException ex) {
                    MessageBox.showException(ex);
                }
            }

        });

    }

    @Override
    public Dimension getPreferredSize() {
        Dimension preferredSize = super.getPreferredSize();
        preferredSize.width = 1;
        return preferredSize;
    }

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

        jScrollPane2 = new javax.swing.JScrollPane();
        jTextPane1 = new javax.swing.JTextPane();
        jPanel1 = new javax.swing.JPanel();
        jComboBox1 = new javax.swing.JComboBox();
        jTextField1 = new javax.swing.JTextField();

        setLayout(new java.awt.GridLayout(1, 0));

        jScrollPane2.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
        jScrollPane2.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        jScrollPane2.setWheelScrollingEnabled(false);
        jScrollPane2.addMouseWheelListener(new java.awt.event.MouseWheelListener() {
            public void mouseWheelMoved(java.awt.event.MouseWheelEvent evt) {
                jScrollPane2MouseWheelMoved(evt);
            }
        });

        jTextPane1.setBackground(getBackground());
        jTextPane1.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
        jTextPane1.setEditable(false);
        jTextPane1.setFocusable(false);
        jTextPane1.addMouseWheelListener(new java.awt.event.MouseWheelListener() {
            public void mouseWheelMoved(java.awt.event.MouseWheelEvent evt) {
                jTextPane1MouseWheelMoved(evt);
            }
        });
        jScrollPane2.setViewportView(jTextPane1);

        add(jScrollPane2);

        jPanel1.setLayout(new java.awt.GridLayout(0, 1));

        jComboBox1.setEditable(true);
        jPanel1.add(jComboBox1);
        jPanel1.add(jTextField1);

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

    private void jTextPane1MouseWheelMoved(java.awt.event.MouseWheelEvent evt) {//GEN-FIRST:event_jTextPane1MouseWheelMoved
        parentScrollPane.dispatchEvent(evt);
        evt.consume();
    }//GEN-LAST:event_jTextPane1MouseWheelMoved

    private void jScrollPane2MouseWheelMoved(java.awt.event.MouseWheelEvent evt) {//GEN-FIRST:event_jScrollPane2MouseWheelMoved
        parentScrollPane.dispatchEvent(evt);
        evt.consume();
    }//GEN-LAST:event_jScrollPane2MouseWheelMoved


    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JComboBox jComboBox1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextPane jTextPane1;
    // End of variables declaration//GEN-END:variables

}
TOP

Related Classes of clips.doctor.certificate.controlPanels.PanelSelectableEdit

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.