]> ruin.nu Git - moosique.git/blobdiff - MooDialog.java
nu är även den fina scale velocity dialogen färdig
[moosique.git] / MooDialog.java
index a1be78d4c4807f9dd7c1e074e2f04b60cd26c627..96def1322bbe6a4cdaae6aee4a540e3affb0c4ef 100644 (file)
@@ -28,7 +28,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 +54,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;
                }
         }
        
@@ -441,7 +443,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
@@ -522,6 +524,128 @@ 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);
+               
+               setResizable(false);
+               pack();
+               setSize(340,350);
+               setLocationRelativeTo(Moosique.getGUI());
+               setVisible(true);
+       }
+       
        private void makeTextDialog(Container pane, String filename) {
                setTitle("User Manual");
                pane.setLayout(new BoxLayout(pane, BoxLayout.Y_AXIS));