Skip to content
Snippets Groups Projects
Commit 3c438727 authored by tobias's avatar tobias
Browse files

Changed Color Picker for Colormode

parent 7e4a11d6
No related branches found
No related tags found
No related merge requests found
......@@ -2,56 +2,62 @@ package de.tobias.playpad.layout.desktop;
import java.util.function.Consumer;
import org.controlsfx.control.PopOver;
import org.controlsfx.control.PopOver.ArrowLocation;
import de.tobias.playpad.DisplayableColor;
import de.tobias.playpad.PlayPadMain;
import de.tobias.playpad.design.CartDesign;
import de.tobias.playpad.design.ColorModeHandler;
import de.tobias.playpad.pad.Pad;
import de.tobias.playpad.pad.PadSettings;
import de.tobias.playpad.settings.Profile;
import javafx.event.EventHandler;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.input.MouseButton;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class DesktopColorPickerView implements Consumer<DisplayableColor>, EventHandler<MouseEvent> {
private Stage stage;
private ColorModeHandler colorModeHandler;
private DisplayableColor selectedColor;
private PopOver colorChooser;
public DesktopColorPickerView(ColorModeHandler colorModeHandler) {
this.colorModeHandler = colorModeHandler;
Node node = colorModeHandler.getColorInterface(this);
VBox root = new VBox(node);
stage = new Stage();
stage.setScene(new Scene(root));
// Init Stage
Profile.currentProfile().currentLayout().applyCss(stage);
stage.setResizable(false);
colorChooser = new PopOver();
colorChooser.setContentNode(root);
colorChooser.setDetachable(false);
colorChooser.setOnHiding(e -> colorChooser = null);
colorChooser.setCornerRadius(5);
colorChooser.setArrowLocation(ArrowLocation.LEFT_CENTER);
}
public void show() {
stage.show();
public void show(Node anchorNode) {
colorChooser.show(anchorNode);
}
public void hide() {
stage.close();
if (colorChooser != null) {
colorChooser.hide();
}
}
// Handle Selected Color from View.
@Override
public void accept(DisplayableColor t) {
selectedColor = t;
colorChooser.hide();
}
// Listener, wenn auf ein Pad Geclicked wurde, zum färben
@Override
public void handle(MouseEvent event) {
// TODO Rewrite this
......@@ -60,9 +66,14 @@ public class DesktopColorPickerView implements Consumer<DisplayableColor>, Event
if (view.getUserData() instanceof Pad) {
Pad pad = (Pad) view.getUserData();
PadSettings padSettings = pad.getPadSettings();
if (event.getButton() == MouseButton.PRIMARY) {
padSettings.setCustomLayout(true);
CartDesign design = padSettings.getDesign();
colorModeHandler.setColor(design, selectedColor);
} else if (event.getButton() == MouseButton.SECONDARY) {
padSettings.setCustomLayout(false);
}
PlayPadMain.getProgramInstance().getMainViewController().loadUserCss();
}
}
......
......@@ -158,7 +158,6 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro
helpMenu.getItems().add(new HelpMenuItem(helpMenu));
// Edit Mode Buttons
// TODO MenuItems for Buttons -> KeyCodes
editButtons = new SegmentedButton();
playButton = new ToggleButton("", new FontIcon(FontAwesomeType.PLAY));
playButton.setFocusTraversable(false);
......@@ -166,6 +165,18 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro
dragButton.setFocusTraversable(false);
colorButton = new ToggleButton("", new FontIcon(FontAwesomeType.PENCIL));
colorButton.setFocusTraversable(false);
// Zeigt die Farbauswahl
colorButton.setOnAction(e ->
{
GlobalDesign design = Profile.currentProfile().currentLayout();
if (design instanceof ColorModeHandler) {
colorPickerView = new DesktopColorPickerView((ColorModeHandler) design);
colorPickerView.show(colorButton);
// Add Listener for Pads
mainViewController.addListenerForPads(colorPickerView, MouseEvent.MOUSE_CLICKED);
}
});
editButtons.getButtons().addAll(playButton, dragButton, colorButton);
editButtons.getToggleGroup().selectedToggleProperty().addListener((a, b, c) ->
{
......@@ -222,16 +233,6 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro
iconHbox.getChildren().add(0, addPageButton);
} else if (newValue == DesktopEditMode.COLOR) {
colorButton.setSelected(true);
GlobalDesign design = Profile.currentProfile().currentLayout();
if (design instanceof ColorModeHandler) {
colorPickerView = new DesktopColorPickerView((ColorModeHandler) design);
// Add Listener for Pads
mainViewController.addListenerForPads(colorPickerView, MouseEvent.MOUSE_CLICKED);
colorPickerView.show();
}
}
// Update Page Button (for Edit/Display)
......@@ -402,7 +403,7 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro
alwaysOnTopItem.setDisable(true);
searchPadMenuItem.setDisable(true);
connect.setEditMode(DesktopEditMode.PLAY); // TODO -> Button Mit wecheln
connect.setEditMode(DesktopEditMode.PLAY);
}
@Override
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment