/*
 * StationLabelView.java
 *
 * Created on Aug 5, 2009, 11:56:38 AM
 */
package usda.weru.weps.location.chooser;

import java.awt.Component;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import javax.swing.JPanel;

/**
 *
 * @author Joseph Levin <joelevin@weru.ksu.edu>
 */
public class StationTextView extends JPanel implements StationChooser.ViewHandler, PropertyChangeListener {

    private static final long serialVersionUID = 1L;

    private StationChooser c_chooser;

    /** Creates new form StationLabelView */
    public StationTextView() {
        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() {

        label = new javax.swing.JLabel();

        label.setFont(label.getFont().deriveFont(label.getFont().getStyle() & ~java.awt.Font.BOLD));
        label.setText("label goes here");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(label, javax.swing.GroupLayout.DEFAULT_SIZE, 146, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(label)
        );
    }// </editor-fold>//GEN-END:initComponents

    @Override
    public Component install(StationChooser chooser) {
        c_chooser = chooser;
        updateText();
        c_chooser.addPropertyChangeListener(this);
        return this;
    }

    @Override
    public void uninstall(StationChooser chooser) {
        c_chooser.removePropertyChangeListener(this);
        c_chooser = null;
    }

    /**
     *
     * @param evt
     */
    @Override
    public void propertyChange(PropertyChangeEvent evt) {
        if (StationChooser.PROP_TEXT.equals(evt.getPropertyName())) {
            //the selected station changed'
            updateText();
        }
    }

    private void updateText() {
        label.setText(c_chooser.getText());
    }

    /**
     *
     * @param enabled
     */
    @Override
    public void setEnabled(boolean enabled) {
        super.setEnabled(enabled);
        label.setEnabled(enabled);
    }


    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel label;
    // End of variables declaration//GEN-END:variables

}
