X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=MooDialog.java;h=07e719aeb2af1ca0a10e777fc14ff474443f802d;hb=e7289eb46e09ee6ed3bc5bb4a814f59902d885cb;hp=a1be78d4c4807f9dd7c1e074e2f04b60cd26c627;hpb=fa159bea01bba1b1294fcc5ed14546b7510dcd3d;p=moosique.git diff --git a/MooDialog.java b/MooDialog.java index a1be78d..07e719a 100644 --- a/MooDialog.java +++ b/MooDialog.java @@ -14,8 +14,9 @@ import java.beans.*; public class MooDialog extends JDialog { private JLabel labelA, labelB, labelC, labelD, labelE, labelF, labelG, labelH; - private JTextField textFieldA, textFieldB, textFieldC, textFieldD, textFieldE, textFieldF, - textFieldG, textFieldH, textFieldI, textFieldJ, textFieldK; + private JTextField textFieldA, textFieldB, textFieldC, textFieldD, textFieldE, + textFieldF, textFieldG, textFieldH, textFieldI, textFieldJ, + textFieldK; private JComboBox trackListA, trackListB; private JButton okButton, cancelButton; public static final int ADD_TRACK = 1, @@ -28,7 +29,8 @@ public class MooDialog extends JDialog { DELETE_MEASURE = 8, SET_TEMPO = 9, PREFERENCES = 10, - TRANSPOSE = 11; + TRANSPOSE = 11, + SCALE_VELOCITY = 12; /** * Constructor of the dialogs. @@ -53,6 +55,7 @@ public class MooDialog extends JDialog { case SET_TEMPO: makeSetTempoDialog(pane); break; case PREFERENCES: makePrefsDialog(pane); break; case TRANSPOSE: makeTransposeDialog(pane, tracks); break; + case SCALE_VELOCITY: makeScaleVelocityDialog(pane, tracks); break; } } @@ -62,29 +65,31 @@ public class MooDialog extends JDialog { * @param tracks A array containing miditracks. */ private void makeAddDialog(Container pane, Track[] tracks) { - setTitle("Add track"); + // create the contents of the dialog and add to container labelA = new JLabel("Name of track", JLabel.CENTER); pane.add(labelA); + // textfield for naming track textFieldA = new JTextField(); pane.add(textFieldA); labelB = new JLabel("Add after", JLabel.CENTER); pane.add(labelB); + // list of where to add track trackListA = new JComboBox(); for (int i = 1; i <= tracks.length; i++) trackListA.addItem("Track " + i); pane.add(trackListA); + // ok and cancel button cancelButton = new JButton("Cancel"); pane.add(cancelButton); okButton = new JButton("OK"); pane.add(okButton); - + // set layout prop labelA.setBounds(50, 10, 100, 20); textFieldA.setBounds(40, 35, 120, 20); labelB.setBounds(50, 70, 100, 20); trackListA.setBounds(40, 95, 120, 20); cancelButton.setBounds(10, 150, 80, 30); okButton.setBounds(120, 150, 60, 30); - setResizable(false); pack(); setSize(200,220); @@ -98,23 +103,24 @@ public class MooDialog extends JDialog { * @param tracks A array containing miditracks. */ private void makeDelDialog(Container pane, Track[] tracks) { - setTitle("Delete track"); + // create the contents of the dialog and add to container labelB = new JLabel("Delete track", JLabel.CENTER); pane.add(labelB); + // list of what track to delete trackListA = new JComboBox(); for (int i = 1; i <= tracks.length; i++) trackListA.addItem("Track " + i); pane.add(trackListA); + // ok and cancelbutton cancelButton = new JButton("Cancel"); pane.add(cancelButton); okButton = new JButton("OK"); pane.add(okButton); - + // set layout prop labelB.setBounds(50, 10, 100, 20); trackListA.setBounds(40, 35, 120, 20); cancelButton.setBounds(10, 90, 80, 30); okButton.setBounds(120, 90, 60, 30); - setResizable(false); pack(); setSize(200,165); @@ -128,15 +134,17 @@ public class MooDialog extends JDialog { * @param tracks A array containing miditracks. */ private void makeCopyDialog(Container pane, Track[] tracks) { - setTitle("Copy Track"); + // create the contents of the dialog and add to container labelA = new JLabel("Track to copy", JLabel.CENTER); pane.add(labelA); + // list of what track to copy trackListA = new JComboBox(); for (int i = 1; i <= tracks.length; i++) trackListA.addItem("Track " + i); pane.add(trackListA); labelB = new JLabel("Insert after", JLabel.CENTER); pane.add(labelB); + // list of where to put copied track trackListB = new JComboBox(); for (int i = 1; i <= tracks.length; i++) trackListB.addItem("Track " + i); pane.add(trackListB); @@ -144,14 +152,13 @@ public class MooDialog extends JDialog { pane.add(cancelButton); okButton = new JButton("OK"); pane.add(okButton); - + // set layout prop labelA.setBounds(50, 10, 100, 20); trackListA.setBounds(40, 35, 120, 20); labelB.setBounds(50, 70, 100, 20); trackListB.setBounds(40, 95, 120, 20); cancelButton.setBounds(10, 150, 80, 30); okButton.setBounds(120, 150, 60, 30); - setResizable(false); pack(); setSize(200,220); @@ -165,30 +172,32 @@ public class MooDialog extends JDialog { * @param tracks A array containing miditracks. */ private void makeMoveDialog(Container pane, Track[] tracks) { - setTitle("Move track"); + // create the contents of the dialog and add to container labelA = new JLabel("Track to move", JLabel.CENTER); pane.add(labelA); + // list of track to move trackListA = new JComboBox(); for (int i = 1; i <= tracks.length; i++) trackListA.addItem("Track " + i); pane.add(trackListA); labelB = new JLabel("Insert after", JLabel.CENTER); pane.add(labelB); + // list of where to put moved track trackListB = new JComboBox(); for (int i = 1; i <= tracks.length; i++) trackListB.addItem("Track " + i); pane.add(trackListB); + // ok and cancelbuttons cancelButton = new JButton("Cancel"); pane.add(cancelButton); okButton = new JButton("OK"); pane.add(okButton); - + // set layoutprop labelA.setBounds(40, 10, 120, 20); trackListA.setBounds(40, 35, 120, 20); labelB.setBounds(50, 70, 100, 20); trackListB.setBounds(40, 95, 120, 20); cancelButton.setBounds(10, 150, 80, 30); okButton.setBounds(120, 150, 60, 30); - setResizable(false); pack(); setSize(200,220); @@ -204,6 +213,7 @@ public class MooDialog extends JDialog { private void makeSetPositionDialog(Container pane) { setTitle("Set edit position"); + // create the contents of the dialog and add to container labelA = new JLabel("Measure", JLabel.CENTER); pane.add(labelA); labelB = new JLabel("Beat", JLabel.CENTER); @@ -216,11 +226,12 @@ public class MooDialog extends JDialog { pane.add(textFieldB); textFieldC = new JTextField(); pane.add(textFieldC); + // ok and cancel buttons cancelButton = new JButton("Cancel"); pane.add(cancelButton); okButton = new JButton("OK"); pane.add(okButton); - + // set layoutprop labelA.setBounds(40, 25, 50, 20); labelB.setBounds(105, 25, 50, 20); labelC.setBounds(170, 25, 50, 20); @@ -229,7 +240,6 @@ public class MooDialog extends JDialog { textFieldC.setBounds(170, 45, 50, 20); cancelButton.setBounds(35, 90, 80, 30); okButton.setBounds(155, 90, 60, 30); - setResizable(false); pack(); setSize(260,165); @@ -242,8 +252,8 @@ public class MooDialog extends JDialog { * @param pane The container to put the dialog in. */ private void makeInsertMeasureDialog(Container pane){ - setTitle("Insert Measure"); + // create the contents of the dialog and add to container labelA = new JLabel("Insert at:", JLabel.RIGHT); pane.add(labelA); labelB = new JLabel("Measure count:", JLabel.RIGHT); @@ -252,18 +262,18 @@ public class MooDialog extends JDialog { pane.add(textFieldA); textFieldB = new JTextField(); pane.add(textFieldB); + // ok and cancelbutton cancelButton = new JButton("Cancel"); pane.add(cancelButton); okButton = new JButton("OK"); pane.add(okButton); - + // set layout prop labelA.setBounds(20, 20, 110 ,20); labelB.setBounds(20, 50, 110, 20); textFieldA.setBounds(140 ,20 , 40, 20); textFieldB.setBounds(140,50, 40, 20); cancelButton.setBounds(20 ,95 , 80, 30); okButton.setBounds(120, 95, 60, 30); - setResizable(false); pack(); setSize(210,175); @@ -276,8 +286,8 @@ public class MooDialog extends JDialog { * @param pane The container to put the dialog in. */ private void makeDeleteMeasureDialog(Container pane) { - setTitle("Delete Measure"); + // create the contents of the dialog and add to container labelA = new JLabel("Delete at:", JLabel.RIGHT); pane.add(labelA); labelB = new JLabel("Measure count:", JLabel.RIGHT); @@ -286,18 +296,18 @@ public class MooDialog extends JDialog { pane.add(textFieldA); textFieldB = new JTextField(); pane.add(textFieldB); + // ok and cancelbutton cancelButton = new JButton("Cancel"); pane.add(cancelButton); okButton = new JButton("OK"); pane.add(okButton); - + // set layout prop labelA.setBounds(20, 20, 110 ,20); labelB.setBounds(20, 50, 110, 20); textFieldA.setBounds(140 ,20 , 40, 20); textFieldB.setBounds(140,50, 40, 20); cancelButton.setBounds(20 ,95 , 80, 30); okButton.setBounds(120, 95, 60, 30); - setResizable(false); pack(); setSize(210,175); @@ -310,9 +320,7 @@ public class MooDialog extends JDialog { * @param pane The container to put the dialog in. */ private void makeSetTempoDialog(Container pane) { - setTitle("Set tempo"); - // create contents of dialog and add to container // track edit-intervall labels labelA = new JLabel("Measure", JLabel.CENTER); @@ -407,7 +415,7 @@ public class MooDialog extends JDialog { // set bounds of ok and cancelbutton cancelButton.setBounds(75, 215, 80, 30); okButton.setBounds(195, 215, 60, 30); - + // set layout prop setResizable(false); pack(); setSize(340,300); @@ -421,7 +429,6 @@ public class MooDialog extends JDialog { * @param tracks A array containing miditracks. */ private void makeTransposeDialog(Container pane, Track[] tracks) { - setTitle("Transpose"); // create contents of dialog and add to container // track edit-intervall labels @@ -441,7 +448,7 @@ public class MooDialog extends JDialog { pane.add(labelF); labelG = new JLabel("1/2 octaves", JLabel.LEFT); pane.add(labelG); - // what track to edig label + // what track to edit label labelH = new JLabel("Track to edit:", JLabel.CENTER); pane.add(labelH); // combobox representing the tracks @@ -514,7 +521,7 @@ public class MooDialog extends JDialog { // set bounds of ok and cancelbutton cancelButton.setBounds(75, 215, 80, 30); okButton.setBounds(195, 215, 60, 30); - + // set layoutprop setResizable(false); pack(); setSize(340,300); @@ -522,6 +529,127 @@ public class MooDialog extends JDialog { setVisible(true); } + /** + * Builds the scale velocity dialog. + * @param pane The container to put the dialog in. + * @param tracks A array containing miditracks. + */ + private void makeScaleVelocityDialog(Container pane, Track[] tracks) { + setTitle("Scale velocity"); + // create contents of dialog and add to container + // track edit-intervall labels + labelA = new JLabel("Measure", JLabel.CENTER); + pane.add(labelA); + labelB = new JLabel("Beat", JLabel.CENTER); + pane.add(labelB); + labelC = new JLabel("Tick", JLabel.CENTER); + pane.add(labelC); + // start and end labels + labelD = new JLabel("Start at:", JLabel.RIGHT); + pane.add(labelD); + labelE = new JLabel("End at:", JLabel.RIGHT); + pane.add(labelE); + // from-to label + labelF = new JLabel("to", JLabel.CENTER); + pane.add(labelF); + // what track to edit label + labelG = new JLabel("Track to edit:", JLabel.CENTER); + pane.add(labelG); + // combobox representing the tracks + trackListA = new JComboBox(); + for (int i = 1; i <= tracks.length; i++) trackListA.addItem("Track " + i); + pane.add(trackListA); + // start inputvaluefields + textFieldA = new JTextField(); + pane.add(textFieldA); + textFieldB = new JTextField(); + pane.add(textFieldB); + textFieldC = new JTextField(); + pane.add(textFieldC); + // end inputvaluefield + textFieldD = new JTextField(); + pane.add(textFieldD); + textFieldE = new JTextField(); + pane.add(textFieldE); + textFieldF = new JTextField(); + pane.add(textFieldF); + // the radiobuttonlists inputvaluefields + textFieldG = new JTextField(); + pane.add(textFieldG); + textFieldH = new JTextField(); + pane.add(textFieldH); + textFieldI = new JTextField(); + pane.add(textFieldI); + textFieldJ = new JTextField(); + pane.add(textFieldJ); + textFieldK = new JTextField(); + pane.add(textFieldK); + // the radiobuttonlist with associating titles + JRadioButton constant = new JRadioButton("Change all values to:"); + constant.setSelected(true); + pane.add(constant); + JRadioButton change = new JRadioButton("Gradually change value:"); + pane.add(change); + JRadioButton scale = new JRadioButton("Scale values to %:"); + pane.add(scale); + JRadioButton add = new JRadioButton("Add to current value:"); + pane.add(add); + // a buttongroup for the radiobuttons + ButtonGroup group = new ButtonGroup(); + group.add(constant); + group.add(change); + group.add(scale); + group.add(add); + // ok and cancelbutton + cancelButton = new JButton("Cancel"); + pane.add(cancelButton); + okButton = new JButton("OK"); + pane.add(okButton); + + // set bounds of track edit-intervall labels + labelA.setBounds(80, 75, 50, 20); + labelB.setBounds(145, 75, 50, 20); + labelC.setBounds(210, 75, 50, 20); + // set bounds of start and end labels + labelD.setBounds(20, 95, 60, 20); + labelE.setBounds(20, 115, 60, 20); + // set bounds of from-to label + labelF.setBounds(255, 175, 20 ,20); + // set bounds of trackslist label + labelG.setBounds(30, 30, 100, 20); + // set bounds of start inputvaluefields + textFieldA.setBounds(80, 95, 50, 20); + textFieldB.setBounds(145, 95, 50, 20); + textFieldC.setBounds(210, 95, 50, 20); + // set bounds of end inputvaluefield + textFieldD.setBounds(80, 115, 50, 20); + textFieldE.setBounds(145,115, 50, 20); + textFieldF.setBounds(210, 115, 50, 20); + // set bounds of radiobuttonlists inputvaluefields + textFieldG.setBounds(220, 150, 35, 20); + textFieldH.setBounds(220, 175, 35, 20); + textFieldI.setBounds(280, 175, 35, 20); + textFieldJ.setBounds(220, 200, 35, 20); + textFieldK.setBounds(220, 225, 35, 20); + // set bounds of radiobuttonlist items + constant.setBounds(20, 150, 180, 20); + change.setBounds(20, 175, 200, 20); + scale.setBounds(20, 200, 150, 20); + add.setBounds(20, 225, 175, 20); + // set bounds of tracklist + trackListA.setBounds(145, 30, 120, 20); + // set bounds of ok and cancelbutton + cancelButton.setBounds(75, 265, 80, 30); + okButton.setBounds(195, 265, 60, 30); + // set layout prop + setResizable(false); + pack(); + setSize(340,350); + setLocationRelativeTo(Moosique.getGUI()); + setVisible(true); + } + /** creates the "User manual dialog" that displays a textfile + */ private void makeTextDialog(Container pane, String filename) { setTitle("User Manual"); pane.setLayout(new BoxLayout(pane, BoxLayout.Y_AXIS)); @@ -535,7 +663,12 @@ public class MooDialog extends JDialog { } catch (Exception ex) { s = "Manual not found"; } - pane.add(new JScrollPane(new JTextArea(s, 30, 95))); + JTextArea text = new JTextArea(s, 30, 95); + text.setLineWrap(true); + text.setWrapStyleWord(true); + text.setEnabled(false); + text.setDisabledTextColor(Color.black); + pane.add(new JScrollPane(text)); Action close = new AbstractAction("Close") { public void actionPerformed(ActionEvent ae) { setVisible(false);