/*
* Copyright (C) 2013-2015 たんらる
*/
package fourthline.mabiicco.ui.mml;
import java.awt.Dimension;
import java.awt.Frame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JSlider;
import fourthline.mabiicco.AppResource;
import fourthline.mabiicco.ui.IMMLManager;
import fourthline.mmlTools.MMLTrack;
public final class TrackPropertyPanel extends JPanel {
private static final long serialVersionUID = 7599129671956571455L;
private JTextField trackNameField;
private JSlider panpotSlider;
private final IMMLManager mmlManager;
private final MMLTrack track;
/**
* Create the dialog.
*/
public TrackPropertyPanel(MMLTrack track, IMMLManager mmlManager) {
super();
this.track = track;
this.mmlManager = mmlManager;
initialize();
}
private void initialize() {
setBounds(100, 100, 363, 285);
setLayout(null);
JLabel lblNewLabel = new JLabel(AppResource.appText("track_property.trackname"));
lblNewLabel.setBounds(30, 39, 70, 13);
add(lblNewLabel);
trackNameField = new JTextField();
trackNameField.setBounds(100, 36, 200, 19);
trackNameField.setEditable(true);
add(trackNameField);
trackNameField.setColumns(10);
panpotSlider = new JSlider();
panpotSlider.setSnapToTicks(true);
panpotSlider.setPaintTicks(true);
panpotSlider.setValue(64);
panpotSlider.setMinorTickSpacing(16);
panpotSlider.setMajorTickSpacing(16);
panpotSlider.setMaximum(128);
panpotSlider.setBounds(100, 97, 200, 23);
add(panpotSlider);
JLabel panpotL = new JLabel("L64");
panpotL.setBounds(100, 120, 30, 23);
add(panpotL);
JLabel panpotC = new JLabel("0");
panpotC.setBounds(197, 120, 30, 23);
add(panpotC);
JLabel panpotR = new JLabel("R64");
panpotR.setBounds(282, 120, 30, 23);
add(panpotR);
JLabel label = new JLabel(AppResource.appText("track_property.panpot"));
label.setBounds(30, 97, 70, 13);
add(label);
}
@Override
public Dimension getPreferredSize() {
return new Dimension(350, 150);
}
private void applyProperty() {
track.setTrackName( trackNameField.getText() );
track.setPanpot( panpotSlider.getValue() );
mmlManager.updateActivePart(false);
}
public void showDialog(Frame parentFrame) {
trackNameField.setText(track.getTrackName());
panpotSlider.setValue(track.getPanpot());
int status = JOptionPane.showConfirmDialog(parentFrame,
this,
AppResource.appText("track_property"),
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.PLAIN_MESSAGE);
if (status == JOptionPane.OK_OPTION) {
applyProperty();
}
}
}