/* * */ package application.presenter; import java.io.IOException; import application.Main; import application.tools.InfoTool; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.geometry.Side; import javafx.scene.control.SplitPane; import javafx.scene.input.KeyCode; import javafx.scene.layout.BorderPane; import javafx.scene.layout.HBox; import javafx.scene.layout.Priority; import javafx.scene.paint.Color; import xplayer.presenter.XPlayerController; /** * The DJMode. * * @author GOXR3PLUS */ public class DJMode extends BorderPane { //------------------------------------------------- @FXML private SplitPane topSplitPane; @FXML private HBox hBox; @FXML private SplitPane bottomSplitPane; //-------------------------------------------------------------- /** * Constructor. */ public DJMode() { // ------------------------------------FXMLLOADER ---------------------------------------- FXMLLoader loader = new FXMLLoader(getClass().getResource(InfoTool.FXMLS + "DJMode.fxml")); loader.setController(this); loader.setRoot(this); try { loader.load(); } catch (IOException ex) { ex.printStackTrace(); } } /** * Called as soon as .FXML is loaded from FXML Loader */ @FXML public void initialize() { //XPlayer 1 Main.xPlayersList.addXPlayerController(new XPlayerController(1)); Main.xPlayersList.getXPlayerController(1).makeTheDisc(136, 136, Color.rgb(53, 144, 255), 45, Side.RIGHT); Main.xPlayersList.getXPlayerController(1).makeTheVisualizer(Side.LEFT); hBox.getChildren().add(Main.xPlayersList.getXPlayerController(1)); HBox.setHgrow(Main.xPlayersList.getXPlayerController(1), Priority.ALWAYS); //XPlayer 2 Main.xPlayersList.addXPlayerController(new XPlayerController(2)); Main.xPlayersList.getXPlayerController(2).makeTheDisc(136, 136, Color.RED, 45, Side.LEFT); Main.xPlayersList.getXPlayerController(2).makeTheVisualizer(Side.RIGHT); hBox.getChildren().add(Main.xPlayersList.getXPlayerController(2)); HBox.setHgrow(Main.xPlayersList.getXPlayerController(2), Priority.ALWAYS); // makeCpuUsageMeter() makeDigitalClock(); makeDJSoundTeamTabs(); makeBalancer(); addKeyListeners(); } /** * Create CpuMeter. */ void makeCpuUsageMeter() { // cpu = new CPUsage(0, InfoTool.screenHeight - 420, 151, 15) } /** * Make the digital Clock */ void makeDigitalClock() { // digitalClock = new DigitalClock(170, InfoTool.getScreenHeight() - // 422, 80, 16) } /** * Make DJ sound team tabs. */ void makeDJSoundTeamTabs() { // djTabs = new DJTabs(InfoTool.getScreenWidth() - 305, 400, 300, // InfoTool.getScreenHeight() - 400) } /** * Make balancer. */ void makeBalancer() { // balancer = new Balancer(InfoTool.getScreenWidth() / 2 - 100, 260, 208, 20, 100, 200); // balancer.setOnMouseDragged(drag -> { // balancer.onMouseDragged(drag); // Main.xPlayersList.getXPlayerUI(1).controlVolume(); // }); // // balancer.setOnScroll(scroll -> { // balancer.onScroll(scroll); // Main.xPlayersList.getXPlayerUI(1).controlVolume(); // }); } /** * Adds the appropriate key listeners to the Parent. */ private final void addKeyListeners() { // Key Pressed Events setOnKeyPressed(key -> { KeyCode keyCode = key.getCode(); // -->Xplayer_1||XPlayer_2 Volume++ if (keyCode == KeyCode.W) { if (key.isShiftDown()) { if (Main.xPlayersList.getXPlayerController(1).getVolume() < 101) { Main.xPlayersList.getXPlayerController(1).setVolume(Main.xPlayersList.getXPlayerController(1).getVolume() + 1); } } else if (key.isControlDown()) { if (Main.xPlayersList.getXPlayerController(2).getVolume() < 101) { Main.xPlayersList.getXPlayerController(2).setVolume(Main.xPlayersList.getXPlayerController(2).getVolume() + 1); } } // -->Xplayer_1||XPlayer_2 Volume-- } else if (keyCode == KeyCode.Q) { if (key.isShiftDown()) { if (Main.xPlayersList.getXPlayerController(1).getVolume() > -1) { Main.xPlayersList.getXPlayerController(1).setVolume(Main.xPlayersList.getXPlayerController(1).getVolume() - 1); } } else if (key.isControlDown()) { if (Main.xPlayersList.getXPlayerController(2).getVolume() > -1) { Main.xPlayersList.getXPlayerController(2).setVolume(Main.xPlayersList.getXPlayerController(2).getVolume() - 1); } } } }); setOnKeyReleased(key -> { KeyCode keyCode = key.getCode(); // Xplayer_1||Xplayer2.Resume if (keyCode == KeyCode.DIGIT1) { if (key.isShiftDown()) Main.xPlayersList.getXPlayer(1).resume(); else if (key.isControlDown()) Main.xPlayersList.getXPlayer(2).resume(); // Xplayer_1||Xplayer_2.Pause } else if (keyCode == KeyCode.DIGIT2) { if (key.isShiftDown()) Main.xPlayersList.getXPlayer(1).pause(); else if (key.isControlDown()) Main.xPlayersList.getXPlayer(2).pause(); // Xplayer_1||Xplayer_2.Stop } else if (keyCode == KeyCode.DIGIT3) { if (key.isShiftDown()) { if (Main.xPlayersList.getXPlayer(1).isPausedOrPlaying()) Main.xPlayersList.getXPlayer(1).stop(); } else if (key.isControlDown() && Main.xPlayersList.getXPlayer(2).isPausedOrPlaying()) Main.xPlayersList.getXPlayer(2).stop(); // DJBeats } }); } // Variables private double[] topSplitPaneDivider = { 0.45 , 0.55 }; // Variables private double[] bottomSplitPaneDivider = { 0.18 , 0.83 }; // /** // * Updates the values of array that holds DividerPositions of splitPane // */ // public void updateTopSplitPaneDividerArray(double[] array) { // topSplitPaneDivider[0] = array[0]; // topSplitPaneDivider[1] = array[1]; // } // // /** // * Updates the values of array that holds DividerPositions of splitPane // */ // public void updateBottomSplitPaneDividerArray(double[] array) { // bottomSplitPaneDivider[0] = array[0]; // bottomSplitPaneDivider[1] = array[1]; // } //---------------------------- /** * Updates the SplitPane DividerPositions based on the saved array */ public void updateTopSplitPaneDivider() { topSplitPane.setDividerPositions(topSplitPaneDivider); } /** * Updates the SplitPane DividerPositions based on the saved array */ public void updateBottomSplitPaneDivider() { bottomSplitPane.setDividerPositions(bottomSplitPaneDivider); } //---------------------------- /** * Saves current divider positions of SplitPane into an array */ public void saveTopSplitPaneDivider() { topSplitPaneDivider = topSplitPane.getDividerPositions(); } /** * Saves current divider positions of SplitPane into an array */ public void saveBottomSplitPaneDivider() { bottomSplitPaneDivider = bottomSplitPane.getDividerPositions(); } /** * Turns the Library Mode Upside Down or opposite * * @param turnDown */ public void turnUpsideDownSplitPane(boolean turnDown) { //Check if it can enter based on the top hBox position if ( ( turnDown && !topSplitPane.getItems().get(0).equals(hBox) ) || ( !turnDown && topSplitPane.getItems().get(0).equals(hBox) )) return; //this.saveTopSplitPaneDivider(); double temp = topSplitPaneDivider[0]; topSplitPaneDivider[0] = topSplitPaneDivider[1]; topSplitPaneDivider[1] = temp; boolean libraryIsOnTop = topSplitPane.getItems().get(0).equals(hBox); topSplitPane.getItems().clear(); if (libraryIsOnTop) topSplitPane.getItems().addAll(bottomSplitPane, hBox); else topSplitPane.getItems().addAll(hBox, bottomSplitPane); this.updateTopSplitPaneDivider(); } //---------------------------- /** * @return the topSplitPane */ public SplitPane getTopSplitPane() { return topSplitPane; } /** * @return the bottomSplitPane */ public SplitPane getBottomSplitPane() { return bottomSplitPane; } }