]> ruin.nu Git - moosique.git/blobdiff - MooDialog.java
no message
[moosique.git] / MooDialog.java
index a1be78d4c4807f9dd7c1e074e2f04b60cd26c627..fc9c2c0b19bd39ad7c23a4560e06cac0513dcd0a 100644 (file)
@@ -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,9 @@ public class MooDialog extends JDialog {
                                DELETE_MEASURE = 8,
                                SET_TEMPO = 9,
                                PREFERENCES = 10,
-                               TRANSPOSE = 11;
+                               TRANSPOSE = 11,
+                               SCALE_VELOCITY = 12, 
+                               RECORD = 13;
        
        /**
         * Constructor of the dialogs.
@@ -53,6 +56,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 +66,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 +104,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 +135,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 +153,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 +173,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 +214,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 +227,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 +241,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 +253,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 +263,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 +287,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 +297,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 +321,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 +416,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 +430,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 +449,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 +522,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 +530,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 +664,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);
@@ -568,6 +702,21 @@ public class MooDialog extends JDialog {
                */
        }
 
+       private void makeRecordDialog(Container pane) {
+       /*      Show a dialog with:
+               "Track" combo box,
+               "Channel" field? (disabled?,
+               "Quantize" pane with
+                       "Quantize" checkbox,
+                       "Resolution" combo box,
+                       "Location" checkboxes and
+                       "Duration" checkboxes
+               "Start Recording" button.
+               
+               Moosique.record(track);
+               */
+       }
+
        private MooNote note;
        private JOptionPane optionPane;
        private JTextField pitch;