Package clips.doctor.certificate.controlPanels

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

/*
* 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.TypeSelectable;
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;

/**
*
* @author  vip
*/
public class PanelSelectable extends javax.swing.JPanel {
   
    private TypeSelectable tag;
    DefaultComboBoxModel model;
    private JScrollPane parentScrollPane;
   
    /** Creates new form PanelTextField */
    public PanelSelectable(TypeSelectable 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);

        String text = tag.getText();
        PairIntStr[] pairArray = tag.getAllItems();
        PairIntStr selectedPair = null;
        for (int j = 0; j < pairArray.length; j++) {
            PairIntStr pair = pairArray[j];
            if (pair.toString().equals(text)) {
                selectedPair = pair;
            }
        }
        model = new DefaultComboBoxModel(pairArray);
        FilteredComboBoxModel filteredModel = new FilteredComboBoxModel(jComboBox1, tag.isEditable()) {

            @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.setModel(model);
        if (selectedPair != null) {
            jComboBox1.setSelectedItem(selectedPair);
        } else {
            jComboBox1.setSelectedItem(tag.getText());
        }
        jComboBox1.setEditable(true);

        jComboBox1.addItemListener(new ItemListener() {

            @Override
            public void itemStateChanged(ItemEvent e) {
                try {
                    Object item = e.getItem();
                    if (item instanceof PairIntStr) {
                        tag.setItem(((PairIntStr)item).num);
                    } else {
                        tag.setText(item.toString(), 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();
        jComboBox1 = new javax.swing.JComboBox();

        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);

        jComboBox1.setEditable(true);
        add(jComboBox1);
    }// </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.JScrollPane jScrollPane2;
    private javax.swing.JTextPane jTextPane1;
    // End of variables declaration//GEN-END:variables

}
TOP

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

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.