package org.vocobox.apps.wav2synth;
import java.awt.Dialog.ModalExclusionType;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import org.jzy3d.ui.LookAndFeel;
import org.vocobox.ui.EzLayout;
import org.vocobox.ui.EzLayout.Prop;
public class VocoboxAppFile extends JFrame{
private static final long serialVersionUID = -1028611255347296822L;
VocoboxPanelsFile panels;
public VocoboxAppFile(){
super();
System.out.println("vocobox app file!");
//setModal(false);
setModalExclusionType(ModalExclusionType.NO_EXCLUDE);
LookAndFeel.apply();
windowExitListener(this);
show();
setVisible(true);
}
public void layout(VocoboxPanelsFile panels) throws IOException{
JPanel mainPanel = new JPanel();
String lines = "[20px][900px]";
String columns = "[200px][500px,grow]";
EzLayout layout = new EzLayout(mainPanel, lines, columns);
//addInputRow(0, panels, layout);
addSynthRow(0, panels, layout);
//JScrollPane scrollPanel = new JScrollPane();
//scrollPanel.add(mainPanel);
add(mainPanel);
pack();
}
public void addInputRow(int id, VocoboxPanelsFile panels, EzLayout layout) {
layout.add(id, 0, new JLabel("Input"));
layout.add(id+1, 0, panels.inputControl);
layout.add(id+1, 1, panels.inputCharts, Prop.GROW);
}
public void addSynthRow(int id, VocoboxPanelsFile panels, EzLayout layout) {
layout.add(id, 0, new JLabel("Synthetizer"));
if(panels.synthControl!= null)
layout.add(id+1, 0, panels.synthControl);
layout.add(id+1, 1, panels.synthCharts, Prop.GROW);
}
public static void windowExitListener(final JFrame frame) {
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
frame.dispose();
System.exit(0);
}
});
}
}