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
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; }
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
/* 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; }
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
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
@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(); } }