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 ...@@ -643,7 +643,9 @@ public class MainViewControllerV2 extends ViewController implements IMainViewCon
@Override @Override
public void applyColorsToMappers() { public void applyColorsToMappers() {
if (openProject != null) {
ColorAdjuster.applyColorsToMappers(openProject);
}
} }
public void setTitle() { public void setTitle() {
......
...@@ -8,6 +8,7 @@ import de.tobias.playpad.PlayPadMain; ...@@ -8,6 +8,7 @@ import de.tobias.playpad.PlayPadMain;
import de.tobias.playpad.PlayPadPlugin; import de.tobias.playpad.PlayPadPlugin;
import de.tobias.playpad.Strings; import de.tobias.playpad.Strings;
import de.tobias.playpad.pad.Pad; import de.tobias.playpad.pad.Pad;
import de.tobias.playpad.pad.PadContentRegistry;
import de.tobias.playpad.pad.PadStatus; import de.tobias.playpad.pad.PadStatus;
import de.tobias.playpad.pad.conntent.PadContent; import de.tobias.playpad.pad.conntent.PadContent;
import de.tobias.playpad.pad.conntent.PadContentConnect; import de.tobias.playpad.pad.conntent.PadContentConnect;
...@@ -57,13 +58,14 @@ public class PadSettingsViewController extends ViewController implements IPadSet ...@@ -57,13 +58,14 @@ public class PadSettingsViewController extends ViewController implements IPadSet
try { try {
// Get Pad Type specific tab // Get Pad Type specific tab
String type = pad.getContent().getType(); 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); PadSettingsTabViewController contentTab = padContentConnect.getSettingsViewController(pad);
if (contentTab != null) if (contentTab != null)
addTab(contentTab); addTab(contentTab);
} catch (NoSuchComponentException e) { } catch (NoSuchComponentException e) {
// TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
} }
...@@ -78,7 +80,7 @@ public class PadSettingsViewController extends ViewController implements IPadSet ...@@ -78,7 +80,7 @@ public class PadSettingsViewController extends ViewController implements IPadSet
} }
private void setupPathLookupButton() { private void setupPathLookupButton() {
pathLookupListener = new PathLookupListener(); pathLookupListener = new PathLookupListener(this);
if (pad.getContent() != null) { if (pad.getContent() != null) {
PadContent content = pad.getContent(); PadContent content = pad.getContent();
......
...@@ -4,6 +4,10 @@ import java.awt.Desktop; ...@@ -4,6 +4,10 @@ import java.awt.Desktop;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Path; 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.ActionEvent;
import javafx.event.EventHandler; import javafx.event.EventHandler;
import javafx.scene.control.Button; import javafx.scene.control.Button;
...@@ -11,8 +15,13 @@ import javafx.scene.control.MenuItem; ...@@ -11,8 +15,13 @@ import javafx.scene.control.MenuItem;
public class PathLookupListener implements EventHandler<ActionEvent> { public class PathLookupListener implements EventHandler<ActionEvent> {
private Alertable alertable;
public PathLookupListener(Alertable alertable) {
this.alertable = alertable;
}
public void handle(ActionEvent event) { public void handle(ActionEvent event) {
System.out.println(event);
Object source = event.getSource(); Object source = event.getSource();
if (source instanceof Button) { if (source instanceof Button) {
// single path // single path
...@@ -30,11 +39,10 @@ public class PathLookupListener implements EventHandler<ActionEvent> { ...@@ -30,11 +39,10 @@ public class PathLookupListener implements EventHandler<ActionEvent> {
} }
private void showPath(Path path) { private void showPath(Path path) {
System.out.println(path);
try { try {
Desktop.getDesktop().browse(path.getParent().toUri()); Desktop.getDesktop().browse(path.getParent().toUri());
} catch (IOException e) { } catch (IOException e) {
// TODO Auto-generated catch block alertable.showErrorMessage(Localization.getString(Strings.Error_Standard_Gen), PlayPadPlugin.getImplementation().getIcon());
e.printStackTrace(); e.printStackTrace();
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment