From 711500afb6656990b1f6695112e11844bdb01473 Mon Sep 17 00:00:00 2001
From: tobias <tobias.ullerich@icloud.com>
Date: Fri, 5 Aug 2016 23:12:52 +0200
Subject: [PATCH] Clean code and add comments to PlayWallCore

---
 .../src/de/tobias/playpad/VersionUpdater.java |   4 +-
 .../playpad/action/mapper/KeyboardMapper.java |   6 +-
 .../playpad/action/mapper/MidiMapper.java     |  15 +--
 .../mapper/feedback/DoubleMidiFeedback.java   |  21 +++-
 .../mapper/feedback/SingleMidiFeedback.java   |  21 +++-
 .../layout/desktop/DesktopPadView.java        |  79 +++++++------
 .../playpad/layout/touch/TouchPadView.java    |  39 ++++---
 .../pad/listener/PadContentListener.java      |   2 +-
 .../mapper/MidiMapperViewController.java      |   8 +-
 .../DoubleFeedbackViewController.java         |  10 +-
 .../SingleFeedbackViewController.java         |   8 +-
 .../viewcontroller/pad/PadDragListener.java   |   2 +-
 .../src/de/tobias/playpad/Displayable.java    |   2 +
 .../src/de/tobias/playpad/PlayPad.java        |   1 -
 .../src/de/tobias/playpad/PlayPadPlugin.java  |   6 +-
 .../src/de/tobias/playpad/action/Action.java  |  17 ++-
 .../tobias/playpad/action/ActionConnect.java  |  44 ++++++++
 .../playpad/action/ActionDisplayable.java     |  18 +++
 .../playpad/action/ActionSerializer.java      |   1 +
 .../de/tobias/playpad/action/ActionType.java  |  13 +++
 .../src/de/tobias/playpad/action/Mapping.java |   8 +-
 .../de/tobias/playpad/action/MappingList.java |   7 +-
 .../action/feedback/ColorAdjuster.java        |  58 +++++++++-
 .../feedback/DisplayableFeedbackColor.java    |   2 +-
 .../playpad/action/feedback/Feedback.java     |  53 ++++++++-
 .../action/feedback/FeedbackMessage.java      |  21 ++++
 .../tobias/playpad/action/mapper/Mapper.java  | 104 +++++++++++-------
 .../action/{ => mapper}/MapperSerializer.java |  16 ++-
 .../playpad/action/mididevice/Device.java     |   3 +-
 .../de/tobias/playpad/design/CartDesign.java  |   5 +-
 .../tobias/playpad/design/GlobalDesign.java   |   5 +-
 .../src/de/tobias/playpad/pad/Pad.java        |   2 +-
 .../tobias/playpad/pad/view/IPadViewV2.java   |  17 ++-
 .../playpad/registry/DefaultRegistry.java     |   2 +-
 .../playpad/registry/WriteOnlyRegistry.java   |   2 +
 .../playpad/settings/ProfileReference.java    |   9 +-
 .../de/tobias/playpad/tigger/TriggerItem.java |   2 +
 .../playpad/view/main/MainLayoutConnect.java  |   3 +
 .../IMappingTabViewController.java            |  13 +++
 .../SettingsTabViewController.java            |   2 +-
 .../main/IMainViewController.java             |   1 +
 .../tobias/playpad/xml/XMLDeserializer.java   |   3 +-
 .../midi/device/mk2/LaunchPadMK2Color.java    |   4 +-
 .../midi/device/s/LaunchPadSColor.java        |   4 +-
 44 files changed, 478 insertions(+), 185 deletions(-)
 rename PlayWallCore/src/de/tobias/playpad/action/feedback/DoubleSimpleFeedback.java => PlayWall/src/de/tobias/playpad/action/mapper/feedback/DoubleMidiFeedback.java (81%)
 rename PlayWallCore/src/de/tobias/playpad/action/feedback/SingleSimpleFeedback.java => PlayWall/src/de/tobias/playpad/action/mapper/feedback/SingleMidiFeedback.java (73%)
 rename PlayWallCore/src/de/tobias/playpad/action/{ => mapper}/MapperSerializer.java (83%)

diff --git a/PlayWall/src/de/tobias/playpad/VersionUpdater.java b/PlayWall/src/de/tobias/playpad/VersionUpdater.java
index 045a3e7e..6cfb762b 100644
--- a/PlayWall/src/de/tobias/playpad/VersionUpdater.java
+++ b/PlayWall/src/de/tobias/playpad/VersionUpdater.java
@@ -22,8 +22,8 @@ import de.tobias.playpad.action.Mapping;
 import de.tobias.playpad.action.MappingSerializer;
 import de.tobias.playpad.action.cartaction.CartAction;
 import de.tobias.playpad.action.cartaction.CartAction.ControlMode;
-import de.tobias.playpad.action.feedback.DoubleSimpleFeedback;
 import de.tobias.playpad.action.mapper.MidiMapper;
+import de.tobias.playpad.action.mapper.feedback.DoubleMidiFeedback;
 import de.tobias.playpad.project.Project;
 import de.tobias.playpad.project.ProjectReference;
 import de.tobias.playpad.settings.ProfileReference;
@@ -175,7 +175,7 @@ public class VersionUpdater implements UpdateService {
 							int feedbackEvent = Integer.valueOf(feedbackEventElement.element("MidiVelocity").getStringValue());
 							int feedbackDefault = Integer.valueOf(feedbackDefaultElement.element("MidiVelocity").getStringValue());
 
-							DoubleSimpleFeedback doubleSimpleFeedback = new DoubleSimpleFeedback(feedbackDefault, feedbackEvent);
+							DoubleMidiFeedback doubleSimpleFeedback = new DoubleMidiFeedback(feedbackDefault, feedbackEvent);
 							mapper.setFeedback(doubleSimpleFeedback);
 						}
 					}
diff --git a/PlayWall/src/de/tobias/playpad/action/mapper/KeyboardMapper.java b/PlayWall/src/de/tobias/playpad/action/mapper/KeyboardMapper.java
index 4777e9ef..cdc25969 100644
--- a/PlayWall/src/de/tobias/playpad/action/mapper/KeyboardMapper.java
+++ b/PlayWall/src/de/tobias/playpad/action/mapper/KeyboardMapper.java
@@ -60,10 +60,6 @@ public class KeyboardMapper extends Mapper {
 		}
 	}
 
-	// Not Used for Keyboards
-	@Override
-	protected void initFeedback() {}
-
 	private static final String KEY = "key";
 	private static final String CODE = "code";
 
@@ -74,7 +70,7 @@ public class KeyboardMapper extends Mapper {
 	}
 
 	@Override
-	public void save(Element element, Action action) {
+	public void save(Element element) {
 		element.addAttribute(KEY, key);
 		element.addAttribute(CODE, code.name());
 	}
diff --git a/PlayWall/src/de/tobias/playpad/action/mapper/MidiMapper.java b/PlayWall/src/de/tobias/playpad/action/mapper/MidiMapper.java
index ebde690e..f6f60e39 100644
--- a/PlayWall/src/de/tobias/playpad/action/mapper/MidiMapper.java
+++ b/PlayWall/src/de/tobias/playpad/action/mapper/MidiMapper.java
@@ -8,11 +8,11 @@ import de.tobias.playpad.Strings;
 import de.tobias.playpad.action.Action;
 import de.tobias.playpad.action.feedback.ColorAssociator;
 import de.tobias.playpad.action.feedback.DisplayableFeedbackColor;
-import de.tobias.playpad.action.feedback.DoubleSimpleFeedback;
 import de.tobias.playpad.action.feedback.Feedback;
 import de.tobias.playpad.action.feedback.FeedbackMessage;
 import de.tobias.playpad.action.feedback.FeedbackType;
-import de.tobias.playpad.action.feedback.SingleSimpleFeedback;
+import de.tobias.playpad.action.mapper.feedback.DoubleMidiFeedback;
+import de.tobias.playpad.action.mapper.feedback.SingleMidiFeedback;
 import de.tobias.playpad.action.mididevice.Device;
 import de.tobias.playpad.action.mididevice.DeviceColorAssociatorConnector;
 import de.tobias.playpad.midi.Midi;
@@ -63,12 +63,12 @@ public class MidiMapper extends Mapper implements ColorAssociator, MapperFeedbac
 	}
 
 	@Override
-	protected void initFeedback() {
+	public void initFeedback() {
 		if (feedback == null || this.feedbackType != super.feedbackType) {
 			if (super.feedbackType == FeedbackType.SINGLE) {
-				feedback = new SingleSimpleFeedback();
+				feedback = new SingleMidiFeedback();
 			} else if (super.feedbackType == FeedbackType.DOUBLE) {
-				feedback = new DoubleSimpleFeedback();
+				feedback = new DoubleMidiFeedback();
 			}
 		}
 		this.feedbackType = super.feedbackType;
@@ -77,7 +77,8 @@ public class MidiMapper extends Mapper implements ColorAssociator, MapperFeedbac
 	public Feedback getFeedback() {
 		return feedback;
 	}
-
+	
+	@Deprecated
 	public void setFeedback(Feedback feedback) {
 		this.feedback = feedback;
 	}
@@ -185,7 +186,7 @@ public class MidiMapper extends Mapper implements ColorAssociator, MapperFeedbac
 	}
 
 	@Override
-	public void save(Element element, Action action) {
+	public void save(Element element) {
 		element.addAttribute(MIDI_COMMAND, String.valueOf(command));
 		element.addAttribute(MIDI_KEY, String.valueOf(key));
 
diff --git a/PlayWallCore/src/de/tobias/playpad/action/feedback/DoubleSimpleFeedback.java b/PlayWall/src/de/tobias/playpad/action/mapper/feedback/DoubleMidiFeedback.java
similarity index 81%
rename from PlayWallCore/src/de/tobias/playpad/action/feedback/DoubleSimpleFeedback.java
rename to PlayWall/src/de/tobias/playpad/action/mapper/feedback/DoubleMidiFeedback.java
index e82b05b1..3e16e53d 100644
--- a/PlayWallCore/src/de/tobias/playpad/action/feedback/DoubleSimpleFeedback.java
+++ b/PlayWall/src/de/tobias/playpad/action/mapper/feedback/DoubleMidiFeedback.java
@@ -1,20 +1,31 @@
-package de.tobias.playpad.action.feedback;
+package de.tobias.playpad.action.mapper.feedback;
 
 import org.dom4j.Element;
 
-public class DoubleSimpleFeedback extends Feedback {
+import de.tobias.playpad.action.feedback.Feedback;
+import de.tobias.playpad.action.feedback.FeedbackMessage;
+
+/**
+ * Implementierung eines 2 State Feedbacks für MIDI Geräte.
+ * 
+ * @author tobias
+ * 
+ * @since 5.0.0
+ *
+ */
+public class DoubleMidiFeedback extends Feedback {
 
 	private static final int INIT_FEEDBACK_VALUE = 0;
 
 	private int feedbackDefaultValue; // e.g. Color on an LaunchPad
 	private int feedbackEventValue; // e.g. Color on an LaunchPad
 
-	public DoubleSimpleFeedback() {
+	public DoubleMidiFeedback() {
 		this.feedbackDefaultValue = INIT_FEEDBACK_VALUE;
 		this.feedbackEventValue = INIT_FEEDBACK_VALUE;
 	}
 
-	public DoubleSimpleFeedback(int feedbackDefaultValue, int feedbackEventValue) {
+	public DoubleMidiFeedback(int feedbackDefaultValue, int feedbackEventValue) {
 		this.feedbackDefaultValue = feedbackDefaultValue;
 		this.feedbackEventValue = feedbackEventValue;
 	}
@@ -80,7 +91,7 @@ public class DoubleSimpleFeedback extends Feedback {
 
 	@Override
 	public Feedback cloneFeedback() throws CloneNotSupportedException {
-		DoubleSimpleFeedback feedback = (DoubleSimpleFeedback) super.clone();
+		DoubleMidiFeedback feedback = (DoubleMidiFeedback) super.clone();
 
 		feedback.feedbackDefaultValue = feedbackDefaultValue;
 		feedback.feedbackEventValue = feedbackEventValue;
diff --git a/PlayWallCore/src/de/tobias/playpad/action/feedback/SingleSimpleFeedback.java b/PlayWall/src/de/tobias/playpad/action/mapper/feedback/SingleMidiFeedback.java
similarity index 73%
rename from PlayWallCore/src/de/tobias/playpad/action/feedback/SingleSimpleFeedback.java
rename to PlayWall/src/de/tobias/playpad/action/mapper/feedback/SingleMidiFeedback.java
index 19816503..dfd37f54 100644
--- a/PlayWallCore/src/de/tobias/playpad/action/feedback/SingleSimpleFeedback.java
+++ b/PlayWall/src/de/tobias/playpad/action/mapper/feedback/SingleMidiFeedback.java
@@ -1,18 +1,29 @@
-package de.tobias.playpad.action.feedback;
+package de.tobias.playpad.action.mapper.feedback;
 
 import org.dom4j.Element;
 
-public class SingleSimpleFeedback extends Feedback {
+import de.tobias.playpad.action.feedback.Feedback;
+import de.tobias.playpad.action.feedback.FeedbackMessage;
+
+/**
+ * Implementierung eines 1 State Feedbacks für MIDI Geräte.
+ * 
+ * @author tobias
+ * 
+ * @since 5.0.0
+ *
+ */
+public class SingleMidiFeedback extends Feedback {
 
 	private static final int INIT_FEEDBACK_VALUE = 0;
 
 	private int feedbackValue; // e.g. Color on an LaunchPad
 
-	public SingleSimpleFeedback() {
+	public SingleMidiFeedback() {
 		this.feedbackValue = INIT_FEEDBACK_VALUE;
 	}
 
-	public SingleSimpleFeedback(int feedbackValue) {
+	public SingleMidiFeedback(int feedbackValue) {
 		this.feedbackValue = feedbackValue;
 	}
 
@@ -63,7 +74,7 @@ public class SingleSimpleFeedback extends Feedback {
 
 	@Override
 	public Feedback cloneFeedback() throws CloneNotSupportedException {
-		SingleSimpleFeedback feedback = (SingleSimpleFeedback) super.clone();
+		SingleMidiFeedback feedback = (SingleMidiFeedback) super.clone();
 
 		feedback.feedbackValue = feedbackValue;
 
diff --git a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopPadView.java b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopPadView.java
index bb142d1a..4994b8d2 100644
--- a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopPadView.java
+++ b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopPadView.java
@@ -259,7 +259,7 @@ public class DesktopPadView implements IPadViewV2 {
 	}
 
 	@Override
-	public void addDefaultButton(Pad pad) {
+	public void addDefaultElement(Pad pad) {
 		if (pad != null) {
 			if (pad.getContent() != null) {
 				if (pad.getContent() instanceof Pauseable) {
@@ -291,32 +291,30 @@ public class DesktopPadView implements IPadViewV2 {
 	}
 
 	@Override
-	public void applyStyleClasses() {
-		Pad pad = getViewController().getPad();
-
-		superRoot.getStyleClass().addAll("pad", "pad" + pad.getIndex());
+	public void applyStyleClasses(int index) {
+		superRoot.getStyleClass().addAll("pad", "pad" + index);
 
-		indexLabel.getStyleClass().addAll("pad-index", "pad" + pad.getIndex() + "-index", "pad-info", "pad" + pad.getIndex() + "-info");
-		timeLabel.getStyleClass().addAll("pad-time", "pad" + pad.getIndex() + "-time", "pad-info", "pad" + pad.getIndex() + "-info");
-		loopLabel.getGraphic().getStyleClass().addAll("pad-icon", "pad" + pad.getIndex() + "-icon");
-		triggerLabel.getGraphic().getStyleClass().addAll("pad-icon", "pad" + pad.getIndex() + "-icon");
-		errorLabel.getGraphic().getStyleClass().addAll("pad-icon", "pad" + pad.getIndex() + "-icon");
+		indexLabel.getStyleClass().addAll("pad-index", "pad" + index + "-index", "pad-info", "pad" + index + "-info");
+		timeLabel.getStyleClass().addAll("pad-time", "pad" + index + "-time", "pad-info", "pad" + index + "-info");
+		loopLabel.getGraphic().getStyleClass().addAll("pad-icon", "pad" + index + "-icon");
+		triggerLabel.getGraphic().getStyleClass().addAll("pad-icon", "pad" + index + "-icon");
+		errorLabel.getGraphic().getStyleClass().addAll("pad-icon", "pad" + index + "-icon");
 
-		preview.getChildren().forEach(i -> i.getStyleClass().addAll("pad-title", "pad" + pad.getIndex() + "-title"));
+		preview.getChildren().forEach(i -> i.getStyleClass().addAll("pad-title", "pad" + index + "-title"));
 
-		playBar.getStyleClass().addAll("pad-playbar", "pad" + pad.getIndex() + "-playbar");
+		playBar.getStyleClass().addAll("pad-playbar", "pad" + index + "-playbar");
 
-		playButton.getStyleClass().addAll("pad-button", "pad" + pad.getIndex() + "-button");
-		pauseButton.getStyleClass().addAll("pad-button", "pad" + pad.getIndex() + "-button");
-		stopButton.getStyleClass().addAll("pad-button", "pad" + pad.getIndex() + "-button");
-		newButton.getStyleClass().addAll("pad-button", "pad" + pad.getIndex() + "-button");
-		settingsButton.getStyleClass().addAll("pad-button", "pad" + pad.getIndex() + "-button");
+		playButton.getStyleClass().addAll("pad-button", "pad" + index + "-button");
+		pauseButton.getStyleClass().addAll("pad-button", "pad" + index + "-button");
+		stopButton.getStyleClass().addAll("pad-button", "pad" + index + "-button");
+		newButton.getStyleClass().addAll("pad-button", "pad" + index + "-button");
+		settingsButton.getStyleClass().addAll("pad-button", "pad" + index + "-button");
 
-		playButton.getGraphic().getStyleClass().addAll("pad-icon", "pad" + pad.getIndex() + "-icon");
-		pauseButton.getGraphic().getStyleClass().addAll("pad-icon", "pad" + pad.getIndex() + "-icon");
-		stopButton.getGraphic().getStyleClass().addAll("pad-icon", "pad" + pad.getIndex() + "-icon");
-		newButton.getGraphic().getStyleClass().addAll("pad-icon", "pad" + pad.getIndex() + "-icon");
-		settingsButton.getGraphic().getStyleClass().addAll("pad-icon", "pad" + pad.getIndex() + "-icon");
+		playButton.getGraphic().getStyleClass().addAll("pad-icon", "pad" + index + "-icon");
+		pauseButton.getGraphic().getStyleClass().addAll("pad-icon", "pad" + index + "-icon");
+		stopButton.getGraphic().getStyleClass().addAll("pad-icon", "pad" + index + "-icon");
+		newButton.getGraphic().getStyleClass().addAll("pad-icon", "pad" + index + "-icon");
+		settingsButton.getGraphic().getStyleClass().addAll("pad-icon", "pad" + index + "-icon");
 
 		buttonBox.getStyleClass().add("pad-button-box");
 		root.getStyleClass().add("pad-root");
@@ -325,30 +323,31 @@ public class DesktopPadView implements IPadViewV2 {
 	@Override
 	public void removeStyleClasses() {
 		Pad pad = getViewController().getPad();
+		int index = pad.getIndex();
 
-		superRoot.getStyleClass().removeAll("pad", "pad" + pad.getIndex());
+		superRoot.getStyleClass().removeAll("pad", "pad" + index);
 
-		indexLabel.getStyleClass().removeAll("pad-index", "pad" + pad.getIndex() + "-index", "pad-info", "pad" + pad.getIndex() + "-info");
-		timeLabel.getStyleClass().removeAll("pad-time", "pad" + pad.getIndex() + "-time", "pad-info", "pad" + pad.getIndex() + "-info");
-		loopLabel.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + pad.getIndex() + "-icon");
-		triggerLabel.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + pad.getIndex() + "-icon");
-		errorLabel.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + pad.getIndex() + "-icon");
+		indexLabel.getStyleClass().removeAll("pad-index", "pad" + index + "-index", "pad-info", "pad" + index + "-info");
+		timeLabel.getStyleClass().removeAll("pad-time", "pad" + index + "-time", "pad-info", "pad" + index + "-info");
+		loopLabel.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + index + "-icon");
+		triggerLabel.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + index + "-icon");
+		errorLabel.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + index + "-icon");
 
-		preview.getChildren().forEach(i -> i.getStyleClass().removeAll("pad-title", "pad" + pad.getIndex() + "-title"));
+		preview.getChildren().forEach(i -> i.getStyleClass().removeAll("pad-title", "pad" + index + "-title"));
 
-		playBar.getStyleClass().removeAll("pad-playbar", "pad" + pad.getIndex() + "-playbar");
+		playBar.getStyleClass().removeAll("pad-playbar", "pad" + index + "-playbar");
 
-		playButton.getStyleClass().removeAll("pad-button", "pad" + pad.getIndex() + "-button");
-		pauseButton.getStyleClass().removeAll("pad-button", "pad" + pad.getIndex() + "-button");
-		stopButton.getStyleClass().removeAll("pad-button", "pad" + pad.getIndex() + "-button");
-		newButton.getStyleClass().removeAll("pad-button", "pad" + pad.getIndex() + "-button");
-		settingsButton.getStyleClass().removeAll("pad-button", "pad" + pad.getIndex() + "-button");
+		playButton.getStyleClass().removeAll("pad-button", "pad" + index + "-button");
+		pauseButton.getStyleClass().removeAll("pad-button", "pad" + index + "-button");
+		stopButton.getStyleClass().removeAll("pad-button", "pad" + index + "-button");
+		newButton.getStyleClass().removeAll("pad-button", "pad" + index + "-button");
+		settingsButton.getStyleClass().removeAll("pad-button", "pad" + index + "-button");
 
-		playButton.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + pad.getIndex() + "-icon");
-		pauseButton.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + pad.getIndex() + "-icon");
-		stopButton.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + pad.getIndex() + "-icon");
-		newButton.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + pad.getIndex() + "-icon");
-		settingsButton.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + pad.getIndex() + "-icon");
+		playButton.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + index + "-icon");
+		pauseButton.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + index + "-icon");
+		stopButton.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + index + "-icon");
+		newButton.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + index + "-icon");
+		settingsButton.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + index + "-icon");
 
 		buttonBox.getStyleClass().add("pad-button-box");
 		root.getStyleClass().add("pad-root");
diff --git a/PlayWall/src/de/tobias/playpad/layout/touch/TouchPadView.java b/PlayWall/src/de/tobias/playpad/layout/touch/TouchPadView.java
index 68581c2c..d0666f0e 100644
--- a/PlayWall/src/de/tobias/playpad/layout/touch/TouchPadView.java
+++ b/PlayWall/src/de/tobias/playpad/layout/touch/TouchPadView.java
@@ -206,7 +206,7 @@ public class TouchPadView implements IPadViewV2 {
 	}
 
 	@Override
-	public void addDefaultButton(Pad pad) {
+	public void addDefaultElement(Pad pad) {
 		infoBox.getChildren().setAll(indexLabel, loopLabel, triggerLabel, errorLabel, timeLabel);
 
 		// alle Labels in der InfoBox sollen die gleiche Höhe haben, damit die Icons auf gleicher höhe sind
@@ -218,20 +218,18 @@ public class TouchPadView implements IPadViewV2 {
 	}
 
 	@Override
-	public void applyStyleClasses() {
-		Pad pad = getViewController().getPad();
-
-		superRoot.getStyleClass().addAll("pad", "pad" + pad.getIndex());
+	public void applyStyleClasses(int index) {
+		superRoot.getStyleClass().addAll("pad", "pad" + index);
 
-		indexLabel.getStyleClass().addAll("pad-index", "pad" + pad.getIndex() + "-index", "pad-info", "pad" + pad.getIndex() + "-info");
-		timeLabel.getStyleClass().addAll("pad-time", "pad" + pad.getIndex() + "-time", "pad-info", "pad" + pad.getIndex() + "-info");
-		loopLabel.getGraphic().getStyleClass().addAll("pad-icon", "pad" + pad.getIndex() + "-icon");
-		triggerLabel.getGraphic().getStyleClass().addAll("pad-icon", "pad" + pad.getIndex() + "-icon");
-		errorLabel.getGraphic().getStyleClass().addAll("pad-icon", "pad" + pad.getIndex() + "-icon");
+		indexLabel.getStyleClass().addAll("pad-index", "pad" + index + "-index", "pad-info", "pad" + index + "-info");
+		timeLabel.getStyleClass().addAll("pad-time", "pad" + index + "-time", "pad-info", "pad" + index + "-info");
+		loopLabel.getGraphic().getStyleClass().addAll("pad-icon", "pad" + index + "-icon");
+		triggerLabel.getGraphic().getStyleClass().addAll("pad-icon", "pad" + index + "-icon");
+		errorLabel.getGraphic().getStyleClass().addAll("pad-icon", "pad" + index + "-icon");
 
-		preview.getChildren().forEach(i -> i.getStyleClass().addAll("pad-title", "pad" + pad.getIndex() + "-title"));
+		preview.getChildren().forEach(i -> i.getStyleClass().addAll("pad-title", "pad" + index + "-title"));
 
-		playBar.getStyleClass().addAll("pad-playbar", "pad" + pad.getIndex() + "-playbar");
+		playBar.getStyleClass().addAll("pad-playbar", "pad" + index + "-playbar");
 
 		root.getStyleClass().add("pad-root");
 	}
@@ -239,18 +237,19 @@ public class TouchPadView implements IPadViewV2 {
 	@Override
 	public void removeStyleClasses() {
 		Pad pad = getViewController().getPad();
+		int index = pad.getIndex();
 
-		superRoot.getStyleClass().removeAll("pad", "pad" + pad.getIndex());
+		superRoot.getStyleClass().removeAll("pad", "pad" + index);
 
-		indexLabel.getStyleClass().removeAll("pad-index", "pad" + pad.getIndex() + "-index", "pad-info", "pad" + pad.getIndex() + "-info");
-		timeLabel.getStyleClass().removeAll("pad-time", "pad" + pad.getIndex() + "-time", "pad-info", "pad" + pad.getIndex() + "-info");
-		loopLabel.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + pad.getIndex() + "-icon");
-		triggerLabel.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + pad.getIndex() + "-icon");
-		errorLabel.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + pad.getIndex() + "-icon");
+		indexLabel.getStyleClass().removeAll("pad-index", "pad" + index + "-index", "pad-info", "pad" + index + "-info");
+		timeLabel.getStyleClass().removeAll("pad-time", "pad" + index + "-time", "pad-info", "pad" + index + "-info");
+		loopLabel.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + index + "-icon");
+		triggerLabel.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + index + "-icon");
+		errorLabel.getGraphic().getStyleClass().removeAll("pad-icon", "pad" + index + "-icon");
 
-		preview.getChildren().forEach(i -> i.getStyleClass().removeAll("pad-title", "pad" + pad.getIndex() + "-title"));
+		preview.getChildren().forEach(i -> i.getStyleClass().removeAll("pad-title", "pad" + index + "-title"));
 
-		playBar.getStyleClass().removeAll("pad-playbar", "pad" + pad.getIndex() + "-playbar");
+		playBar.getStyleClass().removeAll("pad-playbar", "pad" + index + "-playbar");
 
 		root.getStyleClass().add("pad-root");
 	}
diff --git a/PlayWall/src/de/tobias/playpad/pad/listener/PadContentListener.java b/PlayWall/src/de/tobias/playpad/pad/listener/PadContentListener.java
index 98135071..cb47601c 100644
--- a/PlayWall/src/de/tobias/playpad/pad/listener/PadContentListener.java
+++ b/PlayWall/src/de/tobias/playpad/pad/listener/PadContentListener.java
@@ -24,7 +24,7 @@ public class PadContentListener implements ChangeListener<PadContent> {
 	public void changed(ObservableValue<? extends PadContent> observable, PadContent oldValue, PadContent newValue) {
 		// wenn Content change, update preview & buttons
 		controller.getView().setContentView(pad);
-		controller.getView().addDefaultButton(pad);
+		controller.getView().addDefaultElement(pad);
 
 		controller.updateButtonDisable();
 		controller.updateTimeLabel();
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/mapper/MidiMapperViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/mapper/MidiMapperViewController.java
index a24809d6..c6f06e4b 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/mapper/MidiMapperViewController.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/mapper/MidiMapperViewController.java
@@ -4,12 +4,12 @@ import javax.sound.midi.MidiMessage;
 
 import de.tobias.playpad.PlayPadMain;
 import de.tobias.playpad.Strings;
-import de.tobias.playpad.action.feedback.DoubleSimpleFeedback;
 import de.tobias.playpad.action.feedback.FeedbackType;
-import de.tobias.playpad.action.feedback.SingleSimpleFeedback;
 import de.tobias.playpad.action.mapper.Mapper;
 import de.tobias.playpad.action.mapper.MapperViewController;
 import de.tobias.playpad.action.mapper.MidiMapper;
+import de.tobias.playpad.action.mapper.feedback.DoubleMidiFeedback;
+import de.tobias.playpad.action.mapper.feedback.SingleMidiFeedback;
 import de.tobias.playpad.midi.Midi;
 import de.tobias.playpad.midi.MidiListener;
 import de.tobias.playpad.viewcontroller.option.feedback.DoubleFeedbackViewController;
@@ -135,9 +135,9 @@ public class MidiMapperViewController extends MapperViewController implements Mi
 				}
 				// add new Elements
 				if (mapper.getFeedbackType() == FeedbackType.SINGLE) {
-					feedbackController = new SingleFeedbackViewController((SingleSimpleFeedback) mapper.getFeedback(), device.getColors());
+					feedbackController = new SingleFeedbackViewController((SingleMidiFeedback) mapper.getFeedback(), device.getColors());
 				} else if (mapper.getFeedbackType() == FeedbackType.DOUBLE) {
-					feedbackController = new DoubleFeedbackViewController((DoubleSimpleFeedback) mapper.getFeedback(), device.getColors());
+					feedbackController = new DoubleFeedbackViewController((DoubleMidiFeedback) mapper.getFeedback(), device.getColors());
 				}
 				showFeedback();
 			}
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/option/feedback/DoubleFeedbackViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/option/feedback/DoubleFeedbackViewController.java
index 24c6cfb8..81b5e199 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/option/feedback/DoubleFeedbackViewController.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/option/feedback/DoubleFeedbackViewController.java
@@ -7,8 +7,8 @@ import org.controlsfx.control.PopOver.ArrowLocation;
 
 import de.tobias.playpad.PlayPadMain;
 import de.tobias.playpad.action.feedback.DisplayableFeedbackColor;
-import de.tobias.playpad.action.feedback.DoubleSimpleFeedback;
 import de.tobias.playpad.action.feedback.FeedbackMessage;
+import de.tobias.playpad.action.mapper.feedback.DoubleMidiFeedback;
 import de.tobias.playpad.action.mididevice.Device;
 import de.tobias.playpad.midi.Midi;
 import de.tobias.playpad.view.ColorView;
@@ -36,9 +36,9 @@ public class DoubleFeedbackViewController extends ContentViewController {
 
 	private PopOver colorChooser;
 
-	private DoubleSimpleFeedback feedback;
+	private DoubleMidiFeedback feedback;
 
-	public DoubleFeedbackViewController(DoubleSimpleFeedback feedback, DisplayableFeedbackColor[] colors) {
+	public DoubleFeedbackViewController(DoubleMidiFeedback feedback, DisplayableFeedbackColor[] colors) {
 		super("doubleFeedback", "de/tobias/playpad/assets/view/option/feedback/", PlayPadMain.getUiResourceBundle());
 		this.feedback = feedback;
 
@@ -89,11 +89,11 @@ public class DoubleFeedbackViewController extends ContentViewController {
 					colorChooser.hide();
 					if (item instanceof DisplayableFeedbackColor) {
 						if (event.getSource() == colorChooseDefaultButton) {
-							feedback.setFeedbackDefaultValue(((DisplayableFeedbackColor) item).midiVelocity());
+							feedback.setFeedbackDefaultValue(((DisplayableFeedbackColor) item).mapperFeedbackValue());
 							colorPreviewDefault.setFill(item.getPaint());
 							setColorChooseButtonColor(item.getPaint(), colorChooseDefaultButton);
 						} else if (event.getSource() == colorChooseEventButton) {
-							feedback.setFeedbackEventValue(((DisplayableFeedbackColor) item).midiVelocity());
+							feedback.setFeedbackEventValue(((DisplayableFeedbackColor) item).mapperFeedbackValue());
 							colorPreviewEvent.setFill(item.getPaint());
 							setColorChooseButtonColor(item.getPaint(), colorChooseEventButton);
 						}
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/option/feedback/SingleFeedbackViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/option/feedback/SingleFeedbackViewController.java
index 7a737802..94cfd8b3 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/option/feedback/SingleFeedbackViewController.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/option/feedback/SingleFeedbackViewController.java
@@ -8,7 +8,7 @@ import org.controlsfx.control.PopOver.ArrowLocation;
 import de.tobias.playpad.PlayPadMain;
 import de.tobias.playpad.action.feedback.DisplayableFeedbackColor;
 import de.tobias.playpad.action.feedback.FeedbackMessage;
-import de.tobias.playpad.action.feedback.SingleSimpleFeedback;
+import de.tobias.playpad.action.mapper.feedback.SingleMidiFeedback;
 import de.tobias.playpad.action.mididevice.Device;
 import de.tobias.playpad.midi.Midi;
 import de.tobias.playpad.view.ColorView;
@@ -32,9 +32,9 @@ public class SingleFeedbackViewController extends ContentViewController {
 
 	private PopOver colorChooser;
 
-	private SingleSimpleFeedback feedback;
+	private SingleMidiFeedback feedback;
 
-	public SingleFeedbackViewController(SingleSimpleFeedback feedback, DisplayableFeedbackColor[] colors) {
+	public SingleFeedbackViewController(SingleMidiFeedback feedback, DisplayableFeedbackColor[] colors) {
 		super("singleFeedback", "de/tobias/playpad/assets/view/option/feedback/", PlayPadMain.getUiResourceBundle());
 		this.feedback = feedback;
 
@@ -70,7 +70,7 @@ public class SingleFeedbackViewController extends ContentViewController {
 					colorChooser.hide();
 					if (item instanceof DisplayableFeedbackColor) {
 						if (event.getSource() == colorChooseDefaultButton) {
-							feedback.setFeedbackValue(((DisplayableFeedbackColor) item).midiVelocity());
+							feedback.setFeedbackValue(((DisplayableFeedbackColor) item).mapperFeedbackValue());
 							colorPreviewDefault.setFill(item.getPaint());
 							setColorChooseButtonColor(item.getPaint(), colorChooseDefaultButton);
 						}
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/pad/PadDragListener.java b/PlayWall/src/de/tobias/playpad/viewcontroller/pad/PadDragListener.java
index 2dc9956d..2c86eb3a 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/pad/PadDragListener.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/pad/PadDragListener.java
@@ -143,7 +143,7 @@ public class PadDragListener {
 				if (sourcePad.getController() != null) {
 					IPadViewV2 padView = sourcePad.getController().getView();
 					padView.setContentView(sourcePad);
-					padView.addDefaultButton(sourcePad);
+					padView.addDefaultElement(sourcePad);
 				}
 			}
 		}
diff --git a/PlayWallCore/src/de/tobias/playpad/Displayable.java b/PlayWallCore/src/de/tobias/playpad/Displayable.java
index 5f5499a1..232003e4 100644
--- a/PlayWallCore/src/de/tobias/playpad/Displayable.java
+++ b/PlayWallCore/src/de/tobias/playpad/Displayable.java
@@ -14,6 +14,8 @@ public interface Displayable {
 
 	/**
 	 * Optional Method for a displayable cell
+	 * 
+	 * @return Einstellungen für dieses Objetkt.
 	 */
 	public default ContentViewController getSettingsViewController() {
 		return null;
diff --git a/PlayWallCore/src/de/tobias/playpad/PlayPad.java b/PlayWallCore/src/de/tobias/playpad/PlayPad.java
index 877bd5d9..ba0648a6 100644
--- a/PlayWallCore/src/de/tobias/playpad/PlayPad.java
+++ b/PlayWallCore/src/de/tobias/playpad/PlayPad.java
@@ -76,7 +76,6 @@ public interface PlayPad {
 	 * 
 	 * @return PadListener
 	 * 
-	 * @see 5.0.0
 	 */
 	public List<PadListener> getPadListener();
 
diff --git a/PlayWallCore/src/de/tobias/playpad/PlayPadPlugin.java b/PlayWallCore/src/de/tobias/playpad/PlayPadPlugin.java
index 148f84bb..cdd07653 100644
--- a/PlayWallCore/src/de/tobias/playpad/PlayPadPlugin.java
+++ b/PlayWallCore/src/de/tobias/playpad/PlayPadPlugin.java
@@ -6,7 +6,7 @@ public final class PlayPadPlugin {
 
 	private static PlayPad implementation;
 	private static RegistryCollection registryCollection;
-	
+
 	private Project currentProject;
 
 	public static PlayPad getImplementation() {
@@ -20,7 +20,7 @@ public final class PlayPadPlugin {
 	/**
 	 * Gibt die Implementierung für die Registries
 	 * 
-	 * @return
+	 * @return Registry Collection Impl
 	 */
 	public static RegistryCollection getRegistryCollection() {
 		return registryCollection;
@@ -29,7 +29,7 @@ public final class PlayPadPlugin {
 	protected static void setRegistryCollection(RegistryCollection registryCollection) {
 		PlayPadPlugin.registryCollection = registryCollection;
 	}
-	
+
 	public Project getCurrentproject() {
 		return currentProject;
 	}
diff --git a/PlayWallCore/src/de/tobias/playpad/action/Action.java b/PlayWallCore/src/de/tobias/playpad/action/Action.java
index f142d444..6f7b1027 100644
--- a/PlayWallCore/src/de/tobias/playpad/action/Action.java
+++ b/PlayWallCore/src/de/tobias/playpad/action/Action.java
@@ -13,12 +13,13 @@ import de.tobias.playpad.project.Project;
 import de.tobias.playpad.viewcontroller.main.IMainViewController;
 
 /**
- * This class is the base of all program actions, that can be triggered by a mapper. This class handle all input form an mapper.
+ * Diese Klasse ist die Basis für alle Actions, die durch Mapper auftreten. Die Klasse verarbeitet dabei allen Input und führt die Listener
+ * aus.
  * 
  * @author tobias
  * @version 5.0.0
  * 
- * @see Mapper
+ * @see Mapper Mapper sind die Schnittstelle zur Hardware und bestandteil einer Action.
  */
 public abstract class Action implements ActionDisplayable, Cloneable {
 
@@ -30,7 +31,7 @@ public abstract class Action implements ActionDisplayable, Cloneable {
 	 * @param mapping
 	 *            mapping
 	 */
-	protected void setMapping(Mapping mapping) {
+	protected void setMappingRef(Mapping mapping) {
 		this.mapping = mapping;
 	}
 
@@ -81,6 +82,9 @@ public abstract class Action implements ActionDisplayable, Cloneable {
 	 */
 	public abstract void initFeedback(Project project, IMainViewController controller);
 
+	/**
+	 * Cleared das Feedback auf dem Mapper für diese Action.
+	 */
 	public abstract void clearFeedback();
 
 	/**
@@ -146,5 +150,12 @@ public abstract class Action implements ActionDisplayable, Cloneable {
 	 */
 	public abstract void save(Element root);
 
+	/**
+	 * Dupliziert das Objekt.
+	 * 
+	 * @return Cloned Object
+	 * @throws CloneNotSupportedException
+	 *             Clone Fehlgeschlagen
+	 */
 	public abstract Action cloneAction() throws CloneNotSupportedException;
 }
diff --git a/PlayWallCore/src/de/tobias/playpad/action/ActionConnect.java b/PlayWallCore/src/de/tobias/playpad/action/ActionConnect.java
index ae744a77..65ba0857 100644
--- a/PlayWallCore/src/de/tobias/playpad/action/ActionConnect.java
+++ b/PlayWallCore/src/de/tobias/playpad/action/ActionConnect.java
@@ -5,15 +5,59 @@ import java.util.List;
 import de.tobias.playpad.settings.Profile;
 import javafx.scene.control.TreeItem;
 
+/**
+ * Verwalter einer Action für die Instance und GUI.
+ * 
+ * @author tobias
+ *
+ * @since 5.0.0
+ * 
+ * @see Action Implementierung der eigentlichen Action.
+ */
 public abstract class ActionConnect {
 
+	/**
+	 * Erstellt ein TreeItem für die Grupierung der Actions.
+	 * 
+	 * @param actions
+	 *            Liste der alle Actionen dieses Types.
+	 * @param mapping
+	 *            Mapping, indem die Actions sind.
+	 * @return TreeItem
+	 */
 	public abstract TreeItem<ActionDisplayable> getTreeViewForActions(List<Action> actions, Mapping mapping);
 
+	/**
+	 * Initialisiert ein Mapping mit allen möglichen Action Varianten. Dies ist nötig, damit alle möglichen Actions in den Einstellungen
+	 * aufgelistet werden können.
+	 * 
+	 * @param mapping
+	 *            Mapping
+	 * @param profile
+	 *            Profile für Einstellungen
+	 */
 	public abstract void initActionType(Mapping mapping, Profile profile);
 
+	/**
+	 * Erstellt eine neue Instance der Aktion.
+	 * 
+	 * @return Neue Instance.
+	 */
 	public abstract Action newInstance();
 
+	/**
+	 * Gibt die Art der Action zurück. Gibt Auskunft über die Anordnung in den Einstellungen.
+	 * 
+	 * @return Art der Aktion
+	 * 
+	 * @see ActionType
+	 */
 	public abstract ActionType geActionType();
 
+	/**
+	 * Gibt die ID der Action zurück.
+	 * 
+	 * @return ID
+	 */
 	public abstract String getType();
 }
diff --git a/PlayWallCore/src/de/tobias/playpad/action/ActionDisplayable.java b/PlayWallCore/src/de/tobias/playpad/action/ActionDisplayable.java
index a9609053..5c89514d 100644
--- a/PlayWallCore/src/de/tobias/playpad/action/ActionDisplayable.java
+++ b/PlayWallCore/src/de/tobias/playpad/action/ActionDisplayable.java
@@ -4,8 +4,26 @@ import de.tobias.playpad.Displayable;
 import de.tobias.playpad.viewcontroller.IMappingTabViewController;
 import de.tobias.utils.ui.ContentViewController;
 
+/**
+ * Einn zusätzliches Interface für die Klasse {@link ActionConnect} oder {@link Action} mit der es möglich ist für ein ActionType oder eine
+ * Action Einstellungen anzuzeigen.
+ * 
+ * @author tobias
+ * 
+ * @since 5.0.0
+ *
+ */
 public interface ActionDisplayable extends Displayable {
 
+	/**
+	 * Erlaubt es einen ViewController für diesen ActionType oder die Action zu schalten.
+	 * 
+	 * @param mapping
+	 *            Aktuelles Mapping
+	 * @param controller
+	 *            Aktueller ViewController für das Mapping
+	 * @return ViewController für den ActionType
+	 */
 	public default ContentViewController getActionSettingsViewController(Mapping mapping, IMappingTabViewController controller) {
 		return null;
 	}
diff --git a/PlayWallCore/src/de/tobias/playpad/action/ActionSerializer.java b/PlayWallCore/src/de/tobias/playpad/action/ActionSerializer.java
index 321714fe..ff4c629b 100644
--- a/PlayWallCore/src/de/tobias/playpad/action/ActionSerializer.java
+++ b/PlayWallCore/src/de/tobias/playpad/action/ActionSerializer.java
@@ -6,6 +6,7 @@ import org.dom4j.Element;
 
 import de.tobias.playpad.PlayPadPlugin;
 import de.tobias.playpad.action.mapper.Mapper;
+import de.tobias.playpad.action.mapper.MapperSerializer;
 import de.tobias.playpad.registry.NoSuchComponentException;
 import de.tobias.playpad.xml.XMLDeserializer;
 import de.tobias.playpad.xml.XMLHandler;
diff --git a/PlayWallCore/src/de/tobias/playpad/action/ActionType.java b/PlayWallCore/src/de/tobias/playpad/action/ActionType.java
index 21836940..4d562d98 100644
--- a/PlayWallCore/src/de/tobias/playpad/action/ActionType.java
+++ b/PlayWallCore/src/de/tobias/playpad/action/ActionType.java
@@ -1,8 +1,21 @@
 package de.tobias.playpad.action;
 
+/**
+ * Art der Action.
+ * 
+ * @author tobias
+ *
+ * @since 5.0.0
+ */
 public enum ActionType {
 
+	/**
+	 * Steuerung einer Action, wie Kachel.
+	 */
 	CONTROL,
+	/**
+	 * Einstellungen ändern, wie Mute.
+	 */
 	SETTINGS;
 
 }
diff --git a/PlayWallCore/src/de/tobias/playpad/action/Mapping.java b/PlayWallCore/src/de/tobias/playpad/action/Mapping.java
index 718327a1..b4a422d8 100644
--- a/PlayWallCore/src/de/tobias/playpad/action/Mapping.java
+++ b/PlayWallCore/src/de/tobias/playpad/action/Mapping.java
@@ -7,9 +7,8 @@ import java.util.Set;
 import java.util.UUID;
 import java.util.stream.Collectors;
 
-import com.sun.scenario.effect.ColorAdjust;
-
 import de.tobias.playpad.PlayPadPlugin;
+import de.tobias.playpad.action.feedback.ColorAdjuster;
 import de.tobias.playpad.action.mapper.Mapper;
 import de.tobias.playpad.action.mapper.MapperConnect;
 import de.tobias.playpad.action.mapper.MapperConnectFeedbackable;
@@ -21,6 +20,7 @@ import de.tobias.playpad.viewcontroller.main.IMainViewController;
 import javafx.beans.property.SimpleStringProperty;
 import javafx.beans.property.StringProperty;
 
+// COMMENT Mapping
 public class Mapping implements Cloneable, ActionDisplayable {
 
 	private String name;
@@ -92,7 +92,7 @@ public class Mapping implements Cloneable, ActionDisplayable {
 			}
 		}
 		mapping.put(newAction, new ArrayList<>());
-		newAction.setMapping(this);
+		newAction.setMappingRef(this);
 		return true;
 	}
 
@@ -180,7 +180,7 @@ public class Mapping implements Cloneable, ActionDisplayable {
 	}
 	
 	public void adjustPadColorToMapper(Project project) {
-		
+		ColorAdjuster.applyColorsToMappers(project);
 	}
 
 	@Override
diff --git a/PlayWallCore/src/de/tobias/playpad/action/MappingList.java b/PlayWallCore/src/de/tobias/playpad/action/MappingList.java
index bd9774d1..0f0f03c9 100644
--- a/PlayWallCore/src/de/tobias/playpad/action/MappingList.java
+++ b/PlayWallCore/src/de/tobias/playpad/action/MappingList.java
@@ -19,6 +19,7 @@ import org.dom4j.io.XMLWriter;
 import de.tobias.playpad.settings.Profile;
 import de.tobias.playpad.xml.XMLHandler;
 
+// COMMENT MappingList
 public class MappingList extends ArrayList<Mapping> {
 
 	private static final long serialVersionUID = 1L;
@@ -93,12 +94,12 @@ public class MappingList extends ArrayList<Mapping> {
 
 		XMLHandler<Mapping> handler = new XMLHandler<>(rootElement);
 		handler.saveElements(MAPPING, this, new MappingSerializer());
-		
+
 		if (Files.notExists(path)) {
 			Files.createDirectories(path.getParent());
 			Files.createFile(path);
 		}
-		
+
 		XMLHandler.save(path, document);
 	}
 
@@ -110,7 +111,7 @@ public class MappingList extends ArrayList<Mapping> {
 		Element rootElement = document.getRootElement();
 
 		MappingSerializer mappingSerializer = new MappingSerializer(profile);
-		mapping = mappingSerializer.loadElement(rootElement);		
+		mapping = mappingSerializer.loadElement(rootElement);
 		mapping.setUuid(UUID.randomUUID());
 
 		return mapping;
diff --git a/PlayWallCore/src/de/tobias/playpad/action/feedback/ColorAdjuster.java b/PlayWallCore/src/de/tobias/playpad/action/feedback/ColorAdjuster.java
index aa16d884..2a5c0b1d 100644
--- a/PlayWallCore/src/de/tobias/playpad/action/feedback/ColorAdjuster.java
+++ b/PlayWallCore/src/de/tobias/playpad/action/feedback/ColorAdjuster.java
@@ -12,9 +12,27 @@ import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.project.Project;
 import de.tobias.playpad.settings.Profile;
 import javafx.scene.paint.Color;
+import javafx.scene.paint.Paint;
 
+/**
+ * Eine Klasse mit nützlichen Methoden um die Farben bei den Mappern anzupassen.
+ * 
+ * @author tobias
+ * 
+ * @since 5.1.0
+ * 
+ * @see ColorAdjustable Action muss dieses Interface dafür Implementieren, damit die Farbe Automatisch zum pad gemacht wird.
+ * @see ColorAssociator Mapper muss dieses Interface implemetieren, damit die entsprechenden Farbe gefunden werden kann
+ *
+ */
 public class ColorAdjuster {
 
+	/**
+	 * Übernimmt die Farben des Pads und den verknüpften Aktionen zu einem Pad auf die Mapper.
+	 * 
+	 * @param project
+	 *            Aktuelles Projekt.
+	 */
 	public static void applyColorsToMappers(Project project) {
 		// Apply Layout to Mapper
 		Set<Action> actions = Profile.currentProfile().getMappings().getActiveMapping().getActions();
@@ -32,6 +50,8 @@ public class ColorAdjuster {
 		}
 	}
 
+	// COMMENT ColorAdjuster
+
 	private static void mapColorForMapper(ColorAdjustable cartAction, Mapper mapper, Project project) {
 		MapperFeedbackable feedbackable = (MapperFeedbackable) mapper;
 		if (feedbackable.supportFeedback() && mapper instanceof ColorAssociator) {
@@ -58,14 +78,44 @@ public class ColorAdjuster {
 			}
 
 			if (layoutStdColor != null) {
-				DisplayableFeedbackColor associator = Mapper.searchColor(colorAssociator, FeedbackMessage.STANDARD, layoutStdColor);
-				colorAssociator.setColor(FeedbackMessage.STANDARD, associator.midiVelocity());
+				DisplayableFeedbackColor associator = searchColor(colorAssociator, FeedbackMessage.STANDARD, layoutStdColor);
+				colorAssociator.setColor(FeedbackMessage.STANDARD, associator.mapperFeedbackValue());
 			}
 
 			if (layoutEvColor != null) {
-				DisplayableFeedbackColor associator = Mapper.searchColor(colorAssociator, FeedbackMessage.EVENT, layoutEvColor);
-				colorAssociator.setColor(FeedbackMessage.EVENT, associator.midiVelocity());
+				DisplayableFeedbackColor associator = searchColor(colorAssociator, FeedbackMessage.EVENT, layoutEvColor);
+				colorAssociator.setColor(FeedbackMessage.EVENT, associator.mapperFeedbackValue());
 			}
 		}
 	}
+
+	protected static DisplayableFeedbackColor searchColor(ColorAssociator colorAssociator, FeedbackMessage message, Color color) {
+		DisplayableFeedbackColor minColor = colorAssociator.map(color);
+		if (minColor != null) {
+			return minColor;
+		}
+		double minVal = 1;
+
+		for (DisplayableFeedbackColor feedbackColor : colorAssociator.getColors()) {
+			Paint paint = feedbackColor.getPaint();
+			if (paint instanceof Color) {
+				Color c = (Color) paint;
+				double diff = Math.sqrt(Math.pow(c.getRed() - color.getRed(), 2) + Math.pow(c.getGreen() - color.getGreen(), 2)
+						+ Math.pow(c.getBlue() - color.getBlue(), 2));
+				if (minVal > diff) {
+					minVal = diff;
+					minColor = feedbackColor;
+				}
+			}
+		}
+		if (minColor != null && minVal < 0.35) {
+			return minColor;
+		} else if (message == FeedbackMessage.STANDARD) {
+			return colorAssociator.getDefaultStandardColor();
+		} else if (message == FeedbackMessage.EVENT) {
+			return colorAssociator.getDefaultEventColor();
+		} else {
+			return null;
+		}
+	}
 }
diff --git a/PlayWallCore/src/de/tobias/playpad/action/feedback/DisplayableFeedbackColor.java b/PlayWallCore/src/de/tobias/playpad/action/feedback/DisplayableFeedbackColor.java
index bddd6f72..034496de 100644
--- a/PlayWallCore/src/de/tobias/playpad/action/feedback/DisplayableFeedbackColor.java
+++ b/PlayWallCore/src/de/tobias/playpad/action/feedback/DisplayableFeedbackColor.java
@@ -4,6 +4,6 @@ import de.tobias.playpad.DisplayableColor;
 
 public interface DisplayableFeedbackColor extends DisplayableColor {
 
-	public int midiVelocity();
+	public int mapperFeedbackValue();
 
 }
diff --git a/PlayWallCore/src/de/tobias/playpad/action/feedback/Feedback.java b/PlayWallCore/src/de/tobias/playpad/action/feedback/Feedback.java
index e72c59d5..1ae1aadc 100644
--- a/PlayWallCore/src/de/tobias/playpad/action/feedback/Feedback.java
+++ b/PlayWallCore/src/de/tobias/playpad/action/feedback/Feedback.java
@@ -2,16 +2,63 @@ package de.tobias.playpad.action.feedback;
 
 import org.dom4j.Element;
 
+import de.tobias.playpad.action.mapper.Mapper;
+
+/**
+ * Das ist die Abstrakte Klasse für ein Feedback. Jedes Mapper Gerät kann eine eigene Klasse dafür entwickeln. Allerdings müssen gibt es ur
+ * eine beschränkte Anzahl an Typen von Feedbacks.
+ * 
+ * @author tobias
+ * 
+ * @since 5.0.0
+ *
+ * @see FeedbackType Type des Feedbacks. Damit wird es im Mapper initalisiert.
+ * @see Mapper#initFeedback() Damit wird das Feedback initalisiert im Mapper.
+ */
 public abstract class Feedback {
 
+	/**
+	 * Gibt den Wert für das Gerät zurück, für eine bestimmte Aktion.
+	 * 
+	 * @param message
+	 *            Art der Feedback Meldung
+	 * @return Wert für den Mapper
+	 */
 	public abstract int getValueForFeedbackMessage(FeedbackMessage message);
 
+	/**
+	 * Setzt den Wert für eine Feedback Meldung.
+	 * 
+	 * @param feedbackMessage
+	 *            Art der Feedback Meldung
+	 * @param value
+	 *            Wert für den Mapper
+	 */
 	public abstract void setFeedback(FeedbackMessage feedbackMessage, int value);
 
-	public abstract void load(Element root);
+	/**
+	 * Lädt alle Informationen aus einem XML Objekt.
+	 * 
+	 * @param feedbackObject
+	 *            XML Object.
+	 */
+	public abstract void load(Element feedbackObject);
 
-	public abstract void save(Element root);
+	/**
+	 * Speichert die Informationen des Feedbacks in ein XML Objekt.
+	 * 
+	 * @param feedbackObject
+	 *            Oberstes Objekt der XML Daten
+	 */
+	public abstract void save(Element feedbackObject);
 
-	public abstract Feedback cloneFeedback() throws CloneNotSupportedException ;
+	/**
+	 * Dupliziert ein FeedbackObjeck.
+	 * 
+	 * @return Duplikat.
+	 * @throws CloneNotSupportedException
+	 *             Clone Fehlerhaft
+	 */
+	public abstract Feedback cloneFeedback() throws CloneNotSupportedException;
 
 }
diff --git a/PlayWallCore/src/de/tobias/playpad/action/feedback/FeedbackMessage.java b/PlayWallCore/src/de/tobias/playpad/action/feedback/FeedbackMessage.java
index 6b9ed3ce..564019e1 100644
--- a/PlayWallCore/src/de/tobias/playpad/action/feedback/FeedbackMessage.java
+++ b/PlayWallCore/src/de/tobias/playpad/action/feedback/FeedbackMessage.java
@@ -1,9 +1,30 @@
 package de.tobias.playpad.action.feedback;
 
+/**
+ * Arten von Feedback Meldungen.
+ * 
+ * @author tobias
+ *
+ * @since 5.0.0
+ * 
+ * @see Feedback#getValueForFeedbackMessage(FeedbackMessage)
+ */
 public enum FeedbackMessage {
 
+	/**
+	 * Feedback Aus.
+	 */
 	OFF,
+	/**
+	 * Standart bei keiner Aktion.
+	 */
 	STANDARD,
+	/**
+	 * Besondere Aktion.
+	 */
 	EVENT,
+	/**
+	 * Wichtiger Hinweis auf dem Mapper.
+	 */
 	WARNING;
 }
diff --git a/PlayWallCore/src/de/tobias/playpad/action/mapper/Mapper.java b/PlayWallCore/src/de/tobias/playpad/action/mapper/Mapper.java
index a64f8af9..2275187d 100644
--- a/PlayWallCore/src/de/tobias/playpad/action/mapper/Mapper.java
+++ b/PlayWallCore/src/de/tobias/playpad/action/mapper/Mapper.java
@@ -4,63 +4,93 @@ import org.dom4j.Element;
 
 import de.tobias.playpad.Displayable;
 import de.tobias.playpad.action.Action;
-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.feedback.Feedback;
 import de.tobias.playpad.action.feedback.FeedbackType;
-import javafx.scene.paint.Color;
-import javafx.scene.paint.Paint;
 
+/**
+ * Abstrakte Klasse für das Handling von Mappern. Die Aktionen und Handler werden von der Entsprechenden Aktion verwaltet, die dazu gehört.
+ * Jeder Mapper muss zu einer Aktion gehören. Zu jedem Mapper gehört auch ein Feedback. Dieses wird mittels Interfaces in der konktreten
+ * Implementation definiert. Diese abstrakte Klasse verwaltet allerdings nur den Type des Feedbacks. Die eigentloche Implementierung des
+ * Feedbacks ist Aufgabe des konkreten Mappers.
+ * 
+ * @author tobias
+ *
+ * @since 5.0.0
+ * 
+ * @see Action Aktion, zu der ein Mapper gehört.
+ * @see Feedback Feedback für ein Mapper.
+ */
 public abstract class Mapper implements Displayable, Cloneable {
 
+	/**
+	 * Feedback für diesen Mapper. (Beispiel Feedback für eine Taste an einem MIDI Gerät.
+	 */
 	protected FeedbackType feedbackType;
 
+	/**
+	 * Setzt den FeedbackType des Mappers und initalisiert ihn.
+	 * 
+	 * @param feedbackType
+	 *            neuer FeedbackType
+	 * 
+	 * @see Mapper#initFeedback() wird automatisch aufgerufen.
+	 * 
+	 */
+	@Deprecated // Referenz auf Action, da Action den FeedbackType schon hat
 	public void setFeedbackType(FeedbackType feedbackType) {
 		this.feedbackType = feedbackType;
 		initFeedback();
 	}
 
+	/**
+	 * Gibt den FeedbackType für den entsprechenden Mapper zurück.
+	 * 
+	 * @return FeedbackType für den Mapper.
+	 */
+	@Deprecated
 	public FeedbackType getFeedbackType() {
 		return feedbackType;
 	}
 
-	public abstract String getType();
+	/**
+	 * Muss die entsprechende Implementierung des Feedbacks, sofern überhaupt benütigt initialisieren. Standart Implementierung ist leer, da
+	 * optionale Methode.
+	 */
+	public void initFeedback() {
+
+	}
 
-	protected abstract void initFeedback();
+	/**
+	 * ID des Mappers.
+	 * 
+	 * @return IDs
+	 */
+	public abstract String getType();
 
+	/**
+	 * Deserialisierung der Daten
+	 * 
+	 * @param element
+	 *            XML Element
+	 * @param action
+	 *            Zugehörige Action
+	 */
 	public abstract void load(Element element, Action action);
 
-	public abstract void save(Element element, Action action);
+	/**
+	 * Speichert die Einstellungen eines Mappers.
+	 * 
+	 * @param element
+	 *            Oberstes Objekt der XML Daten
+	 */
+	public abstract void save(Element element);
 
+	/**
+	 * Dupliziert ein Mapper Objekt.
+	 * 
+	 * @return Duplikat.
+	 * @throws CloneNotSupportedException Clone Fehlgeschlagen
+	 */
 	public abstract Mapper cloneMapper() throws CloneNotSupportedException;
 
-	public static DisplayableFeedbackColor searchColor(ColorAssociator colorAssociator, FeedbackMessage message, Color color) {
-		DisplayableFeedbackColor minColor = colorAssociator.map(color);
-		if (minColor != null) {
-			return minColor;
-		}
-		double minVal = 1;
-
-		for (DisplayableFeedbackColor feedbackColor : colorAssociator.getColors()) {
-			Paint paint = feedbackColor.getPaint();
-			if (paint instanceof Color) {
-				Color c = (Color) paint;
-				double diff = Math.sqrt(Math.pow(c.getRed() - color.getRed(), 2) + Math.pow(c.getGreen() - color.getGreen(), 2)
-						+ Math.pow(c.getBlue() - color.getBlue(), 2));
-				if (minVal > diff) {
-					minVal = diff;
-					minColor = feedbackColor;
-				}
-			}
-		}
-		if (minColor != null && minVal < 0.35) {
-			return minColor;
-		} else if (message == FeedbackMessage.STANDARD) {
-			return colorAssociator.getDefaultStandardColor();
-		} else if (message == FeedbackMessage.EVENT) {
-			return colorAssociator.getDefaultEventColor();
-		} else {
-			return null;
-		}
-	}
 }
diff --git a/PlayWallCore/src/de/tobias/playpad/action/MapperSerializer.java b/PlayWallCore/src/de/tobias/playpad/action/mapper/MapperSerializer.java
similarity index 83%
rename from PlayWallCore/src/de/tobias/playpad/action/MapperSerializer.java
rename to PlayWallCore/src/de/tobias/playpad/action/mapper/MapperSerializer.java
index 20a03215..604f33b3 100644
--- a/PlayWallCore/src/de/tobias/playpad/action/MapperSerializer.java
+++ b/PlayWallCore/src/de/tobias/playpad/action/mapper/MapperSerializer.java
@@ -1,14 +1,20 @@
-package de.tobias.playpad.action;
+package de.tobias.playpad.action.mapper;
 
 import org.dom4j.Element;
 
 import de.tobias.playpad.PlayPadPlugin;
-import de.tobias.playpad.action.mapper.Mapper;
-import de.tobias.playpad.action.mapper.MapperConnect;
+import de.tobias.playpad.action.Action;
 import de.tobias.playpad.registry.NoSuchComponentException;
 import de.tobias.playpad.xml.XMLDeserializer;
 import de.tobias.playpad.xml.XMLSerializer;
 
+/**
+ * Laden und Speichern von Mappern (Array von Mappern)
+ * 
+ * @author tobias
+ *
+ * @since 5.0.1
+ */
 public class MapperSerializer implements XMLSerializer<Mapper>, XMLDeserializer<Mapper> {
 
 	private static final String MAPPER_TYPE = "type";
@@ -18,7 +24,7 @@ public class MapperSerializer implements XMLSerializer<Mapper>, XMLDeserializer<
 	public MapperSerializer(Action action) {
 		this.action = action;
 	}
-
+	
 	@Override
 	public Mapper loadElement(Element element) {
 		String mapperType = element.attributeValue(MAPPER_TYPE);
@@ -39,7 +45,7 @@ public class MapperSerializer implements XMLSerializer<Mapper>, XMLDeserializer<
 	@Override
 	public void saveElement(Element newElement, Mapper data) {
 		newElement.addAttribute(MAPPER_TYPE, data.getType());
-		data.save(newElement, action);
+		data.save(newElement);
 
 	}
 
diff --git a/PlayWallCore/src/de/tobias/playpad/action/mididevice/Device.java b/PlayWallCore/src/de/tobias/playpad/action/mididevice/Device.java
index 031fb34a..e8d46339 100644
--- a/PlayWallCore/src/de/tobias/playpad/action/mididevice/Device.java
+++ b/PlayWallCore/src/de/tobias/playpad/action/mididevice/Device.java
@@ -17,7 +17,8 @@ import de.tobias.playpad.midi.device.DeviceRegistry;
  * Erstellen automatisch auf Implementierung. Mögliche Interfaces: DeviceColorAssociatorConnector
  * 
  * @author tobias
- *
+ * 
+ * @since 5.0.0
  */
 public abstract class Device extends EventDispatcher implements Listener {
 
diff --git a/PlayWallCore/src/de/tobias/playpad/design/CartDesign.java b/PlayWallCore/src/de/tobias/playpad/design/CartDesign.java
index b57416d0..0e9027f1 100644
--- a/PlayWallCore/src/de/tobias/playpad/design/CartDesign.java
+++ b/PlayWallCore/src/de/tobias/playpad/design/CartDesign.java
@@ -19,11 +19,8 @@ public interface CartDesign {
 	 */
 	public void save(Element rootElement);
 
-	/**
+	/*
 	 * Wird in einem neuen Thread aufgerufen
-	 * 
-	 * @param controller
-	 * @param warning
 	 */
 	public abstract void handleWarning(IPadViewControllerV2 controller, Warning warning, GlobalDesign animate);
 
diff --git a/PlayWallCore/src/de/tobias/playpad/design/GlobalDesign.java b/PlayWallCore/src/de/tobias/playpad/design/GlobalDesign.java
index a0c101c0..8936f501 100644
--- a/PlayWallCore/src/de/tobias/playpad/design/GlobalDesign.java
+++ b/PlayWallCore/src/de/tobias/playpad/design/GlobalDesign.java
@@ -47,11 +47,8 @@ public interface GlobalDesign {
 
 	public double getPadHeight();
 
-	/**
+	/*
 	 * Wird in einem neuen Thread aufgerufen
-	 * 
-	 * @param controller
-	 * @param warning
 	 */
 	public void handleWarning(IPadViewControllerV2 controller, Warning warning);
 
diff --git a/PlayWallCore/src/de/tobias/playpad/pad/Pad.java b/PlayWallCore/src/de/tobias/playpad/pad/Pad.java
index 5c08543e..585cba77 100644
--- a/PlayWallCore/src/de/tobias/playpad/pad/Pad.java
+++ b/PlayWallCore/src/de/tobias/playpad/pad/Pad.java
@@ -247,7 +247,7 @@ public class Pad {
 	/**
 	 * Returns either the fade settings of this pad or the global settings
 	 * 
-	 * @return
+	 * @return Fade
 	 */
 	public Fade getFade() {
 		if (fadeProperty.isNull().get()) {
diff --git a/PlayWallCore/src/de/tobias/playpad/pad/view/IPadViewV2.java b/PlayWallCore/src/de/tobias/playpad/pad/view/IPadViewV2.java
index ef729afa..d14022dc 100644
--- a/PlayWallCore/src/de/tobias/playpad/pad/view/IPadViewV2.java
+++ b/PlayWallCore/src/de/tobias/playpad/pad/view/IPadViewV2.java
@@ -60,6 +60,7 @@ public interface IPadViewV2 {
 	 */
 	public void showBusyView(boolean enable);
 
+	// COMMENT IPadViewV2
 	public void pseudoClassState(PseudoClass playCalss, boolean b);
 
 	public void setStyle(String string);
@@ -82,9 +83,21 @@ public interface IPadViewV2 {
 	 */
 	public void setPlaybarVisible(boolean visible);
 
-	public void addDefaultButton(Pad pad);
+	/**
+	 * Fügt die Standart Elemente der PadView hinzu. Die GUI Element sind Abhängig vom Pad, und welchen Content es hat.
+	 * 
+	 * @param pad
+	 *            Pad
+	 */
+	public void addDefaultElement(Pad pad);
 
-	public void applyStyleClasses();
+	/**
+	 * Fügt die StyleClasses der PadView hinzu. Die Methode wird vom Controller aufgerufen.
+	 */
+	public void applyStyleClasses(int index);
 
+	/**
+	 * Entfernt die StyleClasses vom PadView. Die Methode wird vom Controller aufgerufen.
+	 */
 	public void removeStyleClasses();
 }
diff --git a/PlayWallCore/src/de/tobias/playpad/registry/DefaultRegistry.java b/PlayWallCore/src/de/tobias/playpad/registry/DefaultRegistry.java
index 06de75c7..527370af 100644
--- a/PlayWallCore/src/de/tobias/playpad/registry/DefaultRegistry.java
+++ b/PlayWallCore/src/de/tobias/playpad/registry/DefaultRegistry.java
@@ -5,7 +5,7 @@ package de.tobias.playpad.registry;
  * 
  * @author tobias - s0553746
  *
- * @param <C>
+ * @param <C> Type der Daten
  */
 public interface DefaultRegistry<C> extends Registry<C> {
 
diff --git a/PlayWallCore/src/de/tobias/playpad/registry/WriteOnlyRegistry.java b/PlayWallCore/src/de/tobias/playpad/registry/WriteOnlyRegistry.java
index 1aa3a269..8a6f8859 100644
--- a/PlayWallCore/src/de/tobias/playpad/registry/WriteOnlyRegistry.java
+++ b/PlayWallCore/src/de/tobias/playpad/registry/WriteOnlyRegistry.java
@@ -34,6 +34,8 @@ public interface WriteOnlyRegistry<C> {
 	 * 
 	 * @param url
 	 *            URL zur Deklaration
+	 * @param loader
+	 *            ClassLoader
 	 * @throws IOException
 	 *             Fehler beim Laden der Datei.
 	 * @throws DocumentException
diff --git a/PlayWallCore/src/de/tobias/playpad/settings/ProfileReference.java b/PlayWallCore/src/de/tobias/playpad/settings/ProfileReference.java
index ba3a13d0..c50d1772 100644
--- a/PlayWallCore/src/de/tobias/playpad/settings/ProfileReference.java
+++ b/PlayWallCore/src/de/tobias/playpad/settings/ProfileReference.java
@@ -103,7 +103,8 @@ public class ProfileReference implements Displayable {
 	 * Sucht eine Referenz zu einer UUID raus.
 	 * 
 	 * @param profile
-	 * @return
+	 *            UUID des Profiles
+	 * @return ProfileReferenz für die UUID
 	 */
 	public static ProfileReference getReference(UUID profile) {
 		for (ProfileReference ref : profiles) {
@@ -128,8 +129,9 @@ public class ProfileReference implements Displayable {
 	 * 
 	 * @param name
 	 *            Profile Name
-	 * @return
+	 * @return Referenz auf das neue Profile.
 	 * @throws UnsupportedEncodingException
+	 *             Fehler beim Speichern des XML
 	 * @throws IOException
 	 *             IO Fehler
 	 */
@@ -283,7 +285,8 @@ public class ProfileReference implements Displayable {
 	 * Gibt einen Pfad für einen Dateinamen in diesem Profile zurück.
 	 * 
 	 * @param name
-	 * @return
+	 *            Name der Datei
+	 * @return Path für die Datei
 	 */
 	public Path getCustomFilePath(String name) {
 		return ApplicationUtils.getApplication().getPath(PathType.CONFIGURATION, getFileName(), name);
diff --git a/PlayWallCore/src/de/tobias/playpad/tigger/TriggerItem.java b/PlayWallCore/src/de/tobias/playpad/tigger/TriggerItem.java
index 9fe601a3..496a00b4 100644
--- a/PlayWallCore/src/de/tobias/playpad/tigger/TriggerItem.java
+++ b/PlayWallCore/src/de/tobias/playpad/tigger/TriggerItem.java
@@ -50,6 +50,7 @@ public abstract class TriggerItem {
 	 * You must call super.load
 	 * 
 	 * @param element
+	 *            XML Element
 	 */
 	public void load(Element element) {
 		if (element.attributeValue(DURATION_ATTR) != null) {
@@ -61,6 +62,7 @@ public abstract class TriggerItem {
 	 * You must call super.save
 	 * 
 	 * @param element
+	 *            XMl Element
 	 */
 	public void save(Element element) {
 		element.addAttribute(DURATION_ATTR, String.valueOf(durationFromPoint.toMillis()));
diff --git a/PlayWallCore/src/de/tobias/playpad/view/main/MainLayoutConnect.java b/PlayWallCore/src/de/tobias/playpad/view/main/MainLayoutConnect.java
index c81e610e..2bec2f28 100644
--- a/PlayWallCore/src/de/tobias/playpad/view/main/MainLayoutConnect.java
+++ b/PlayWallCore/src/de/tobias/playpad/view/main/MainLayoutConnect.java
@@ -31,6 +31,9 @@ public interface MainLayoutConnect {
 	/**
 	 * Erstellt einen ViewController für die Menu/Toolbar Fläche.
 	 * 
+	 * @param mainViewRef
+	 *            Refernz auf den Main View
+	 * 
 	 * @return Neuer ViewController mit View
 	 */
 	public MenuToolbarViewController createMenuToolbar(IMainViewController mainViewRef);
diff --git a/PlayWallCore/src/de/tobias/playpad/viewcontroller/IMappingTabViewController.java b/PlayWallCore/src/de/tobias/playpad/viewcontroller/IMappingTabViewController.java
index baa8dc1c..7c28555f 100644
--- a/PlayWallCore/src/de/tobias/playpad/viewcontroller/IMappingTabViewController.java
+++ b/PlayWallCore/src/de/tobias/playpad/viewcontroller/IMappingTabViewController.java
@@ -2,7 +2,20 @@ package de.tobias.playpad.viewcontroller;
 
 import de.tobias.playpad.action.Action;
 
+/**
+ * Schnittstelle für den Mapping Tab ViewController. Der Controller hat zwei Bereiche: ActionType (Optional), Action
+ * 
+ * @author tobias
+ *
+ * @since 5.0.0
+ */
 public interface IMappingTabViewController {
 
+	/**
+	 * Zeigt im Action Teil der View die Einstellungen zu einer Action an.
+	 * 
+	 * @param action
+	 *            Action
+	 */
 	public void showMapperFor(Action action);
 }
diff --git a/PlayWallCore/src/de/tobias/playpad/viewcontroller/SettingsTabViewController.java b/PlayWallCore/src/de/tobias/playpad/viewcontroller/SettingsTabViewController.java
index fba59413..a8b9338e 100644
--- a/PlayWallCore/src/de/tobias/playpad/viewcontroller/SettingsTabViewController.java
+++ b/PlayWallCore/src/de/tobias/playpad/viewcontroller/SettingsTabViewController.java
@@ -77,7 +77,7 @@ public abstract class SettingsTabViewController extends ContentViewController {
 	/**
 	 * Gibt den Namen für den Tab zurück.
 	 * 
-	 * @return
+	 * @return Display Name des Tabs.
 	 */
 	public abstract String name();
 }
diff --git a/PlayWallCore/src/de/tobias/playpad/viewcontroller/main/IMainViewController.java b/PlayWallCore/src/de/tobias/playpad/viewcontroller/main/IMainViewController.java
index 54550f4d..8a31a01c 100644
--- a/PlayWallCore/src/de/tobias/playpad/viewcontroller/main/IMainViewController.java
+++ b/PlayWallCore/src/de/tobias/playpad/viewcontroller/main/IMainViewController.java
@@ -135,6 +135,7 @@ public interface IMainViewController extends NotificationHandler {
 	 * Setzt das MainLayout des Hauptfensters.
 	 * 
 	 * @param mainLayoutConnect
+	 *            Neues Layout
 	 */
 	public void setMainLayout(MainLayoutConnect mainLayoutConnect);
 
diff --git a/PlayWallCore/src/de/tobias/playpad/xml/XMLDeserializer.java b/PlayWallCore/src/de/tobias/playpad/xml/XMLDeserializer.java
index b458b2bb..44581a3f 100644
--- a/PlayWallCore/src/de/tobias/playpad/xml/XMLDeserializer.java
+++ b/PlayWallCore/src/de/tobias/playpad/xml/XMLDeserializer.java
@@ -16,7 +16,8 @@ public interface XMLDeserializer<T> {
 	 * Lädt ein Object auf XML Daten.
 	 * 
 	 * @param element
-	 * @return
+	 *            XML Objekt
+	 * @return Daten aus dem XML
 	 */
 	public T loadElement(Element element);
 
diff --git a/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/midi/device/mk2/LaunchPadMK2Color.java b/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/midi/device/mk2/LaunchPadMK2Color.java
index 931b455a..71770ee1 100644
--- a/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/midi/device/mk2/LaunchPadMK2Color.java
+++ b/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/midi/device/mk2/LaunchPadMK2Color.java
@@ -64,7 +64,7 @@ public enum LaunchPadMK2Color implements DisplayableFeedbackColor {
 	}
 
 	@Override
-	public int midiVelocity() {
+	public int mapperFeedbackValue() {
 		return midi;
 	}
 
@@ -75,7 +75,7 @@ public enum LaunchPadMK2Color implements DisplayableFeedbackColor {
 
 	public static DisplayableFeedbackColor valueOf(int id) {
 		for (LaunchPadMK2Color color : values()) {
-			if (color.midiVelocity() == id) {
+			if (color.mapperFeedbackValue() == id) {
 				return color;
 			}
 		}
diff --git a/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/midi/device/s/LaunchPadSColor.java b/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/midi/device/s/LaunchPadSColor.java
index 1094ba31..d6bfb63c 100644
--- a/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/midi/device/s/LaunchPadSColor.java
+++ b/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/midi/device/s/LaunchPadSColor.java
@@ -20,7 +20,7 @@ public enum LaunchPadSColor implements DisplayableFeedbackColor {
 	}
 
 	@Override
-	public int midiVelocity() {
+	public int mapperFeedbackValue() {
 		return midi;
 	}
 
@@ -31,7 +31,7 @@ public enum LaunchPadSColor implements DisplayableFeedbackColor {
 
 	public static DisplayableFeedbackColor valueOf(int id) {
 		for (LaunchPadSColor color : values()) {
-			if (color.midiVelocity() == id) {
+			if (color.mapperFeedbackValue() == id) {
 				return color;
 			}
 		}
-- 
GitLab