Esempio n. 1
0
 private void intensitySliderStateChanged(
     javax.swing.event.ChangeEvent evt) { // GEN-FIRST:event_intensitySliderStateChanged
   if (activeBead != null) {
     activeBead.setMaxIntensity(intensitySlider.getMaximum() / 2);
     activeBead.setIntensity(intensitySlider.getValue());
     beadPanel.repaint();
   }
 } // GEN-LAST:event_intensitySliderStateChanged
Esempio n. 2
0
 public void refreshBeadPanel() {
   Bead tmpBead = new Bead();
   tmpBead.setSize(55, 55);
   beadPanelText.add(tmpBead);
   tmpBead.setLocation(20, 15);
   tmpBead.setOpaque(false);
   activeBead = tmpBead;
   beadPanel.repaint();
   prevBead = tmpBead;
 }
Esempio n. 3
0
 private void frequencySliderStateChanged(
     javax.swing.event.ChangeEvent evt) { // GEN-FIRST:event_frequencySliderStateChanged
   if (activeBead != null) {
     int freq = frequencySlider.getValue();
     activeBead.setFrequency(freq);
     beadPanel.repaint();
   }
 } // GEN-LAST:event_frequencySliderStateChanged
Esempio n. 4
0
  /*
  While there is a startBead, where the dragging started,
  this gets ending coordinates of the mouse dragging,
  and calculates the eucleadian distance in between
  so that it returns whether the drag is valid or not.

  tempMinimumDistance. = 100;
  */
  private boolean isActualDrag(int endBeadx, int endBeady) {
    int xdif;
    int ydif;
    double distance;
    try {
      xdif = endBeadx - activeBead.getX();
      ydif = endBeady - activeBead.getY();
      distance = Math.sqrt(Math.abs(xdif * xdif - ydif * ydif)); // Euclidean distance.
      // System.out.println(distance);
      if (distance > 10) { // if distance is greater than 100
        return true;
      } else if (activeBead.connectedTo != null) { // If the bead is already paired.
        return true;
      }
    } catch (NullPointerException e) {
    }
    return false;
  }
Esempio n. 5
0
  private void beadPlayer1MouseReleased(
      java.awt.event.MouseEvent evt) { // GEN-FIRST:event_beadPlayer1MouseReleased
    endBead =
        beadPlayer1.getBeadAt(
            evt.getX(), evt.getY(), beadPlayer1.page); // Check if there is a bead in the end.

    if (evt.getButton() == MouseEvent.BUTTON1) {
      if (dragStatus && isActualDrag(evt.getX(), evt.getY())) {
        if (activeBead != null) {
          if (endBead == null) {
            if (activeBead.connectedTo
                == null) { // If there is no bead, and A is not connected, create one.
              if (!activeBead.playable) {
                remove(activeBead); // Remove bead panel glitch
              } else {
                endBead = new Bead();
                endBead.setSize(55, 55);
                endBead.setIntensity(activeBead.getIntensity());
                endBead.setFrequency(activeBead.getFrequency());
                endBead.setConnection(activeBead);
                endBead.vibcompUI = this;

                Bead leftPossible =
                    beadPlayer1.getBeadAt(evt.getX() - 27, evt.getY(), beadPlayer1.page);
                Bead rightPossible =
                    beadPlayer1.getBeadAt(evt.getX() + 27, evt.getY(), beadPlayer1.page);
                if (leftPossible == null) { // If there exists no bead on the point's left
                  if (rightPossible == null) {
                    beadPlayer1.setBead(evt.getX(), evt.getY(), endBead);
                  } else { // There is a bead on its right.
                    beadPlayer1.setBead(rightPossible.getX() - 27, evt.getY(), endBead);
                  }
                } else if (rightPossible
                    == null) { // There is a Bead on the left of clicked position.
                  beadPlayer1.setBead(leftPossible.getX() + 80, evt.getY(), endBead);
                }
                activeBead = endBead;
              }
            } else { // Moving a connected Bead.
              int x = evt.getX();
              int y = evt.getY();

              if (x < 27) { // keep bead within page bounds
                x = 27;
              } else if (x > 1072) {
                x = 1072;
              }
              if (y < 0) {
                y = 0;
              } else if (y > 540) {
                y = 540;
              }
              int yLoc = (beadPlayer1.getTrackAt(y) - 1) * beadPlayer1.TRACKHEIGHT + 5;
              activeBead.setTrack(beadPlayer1.getTrackAt(y));

              Bead leftPossible = beadPlayer1.getBeadAt(x - 27, y, beadPlayer1.page);
              Bead rightPossible = beadPlayer1.getBeadAt(x + 27, y, beadPlayer1.page);
              if (leftPossible == null) { // If there exists no bead on the point's left
                if (rightPossible == null) {
                  activeBead.setLocation(x - 27, yLoc);
                } else { // There is a bead on its right.
                  activeBead.setLocation(rightPossible.getX() - 55, yLoc);
                }
              } else if (rightPossible
                  == null) { // There is a Bead on the left of clicked position.
                activeBead.setLocation(leftPossible.getX() + 55, yLoc);
              }
            }
          } else {
            /*if endbead is not null;*/
            /* do nothing*/

          }
        } else {
          JOptionPane.showMessageDialog(null, "There is no active Bead!");
        }
      }
      dragStatus = false;
      multiSelect.add(activeBead);
    }
  } // GEN-LAST:event_beadPlayer1MouseReleased
Esempio n. 6
0
  private void beadPlayer1MousePressed(
      java.awt.event.MouseEvent evt) { // GEN-FIRST:event_beadPlayer1MousePressed
    /**
     * 2015-05-13
     *
     * <p>Update note. If a bead is already Connected to something, then the user can "Drag" to move
     * around the note.
     *
     * <p>One can overlap if s/he clicked on "offset margin"
     */
    point1 = evt.getPoint();
    Bead tmpBead = beadPlayer1.getBeadAt(point1.x, point1.y, beadPlayer1.page);

    if (evt.getButton() == MouseEvent.BUTTON1) // Left click
    {
      if (evt.isAltDown()) {
        if (isBeadPanelEmpty()) {
          refreshBeadPanel();
          beadPanelText.setVisible(true);
          activeBead.vibcompUI = this;

          Bead leftPossible = beadPlayer1.getBeadAt(point1.x - 27, point1.y, beadPlayer1.page);
          Bead rightPossible = beadPlayer1.getBeadAt(point1.x + 27, point1.y, beadPlayer1.page);
          if (leftPossible == null) { // If there exists no bead on the point's left
            if (rightPossible == null) {
              beadPlayer1.setBead(point1.x + 80, point1.y, activeBead);
            } else { // There is a bead on its right.
              beadPlayer1.setBead(rightPossible.getX() - 27, point1.y, activeBead);
            }
          } else if (rightPossible == null) { // There is a Bead on the left of clicked position.
            beadPlayer1.setBead(leftPossible.getX() + 80, point1.y, activeBead);
          }
        }
      }
      if (activeBead != null) {
        if (tmpBead == null) { // Create one
          beadPanelText.setVisible(true);
          activeBead.vibcompUI = this;
          Bead leftPossible = beadPlayer1.getBeadAt(point1.x - 27, point1.y, beadPlayer1.page);
          Bead rightPossible = beadPlayer1.getBeadAt(point1.x + 27, point1.y, beadPlayer1.page);
          if (leftPossible == null) { // If there exists no bead on the point's left
            if (rightPossible == null) {
              beadPlayer1.setBead(point1.x, point1.y, activeBead);
            } else { // There is a bead on its right.
              beadPlayer1.setBead(rightPossible.getX() - 27, point1.y, activeBead);
            }
          } else if (rightPossible == null) { // There is a Bead on the left of clicked position.
            beadPlayer1.setBead(leftPossible.getX() + 80, point1.y, activeBead);
          }
        } else { // There already is a bead at the location
          if (!activeBead.playable) {
            remove(activeBead); // Remove bead panel glitch
          } else {
            activeBead = tmpBead;
          }
        }
        // set slider positions
        intensitySlider.setValue(activeBead.getIntensity());
        frequencySlider.setValue(activeBead.getFrequency());

        // multi select
        if (evt.isShiftDown() || shiftOn) {
          if (multiSelect.contains(activeBead)) multiSelect.remove(activeBead);
          else multiSelect.add(activeBead);
        } else {
          multiSelect.clear();
        }
      } else if (beadPlayer1.beads.isEmpty()) {
        JOptionPane.showMessageDialog(
            null,
            "Please click 'New Bead' to create a Bead, then Click on then click on the canvas");
      } else if (activeBead == null && tmpBead != null) {
        activeBead = tmpBead;
      }
    }
    if (evt.getButton() == MouseEvent.BUTTON3
        || evt.getClickCount() == 2) { // Right click or double click
      if (tmpBead != null) {
        if (multiSelect.size() == 1) multiSelect.clear();
        multiSelect.add(tmpBead);
        activeBead = tmpBead;
      }
      menu.show(evt.getComponent(), evt.getX(), evt.getY());
    }
  } // GEN-LAST:event_beadPlayer1MousePressed
Esempio n. 7
0
  @Override
  public void keyPressed(KeyEvent ke) {
    // System.out.println("key pressed:"+ke.getKeyCode());
    if (ke.isControlDown()) {
      if (ke.getKeyCode() == 67) { // Ctrl+c = copy
        menu.copy();
      } else if (ke.getKeyCode() == 88) { // Ctrl+x = cut
        menu.copy();
        menu.delete();
      } else if (ke.getKeyCode() == 86) { // Ctrl+v = paste
        menu.paste();
      } else if (ke.getKeyCode() == 79) { // Ctrl+o = open
        menu.open();
      } else if (ke.getKeyCode() == 83) { // Ctrl+s = save
        menu.save();
      }
    }

    if (ke.getKeyCode() == 38) { // Up key
      for (Bead bead : multiSelect) {
        if (bead.getTrack() > 1) {
          bead.setTrack(bead.getTrack() - 1);
          bead.setLocation(bead.getX(), bead.getY() - beadPlayer1.TRACKHEIGHT);
        }
      }
    } else if (ke.getKeyCode() == 40) { // Down key
      for (Bead bead : multiSelect) {
        if (bead.getTrack() < 8) {
          bead.setTrack(bead.getTrack() + 1);
          bead.setLocation(bead.getX(), bead.getY() + beadPlayer1.TRACKHEIGHT);
        }
      }
    } else if (ke.getKeyCode() == 37) { // Left key
      for (Bead bead : multiSelect) {
        if (bead.getX() > 55) bead.setLocation(bead.getX() - beadPlayer1.BEADHEIGHT, bead.getY());
      }
    } else if (ke.getKeyCode() == 39) { // Right key
      for (Bead bead : multiSelect) {
        if (bead.getX() < 1000) bead.setLocation(bead.getX() + beadPlayer1.BEADHEIGHT, bead.getY());
      }
    } else if (ke.getKeyCode() == 127 || ke.getKeyCode() == 8) { // delete/backspace key
      menu.delete();
    }
  }