Package moppydesk.ui

Source Code of moppydesk.ui.ChannelOutControl

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

import java.awt.event.ActionEvent;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JRadioButton;
import moppydesk.outputs.MoppyCOMBridge;
import moppydesk.OutputSetting;
import moppydesk.OutputSetting.OutputType;

/**
*
* @author Sam
*/
public class ChannelOutControl extends javax.swing.JPanel {

    private OutputSetting settings;
    private MoppyControlWindow controlWindow;

    /**
     * Creates new form ChannelOutControl
     */
    public ChannelOutControl(MoppyControlWindow mcw, OutputSetting os) {
        this.settings = os;
        this.controlWindow = mcw;
        initComponents();
        loadSettings();
    }

    private void loadSettings() {

        if (settings.enabled) {
            enabledCB.setSelected(true);
            enableControls();
        } else {
            enabledCB.setSelected(false);
            disableControls();
        }


        if (settings.type.equals(OutputType.MOPPY)) {
            moppyTypeRB.setSelected(true);
            outputTypeChanged(OutputType.MOPPY);
        } else {
            MIDITypeRB.setSelected(true);
            outputTypeChanged(OutputType.MIDI);
        }

        comComboBox.setSelectedItem(settings.comPort);
        midiOutComboBox.setSelectedItem(settings.midiDeviceName);
    }

    public void lockControl(){
        enabledCB.setEnabled(false);
        disableControls();
    }
   
    public void unlockControl(){
        enabledCB.setEnabled(true);
        enableControls();
    }
   
    private void disableControls() {
        moppyTypeRB.setEnabled(false);
        MIDITypeRB.setEnabled(false);
        comComboBox.setEnabled(false);
        midiOutComboBox.setEnabled(false);
    }

    private void enableControls() {
        moppyTypeRB.setEnabled(true);
        MIDITypeRB.setEnabled(true);
        if (moppyTypeRB.isSelected()){
            outputTypeChanged(new ActionEvent(moppyTypeRB, ActionEvent.ACTION_PERFORMED, moppyTypeRB.getActionCommand()));
        } else if (MIDITypeRB.isSelected()){
            outputTypeChanged(new ActionEvent(MIDITypeRB, ActionEvent.ACTION_PERFORMED, MIDITypeRB.getActionCommand()));
        }
       
    }

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

        outputTypeRB = new javax.swing.ButtonGroup();
        moppyTypeRB = new javax.swing.JRadioButton();
        MIDITypeRB = new javax.swing.JRadioButton();
        comComboBox = new javax.swing.JComboBox();
        midiOutComboBox = new javax.swing.JComboBox();
        midiOutLabel = new javax.swing.JLabel();
        enabledCB = new javax.swing.JCheckBox();

        setPreferredSize(new java.awt.Dimension(525, 23));

        outputTypeRB.add(moppyTypeRB);
        moppyTypeRB.setText("Moppy");
        moppyTypeRB.setToolTipText("Sends Moppy-protocol serial data to selected COM port");
        moppyTypeRB.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                outputTypeChanged(evt);
            }
        });

        outputTypeRB.add(MIDITypeRB);
        MIDITypeRB.setText("MIDI");
        MIDITypeRB.setToolTipText("Sends MIDI messages through to selected MIDI port");
        MIDITypeRB.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                outputTypeChanged(evt);
            }
        });

        comComboBox.setModel(new DefaultComboBoxModel(moppydesk.outputs.MoppyCOMBridge.getAvailableCOMPorts()));
        comComboBox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                comComboBoxActionPerformed(evt);
            }
        });

        midiOutComboBox.setModel(new DefaultComboBoxModel(controlWindow.availableMIDIOuts.keySet().toArray(new String[0])));
        midiOutComboBox.setEnabled(false);
        midiOutComboBox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                midiOutComboBoxActionPerformed(evt);
            }
        });

        midiOutLabel.setText("MIDI Out:");
        midiOutLabel.setEnabled(false);

        enabledCB.setText(String.valueOf(settings.MIDIChannel));
        enabledCB.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                enabledCBActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(enabledCB, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(moppyTypeRB)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(MIDITypeRB)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(comComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 63, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 104, Short.MAX_VALUE)
                .addComponent(midiOutLabel)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(midiOutComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addGap(0, 0, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(moppyTypeRB)
                    .addComponent(MIDITypeRB)
                    .addComponent(comComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(midiOutComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(midiOutLabel)
                    .addComponent(enabledCB)))
        );
    }// </editor-fold>//GEN-END:initComponents

    private void comComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comComboBoxActionPerformed
        settings.comPort = (String) ((JComboBox) evt.getSource()).getSelectedItem();
    }//GEN-LAST:event_comComboBoxActionPerformed

    private void midiOutComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_midiOutComboBoxActionPerformed
        settings.midiDeviceName = (String) ((JComboBox) evt.getSource()).getSelectedItem();
    }//GEN-LAST:event_midiOutComboBoxActionPerformed

    private void enabledCBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_enabledCBActionPerformed
        settings.enabled = ((JCheckBox) evt.getSource()).isSelected();
        if (settings.enabled) {
            enableControls();
        } else {
            disableControls();
        }
    }//GEN-LAST:event_enabledCBActionPerformed

    private void outputTypeChanged(OutputType newType){
        settings.type = newType;
        if (newType.equals(OutputType.MOPPY)){
            midiOutLabel.setEnabled(false);
            midiOutComboBox.setEnabled(false);
            comComboBox.setEnabled(true);
        } else {
            comComboBox.setEnabled(false);
            midiOutLabel.setEnabled(true);
            midiOutComboBox.setEnabled(true);
        }
    }
   
    private void outputTypeChanged(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_outputTypeChanged
        if (evt.getActionCommand().equalsIgnoreCase("Moppy")) {
            outputTypeChanged(OutputType.MOPPY);
        } else {
            outputTypeChanged(OutputType.MIDI);
        }
    }//GEN-LAST:event_outputTypeChanged
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JRadioButton MIDITypeRB;
    private javax.swing.JComboBox comComboBox;
    private javax.swing.JCheckBox enabledCB;
    private javax.swing.JComboBox midiOutComboBox;
    private javax.swing.JLabel midiOutLabel;
    private javax.swing.JRadioButton moppyTypeRB;
    private javax.swing.ButtonGroup outputTypeRB;
    // End of variables declaration//GEN-END:variables
}
TOP

Related Classes of moppydesk.ui.ChannelOutControl

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.