Skip to content
Snippets Groups Projects
Commit 2c7f43a8 authored by tobias's avatar tobias
Browse files

Add Color Adjustment

Clean code
parent cb59ffc2
No related branches found
No related tags found
No related merge requests found
package de.tobias.playpad.viewcontroller.main;
import java.util.List;
import de.tobias.playpad.action.cartaction.CartAction;
import de.tobias.playpad.action.connect.CartActionConnect;
import de.tobias.playpad.action.feedback.ColorAssociator;
import de.tobias.playpad.action.feedback.DisplayableFeedbackColor;
import de.tobias.playpad.action.feedback.FeedbackMessage;
import de.tobias.playpad.action.mapper.Mapper;
import de.tobias.playpad.action.mapper.MapperFeedbackable;
import de.tobias.playpad.design.CartDesign;
import de.tobias.playpad.design.DesignColorAssociator;
import de.tobias.playpad.design.GlobalDesign;
import de.tobias.playpad.pad.Pad;
import de.tobias.playpad.project.Project;
import de.tobias.playpad.settings.Profile;
import javafx.scene.paint.Color;
public class ColorAdjuster {
public static void applyColorsToMappers(Project project) {
// Apply Layout to Mapper
List<CartAction> actions = Profile.currentProfile().getMappings().getActiveMapping().getActions(CartActionConnect.TYPE);
for (CartAction cartAction : actions) {
if (cartAction.isAutoFeedbackColors()) {
for (Mapper mapper : cartAction.getMappers()) {
if (mapper instanceof MapperFeedbackable) {
mapColorForMapper(cartAction, mapper, project);
}
}
}
}
}
private static void mapColorForMapper(CartAction cartAction, Mapper mapper, Project project) {
MapperFeedbackable feedbackable = (MapperFeedbackable) mapper;
if (feedbackable.supportFeedback() && mapper instanceof ColorAssociator) {
ColorAssociator colorAssociator = (ColorAssociator) mapper;
Pad pad = project.getPad(cartAction.getCart());
Color layoutStdColor = null;
Color layoutEvColor = null;
if (pad.isCustomLayout()) {
CartDesign layout = pad.getLayout();
if (layout instanceof DesignColorAssociator) {
DesignColorAssociator associator = (DesignColorAssociator) layout;
layoutStdColor = associator.getAssociatedStandardColor();
layoutEvColor = associator.getAssociatedEventColor();
}
} else {
GlobalDesign layout = Profile.currentProfile().currentLayout();
if (layout instanceof DesignColorAssociator) {
DesignColorAssociator associator = (DesignColorAssociator) layout;
layoutStdColor = associator.getAssociatedStandardColor();
layoutEvColor = associator.getAssociatedEventColor();
}
}
if (layoutStdColor != null) {
DisplayableFeedbackColor associator = Mapper.searchColor(colorAssociator, FeedbackMessage.STANDARD, layoutStdColor);
colorAssociator.setColor(FeedbackMessage.STANDARD, associator.midiVelocity());
}
if (layoutEvColor != null) {
DisplayableFeedbackColor associator = Mapper.searchColor(colorAssociator, FeedbackMessage.EVENT, layoutEvColor);
colorAssociator.setColor(FeedbackMessage.EVENT, associator.midiVelocity());
}
}
}
}
......@@ -643,7 +643,9 @@ public class MainViewControllerV2 extends ViewController implements IMainViewCon
@Override
public void applyColorsToMappers() {
if (openProject != null) {
ColorAdjuster.applyColorsToMappers(openProject);
}
}
public void setTitle() {
......
......@@ -8,6 +8,7 @@ import de.tobias.playpad.PlayPadMain;
import de.tobias.playpad.PlayPadPlugin;
import de.tobias.playpad.Strings;
import de.tobias.playpad.pad.Pad;
import de.tobias.playpad.pad.PadContentRegistry;
import de.tobias.playpad.pad.PadStatus;
import de.tobias.playpad.pad.conntent.PadContent;
import de.tobias.playpad.pad.conntent.PadContentConnect;
......@@ -57,13 +58,14 @@ public class PadSettingsViewController extends ViewController implements IPadSet
try {
// Get Pad Type specific tab
String type = pad.getContent().getType();
PadContentConnect padContentConnect = PlayPadPlugin.getRegistryCollection().getPadContents().getComponent(type);
PadContentRegistry registry = PlayPadPlugin.getRegistryCollection().getPadContents();
PadContentConnect padContentConnect = registry.getComponent(type);
PadSettingsTabViewController contentTab = padContentConnect.getSettingsViewController(pad);
if (contentTab != null)
addTab(contentTab);
} catch (NoSuchComponentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
......@@ -78,7 +80,7 @@ public class PadSettingsViewController extends ViewController implements IPadSet
}
private void setupPathLookupButton() {
pathLookupListener = new PathLookupListener();
pathLookupListener = new PathLookupListener(this);
if (pad.getContent() != null) {
PadContent content = pad.getContent();
......
......@@ -4,6 +4,10 @@ import java.awt.Desktop;
import java.io.IOException;
import java.nio.file.Path;
import de.tobias.playpad.PlayPadPlugin;
import de.tobias.playpad.Strings;
import de.tobias.utils.ui.Alertable;
import de.tobias.utils.util.Localization;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.control.Button;
......@@ -11,8 +15,13 @@ import javafx.scene.control.MenuItem;
public class PathLookupListener implements EventHandler<ActionEvent> {
private Alertable alertable;
public PathLookupListener(Alertable alertable) {
this.alertable = alertable;
}
public void handle(ActionEvent event) {
System.out.println(event);
Object source = event.getSource();
if (source instanceof Button) {
// single path
......@@ -30,11 +39,10 @@ public class PathLookupListener implements EventHandler<ActionEvent> {
}
private void showPath(Path path) {
System.out.println(path);
try {
Desktop.getDesktop().browse(path.getParent().toUri());
} catch (IOException e) {
// TODO Auto-generated catch block
alertable.showErrorMessage(Localization.getString(Strings.Error_Standard_Gen), PlayPadPlugin.getImplementation().getIcon());
e.printStackTrace();
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment