+
+ /**
+ * Builds the add track popupdialog.
+ * @param pane The container to put the dialog in.
+ * @param tracks A array containing miditracks.
+ */
+ private void makeAddDialog(Container pane, Track[] tracks) {
+
+ setTitle("Add track");
+ labelA = new JLabel("Name of track", JLabel.CENTER);
+ pane.add(labelA);
+ textFieldA = new JTextField();
+ pane.add(textFieldA);
+ labelB = new JLabel("Add after", JLabel.CENTER);
+ pane.add(labelB);
+ trackListA = new JComboBox();
+ for (int i = 1; i <= tracks.length; i++) trackListA.addItem("Track " + i);
+ pane.add(trackListA);
+ cancelButton = new JButton("Cancel");
+ pane.add(cancelButton);
+ okButton = new JButton("OK");
+ pane.add(okButton);
+
+ 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);
+
+ setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - this.getWidth()) / 2,
+ (Toolkit.getDefaultToolkit().getScreenSize().height - this.getHeight()) / 2);
+ setResizable(false);
+ pack();
+ setSize(200,220);
+ setVisible(true);
+ }
+
+ /**
+ * Builds the delete track popupdialog.
+ * @param pane The container to put the dialog in.
+ * @param tracks A array containing miditracks.
+ */
+ private void makeDelDialog(Container pane, Track[] tracks) {
+
+ setTitle("Delete track");
+ labelB = new JLabel("Delete track", JLabel.CENTER);
+ pane.add(labelB);
+ trackListA = new JComboBox();
+ for (int i = 1; i <= tracks.length; i++) trackListA.addItem("Track " + i);
+ pane.add(trackListA);
+ cancelButton = new JButton("Cancel");
+ pane.add(cancelButton);
+ okButton = new JButton("OK");
+ pane.add(okButton);
+
+ labelB.setBounds(50, 10, 100, 20);
+ trackListA.setBounds(40, 35, 120, 20);
+ cancelButton.setBounds(10, 90, 80, 30);
+ okButton.setBounds(120, 90, 60, 30);
+
+ setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - this.getWidth()) / 2,
+ (Toolkit.getDefaultToolkit().getScreenSize().height - this.getHeight()) / 2);
+ setResizable(false);
+ pack();
+ setSize(200,165);
+ setVisible(true);
+ }
+
+ /**
+ * Builds the copy track popupdialog.
+ * @param pane The container to put the dialog in.
+ * @param tracks A array containing miditracks.
+ */
+ private void makeCopyDialog(Container pane, Track[] tracks) {
+
+ setTitle("Copy Track");
+ labelA = new JLabel("Track to copy", JLabel.CENTER);
+ pane.add(labelA);
+ 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);
+ trackListB = new JComboBox();
+ for (int i = 1; i <= tracks.length; i++) trackListB.addItem("Track " + i);
+ pane.add(trackListB);
+ cancelButton = new JButton("Cancel");
+ pane.add(cancelButton);
+ okButton = new JButton("OK");
+ pane.add(okButton);
+
+ 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);
+
+ setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - this.getWidth()) / 2,
+ (Toolkit.getDefaultToolkit().getScreenSize().height - this.getHeight()) / 2);
+ setResizable(false);
+ pack();
+ setSize(200,220);
+ setVisible(true);
+ }
+
+ /**
+ * Builds the move track popupdialog
+ * @param pane The container to put the dialog in.
+ * @param tracks A array containing miditracks.
+ */
+ private void makeMoveDialog(Container pane, Track[] tracks) {
+
+ setTitle("Move track");
+ labelA = new JLabel("Track to move", JLabel.CENTER);
+ pane.add(labelA);
+ 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);
+ trackListB = new JComboBox();
+ for (int i = 1; i <= tracks.length; i++) trackListB.addItem("Track " + i);
+ pane.add(trackListB);
+ cancelButton = new JButton("Cancel");
+ pane.add(cancelButton);
+ okButton = new JButton("OK");
+ pane.add(okButton);
+
+ 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);
+
+ setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - this.getWidth()) / 2,
+ (Toolkit.getDefaultToolkit().getScreenSize().height - this.getHeight()) / 2);
+ setResizable(false);
+ pack();
+ setSize(200,220);
+ setVisible(true);
+ }
+
+ /**
+ * Builds the jump popupdialog.
+ * @param pane The container to put the dialog in.
+ * @param tracks A array containing miditracks.
+ */
+ private void makeJumpDialog(Container pane) {
+
+ setTitle("Jump");
+ labelA = new JLabel("Msr", JLabel.CENTER);
+ pane.add(labelA);
+ labelB = new JLabel("Beat", JLabel.CENTER);
+ pane.add(labelB);
+ labelC = new JLabel("Tick", JLabel.CENTER);
+ pane.add(labelC);
+ textFieldA = new JTextField();
+ pane.add(textFieldA);
+ textFieldB = new JTextField();
+ pane.add(textFieldB);
+ textFieldC = new JTextField();
+ pane.add(textFieldC);
+ cancelButton = new JButton("Cancel");
+ pane.add(cancelButton);
+ okButton = new JButton("OK");
+ pane.add(okButton);
+
+ labelA.setBounds(30, 25, 50, 20);
+ labelB.setBounds(105, 25, 50, 20);
+ labelC.setBounds(180, 25, 50, 20);
+ textFieldA.setBounds(30, 45, 50, 20);
+ textFieldB.setBounds(105, 45, 50, 20);
+ textFieldC.setBounds(180, 45, 50, 20);
+ cancelButton.setBounds(35, 90, 80, 30);
+ okButton.setBounds(155, 90, 60, 30);
+
+ setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - this.getWidth()) / 2,
+ (Toolkit.getDefaultToolkit().getScreenSize().height - this.getHeight()) / 2);
+ setResizable(false);
+ pack();
+ setSize(260,165);
+ setVisible(true);
+ }
+
+ /**
+ * Builds the insert measure popupdialog.
+ * @param pane The container to put the dialog in.
+ */
+ private void makeInsertMeasureDialog(Container pane){
+
+ setTitle("Insert Measure");
+ labelA = new JLabel("Insert at:", JLabel.RIGHT);
+ pane.add(labelA);
+ labelB = new JLabel("Measure count:", JLabel.RIGHT);
+ pane.add(labelB);
+ textFieldA = new JTextField();
+ pane.add(textFieldA);
+ textFieldB = new JTextField();
+ pane.add(textFieldB);
+ cancelButton = new JButton("Cancel");
+ pane.add(cancelButton);
+ okButton = new JButton("OK");
+ pane.add(okButton);
+
+ 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);
+
+ setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - this.getWidth()) / 2,
+ (Toolkit.getDefaultToolkit().getScreenSize().height - this.getHeight()) / 2);
+ setResizable(false);
+ pack();
+ setSize(210,175);
+ setVisible(true);
+ }
+
+ /**
+ * Builds the delete measure popupdialog.
+ * @param pane The container to put the dialog in.
+ */
+ private void makeDeleteMeasureDialog(Container pane) {
+
+ setTitle("Delete Measure");
+ labelA = new JLabel("Delete at:", JLabel.RIGHT);
+ pane.add(labelA);
+ labelB = new JLabel("Measure count:", JLabel.RIGHT);
+ pane.add(labelB);
+ textFieldA = new JTextField();
+ pane.add(textFieldA);
+ textFieldB = new JTextField();
+ pane.add(textFieldB);
+ cancelButton = new JButton("Cancel");
+ pane.add(cancelButton);
+ okButton = new JButton("OK");
+ pane.add(okButton);
+
+ 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);
+
+ setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - this.getWidth()) / 2,
+ (Toolkit.getDefaultToolkit().getScreenSize().height - this.getHeight()) / 2);
+ setResizable(false);
+ pack();
+ setSize(210,175);
+ setVisible(true);
+ }
+
+ private void makeTextDialog(Container pane, String filename) {
+ setTitle("Contents");
+ File manual = new File(filename);
+ String s;
+ try {
+ BufferedReader br = new BufferedReader(new FileReader(manual));
+ char[] chars = new char[(int)manual.length()];
+ br.read(chars, 0, (int)manual.length());
+ s = new String(chars);
+ } catch (Exception ex) {
+ s = "Manual not found";
+ }
+ JTextArea contents = new JTextArea(s, 30, 40);
+ contents.setAutoscrolls(true);
+ pane.add(contents);
+ contents.setBounds(10, 10, 500, 350);
+ setResizable(false);
+ pack();
+ setSize(600,400);
+ setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - this.getWidth()) / 2,
+ (Toolkit.getDefaultToolkit().getScreenSize().height - this.getHeight()) / 2);
+ setVisible(true);
+ }