diff --git a/org.fortiss.tooling.base.ui/META-INF/MANIFEST.MF b/org.fortiss.tooling.base.ui/META-INF/MANIFEST.MF
index 06f0fb5951ecc075a1930ce048cf632f03a4a616..bdbe05db77371dded41167275e7276f89a01c6df 100644
--- a/org.fortiss.tooling.base.ui/META-INF/MANIFEST.MF
+++ b/org.fortiss.tooling.base.ui/META-INF/MANIFEST.MF
@@ -33,6 +33,9 @@ Export-Package: org.fortiss.tooling.base.ui,
  org.fortiss.tooling.base.ui.editpart.request,
  org.fortiss.tooling.base.ui.extension.base,
  org.fortiss.tooling.base.ui.fieldassist,
+ org.fortiss.tooling.base.ui.internal.command,
+ org.fortiss.tooling.base.ui.javafx.control.contentprovider,
+ org.fortiss.tooling.base.ui.javafx.control.treetableview,
  org.fortiss.tooling.base.ui.layout,
  org.fortiss.tooling.base.ui.layout.auto,
  org.fortiss.tooling.base.ui.library,
diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/contentprovider/.ratings b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/contentprovider/.ratings
new file mode 100644
index 0000000000000000000000000000000000000000..3c8352c1875bb9e72dee65676123e23d8370524a
--- /dev/null
+++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/contentprovider/.ratings
@@ -0,0 +1,2 @@
+ChildrenContentProvider.java 01bc9b3232e4209f4e97355762b620c59eddc677 GREEN
+SameTypeContentProvider.java f6c0381a3264dc62dd9b3d3a21e0b2cf5fb00dc1 GREEN
diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/contentprovider/ChildrenContentProvider.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/contentprovider/ChildrenContentProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..01bc9b3232e4209f4e97355762b620c59eddc677
--- /dev/null
+++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/contentprovider/ChildrenContentProvider.java
@@ -0,0 +1,43 @@
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
+|                                                                          |
+| Licensed under the Apache License, Version 2.0 (the "License");          |
+| you may not use this file except in compliance with the License.         |
+| You may obtain a copy of the License at                                  |
+|                                                                          |
+|    http://www.apache.org/licenses/LICENSE-2.0                            |
+|                                                                          |
+| Unless required by applicable law or agreed to in writing, software      |
+| distributed under the License is distributed on an "AS IS" BASIS,        |
+| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+| See the License for the specific language governing permissions and      |
+| limitations under the License.                                           |
++--------------------------------------------------------------------------*/
+package org.fortiss.tooling.base.ui.javafx.control.contentprovider;
+
+import static org.fortiss.tooling.common.util.LambdaUtils.filterType;
+
+import java.util.Collection;
+
+import org.fortiss.tooling.base.model.element.IHierarchicElement;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
+import org.fortiss.tooling.kernel.model.INamedElement;
+
+/**
+ * Content provider that collects all children of the given type from an externally defined root
+ * node.
+ * 
+ * @author diewald
+ */
+public class ChildrenContentProvider<T extends IHierarchicElement & INamedElement> extends
+		DynamicTreeContentProviderBase<T> {
+
+	/** {@inheritDoc} */
+	@SuppressWarnings("unchecked")
+	@Override
+	protected Collection<? extends T> getChildren(T current) {
+		// The cast is safe by the construction of the Parameter 'T'.
+		return (Collection<? extends T>)filterType(current.getContainedElements(),
+				INamedElement.class);
+	}
+}
diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/contentprovider/SameTypeContentProvider.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/contentprovider/SameTypeContentProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..f6c0381a3264dc62dd9b3d3a21e0b2cf5fb00dc1
--- /dev/null
+++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/contentprovider/SameTypeContentProvider.java
@@ -0,0 +1,59 @@
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
+|                                                                          |
+| Licensed under the Apache License, Version 2.0 (the "License");          |
+| you may not use this file except in compliance with the License.         |
+| You may obtain a copy of the License at                                  |
+|                                                                          |
+|    http://www.apache.org/licenses/LICENSE-2.0                            |
+|                                                                          |
+| Unless required by applicable law or agreed to in writing, software      |
+| distributed under the License is distributed on an "AS IS" BASIS,        |
+| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+| See the License for the specific language governing permissions and      |
+| limitations under the License.                                           |
++--------------------------------------------------------------------------*/
+package org.fortiss.tooling.base.ui.javafx.control.contentprovider;
+
+import static org.fortiss.tooling.common.util.LambdaUtils.filterStream;
+
+import java.util.Collection;
+import java.util.stream.Collectors;
+
+import org.eclipse.emf.ecore.EClass;
+import org.fortiss.tooling.base.model.element.IHierarchicElement;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
+import org.fortiss.tooling.kernel.model.INamedElement;
+
+/**
+ * Content provider that collects all children of the given type from an externally defined root
+ * node. Nodes that have a different type are not traversed further even if they have children of
+ * the given type.
+ * 
+ * @author diewald
+ */
+public class SameTypeContentProvider<T extends IHierarchicElement & INamedElement> extends
+		DynamicTreeContentProviderBase<T> {
+
+	/** EObject type to check against. */
+	EClass type;
+
+	/** Constructor. */
+	public SameTypeContentProvider(EClass type) {
+		this.type = type;
+	}
+
+	/** {@inheritDoc} */
+	@SuppressWarnings("unchecked")
+	@Override
+	protected Collection<? extends T> getChildren(T current) {
+		// The cast is safe by the construction of the Parameter 'T'.
+		// @CodeFormatterOff
+		Collection<? extends T> children = (Collection<? extends T>)
+				filterStream(current.getContainedElements(), e -> e instanceof INamedElement)
+				.filter(e -> (e.getClass().equals(type)) || (type.isInstance(e)))
+				.collect(Collectors.toList());
+		// @CodeFormatterOn
+		return children;
+	}
+}
diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/treetableview/.ratings b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/treetableview/.ratings
new file mode 100644
index 0000000000000000000000000000000000000000..74ecded403f0ef2a8aa97292c26a5a964c6c4788
--- /dev/null
+++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/treetableview/.ratings
@@ -0,0 +1 @@
+HierarchicModelElementTreeViewer.java 8662b201c3a459f3ebe3620970652f7a3f90270e GREEN
diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/treetableview/HierarchicModelElementTreeViewer.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/treetableview/HierarchicModelElementTreeViewer.java
new file mode 100644
index 0000000000000000000000000000000000000000..8662b201c3a459f3ebe3620970652f7a3f90270e
--- /dev/null
+++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/treetableview/HierarchicModelElementTreeViewer.java
@@ -0,0 +1,101 @@
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
+|                                                                          |
+| Licensed under the Apache License, Version 2.0 (the "License");          |
+| you may not use this file except in compliance with the License.         |
+| You may obtain a copy of the License at                                  |
+|                                                                          |
+|    http://www.apache.org/licenses/LICENSE-2.0                            |
+|                                                                          |
+| Unless required by applicable law or agreed to in writing, software      |
+| distributed under the License is distributed on an "AS IS" BASIS,        |
+| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+| See the License for the specific language governing permissions and      |
+| limitations under the License.                                           |
++--------------------------------------------------------------------------*/
+package org.fortiss.tooling.base.ui.javafx.control.treetableview;
+
+import javafx.embed.swt.SWTFXUtils;
+import javafx.scene.Node;
+import javafx.scene.control.ContextMenu;
+import javafx.scene.control.TreeView;
+import javafx.scene.image.Image;
+import javafx.scene.image.ImageView;
+
+import org.fortiss.tooling.base.model.element.IHierarchicElement;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeUIProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeViewer;
+import org.fortiss.tooling.kernel.model.INamedCommentedElement;
+import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService;
+
+/**
+ * TreeViewer that constructs a DynamicTreeViewer whose UI provider uses the methods and kernel
+ * services for {@link IHierarchicElement}s and {@link INamedCommentedElement}s.
+ * The Viewer uses a composition principle where a client must provide {@link TreeView} (JavaFX), a
+ * root element (AF3), and a content provider that selects the elements to be displayed.
+ * 
+ * @author diewald
+ */
+public class HierarchicModelElementTreeViewer<T extends IHierarchicElement & INamedCommentedElement> {
+
+	/** References the constructed {@link DynamicTreeViewer} "controller". */
+	protected DynamicTreeViewer<T> dynTreeViewer;
+
+	/** Constructor. */
+	public HierarchicModelElementTreeViewer(TreeView<T> treeView, T modelRoot,
+			DynamicTreeContentProviderBase<T> contentProvider) {
+		DynamicTreeUIProviderBase<T> uiProvider = createContentUIProvider();
+		dynTreeViewer =
+				new DynamicTreeViewer<T>(treeView, modelRoot, true, 0, contentProvider, uiProvider);
+	}
+
+	/**
+	 * Creates a default UI provider for {@link DynamicTreeViewer}s that present
+	 * {@link IHierarchicElement}s. It also uses the {@link IModelElementHandlerService} for a nicer
+	 * visual appearance.
+	 * <p>
+	 * Externalize this method into a class when subclassing seems appropriate.
+	 * 
+	 * @return The constructed UI Provider.
+	 */
+	protected DynamicTreeUIProviderBase<T> createContentUIProvider() {
+		return new DynamicTreeUIProviderBase<T>() {
+
+			/** {@inheritDoc} */
+			@Override
+			public String getLabel(T element) {
+				return element.getName();
+			}
+
+			/** {@inheritDoc} */
+			@Override
+			public Node getIconNode(T element) {
+				org.eclipse.swt.graphics.Image icon =
+						IModelElementHandlerService.getInstance().getIcon(element);
+				if(icon != null) {
+					Image fxImage = SWTFXUtils.toFXImage(icon.getImageData(), null);
+					return new ImageView(fxImage);
+				}
+				return null;
+			}
+
+			/** {@inheritDoc} */
+			@Override
+			public ContextMenu createContextMenu(T element) {
+				ContextMenu menu = new ContextMenu();
+				// TODO (3209): Add sensible default operations for AF3 elements, if they are
+				// needed. Otherwise, use a list provided by subclasses that defines the menu items
+				// and their order. The code below is taken from SystemFOCUS and shall serve as a
+				// reference.
+				// MenuItem item = new MenuItem("Delete '" + getLabel(element) + "'.");
+				// item.setOnAction(event -> {
+				// new DeleteOperation(element).delete();
+				// viewer.update();
+				// });
+				// menu.getItems().add(item);
+				return menu;
+			}
+		};
+	}
+}
diff --git a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings
index 2c43176d8d282288e059bb8598af63cd71fc0875..5a8e3c2f67fefbf495075ea019b15c71187b3940 100644
--- a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings
+++ b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings
@@ -1,5 +1,5 @@
 AngleUtils.java 462551eae71738ff51f92c9906bff9a21a375d2b GREEN
-AnnotationUtils.java 51072e0c39c83fc5695db76ffaaa430c2ce51508 GREEN
+AnnotationUtils.java 8381bc9190df78f69add1164b974a6cbaae09678 GREEN
 BaseMathUtils.java d680e6f41a8986e5fb696fe303b16548108cf78b GREEN
 BaseModelElementUtils.java b8775b7a462efc168cf79a017aa3377a782d10f6 GREEN
 ConstraintsBaseUtils.java ef6a1178df614fc03bbdec64d4d15b1565ae8551 GREEN
diff --git a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/AnnotationUtils.java b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/AnnotationUtils.java
index 51072e0c39c83fc5695db76ffaaa430c2ce51508..8381bc9190df78f69add1164b974a6cbaae09678 100644
--- a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/AnnotationUtils.java
+++ b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/AnnotationUtils.java
@@ -34,6 +34,8 @@ import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EClassifier;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.fortiss.tooling.base.ToolingBaseActivator;
+import org.fortiss.tooling.base.annotation.AnnotationEntry;
+import org.fortiss.tooling.base.annotation.AnnotationValueService;
 import org.fortiss.tooling.base.annotation.IAnnotationValueService;
 import org.fortiss.tooling.base.annotation.valueprovider.AnnotationInstSpec;
 import org.fortiss.tooling.base.annotation.valueprovider.EStructuralFeatureDescriptor;
@@ -138,6 +140,22 @@ public class AnnotationUtils {
 		return getAnnotationInternal(modelElement, clazz);
 	}
 
+	/**
+	 * Returns the {@link IAnnotationValueProvider} of the given {@code annotationType}.
+	 * 
+	 * @param element
+	 *            {@link IModelElement} to which an annotation of the given type is bound (required
+	 *            by the service).
+	 * @param annotationType
+	 *            Annotation type.
+	 * @return The corresponding value provider or {@code null} if none is found.
+	 */
+	public static IAnnotationValueProvider<IAnnotatedSpecification> getAnnotationValueProvider(
+			IModelElement element, Class<IAnnotatedSpecification> annotationType) {
+		AnnotationEntry annEntry = AnnotationValueService.getInstance().getAnnotationEntry(element);
+		return annEntry.getAnnotationValueProvider(annotationType);
+	}
+
 	/**
 	 * Returns all {@link IAnnotatedSpecification}s attached to the given {@link IModelElement}.
 	 * 
diff --git a/org.fortiss.tooling.common.ui/.classpath b/org.fortiss.tooling.common.ui/.classpath
index e58bfccdaebc5166fa4d2bcae69af846839dbe77..60cbbc2bfe58e7595f319b6caf23fca6a28ff47a 100644
--- a/org.fortiss.tooling.common.ui/.classpath
+++ b/org.fortiss.tooling.common.ui/.classpath
@@ -4,6 +4,7 @@
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="src" path="external-src"/>
+	<classpathentry kind="src" path="res"/>
 	<classpathentry exported="true" kind="lib" path="lib/org.conqat.ide.commons.gef.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/org.conqat.ide.commons.ui.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/jgrapht-jdk1.6_src.jar"/>
diff --git a/org.fortiss.tooling.common.ui/META-INF/MANIFEST.MF b/org.fortiss.tooling.common.ui/META-INF/MANIFEST.MF
index 0535ba0778b5aba6970966563898313ce897df2e..d2965d39dbc710933b81ad962eabc97332956865 100644
--- a/org.fortiss.tooling.common.ui/META-INF/MANIFEST.MF
+++ b/org.fortiss.tooling.common.ui/META-INF/MANIFEST.MF
@@ -18,7 +18,8 @@ Require-Bundle: org.fortiss.tooling.common;bundle-version="2.13.0";visibility:=r
  org.eclipse.ui.ide;bundle-version="3.7.0";visibility:=reexport,
  org.eclipse.jface.text;bundle-version="3.7.1";visibility:=reexport,
  org.eclipse.fx.ui.workbench3;bundle-version="0.9.0";visibility:=reexport,
- org.eclipse.fx.javafx;bundle-version="2.2.0";resolution:=optional;visibility:=reexport
+ org.eclipse.fx.javafx;bundle-version="2.2.0";resolution:=optional;visibility:=reexport,
+ org.eclipse.fx.osgi.util;bundle-version="0.9.0";resolution:=optional
 Bundle-ClassPath: .,
  lib/org.conqat.ide.commons.gef.jar,
  lib/org.conqat.ide.commons.ui.jar,
@@ -72,7 +73,9 @@ Export-Package: org.conqat.ide.commons.gef,
  org.eclipse.wb.swt,
  org.eclipse.wb.swt.layout.grouplayout,
  org.eclipse.wb.swt.widgets.baseline,
+ org.fortiss.tooling.common.ui,
  org.fortiss.tooling.common.ui.javafx,
+ org.fortiss.tooling.common.ui.javafx.control.treetableview,
  org.jgrapht,
  org.jgrapht.alg,
  org.jgrapht.alg.util,
diff --git a/org.fortiss.tooling.common.ui/build.properties b/org.fortiss.tooling.common.ui/build.properties
index cd7a139199e0563abe5130d672bac57672f6bb11..2a4968a8f7590df4c2ada9528e3154397826601d 100644
--- a/org.fortiss.tooling.common.ui/build.properties
+++ b/org.fortiss.tooling.common.ui/build.properties
@@ -5,9 +5,11 @@ bin.includes = .,\
                lib/org.conqat.ide.commons.gef.jar,\
                lib/org.conqat.ide.commons.ui.jar,\
                lib/jgrapht-jdk1.6_src.jar,\
-               lib/swt-grouplayout.jar
+               lib/swt-grouplayout.jar,\
+               res/
 jars.compile.order = .
 source.. = src/,\
+           res/,\
            external-src/
 output.. = build/
 src.includes = lib/
diff --git a/org.fortiss.tooling.common.ui/res/aerofx/License.txt b/org.fortiss.tooling.common.ui/res/aerofx/License.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9b0439486519cda591b3072847c49941c14da845
--- /dev/null
+++ b/org.fortiss.tooling.common.ui/res/aerofx/License.txt
@@ -0,0 +1,26 @@
+Copyright (c) 2014, Matthias Meidinger
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+The views and conclusions contained in the software and documentation are those
+of the authors and should not be interpreted as representing official policies,
+either expressed or implied, of the FreeBSD Project.
\ No newline at end of file
diff --git a/org.fortiss.tooling.common.ui/res/aerofx/win7.css b/org.fortiss.tooling.common.ui/res/aerofx/win7.css
new file mode 100644
index 0000000000000000000000000000000000000000..801f91ff63fe0c14e42f3a0182590f5a17f73965
--- /dev/null
+++ b/org.fortiss.tooling.common.ui/res/aerofx/win7.css
@@ -0,0 +1,473 @@
+/*
+ * Copyright (c) 2014, Matthias Meidinger
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions and the following disclaimer in the documentation
+ *    and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those
+ * of the authors and should not be interpreted as representing official policies,
+ * either expressed or implied, of the FreeBSD Project.
+ */
+
+.root{
+    -fx-text-base-color: black;
+    -fx-text-fill: -fx-text-base-color;
+
+    /* This is the default Windows-font */
+    -fx-font-family: "Segoe UI Semibold";
+    -fx-font-size: 10.5;
+
+    /* For debugging purposes*/
+    -fx-background-color: rgb(240,240,240);
+
+    -fx-disabled-opacity: 0.6;
+}
+
+.text{
+    -fx-font-smoothing-type: lcd;
+}
+
+/* disabled controls */
+.button:disabled,
+.toggle-button:disabled,
+.radio-button:disabled,
+.check-box:disabled,
+.hyperlink:disabled,
+.menu-button:disabled,
+.split-menu-button:disabled,
+.slider:disabled,
+.scroll-pane:disabled,
+.progress-bar:disabled,
+.progress-indicator:disabled,
+.text-input:disabled,
+.choice-box:disabled,
+.combo-box-base:disabled,
+.list-view:disabled,
+.tree-view:disabled,
+.table-view:disabled,
+.tree-table-view:disabled,
+.tab-pane:disabled,
+.tab-pane > .tab-header-area > .headers-region > .tab:disabled {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+/* mnemonics */
+.button:show-mnemonics > .mnemonic-underline,
+.toggle-button:show-mnemonics > .mnemonic-underline,
+.radio-button:show-mnemonics > .mnemonic-underline,
+.check-box:show-mnemonics > .mnemonic-underline,
+.hyperlink:show-mnemonics > .mnemonic-underline,
+.split-menu-button:show-mnemonics > .mnemonic-underline,
+.menu-button:show-mnemonics > .mnemonic-underline {
+    -fx-stroke: -fx-text-base-color;
+}
+
+.mnemonic-underline{
+    -fx-stroke: transparent;
+}
+
+
+
+
+/********************************************
+*                                           *
+*       Button & Default-Button             *
+*                                           *
+*********************************************/
+.button-focus-border{
+    -fx-stroke: black;
+    -fx-stroke-dash-array: 1;
+    -fx-stroke-width: 1px;
+    -fx-stroke-line-cap: butt;
+    -fx-stroke-type: inside;
+}
+
+.button, .toggle-button{
+    -fx-alignment: center;
+    -fx-background-color:
+        rgb(112,112,112),
+        linear-gradient(rgb(252,252,252), rgb(252,252,252)),
+        linear-gradient(rgb(242,242,242) 0%, rgb(235,235,235) 49%, rgb(221,221,221) 50%, rgb(207,207,207) 100%);
+    -fx-background-insets: 0,1,2;
+    -fx-background-radius: 3,2,1;
+    -fx-padding: 4 4 3 3;
+    -fx-text-fill: -fx-text-base-color;
+}
+
+.button:hover{
+    -fx-background-color:
+        rgb(60,127,177),
+        linear-gradient(rgb(250,253,254),rgb(250,253,254)),
+        linear-gradient(rgb(234, 246, 253) 0%, rgb(217, 240, 252) 49%, rgb(190, 230, 253) 50%, rgb(167, 217, 245) 100%);
+}
+
+.button:default{
+    -fx-background-color:
+        rgb(60,127,177),
+        linear-gradient(rgb(47,212,255), rgb(47,212,255)),
+        linear-gradient(rgb(234,246,252) 0%, rgb(228,243,252) 49%, rgb(202,233,250) 50%, rgb(182,222,245) 100%);
+}
+
+.button:armed, .toggle-button:armed{
+    -fx-background-color:
+        rgb(44,98,139),
+        linear-gradient(rgb(158,176,186), rgb(158,176,186)),
+        linear-gradient(rgb(229,244,252) 0%, rgb(196,229,246) 49%, rgb(152,209,239) 50%, rgb(104,179,219) 100%);
+}
+
+
+/********************************************
+*                                           *
+*       TextField                           *
+*                                           *
+*********************************************/
+.text-field{
+   /* If four values are used, the sides are top, right, bottom, left. */
+   -fx-border-color: rgb(170,170,178) rgb(218,220,230) rgb(226,231.0,239) rgb(226,224,234);
+   -fx-background-color: rgb(255,255,255);
+   -fx-padding: 0.0em;
+   -fx-cursor: text;
+   -fx-effect: null;
+   -fx-pref-height: 20px;
+}
+.text-field:focused{
+    -fx-border-color: rgb(61,123,173) rgb(164,201,227) rgb(183,217,237) rgb(181,207,231);
+    /* Remove the blue glow on focus */
+    -fx-background-insets: 0, 0, 0, 0;
+    -fx-effect: null;
+}
+
+
+/********************************************
+*                                           *
+*       CheckBox                            *
+*                                           *
+*********************************************/
+.check-box-focus-border{
+    -fx-stroke: black;
+    -fx-stroke-dash-array: 1;
+    -fx-stroke-width: 1px;
+    -fx-stroke-line-cap: butt;
+    -fx-stroke-type: inside;
+}
+/* TODO: Style the mark by using a fx-shape */
+.check-box{
+    -fx-label-padding: 0.0em 0.0em 0.0em 0.05em;
+}
+
+.check-box > .box{
+    -fx-padding: 0.7em;
+    -fx-background-insets: 0, 2, 4;
+    -fx-border-color: rgb(140.0, 141.0, 141.0);
+    -fx-background-color:
+        rgb(244,244,244),
+        linear-gradient(to bottom right, rgb(174,179,185), rgb(233,233,234)),
+        linear-gradient(to bottom right, rgb(203,207,213), rgb(246,246,246));
+    -fx-scale-x: 0.75;
+    -fx-scale-y: 0.75;
+}
+
+.check-box:hover > .box {
+    -fx-border-color: rgb(85,134,163);
+    -fx-background-color:
+        rgb(222,249,250),
+        linear-gradient(to bottom right, rgb(121,198,249), rgb(207,236,253)),
+        linear-gradient(to bottom right, rgb(177,223,253), rgb(231,247,254));
+}
+
+.check-box:pressed > .box{
+    -fx-border-color: rgb(44,98,139);
+        -fx-background-color:
+            rgb(194,228,246),
+            linear-gradient(to bottom right, rgb(94,182,247), rgb(194,228,246)),
+            linear-gradient(to bottom right, rgb(157,213,252), rgb(224,244,254));
+}
+
+.check-box:disabled > .box{
+    -fx-background-color:
+        linear-gradient(rgb(239.0, 239.0, 239.0), rgb(250.0, 250.0, 250.0));
+}
+
+.check-box:selected > .box{
+    -fx-padding: -0.208333em 0 0.208333em 0.23em;
+    -fx-padding: -0.208333em 0.083333em 0.208333em 0.23em;
+    -fx-padding: 0.166667em 0.166667em 0.25em 0.25em;
+}
+
+.check-box:selected > .box > .mark{
+    -fx-padding: 0.416667em 0.416667em 0.5em 0.5em;
+    -fx-shape: "M 5.1806931,9.0173267 7.5232674,12.170792 11.307426,4.4673266 10.091089,3.9717821 7.2980199,9.6029703 6.1267328,7.9361386 z";
+    -fx-background-color: rgb(76,97,152);
+}
+
+.check-box:selected:hover > .box > .mark{
+    -fx-background-color: rgb(4,34,113);
+}
+
+.check-box:selected:pressed > .box > .mark{
+    -fx-background-color: rgb(44,83,148);
+}
+
+
+/********************************************
+*                                           *
+*       RadioButton                         *
+*                                           *
+*********************************************/
+.radio-button-focus-border{
+    -fx-stroke: black;
+    -fx-stroke-dash-array: 1;
+    -fx-stroke-width: 1px;
+    -fx-stroke-line-cap: butt;
+    -fx-stroke-type: inside;
+}
+
+.radio-button{
+    -fx-label-padding: 0.0em 0.0em 0.0em 0.35em;
+}
+
+.radio-button > .text{
+    -fx-translate-y: 1px;
+}
+
+.radio-button > .radio{
+    -fx-pref-height: 12px;
+    -fx-pref-width: 12px;
+    -fx-background-color:
+        rgb(147,148,148),
+        rgb(239,239,239),
+        linear-gradient(to bottom right, rgb(179,184,189), rgb(235,235,235)),
+        linear-gradient(to bottom right, rgb(203,207,213), rgb(241,241,241));
+    -fx-background-insets: 0,1,2,3;
+    -fx-background-radius: 1em;
+    -fx-padding: 0.333333em;
+}
+
+.radio-button:hover > .radio{
+    -fx-background-color:
+        rgb(93,140,167),
+        rgb(216,244,246),
+        linear-gradient(to bottom right, rgb(128,202,249), rgb(210,238,253)),
+        linear-gradient(to bottom right, rgb(177,223,253), rgb(223,243,254));
+    -fx-background-insets: 0,1,2,3;
+}
+
+.radio-button:pressed > .radio{
+    -fx-background-color:
+        rgb(58,103,135),
+        rgb(198,239,241),
+        linear-gradient(to bottom right, rgb(90,179,246), rgb(190,230,252)),
+        linear-gradient(to bottom right, rgb(147,208,252), rgb(208,237,253));
+    -fx-background-insets: 0,1,2,3;
+    -fx-background-radius: 1.0em;
+    -fx-padding: 0.333333em;
+}
+
+.radio-button:selected > .radio > .dot{
+    -fx-padding: 0.333333em;
+    -fx-pref-height: 4px;
+    -fx-pref-width: 4px;
+    -fx-background-color:
+        rgb(20,47,68),
+        rgb(11,130,199),
+        linear-gradient(to bottom right, rgb(255,255,255) 20%, rgb(11,130,199) 60%);
+    -fx-background-insets: 0,1,2;
+    -fx-background-radius: 1.0em;
+}
+
+.radio-button:selected:hover > .radio > .dot{
+   -fx-background-color:
+        rgb(20,47,68),
+        rgb(11,130,199),
+        linear-gradient(to bottom right, rgb(255,255,255) 20%, rgb(13,160,243) 60%);
+}
+
+.radio-button:selected:pressed > .radio > .dot{
+   -fx-background-color:
+        rgb(20,47,68),
+        rgb(11,130,199),
+    linear-gradient(to bottom right, rgb(255,255,255) 20%, rgb(7,84,131) 60%);
+}
+
+.radio-button:show-mnemonics .mnemonic-underline{
+    -fx-stroke: -fx-text-base-color;
+}
+
+/********************************************
+*                                           *
+*       TabPane                             *
+*                                           *
+*********************************************/
+.tab-pane{
+    -fx-tab-min-height: 1.8333em; /* 22 */
+    -fx-tab-max-height: 1.8333em; /* 22 */
+}
+
+.tab-pane:top > .tab-content-area {
+    -fx-background-color: rgb(255,255,255);
+    -fx-border-color: transparent rgb(137,140,149) rgb(137,140,149) rgb(137,140,149);
+}
+
+.tab-pane:top > .tab-header-area {
+    -fx-padding: 0.416667em 0.166667em 0.0em 0.416667em; /* 5 2 0 5 */
+    -fx-padding: 0.416667em 5 0.0em 0.416667em; /* 5 2 0 5 */
+}
+
+.tab-pane > *.tab-header-area > .headers-region {
+    -fx-translate-x: -5px;
+}
+
+.tab-pane > *.tab-header-area > *.tab-header-background{
+    -fx-background-color: rgb(240,240,240);
+    -fx-border-color: transparent transparent rgb(137,140,149) transparent ;
+}
+
+.tab-pane > .tab-header-area > .headers-region > .tab{
+    -fx-padding: 0.083333em 0.5em 0.083333em 0.5em;
+    -fx-border-color: rgb(137,140,149);
+    -fx-background-color:
+        rgb(255,255,255),
+        linear-gradient(to bottom, rgb(242,242,242) 0%, rgb(235,235,235) 49%, rgb(221,221,221) 50%, rgb(207,207,207) 100%);
+    -fx-background-insets: 0,2 2 0 2;
+}
+
+.tab-pane > .tab-header-area > .headers-region > .tab:top{
+    -fx-border-color: rgb(244,0,0), rgb(137,140,149), rgb(137,140,149), rgb(137,140,149);
+    -fx-border-width: 1 1 1 1;
+    -fx-pref-height: 1.8em;
+}
+
+.tab-pane > .tab-header-area > .headers-region > .tab:hover{
+    -fx-border-color: rgb(60,127,177);
+    -fx-background-color:
+        rgb(255,255,255),
+        linear-gradient(to bottom, rgb(234,246,253) 0%, rgb(217,240,252) 49%, rgb(190,230,253) 50%, rgb(167,217,245) 100%);
+    -fx-background-insets: 0,2 2 0 2;
+}
+
+.tab-pane > .tab-header-area > .headers-region > .tab:selected{
+    -fx-border-color: rgb(137,140,149);
+    -fx-border-width: 1 1 0 1;
+    -fx-background-color: rgb(255,255,255);
+    -fx-pref-height: 2em;
+}
+
+.tab-pane > .tab-header-area > .headers-region > .tab:selected .focus-indicator{
+    -fx-border-width: 0;
+    -fx-border-color: transparent;
+}
+
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label {
+    -fx-alignment: CENTER;
+    -fx-text-fill: -fx-text-base-color;
+}
+
+.tab-pane.floating > .tab-content-area {
+    -fx-background-color: -fx-outer-border, -fx-background;
+    -fx-background-insets: 0, 1;
+    -fx-background-radius: 3, 2;
+    -fx-padding: 2;
+}
+
+/********************************************
+*                                           *
+*       Hyperlink                           *
+*                                           *
+*********************************************/
+.hyperlink{
+    -fx-text-fill: rgb(0,102,204);
+}
+
+.hyperlink:focused{
+    -fx-border-color: black;
+    -fx-border-style: dotted;
+}
+
+
+/********************************************
+*                                           *
+*       GroupBox                            *
+*                                           *
+*********************************************/
+.group-box-border{
+    -fx-stroke: rgb(213,223,229);
+    -fx-stroke-dash-array: 1 0;
+    -fx-stroke-width: 1px;
+    -fx-stroke-line-cap: butt;
+    -fx-stroke-type: inside;
+    -fx-arc-height: 6px;
+    -fx-arc-width: 6px;
+}
+
+
+/********************************************
+*                                           *
+*       TableView                           *
+*                                           *
+*********************************************/
+.table-view{
+    -fx-border-color: rgb(130,135,144);
+    -fx-background-color: white;
+}
+
+.table-view > column-header-background > nested-column-header > .arrow{
+    -fx-shape:null;
+}
+
+.table-view > .column-header-background > .nested-column-header > .column-header{
+    -fx-pref-height: 23px;
+    -fx-border-color: rgb(213,213,213);
+    -fx-border-width: 0 1 1 0;
+    -fx-background-color:
+        linear-gradient(to bottom, rgb(255,255,255) 0%, rgb(255,255,255) 40%, rgb(247,248,250) 41%, rgb(241,242,244) 100%);
+}
+
+.table-view > .column-header-background > .nested-column-header > .column-header:hover{
+    -fx-border-color: transparent rgb(136,203,235) rgb(147,201,227) rgb(105,187,227);
+    -fx-border-width: 0 1 1 1;
+    -fx-background-color:
+        linear-gradient(to bottom, rgb(227,247,255) 0%, rgb(227,247,255) 40%, rgb(189,237,255) 41%, rgb(183,231,251) 100%);
+}
+
+.table-view > .column-header-background > .nested-column-header > .column-header:pressed{
+    -fx-translate-x: 1px;
+    -fx-translate-y: 1px;
+    -fx-border-color: rgb(134,163,178) rgb(79,144,174) rgb(147,201,227) rgb(80,145,175);
+    -fx-border-width: 1;
+    -fx-background-color:
+        linear-gradient(to bottom, rgb(188,228,249) 0%, rgb(188,228,249) 40%, rgb(141,214,247) 41%, rgb(138,209,245) 100%);
+}
+
+.table-view > .column-header-background > .nested-column-header > .column-header > .label{
+    -fx-translate-x: 4px;
+    -fx-alignment: center-left;
+}
+
+
+/********************************************
+*                                           *
+*       Separator                           *
+*                                           *
+*********************************************/
+.separator:horizontal{
+    -fx-border-color:rgb(160,160,160);
+    -fx-border-width: 0.5;
+}
\ No newline at end of file
diff --git a/org.fortiss.tooling.common.ui/res/aquafx/License.txt b/org.fortiss.tooling.common.ui/res/aquafx/License.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0def22f5fd8bea7b46040cf44a66be549660f1d6
--- /dev/null
+++ b/org.fortiss.tooling.common.ui/res/aquafx/License.txt
@@ -0,0 +1,21 @@
+Copyright (c) 2013, Claudine Zillmann All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted
+provided that the following conditions are met:
+* Redistributions of source code must retain the above copyright notice, this list of conditions
+  and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this list of conditions
+  and the following disclaimer in the documentation and/or other materials provided with the
+  distribution.
+* Neither the name of AquaFX, the website aquafx-project.com, nor the names of its contributors may
+  be used to endorse or promote products derived from this software without specific prior written
+  permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CLAUDINE ZILLMANN BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/org.fortiss.tooling.common.ui/res/aquafx/aquafx-air.css b/org.fortiss.tooling.common.ui/res/aquafx/aquafx-air.css
new file mode 100644
index 0000000000000000000000000000000000000000..ab8bdfc2453f42a9edb16df82030ac1ef7144b43
--- /dev/null
+++ b/org.fortiss.tooling.common.ui/res/aquafx/aquafx-air.css
@@ -0,0 +1,160 @@
+.root{
+    -dark-wind: rgb(248.0, 248.0, 248.0);
+    -dark-wind-transparent: rgb(255.0, 255.0, 255.0, 0.8);
+    -dark-wind-armed: rgb(200.0, 200.0, 200.0);
+    -light-wind: rgb(255.0, 255.0, 255.0);
+    -light-wind-armed: rgb(248.0, 248.0, 248.0 );
+    -white-wind: rgb(250.0, 250.0, 250.0);
+    -light-white-wind: rgb(255.0, 255.0, 255.0);
+    -light-white-wind-armed: rgb(248.0, 248.0, 248.0);
+    -lighter-wind: rgb(255.0, 255.0, 255.0);
+    -lighter-white-wind: rgb(255.0, 255.0, 255.0);
+    
+    -fx-selected-row: -dark-wind-armed;
+    
+    -main-gradient-armed: linear-gradient(-light-wind-armed 15.0%, -dark-wind-armed 50.0%,
+       -dark-wind-armed 50.0%, -light-white-wind-armed 100.0%);
+            
+    -main-gradient: linear-gradient(-light-wind 15.0%, -dark-wind 50.0%,
+        -dark-wind 50.0%, -light-white-wind 100.0%);
+        
+    -fx-cell-hover-color: -light-wind;
+}
+
+.hyperlink {
+    -fx-text-fill: -dark-wind;
+}
+
+.button,
+.toggle-button,
+.radio-button,
+.choice-box,
+.slider,
+.text-field,
+.password-field,
+.text-area,
+.menu-button,
+.split-menu-button,
+.combo-box,
+.color-picker,
+.check-box {
+    -fx-aqua-inner-focus-color: -dark-wind-transparent;
+    -fx-aqua-outer-focus-color: -dark-wind;
+}
+
+.button{
+    -fx-aqua-start-color-1: -light-wind;
+    -fx-aqua-start-color-2: -dark-wind;
+    -fx-aqua-start-color-3: -dark-wind;
+    -fx-aqua-start-color-4: -light-white-wind;
+    -fx-aqua-end-color-1: -lighter-wind;
+    -fx-aqua-end-color-2: -light-white-wind;
+    -fx-aqua-end-color-3: -light-white-wind;
+    -fx-aqua-end-color-4: -lighter-white-wind;
+    -fx-aqua-armed-style:"linear-gradient(-light-wind 0.0%, -dark-wind-armed 100.0% ),
+        -main-gradient,
+        radial-gradient(focus-angle 180.0deg, focus-distance 95.0%, center 1.0% 50.0%,
+        radius 50.0%, -dark-wind, transparent),
+        radial-gradient(focus-angle 0.0deg, focus-distance 95.0%, center 100.0% 50.0%,
+        radius 50.0%, -dark-wind, transparent)";
+}
+
+.button:armed, .button:default:armed, .toggle-button:armed, .toggle-button:selected:armed{
+    -fx-background-color:
+        linear-gradient(-light-wind 0.0%, -dark-wind-armed 100.0% ),
+        -main-gradient,
+        radial-gradient(focus-angle 180.0deg, focus-distance 95.0%, center 1.0% 50.0%,
+        radius 50.0%, -dark-wind, transparent),
+        radial-gradient(focus-angle 0.0deg, focus-distance 95.0%, center 100.0% 50.0%,
+        radius 50.0%, -dark-wind, transparent);
+}
+
+.check-box:selected > .box,
+.check-box:indeterminate > .box,
+.radio-button:selected > .radio {
+    -fx-background-color: -main-gradient;
+}
+
+.check-box:selected:armed > .box,
+.radio-button:selected:armed > .radio {
+    -fx-background-color: -main-gradient-armed;
+}
+
+.titled-pane:focused  > .title > .arrow-button > .arrow  {
+    -fx-effect: dropshadow(one-pass-box , -dark-wind, 6.5, 0.8 , 0.0, 0.0);
+}
+
+
+/* Draws focus border around tableview */
+.table-view:focused,
+.tree-table-view:focused,
+.tree-view:focused,
+.list-view:focused  {
+    -fx-effect: dropshadow(one-pass-box , -dark-wind-transparent, 8.0, 0.8 , 0.0, 0.0);
+}
+
+.table-row-cell:odd,
+.tree-table-row-cell:odd {
+    -fx-background-color: -dark-wind;
+}
+
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled:selected, 
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:selected,
+.table-view:row-selection:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled:focused:selected:hover,
+.tree-table-view:row-selection:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:focused:selected:hover,
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:focused:selected,
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:selected, 
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:selected:hover,
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:focused:selected:hover {
+    -fx-background-color: -fx-selected-row;
+}
+
+/* When the list-cell is selected and focused */
+.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:focused:selected,
+.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected {
+    -fx-background-color: linear-gradient( -light-white-wind, -dark-wind-armed),
+     linear-gradient(-light-white-wind, -dark-wind);
+    -fx-text-fill: black;
+}
+
+/* When the ListView is _not_ focused, we show alternate selection colors */
+.list-cell:filled:selected:focused,
+.list-cell:filled:selected {
+    -fx-background-color: linear-gradient(-light-white-wind-armed, -dark-wind-armed),
+     linear-gradient(-light-white-wind-armed, -dark-wind-armed);
+    -fx-text-fill: black;
+}
+
+.list-view:horizontal:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected {
+    -fx-background-color: linear-gradient(to right, -light-white-wind, -dark-wind-armed),
+        linear-gradient(to right, -light-white-wind, -dark-wind);
+    -fx-text-fill: black;
+}
+
+.list-view:horizontal > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected {
+    -fx-background-color: linear-gradient(to right, -light-white-wind-armed, -dark-wind-armed),
+     linear-gradient(to right, -light-white-wind-armed, -dark-wind-armed);
+    -fx-text-fill: black;
+}
+
+.pagination > .pagination-control > .control-box > .bullet-button:selected {   
+    -fx-background-color: -main-gradient;
+}
+
+.progress-indicator > .determinate-indicator > .progress {
+    -fx-background-color:
+       rgb(208.0, 208.0, 208.0),
+       radial-gradient(center 50.0% 50.0%, radius 50.0%, -dark-wind, -white-wind);
+}
+
+.progress-indicator > .determinate-indicator > .tick {
+    -fx-background-color: rgb(208.0, 208.0, 208.0), black;
+}
+
+.progress-bar {
+    -fx-aqua-determinate-image: "progress_wind.png";
+}
+
+.progress-bar:indeterminate  {
+      -fx-aqua-indeterminate-color:-dark-wind;      
+}
diff --git a/org.fortiss.tooling.common.ui/res/aquafx/aquafx-earth.css b/org.fortiss.tooling.common.ui/res/aquafx/aquafx-earth.css
new file mode 100644
index 0000000000000000000000000000000000000000..b5b8a6868bd0b02973ed68fdc5d838b0836dcba7
--- /dev/null
+++ b/org.fortiss.tooling.common.ui/res/aquafx/aquafx-earth.css
@@ -0,0 +1,147 @@
+.root{
+    -dark-green: rgb(69.0, 199.0, 73.0);
+    -dark-green-transparent: rgb(69.0, 199.0, 73.0, 0.8);
+    -dark-green-armed: rgb(69.0, 154.0, 73.0);
+    -light-green: rgb(180.0, 235.0, 145.0);
+    -light-green-armed: rgb(160.0, 196.0, 139.0 );
+    -white-green: rgb(148.0, 212.0, 112.0);
+    -light-white-green: rgb(184.0, 233.0, 154.0);
+    -light-white-green-armed: rgb(163.0, 196.0, 143.0);
+    -lighter-green: rgb(219, 255, 190);
+    -lighter-white-green: rgb(206, 231, 190);
+    
+    -fx-selected-row: -dark-green;
+    
+    -main-gradient-armed: linear-gradient(-light-green-armed 15.0%, -dark-green-armed 50.0%,
+       -dark-green-armed 50.0%, -light-white-green-armed 100.0%);
+            
+    -main-gradient: linear-gradient(-light-green 15.0%, -dark-green 50.0%,
+        -dark-green 50.0%, -light-white-green 100.0%);
+        
+    -fx-cell-hover-color: -light-green;
+}
+
+.hyperlink {
+    -fx-text-fill: -dark-green;
+}
+
+.button,
+.toggle-button,
+.radio-button,
+.choice-box,
+.slider,
+.text-field,
+.password-field,
+.text-area,
+.menu-button,
+.split-menu-button,
+.combo-box,
+.color-picker,
+.check-box {
+    -fx-aqua-inner-focus-color: -dark-green-transparent;
+    -fx-aqua-outer-focus-color: -dark-green;
+}
+
+.button{
+    -fx-aqua-start-color-1: -light-green;
+    -fx-aqua-start-color-2: -dark-green;
+    -fx-aqua-start-color-3: -dark-green;
+    -fx-aqua-start-color-4: -light-white-green;
+    -fx-aqua-end-color-1: -lighter-green;
+    -fx-aqua-end-color-2: -light-white-green;
+    -fx-aqua-end-color-3: -light-white-green;
+    -fx-aqua-end-color-4: -lighter-white-green;
+    -fx-aqua-armed-style:"linear-gradient(-light-green 0.0%, -dark-green-armed 100.0% ),
+        -main-gradient,
+        radial-gradient(focus-angle 180.0deg, focus-distance 95.0%, center 1.0% 50.0%,
+        radius 50.0%, -dark-green, transparent),
+        radial-gradient(focus-angle 0.0deg, focus-distance 95.0%, center 100.0% 50.0%,
+        radius 50.0%, -dark-green, transparent)";
+}
+
+.button:armed, .button:default:armed, .toggle-button:armed, .toggle-button:selected:armed{
+    -fx-background-color:
+        linear-gradient(-light-green 0.0%, -dark-green-armed 100.0% ),
+        -main-gradient,
+        radial-gradient(focus-angle 180.0deg, focus-distance 95.0%, center 1.0% 50.0%,
+        radius 50.0%, -dark-green, transparent),
+        radial-gradient(focus-angle 0.0deg, focus-distance 95.0%, center 100.0% 50.0%,
+        radius 50.0%, -dark-green, transparent);
+}
+
+.check-box:selected > .box,
+.check-box:indeterminate > .box,
+.radio-button:selected > .radio {
+    -fx-background-color: -main-gradient;
+}
+
+.check-box:selected:armed > .box,
+.radio-button:selected:armed > .radio {
+    -fx-background-color: -main-gradient-armed;
+}
+
+.titled-pane:focused  > .title > .arrow-button > .arrow  {
+    -fx-effect: dropshadow(one-pass-box , -dark-green, 6.5, 0.8 , 0.0, 0.0);
+}
+
+
+/* Draws focus border around tableview */
+.table-view:focused,
+.tree-table-view:focused,
+.tree-view:focused,
+.list-view:focused  {
+    -fx-effect: dropshadow(one-pass-box , -dark-green-transparent, 8.0, 0.8 , 0.0, 0.0);
+}
+
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled:selected, 
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:selected,
+.table-view:row-selection:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled:focused:selected:hover,
+.tree-table-view:row-selection:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:focused:selected:hover,
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:focused:selected,
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:selected, 
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:selected:hover,
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:focused:selected:hover {
+    -fx-background-color: -fx-selected-row;
+}
+
+/* When the list-cell is selected and focused */
+.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:focused:selected,
+.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected {
+    -fx-background-color: linear-gradient( -light-white-green, -dark-green-armed),
+     linear-gradient(-light-white-green, -dark-green);
+}
+
+/* When the ListView is _not_ focused, we show alternate selection colors */
+.list-cell:filled:selected:focused,
+.list-cell:filled:selected {
+    -fx-background-color: linear-gradient(-light-white-green-armed, -dark-green-armed),
+     linear-gradient(-light-white-green-armed, -dark-green-armed);
+}
+
+.list-view:horizontal:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected {
+    -fx-background-color: linear-gradient(to right, -light-white-green, -dark-green-armed),
+        linear-gradient(to right, -light-white-green, -dark-green);
+}
+
+.list-view:horizontal > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected {
+    -fx-background-color: linear-gradient(to right, -light-white-green-armed, -dark-green-armed),
+     linear-gradient(to right, -light-white-green-armed, -dark-green-armed);
+}
+
+.pagination > .pagination-control > .control-box > .bullet-button:selected {   
+    -fx-background-color: -main-gradient;
+}
+
+.progress-indicator > .determinate-indicator > .progress {
+    -fx-background-color:
+       rgb(208.0, 208.0, 208.0),
+       radial-gradient(center 50.0% 50.0%, radius 50.0%, -dark-green, -white-green);
+}
+
+.progress-bar {
+    -fx-aqua-determinate-image: "progress_earth.png";
+}
+
+.progress-bar:indeterminate  {
+      -fx-aqua-indeterminate-color:-dark-green;      
+}
diff --git a/org.fortiss.tooling.common.ui/res/aquafx/aquafx-fire.css b/org.fortiss.tooling.common.ui/res/aquafx/aquafx-fire.css
new file mode 100644
index 0000000000000000000000000000000000000000..a845927c2f3b88d7c1bf8b5937a84e9a106a78d2
--- /dev/null
+++ b/org.fortiss.tooling.common.ui/res/aquafx/aquafx-fire.css
@@ -0,0 +1,147 @@
+.root{
+    -dark-red: rgb(226.0, 61.0, 56.0);
+    -dark-red-transparent: rgb(226.0, 61.0, 56.0, 0.8);
+    -dark-red-armed: rgb(165.0, 64.0, 59.0);
+    -light-red: rgb(251.0, 207.0, 202.0);
+    -light-red-armed: rgb(187.0, 156.0, 152.0 );
+    -orange-red: rgb(226.0, 90.0, 56.0);
+    -light-orange-red: rgb(251.0, 177.0, 175.0);
+    -light-orange-red-armed: rgb(222.0, 175.0, 174.0);
+    -lighter-red: rgb(251, 231, 228);
+    -lighter-orange-red: rgb(250, 216, 216);
+    
+    -fx-selected-row: -dark-red;
+    
+    -main-gradient-armed: linear-gradient(-light-red-armed 15.0%, -dark-red-armed 50.0%,
+       -dark-red-armed 50.0%, -light-orange-red-armed 100.0%);
+            
+    -main-gradient: linear-gradient(-light-red 15.0%, -dark-red 50.0%,
+        -dark-red 50.0%, -light-orange-red 100.0%);
+        
+    -fx-cell-hover-color: -light-red;
+}
+
+.hyperlink {
+    -fx-text-fill: -dark-red;
+}
+
+.button,
+.toggle-button,
+.radio-button,
+.choice-box,
+.slider,
+.text-field,
+.password-field,
+.text-area,
+.menu-button,
+.split-menu-button,
+.combo-box,
+.color-picker,
+.check-box {
+    -fx-aqua-inner-focus-color: -dark-red-transparent;
+    -fx-aqua-outer-focus-color: -dark-red;
+}
+
+.button{
+    -fx-aqua-start-color-1: -light-red;
+    -fx-aqua-start-color-2: -dark-red;
+    -fx-aqua-start-color-3: -dark-red;
+    -fx-aqua-start-color-4: -light-orange-red;
+    -fx-aqua-end-color-1: -lighter-red;
+    -fx-aqua-end-color-2: -light-orange-red;
+    -fx-aqua-end-color-3: -light-orange-red;
+    -fx-aqua-end-color-4: -lighter-orange-red;
+    -fx-aqua-armed-style:"linear-gradient(-light-red 0.0%, -dark-red-armed 100.0% ),
+        -main-gradient,
+        radial-gradient(focus-angle 180.0deg, focus-distance 95.0%, center 1.0% 50.0%,
+        radius 50.0%, -dark-red, transparent),
+        radial-gradient(focus-angle 0.0deg, focus-distance 95.0%, center 100.0% 50.0%,
+        radius 50.0%, -dark-red, transparent)";
+}
+
+.button:armed, .button:default:armed, .toggle-button:armed, .toggle-button:selected:armed{
+    -fx-background-color:
+        linear-gradient(-light-red 0.0%, -dark-red-armed 100.0% ),
+        -main-gradient,
+        radial-gradient(focus-angle 180.0deg, focus-distance 95.0%, center 1.0% 50.0%,
+        radius 50.0%, -dark-red, transparent),
+        radial-gradient(focus-angle 0.0deg, focus-distance 95.0%, center 100.0% 50.0%,
+        radius 50.0%, -dark-red, transparent);
+}
+
+.check-box:selected > .box,
+.check-box:indeterminate > .box,
+.radio-button:selected > .radio {
+    -fx-background-color: -main-gradient;
+}
+
+.check-box:selected:armed > .box,
+.radio-button:selected:armed > .radio {
+    -fx-background-color: -main-gradient-armed;
+}
+
+.titled-pane:focused  > .title > .arrow-button > .arrow  {
+    -fx-effect: dropshadow(one-pass-box , -dark-red, 6.5, 0.8 , 0.0, 0.0);
+}
+
+
+/* Draws focus border around tableview */
+.table-view:focused,
+.tree-table-view:focused,
+.tree-view:focused,
+.list-view:focused  {
+    -fx-effect: dropshadow(one-pass-box , -dark-red-transparent, 8.0, 0.8 , 0.0, 0.0);
+}
+
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled:selected, 
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:selected,
+.table-view:row-selection:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled:focused:selected:hover,
+.tree-table-view:row-selection:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:focused:selected:hover,
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:focused:selected,
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:selected, 
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:selected:hover,
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:focused:selected:hover {
+    -fx-background-color: -fx-selected-row;
+}
+
+/* When the list-cell is selected and focused */
+.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:focused:selected,
+.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected {
+    -fx-background-color: linear-gradient( -light-orange-red, -dark-red-armed),
+     linear-gradient(-light-orange-red, -dark-red);
+}
+
+/* When the ListView is _not_ focused, we show alternate selection colors */
+.list-cell:filled:selected:focused,
+.list-cell:filled:selected {
+    -fx-background-color: linear-gradient(-light-orange-red-armed, -dark-red-armed),
+     linear-gradient(-light-orange-red-armed, -dark-red-armed);
+}
+
+.list-view:horizontal:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected {
+    -fx-background-color: linear-gradient(to right, -light-orange-red, -dark-red-armed),
+        linear-gradient(to right, -light-orange-red, -dark-red);
+}
+
+.list-view:horizontal > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected {
+    -fx-background-color: linear-gradient(to right, -light-orange-red-armed, -dark-red-armed),
+     linear-gradient(to right, -light-orange-red-armed, -dark-red-armed);
+}
+
+.pagination > .pagination-control > .control-box > .bullet-button:selected {   
+    -fx-background-color: -main-gradient;
+}
+
+.progress-indicator > .determinate-indicator > .progress {
+    -fx-background-color:
+       rgb(208.0, 208.0, 208.0),
+       radial-gradient(center 50.0% 50.0%, radius 50.0%, -dark-red, -orange-red);
+}
+
+.progress-bar {
+    -fx-aqua-determinate-image: "progress_fire.png";
+}
+
+.progress-bar:indeterminate  {
+      -fx-aqua-indeterminate-color:-dark-red;      
+}
diff --git a/org.fortiss.tooling.common.ui/res/aquafx/aquafx.css b/org.fortiss.tooling.common.ui/res/aquafx/aquafx.css
new file mode 100644
index 0000000000000000000000000000000000000000..3c88b254955118403ccc785cd4abcc6e85957f64
--- /dev/null
+++ b/org.fortiss.tooling.common.ui/res/aquafx/aquafx.css
@@ -0,0 +1,3592 @@
+
+.root {
+
+    /* These are needed for Popup */
+    -fx-background-color: inherit;
+    -fx-background-radius: inherit;
+    -fx-background-insets: inherit;
+    -fx-padding: inherit;
+    
+    
+    
+    /****************
+    *                *
+    * AQUA STUFF    *
+    *                *
+    ****************/
+    -fx-text-base-color: black;
+    -fx-text-fill: -fx-text-base-color;
+    
+    /* background color for dialogs */
+    -fx-background-color: rgb(237.0, 237.0, 237.0);
+    /*     default font */
+    -fx-font-family: 'lucida-grande';
+    -fx-font-size: 13.0;
+    -fx-disabled-opacity: 0.6; 
+    
+     /* The color to use in ListView/TreeView/TableView to indicate hover. */
+    -fx-cell-hover-color: rgb(182.0, 214.0, 253.0);
+    
+    -toggle-selected-base:linear-gradient(rgb(94.0, 94.0, 94.0) 0.0%, rgb(120.0, 120.0, 120.0) 10.0%, 
+        rgb(150.0, 150.0, 150.0) 85.0%, rgb(177.0, 177.0, 177.0) 98.0%, rgb(97.0, 97.0, 97.0) 100.0%); 
+    
+    -toggle-armed-base:linear-gradient(rgb(87.0, 87.0, 87.0) 0.0%, rgb(113.0, 113.0, 113.0) 12.0%, 
+        rgb(125.0, 125.0, 125.0) 87.0%, rgb(129.0, 129.0, 129.0) 87.1%, rgb(155.0, 155.0, 155.0) 100.0%); 
+
+    -toggle-shadow-armed: linear-gradient(to right, rgb(87.0, 87.0, 87.0, 0.5) 0.0%, transparent 3.0%, transparent 97.0%, rgb(87.0, 87.0, 87.0, 0.5) 100.0%);
+    -toggle-shadow: linear-gradient(to right, rgb(87.0, 87.0, 87.0, 0.3) 0.0%, transparent 3.0%, transparent 97.0%, rgb(87.0, 87.0, 87.0, 0.3) 100.0%);
+
+    -choice-base: linear-gradient(rgb(255.0, 255.0, 255.0) 25.0%, rgb(243.0, 243.0, 243.0) 50.0%, rgb(236.0, 236.0, 236.0) 50.0%, rgb(243.0, 243.0, 243.0) 100.0% );
+}
+
+
+.mnemonic-underline {
+    -fx-stroke: transparent;
+}
+
+.text {
+    -fx-font-smoothing-type: lcd;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Mac OS X Icons for AquaFX                                                   *
+ *                                                                             *
+ ******************************************************************************/
+
+.aqua-icon-left {
+    -fx-shape: "m 21.476623,22.412699 15.438495,-7.462538 0.01821,16.024043 -15.521311,-7.981785 z";
+    -fx-background-color: rgb(66.0, 66.0, 66.0), linear-gradient(rgb(111.0, 111.0, 111.0), rgb(136.0, 136.0, 136.0));
+    -fx-background-insets: 4.0 0.0 3.0 0.0, 4.0 0.0 3.0 0.0; 
+    -fx-padding: 0.3em;
+    -fx-effect: innershadow( two-pass-box , rgba(0.0,0.0,0.0,0.6) , 1.5, 0.0 , 0.0 , 1.0 );
+}
+
+.aqua-icon-right {
+    -fx-shape: "M 36.862955,22.344745 21.42446,14.882207 21.40625,30.90625 36.927561,22.924465 z";
+    -fx-background-color: rgb(66.0, 66.0, 66.0), linear-gradient(rgb(111.0, 111.0, 111.0), rgb(136.0, 136.0, 136.0));
+    -fx-background-insets: 4.0 0.0 3.0 0.0, 4.0 0.0 3.0 0.0; 
+    -fx-padding: 0.3em;
+    -fx-effect: innershadow( two-pass-box , rgba(0.0,0.0,0.0,0.6) , 1.5, 0.0 , 0.0 , 1.0 );
+}
+
+.icon-share-square {
+    -fx-shape: "m 69.611802,39.995004 -12.790177,-0.03535 c -0.374468,0.09213 -0.851422,-0.09846 -0.916102,0.84819 l 0.09397,19.084778 c 0.0038,0.294514 0.171796,0.58903 0.751643,0.883545 l 24.922598,0.03535 c 0.60304,0.01989 1.125882,-0.121103 1.233244,-1.095593 l 0,-6.231906 -2.842191,2.615281 -0.07049,2.026307 -21.035173,0.117794 0.04702,-15.326815 5.931191,-0.01181 c 0.676927,-1.728175 3.055251,-2.126767 4.674468,-2.90977 z"; 
+    -fx-padding: 0.05em 0.5em 0.05em 0.5em;
+    -fx-background-color: rgb(141.0, 141.0, 141.0), rgb(141.0, 141.0, 141.0);
+    -fx-background-insets: 2.5 0.0 3.0 -1.0, 3.0 0.5 2.5 -0.5; 
+    -fx-effect: innershadow( two-pass-box , rgba(0.0,0.0,0.0,0.2) , 1.5, 0.0 , 0.0 , 1.0 );
+}
+
+.icon-share-arrow {
+    -fx-shape: "m 77.952815,36.659844 0,5.466211 c -1.042987,-0.15108 -2.227346,-0.16083 -3.770872,0.188486 -7.625243,1.625677 -9.11216,5.851797 -10.275626,11.497892 2.499753,-3.261409 3.94321,-5.366894 10.46417,-6.691396 0.92597,-0.165446 1.527565,-0.493035 3.393784,-0.18849 l 0.188544,5.27772 8.673006,-7.256866 c 0.503982,-0.401547 0.217032,-0.715237 0,-1.036695 z";
+    -fx-padding: 0.03em 0.5em 0.03em 0.3em;
+    -fx-background-color: rgb(114.0, 114.0, 114.0);
+    -fx-background-insets: 0.5 -2.0 5.5 3.0; 
+    -fx-effect: innershadow(one-pass-box, rgba(0.0,0.0,0.0,0.8), 1.5, 0.0, -0.5, 1.0);
+}
+
+.button:armed > .icon-left,
+.button:armed > .icon-right {
+    -fx-background-color: rgb(66.0, 66.0, 66.0), linear-gradient(rgb(50.0, 50.0, 50.0), rgb(107.0, 107.0, 107.0));
+}
+
+.button.button-type-help {
+    -fx-border-radius: 1.0em;
+    -fx-background-radius: 1.0em, 1.0em;
+    -fx-padding: 0.0em 0.307692em -0.076923em 0.307692em;
+    -fx-font-weight: bold;
+    -fx-font-size: 16.0;
+}
+
+.button.button-type-help:armed {
+    -fx-background-color: rgb(255.0, 255.0, 255.0),
+        linear-gradient(rgb(224.0, 224.0, 224.0) 25.0%, rgb(213.0, 213.0, 213.0) 50.0%, rgb(207.0, 207.0, 207.0) 50.0%, rgb(210.0, 210.0, 210.0) 100.0% );
+}
+
+.button.button-type-round-rect {
+    -fx-border-radius: 1.0em;
+    -fx-background-radius: 1.0em, 1.0em;
+}
+
+/**
+ * SearchField (TextField) specials
+ */
+.text-field.textfield-type-search,
+.text-field.textfield-type-round-rect {
+    -fx-background-radius: 0.8em, 0.8em, 0.8em, 0.8em, 0.8em; 
+    -fx-border-radius: 0.8em, 0.8em;
+    -fx-padding: 0.166667em 1.5em 0.166667em 1.5em;
+    -fx-background-insets: 0.0 0.5 3.5 0.5, 0.5 1.0 4.0 1.0, 0.5 1.0 4.5 1.0, 0.5 1.0 4.0 1.0;
+}
+
+.text-field.textfield-type-search{
+    -fx-show-search-icon: true;
+}
+
+.text-field.textfield-type-round-rect { 
+    -fx-padding: 0.166667em 0.5em 0.166667em 0.5em;
+}
+
+.icon-search{
+    -fx-shape: "m 347.69086,521.53432 c -5.66845,0 -9.46303,3.70311 -9.40904,9.34654 0.0462,4.83336 2.77728,9.09947 9.36356,9.36942 1.89611,0.0777 3.71636,-0.61031 5.21024,-1.48298 l 5.84627,6.2327 3.07686,-2.95744 -5.90318,-6.0367 c 1.63819,-2.63376 1.49391,-5.24942 1.31808,-6.58272 -0.73998,-5.61127 -5.42829,-8.03363 -9.50279,-7.88877 z m -0.17048,3.30413 c 4.04899,0.0153 6.11399,3.03614 6.28683,5.56794 0,2.76781 -2.00027,6.12608 -6.17885,6.18457 -3.07717,0.0431 -5.8923,-2.66304 -5.9089,-5.80664 -0.0166,-3.14754 2.30739,-5.67592 5.80092,-5.94587 z";
+    -fx-background-color: rgb(116.0, 116.0, 116.0);
+    -fx-scale-shape: true;
+    -fx-background-insets: 4.5 6.0 8.0 6.0;
+}
+
+.icon-delete{
+    -fx-shape: "m 310.73434,226.07989 c -7.6712,0 -13.90445,6.23325 -13.90445,13.90445 0,7.67119 6.23325,13.87327 13.90445,13.87327 7.67119,0 13.87327,-6.20208 13.87327,-13.87327 l 0,-0.0935 c -0.0471,-7.63764 -6.23552,-13.81097 -13.87327,-13.81097 z m -4.67638,7.17045 4.86344,4.89462 4.86344,-4.89462 1.83937,1.83938 -4.86344,4.89462 4.86344,4.86344 -1.83937,1.83938 -4.86344,-4.89462 -4.86344,4.89462 -1.80821,-1.83938 4.86344,-4.86344 -4.86344,-4.89462 1.80821,-1.83938 z";
+    -fx-background-color: rgb(185.0, 185.0, 185.0);
+    -fx-scale-shape: true;
+    -fx-backgronud-insets: 0.0;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * GroupBox                                                                    *
+ * This is not a Control. The class should be applied to Layouts,              *
+ * to achieve the GroupBox-Effect, which is used in Mac OS X.                  *
+ * (See TabPane)                                                               *
+ *                                                                             *
+ ******************************************************************************/
+.aqua-group-box {
+    -fx-padding: 5.0;
+    -fx-border-width: 0.5;
+    -fx-border-radius: 6.0;
+    -fx-border-insets: 0.0;
+    -fx-background-insets: 0.0;
+    -fx-background-radius: 6.0;    
+    -fx-border-color: rgb(193.0, 193.0, 193.0);
+    -fx-background-color: rgb(227.0, 227.0, 227.0),
+        linear-gradient(to right, rgb(168.0, 168.0, 168.0, 0.5) 0.0%, transparent 0.4%, transparent 99.6%, rgb(168.0, 168.0, 168.0, 0.5));
+    -fx-effect: innershadow(one-pass-box, rgb(168.0, 168.0, 168.0, 0.6), 4.0, 0.6, 0.0, 2.0);
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Size variants of Controls                                                   *
+ * see https://developer.apple.com/library/mac/#technotes/tn2007/tn2196.html   *
+ *                                                                             *
+ ******************************************************************************/
+.size-variant-small {
+    -fx-font-size: 11.0;
+}
+
+.size-variant-mini {
+    -fx-font-size: 9.0;
+}
+
+.button.size-variant-small,
+.toggle-button.size-variant-small {
+    -fx-border-radius: 3.0;
+    -fx-background-radius: 3.0, 3.0;
+    -fx-padding: 0.12em 0.85em 0.05em 0.85em;
+}
+
+.button.size-variant-mini,
+.toggle-button.size-variant-mini {
+    -fx-border-radius: 2.0;
+    -fx-padding: 0.12em 0.85em 0.05em 0.85em;
+}
+
+.check-box.size-variant-small > .box {
+    -fx-padding: 5.0;
+    -fx-border-radius: 3.0;
+    -fx-background-radius: 3.0, 3.0;
+}
+
+.check-box.size-variant-small > .box > .mark{
+    -fx-background-insets: -3.0 -1.5 3.0 1.5;
+}
+
+.check-box:indeterminate.size-variant-small > .box > .mark {
+    -fx-background-insets: -0.5 1.5 0.5 0.5;
+}
+
+.check-box.size-variant-mini > .box {
+    -fx-padding: 4.0;
+    -fx-border-radius: 2.0;
+    -fx-background-radius: 2.0, 2.0;
+}
+
+.check-box.size-variant-mini > .box > .mark{
+    -fx-background-insets: -1.5 0.0 4.0 2.5;
+}
+
+.check-box:indeterminate.size-variant-mini > .box > .mark {
+    -fx-background-insets: -0.25 2.0 0.75 1.0;
+}
+
+.radio-button.size-variant-small > .radio  {
+    -fx-padding: 2.5;
+}
+
+.radio-button.size-variant-mini > .radio  {
+    -fx-padding: 1.5;
+}
+
+.combo-box.size-variant-small > .list-cell {
+    -fx-border-radius: 3.0 0.0 0.0 3.0;
+    -fx-background-radius: 3.0 0.0 0.0 3.0, 3.0 0.0 0.0 3.0;
+}
+
+.combo-box-base.size-variant-small > .arrow-button {
+    -fx-background-radius: 0.0 3.0 3.0 0.0, 0.0 2.5 2.5 0.0, 0.0 2.5 2.5 0.0;
+    -fx-border-radius: 0.0 3.0 3.0 0.0;
+}
+
+.combo-box.size-variant-mini > .list-cell {
+    -fx-border-radius: 2.0 0.0 0.0 2.0;
+    -fx-background-radius: 2.0 0.0 0.0 2.0, 2.0 0.0 0.0 2.0;
+}
+
+.combo-box-base.size-variant-mini > .arrow-button {
+    -fx-background-radius: 0.0 2.0 2.0 0.0, 0.0 1.5 1.5 0.0, 0.0 1.5 1.5 0.0;
+    -fx-border-radius: 0.0 2.0 2.0 0.0;
+}
+
+.choice-box.size-variant-small {
+    -fx-border-radius: 3.0;
+    -fx-background-radius: 3.0, 3.0;
+}
+
+
+.choice-box.size-variant-mini {
+    -fx-border-radius: 2.0;
+    -fx-background-radius: 2.0, 2.0;
+}
+
+.slider.alternative-thumb.size-variant-small > .thumb,
+.slider.alternative-thumb.size-variant-mini > .thumb {
+    -fx-background-insets: 0.5 0.0 -1.5 0.0;
+    -fx-border-insets: 0.5 0.0 -1.5 0.0;
+    -fx-scale-shape: true;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Label                                                                       *
+ *                                                                             *
+ ******************************************************************************/
+
+.label {
+    -fx-text-fill: -fx-text-base-color;
+}
+
+.label:disabled {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+.label:show-mnemonics > .mnemonic-underline {
+    -fx-stroke: -fx-text-base-color;
+} 
+
+
+
+/*******************************************************************************
+ *                                                                             *
+ * Button & ToggleButton                                                       *
+ *                                                                             *
+ ******************************************************************************/
+
+.button{
+    -fx-aqua-start-color-1: rgb(183.0, 206.0, 238.0);
+    -fx-aqua-start-color-2: rgb(142.0, 188.0, 237.0);
+    -fx-aqua-start-color-3: rgb(114.0, 174.0, 236.0);
+    -fx-aqua-start-color-4: rgb(178, 218.0, 242.0);
+    -fx-aqua-end-color-1: rgb(203.0, 243.0, 254.0);
+    -fx-aqua-end-color-2: rgb(166.0, 211.0, 248.0);
+    -fx-aqua-end-color-3: rgb(137.0, 198.0, 248.0);
+    -fx-aqua-end-color-4: rgb(203.0, 243.0, 254.0);
+    -fx-aqua-armed-style:"-fx-background-color: linear-gradient(rgb(190, 214, 237) 0%, rgb(178, 213, 237) 100% ), linear-gradient(rgb(165, 193, 238) 0%, rgb(108, 161, 231) 50%, rgb(74, 138, 217) 50%, rgb(105, 167, 236) 75%, rgb(152, 201, 238) 100%), radial-gradient(focus-angle 180deg, focus-distance 95%, center 1% 50%, radius 50%, #78b0ee, transparent), radial-gradient(focus-angle 0deg, focus-distance 95%, center 100% 50%, radius 50%, #78b0ee, transparent); -fx-background-insets: 0, 0, 1 1 1 2, 1 2 1 1; -fx-background-radius: 4, 4, 4, 4; -fx-border-color: rgb(100, 103, 124);";
+}
+
+.button, .toggle-button{
+    /* gradients for glossy-aqua-effect */
+    -fx-background-color: rgb(255.0, 255.0, 255.0),
+        linear-gradient(rgb(255.0, 255.0, 255.0) 25.0%, rgb(243.0, 243.0, 243.0) 50.0%, rgb(236.0, 236.0, 236.0) 50.0%, rgb(243.0, 243.0, 243.0) 100.0% );
+    -fx-background-insets:  0.0, 1.0;
+    -fx-background-radius: 4.0, 4.0;
+    -fx-border-radius: 4.0;
+    -fx-border-width: 0.5;
+    -fx-border-color: rgb(147.0, 147.0, 147.0) rgb(129.0, 129.0, 129.0) rgb(129.0, 129.0, 129.0) rgb(129.0, 129.0, 129.0);
+    -fx-padding: 0.08em 0.85em 0.09em 0.85em;
+    
+    -fx-text-fill: -fx-text-base-color;
+    -fx-alignment: CENTER;
+    -fx-content-display: LEFT;
+
+    -fx-aqua-inner-focus-color: rgb(104, 155, 201, 0.8);
+    -fx-aqua-outer-focus-color: rgb(120, 171, 217);
+}
+
+.button:armed, .button:default:armed{
+    -fx-background-color:
+        linear-gradient(rgb(190.0, 214.0, 237.0) 0.0%, rgb(178.0, 213.0, 237.0) 100.0% ),
+        linear-gradient(rgb(165.0, 193.0, 238.0) 0.0%, rgb(108.0, 161.0, 231.0) 50.0%,
+        rgb(74.0, 138.0, 217.0) 50.0%, rgb(105.0, 167.0, 236.0) 75.0%, rgb(152.0, 201.0, 238.0) 100.0%
+        ),
+        radial-gradient(focus-angle 180.0deg, focus-distance 95.0%, center 1.0% 50.0%,
+        radius 50.0%, #78b0ee, transparent),
+        radial-gradient(focus-angle 0.0deg, focus-distance 95.0%, center 100.0% 50.0%,
+        radius 50.0%, #78b0ee, transparent);
+    -fx-background-insets: 0.0, 0.0, 1.0 1.0 1.0 2.0, 1.0 2.0 1.0 1.0;
+    -fx-background-radius: 4.0, 4.0, 4.0, 4.0;
+    -fx-border-color: rgb(100.0, 103.0, 124.0);
+}
+
+
+.toggle-button:selected{
+    -fx-background-color: rgb(97.0, 97.0, 97.0), -toggle-selected-base, -toggle-shadow;
+    -fx-background-insets:0.0, 1.0 1.0 0.5 1.0, 1.0;
+    -fx-text-fill: white;
+    -fx-effect:innershadow(one-pass-box, rgb(94.0, 94.0, 94.0, 0.5), 5.5, 0.7, 0.0, 2.0);
+}
+
+.toggle-button:armed, .toggle-button:selected:armed{
+    -fx-background-color: rgb(87.0, 87.0, 87.0), -toggle-armed-base, -toggle-shadow-armed;
+    -fx-background-insets:0.0, 1.0 1.0 0.0 1.0, 1.0;
+    -fx-text-fill: white;
+}
+
+
+.button:default {
+    -fx-border-color: rgb(100.0, 103.0, 124.0);
+}
+
+.button:disabled, .toggle-button:disabled {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+.button:show-mnemonics > .mnemonic-underline, .toggle-button:show-mnemonics > .mnemonic-underline {
+    -fx-stroke: -fx-text-base-color;
+}
+
+/*********** PILL BUTTONS *****************************************************/
+
+.button.left-pill,
+.toggle-button.left-pill {
+    -fx-background-radius: 4.0 0.0 0.0 4.0, 4.0 0.0 0.0 4.0;
+    -fx-background-insets:  0.0, 1.0 0.0 0.0 1.0;
+    -fx-border-radius: 4.0 0.0 0.0 4.0;
+    -fx-border-width:0.5 0.0 0.5 0.5;
+}
+
+.button.center-pill,
+.toggle-button.center-pill {
+    -fx-background-radius: 0.0, 0.0;
+    -fx-background-insets:  0.0, 1.0 0.0 0.0 0.0;
+    -fx-border-radius: 0.0;
+    -fx-border-width:0.5 0.0 0.5 1.0;
+    -fx-border-style: solid solid solid segments(15.0, 2.5) phase 15.0 ;
+    -fx-border-color: rgb(147.0, 147.0, 147.0) rgb(129.0, 129.0, 129.0) rgb(129.0, 129.0, 129.0)
+        rgb(203.0, 203.0, 203.0);
+}
+
+.button.right-pill,
+.toggle-button.right-pill {
+    -fx-background-radius: 0.0 4.0 4.0 0.0, 0.0 4.0 4.0 0.0;
+    -fx-background-insets:  0.0, 1.0 1.0 0.0 0.0;
+    -fx-border-radius: 0.0 4.0 4.0 0.0;
+    -fx-border-width:0.5 0.5 0.5 1.0;
+    -fx-border-style: solid solid solid segments(15.0, 2.25) phase 15.0 centered;
+    -fx-border-color: rgb(147.0, 147.0, 147.0) rgb(129.0, 129.0, 129.0) rgb(129.0, 129.0, 129.0)
+        rgb(203.0, 203.0, 203.0);
+}
+
+.button.center-pill.neighbor,
+.toggle-button.center-pill.neighbor{
+    -fx-border-style: solid solid solid solid;
+    -fx-border-color: rgb(147.0, 147.0, 147.0) rgb(129.0, 129.0, 129.0) rgb(129.0, 129.0, 129.0)
+        rgb(74.0, 74.0, 74.0);
+}
+
+.button.right-pill.neighbor,
+.toggle-button.right-pill.neighbor {
+    -fx-border-style: solid solid solid solid centered;
+    -fx-border-color: rgb(147.0, 147.0, 147.0) rgb(129.0, 129.0, 129.0) rgb(129.0, 129.0, 129.0)
+        rgb(74.0, 74.0, 74.0);
+}
+
+.button.center-pill:armed,
+.toggle-button.center-pill:selected, .toggle-button.center-pill:selected:armed {
+    -fx-border-width:0.5 0.0 0.5 1.0;
+    -fx-border-color: rgb(147.0, 147.0, 147.0) rgb(74.0, 74.0, 74.0) rgb(129.0, 129.0, 129.0)
+        rgb(74.0, 74.0, 74.0);
+    -fx-border-style: solid solid solid solid;
+}
+
+.button.right-pill:armed,
+.toggle-button.right-pill:selected, .toggle-button.right-pill:selected:armed {
+    -fx-border-width:0.5 0.5 0.5 1.0;
+    -fx-border-color: rgb(147.0, 147.0, 147.0) rgb(129.0, 129.0, 129.0) rgb(129.0, 129.0, 129.0)
+        rgb(74.0, 74.0, 74.0);
+    -fx-border-style: solid solid solid solid centered;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * RadioButton                                                                 *
+ *                                                                             *
+ ******************************************************************************/
+
+.radio-button {
+    -fx-label-padding: 0.0em 0.0em 0.0em 0.384615em;
+    -fx-text-fill: -fx-text-base-color;
+    -fx-aqua-inner-focus-color: rgb(104, 155, 201, 0.8);
+    -fx-aqua-outer-focus-color: rgb(120, 171, 217);
+}
+
+.radio-button > .radio,
+.radio-button > .radio.unfocused {
+    -fx-border-width: 0.5;
+    -fx-border-insets: 0.0 0.0 1.0 0.0;     
+    -fx-border-color: rgb(129.0, 129.0, 129.0);
+    -fx-border-radius: 1.0em;
+    -fx-background-color: rgb(250.0, 250.0, 250.0),
+        linear-gradient(
+            rgb(255.0, 255.0, 255.0) 0.0%, rgb(253.0,253.0,253.0) 25.0%,  
+            rgb(244.0, 244.0, 244.0) 50.0%, rgb(236.0, 236.0, 236.0) 51.0%,
+            rgb(243.0, 243.0, 243.0) 100.0% );
+    -fx-background-insets: 0.0 0.0 1.0 0.0, 1.0 0.0 2.0 0.0;
+    -fx-background-radius: 1.0em;
+    -fx-padding: 0.269231em;
+}
+
+.radio-button:armed > .radio {
+    -fx-background-color: rgb(250.0, 250.0, 250.0),
+        linear-gradient(
+            rgb(224.0, 224.0, 224.0) 0.0%, rgb(214.0, 214.0, 214.0) 50.0%,  
+            rgb(207.0, 207.0, 207.0) 51.0%, rgb(208.0, 208.0, 208.0) 100.0% );
+    -fx-background-radius: 1.0em, 1.0em;
+}
+
+.radio-button:selected > .radio {
+    -fx-border-color: linear-gradient(
+        rgb(100.0, 103.0, 124.0) 0.0%, rgb(92.0, 94.0, 116.0) 100.0%);
+    -fx-background-color: 
+        linear-gradient(
+            rgb(228.0, 250.0, 255.0) 0.0%, #91bdee 50.0%, 
+            #78b0ee 51.0%, rgb(228.0, 250.0, 255.0) 100.0% );
+    -fx-background-insets: 0.0 0.0 1.0 0.0;
+    -fx-background-radius: 1.0em;
+}
+
+.radio-button:selected:disabled > .radio {
+    -fx-background-color: linear-gradient(
+            rgb(255.0, 255.0, 255.0) 0.0%, rgb(253.0,253.0,253.0) 25.0%,  
+            rgb(244.0, 244.0, 244.0) 50.0%, rgb(236.0, 236.0, 236.0) 51.0%,
+            rgb(243.0, 243.0, 243.0) 100.0% );
+    -fx-background-insets: 0.0 0.0 1.0 0.0;
+    -fx-background-radius: 1.0em;
+}
+
+.radio-button:selected:armed > .radio{
+    -fx-background-color: 
+        linear-gradient(
+            rgb(151.0, 199.0, 225.0) 0.0%, rgb(103.0, 159.0, 222.0) 50.0%,  
+            rgb(70.0, 144.0, 227.0) 50.0%, rgb(119.0, 178.0, 233.0) 82.0%, rgb(165.0, 205.0, 237.0) 100.0% );
+            -fx-background-insets: 0.0 0.0 1.0 0.0;
+            -fx-background-radius: 1.0em;
+}
+
+.radio-button > .radio > .dot {
+    -fx-background-color: transparent;
+    -fx-background-insets: 1.0;
+    -fx-background-radius: 1.0em;
+    -fx-padding: 0.25em; 
+}
+
+.radio-button:selected > .radio > .dot {
+    -fx-background-color: black;
+    -fx-effect: dropshadow(one-pass-box, rgb(255.0, 255.0, 255.0, 0.8), 1.0, 0.0 , 0.0 , 1.0);
+}
+
+.radio-button:disabled {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+.radio-button:show-mnemonics > .mnemonic-underline {
+    -fx-stroke: -fx-text-base-color;
+} 
+
+/*******************************************************************************
+ *                                                                             *
+ * CheckBox                                                                    *
+ *                                                                             *
+ ******************************************************************************/
+
+.check-box {
+    -fx-label-padding: 0.0em 0.0em 0.0em 0.384615em;
+    -fx-text-fill: -fx-text-base-color;
+    
+    -fx-aqua-inner-focus-color: rgb(104, 155, 201, 0.8);
+    -fx-aqua-outer-focus-color: rgb(120, 171, 217);
+}
+
+.check-box > .box,
+.check-box > .box.unfocused,
+.check-box:disabled > .box {
+    -fx-border-radius: 2.5;
+    -fx-border-width: 0.5;
+    -fx-border-insets: -0.5 0.0 0.5 0.0;
+    -fx-border-color: rgb(129.0, 129.0, 129.0);
+    -fx-background-color: rgb(250.0, 250.0, 250.0),
+        linear-gradient(
+            rgb(255.0, 255.0, 255.0) 0.0%, rgb(253.0,253.0,253.0) 25.0%,  
+            rgb(244.0, 244.0, 244.0) 50.0%, rgb(236.0, 236.0, 236.0) 51.0%,
+            rgb(243.0, 243.0, 243.0) 100.0% );
+    -fx-background-insets: -0.5 0.0 0.5 0.0, 0.5 1.0 1.5 1.0;
+    -fx-background-radius: 2.5, 2.5;
+    -fx-padding: 0.461538em;
+}
+
+.check-box:focused > .box {
+     -fx-border-color: rgb(104.0, 155.0, 201.0);
+}
+
+.check-box:selected > .box,
+.check-box:indeterminate > .box {
+    -fx-border-color: linear-gradient(rgb(100.0, 103.0, 124.0) 0.0%, rgb(92.0, 94.0, 116.0) 100.0%);
+    -fx-background-color:
+        linear-gradient(
+            rgb(228.0, 250.0, 255.0) 0.0%, #91bdee 50.0%, #78b0ee 51.0%, 
+            rgb(228.0, 250.0, 255.0) 100.0% );
+    -fx-background-insets: -0.5 0.0 0.5 0.0;
+}
+
+.check-box:selected:disabled > .box,
+.check-box:indeterminate:disabled > .box {
+    -fx-border-color: rgb(129.0, 129.0, 129.0);
+    -fx-background-color:
+        linear-gradient(
+            rgb(255.0, 255.0, 255.0) 0.0%, rgb(253.0,253.0,253.0) 25.0%,  
+            rgb(244.0, 244.0, 244.0) 50.0%, rgb(236.0, 236.0, 236.0) 51.0%,
+            rgb(243.0, 243.0, 243.0) 100.0% );
+    -fx-background-insets: -0.5 0.0 0.5 0.0;
+}
+
+.check-box:armed > .box {
+   -fx-background-color: rgb(250.0, 250.0, 250.0),
+        linear-gradient(
+            rgb(224.0, 224.0, 224.0) 0.0%, rgb(214.0, 214.0, 214.0) 50.0%,  
+            rgb(207.0, 207.0, 207.0) 51.0%, rgb(208.0, 208.0, 208.0) 100.0% );
+    -fx-background-insets: -0.5 0.0 0.5 0.0, 0.5 1.0 1.5 1.0;
+    -fx-background-radius: 2.5, 2.5;
+}
+
+.check-box:selected:armed > .box {
+    -fx-background-color: 
+        linear-gradient(
+            rgb(151.0, 199.0, 225.0) 0.0%, rgb(103.0, 159.0, 222.0) 50.0%,  
+            rgb(70.0, 144.0, 227.0) 50.0%, rgb(119.0, 178.0, 233.0) 82.0%, rgb(165.0, 205.0, 237.0) 100.0% );
+    -fx-background-insets: -0.5 0.0 0.5 0.0;
+    -fx-background-radius: 2.5;
+}
+
+
+.check-box > .box > .mark,
+.check-box:disabled > .box > .mark {
+    -fx-effect: dropshadow(one-pass-box, rgb(255.0, 255.0, 255.0, 0.8), 0.0, 0.0 , -1.0 , 1.0);
+    -fx-background-color: transparent;
+    -fx-background-insets: -3.5 -2.5 2.5 1.0;
+    -fx-shape: "m 18.174523,1027.137 c -0.18077,-0.4575 -0.184364,-0.8913 0.115901,-1.1721 0.300265,-0.2809 0.836622,-0.3601 1.288422,-0.041 0.4518,0.3191 2.020453,2.9316 2.020453,2.9316 l 5.41194,-8.0232 c -4e-6,0 0.516257,-0.6671 1.248682,-0.3099 0.648831,0.3165 0.559153,1.0373 0.559153,1.0373 0,0 -5.940433,9.3556 -6.15501,9.6287 -0.214577,0.273 -1.595078,0.2481 -1.817995,-0.027 -0.222917,-0.2751 -2.490777,-3.567 -2.671546,-4.0244 z";
+    -fx-scale-shape: false;
+}
+
+.check-box:indeterminate > .box > .mark {
+    -fx-effect: dropshadow(one-pass-box, rgb(255.0, 255.0, 255.0, 0.8), 1.0, 0.0 , 0.0 , 1.5);
+    -fx-background-color: -fx-text-base-color;
+    -fx-background-insets: 0.0 0.5 0.0 -0.5;
+    -fx-shape: "M0,0H8V2H0Z";
+    -fx-scale-shape: false;
+}
+
+.check-box:selected > .box > .mark {
+    -fx-background-color: -fx-text-base-color;
+}
+
+.check-box:disabled {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+.check-box:show-mnemonics > .mnemonic-underline {
+    -fx-stroke: -fx-text-base-color;
+} 
+
+/*******************************************************************************
+ *                                                                             *
+ * Hyperlink                                                                   *
+ *                                                                             *
+ ******************************************************************************/
+
+.hyperlink {
+    -fx-cursor: hand;
+    -fx-content-display: LEFT;
+    -fx-text-fill: rgb(94.0, 162.0, 218.0);
+}
+
+.hyperlink:focused, .hyperlink:hover {
+    -fx-underline: true;
+}
+
+.hyperlink:disabled {
+    -fx-text-fill: -fx-text-base-color;
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+.hyperlink:show-mnemonics > .mnemonic-underline {
+    -fx-text-fill: -fx-text-base-color;
+} 
+
+
+/*******************************************************************************
+ *                                                                             *
+ * PopupMenu                                                                   *
+ *                                                                             *
+ ******************************************************************************/
+
+.context-menu {
+    -fx-border-color: rgb(209.0, 209.0, 209.0, 0.4);
+    -fx-border-width: 0.5;
+    -fx-border-radius: 6.0;
+    -fx-background-color: rgb(255.0, 255.0, 255.0, 0.95);
+    -fx-background-insets: 0.0;
+    -fx-background-radius: 6.0;
+    -fx-padding: 0.25em 0.0em 0.25em 0.0em; 
+    -fx-effect: dropshadow(three-pass-box, rgba(0.0,0.0,0.0,0.6), 8.0, 0.0, 0.0, 0.0 );
+}
+
+.context-menu .button,
+.context-menu .toggle-button,
+.context-menu .toggle-button:selected{
+    -fx-background-color: transparent;
+    -fx-border-color: transparent;
+    -fx-text-fill: -fx-text-base-color;
+    -fx-effect: null;
+}
+
+.context-menu > .separator {
+    -fx-padding: 0.0em 0.333333em 0.0em 0.0em;
+}
+
+.context-menu > .scroll-arrow {
+    -fx-padding: 0.416667em 0.416667em 0.416667em 0.416667em;
+    -fx-background-color: transparent;
+}
+
+.context-menu:show-mnemonics > .mnemonic-underline {
+    -fx-stroke: -fx-text-base-color;
+} 
+
+
+/*******************************************************************************
+ *                                                                             *
+ * Menu                                                                        *
+ *                                                                             *
+ ******************************************************************************/
+
+.menu {
+    -fx-background-color: transparent;
+    -fx-padding: 0.333333em 0.666667em 0.333333em 0.666667em; 
+}
+
+.menu:disabled {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+.menu:show-mnemonics > .mnemonic-underline {
+    -fx-stroke: -fx-text-base-color;
+}
+
+/* This hides the down arrow that would show on a menu placed in a menubar */
+.menu-bar > .container > .menu > .arrow-button > .arrow {
+    -fx-padding: 0.0;
+    -fx-background-color: transparent;
+    -fx-shape: null;
+}
+
+.menu-bar > .container > .menu > .arrow-button {
+    -fx-padding: 0.0;
+}
+
+.menu > .arrow {
+    -fx-background-color: -fx-text-base-color;
+    -fx-shape: "M0,-4L4,0L0,4Z";
+    -fx-scale-shape: false;
+}
+
+.menu:focused:showing > .arrow, .menu:hover:showing > .arrow, .menu:focused > .arrow, .menu:showing > .arrow {
+    -fx-background-color: white;
+}
+
+.menu-up-arrow {
+    -fx-padding: 0.666667em 0.416667em 0.0em 0.416667em; 
+    -fx-background-color: rgb(71.0, 71.0, 71.0);
+    -fx-shape: "M0 1 L1 1 L.5 0 Z";
+    -fx-effect: innershadow( two-pass-box , rgba(0.0,0.0,0.0,0.6) , 4.0, 0.0 , 0.0 , 1.0 );
+}
+
+.menu-down-arrow {
+    -fx-background-color: rgb(71.0, 71.0, 71.0);
+    -fx-padding: 0.666667em 0.416667em 0.0em 0.416667em;  
+    -fx-shape: "M0 0 L1 0 L.5 1 Z";
+    -fx-effect: innershadow( two-pass-box , rgba(0.0,0.0,0.0,0.6) , 4.0, 0.0 , 0.0 , 1.0 );
+}
+
+
+/*******************************************************************************
+ *                                                                             *
+ * MenuBar                                                                     *
+ *                                                                             *
+ ******************************************************************************/
+
+.menu-bar {
+    -fx-padding: 0.0em 0.666667em 0.0em 0.666667em; /* 0 8 0 8 */
+    -fx-spacing: 0.166667em;
+     -fx-background-color: 
+        linear-gradient(rgb(245.0, 245.0, 245.0), rgb(185.0, 185.0, 185.0));
+    -fx-background-insets:0.0;
+    -fx-border-width: 0.5;
+    -fx-border-insets:-0.5, 0.0 ;
+    -fx-border-color: linear-gradient(rgb(147.0, 147.0, 147.0), rgb(131.0, 131.0, 131.0)),
+        linear-gradient(rgb(116.0, 116.0, 116.0), rgb(105.0, 105.0, 105.0));
+
+    /* Nothing more needed for Mac OS X than the following property!
+     * All other definitions kept from caspian, to ensure, that MenuBar
+     * is shown properly on non-mac systems.
+     */
+    -fx-use-system-menu-bar: true;
+}
+
+.menu-bar > .container > .menu-button {
+    -fx-background-radius: 0.0;
+    -fx-background-color: transparent;
+    -fx-background-insets: 0.0; 
+}
+
+.menu-bar > .container > .menu-button > .label {
+    -fx-padding: 0.333em 0.5em 0.333em 0.5em;
+}
+
+.menu-bar > .container > .menu-button:hover, .menu-bar > .container > .menu-button:focused, .menu-bar > .container > .menu-button:showing {
+    -fx-background: #0093ff;
+    -fx-background-color: linear-gradient(to right, rgb(233.0, 233.0, 233.0), rgb(173.0, 173.0, 173.0) 99.0%, rgb(233.0, 233.0, 233.0));
+    -fx-text-fill: -fx-text-base-color;
+}
+
+.menu-bar > .container > .menu-button:hover {
+    -fx-background: #0093ff;
+    -fx-background-color: linear-gradient(to right, rgb(233.0, 233.0, 233.0), rgb(173.0, 173.0, 173.0) 99.0%, rgb(233.0, 233.0, 233.0));
+    -fx-text-fill: -fx-text-base-color;
+}
+
+.menu-bar:show-mnemonics > .mnemonic-underline {
+    -fx-stroke: -fx-text-base-color;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * MenuItem                                                                    *
+ *                                                                             *
+ ******************************************************************************/
+
+.menu-item {
+    -fx-background-color: transparent;
+    -fx-background-insets:0.0;
+    -fx-padding:0.0em 0.0em 0.333333em 0.0em;
+    -fx-border-width: 1.0 0.0 1.0 0.0;
+    -fx-border-color:transparent;
+}
+
+.menu-item > .left-container {
+    -fx-padding: 0.0em 0.0em 0.0em 0.4em; 
+}
+
+.menu-item > .graphic-container {
+    -fx-background-color: blue;
+    -fx-padding: 0.0em 0.833em 0.0em 0.0em;
+}
+
+.menu-item >.label {
+   -fx-background-color: transparent;
+   -fx-padding: -0.073333em 2.0em 0.0em 0.33333em ;
+   -fx-text-fill: -fx-text-base-color;
+}
+
+.menu-item:disabled > .label {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+.menu-item:focused {
+    -fx-border-width: 1.0 0.0 1.0 0.0;
+    -fx-border-color: rgb(90.0, 130.0, 235.0) transparent rgb(23.0, 89.0, 231.0) transparent;
+    -fx-background-color: linear-gradient(rgb(101.0, 140.0, 245.0) 0.0%, rgb(41.0, 103.0, 243.0) 100.0%);
+}
+
+.menu-item:focused:disabled {
+    -fx-border-color: transparent;
+    -fx-background-color:transparent;
+    -fx-text-fill: -fx-text-base-color;
+    }
+
+.menu-item:focused > .label {
+    -fx-text-fill: white;
+}
+
+.menu-item:focused:disabled > .label {
+    -fx-text-fill: -fx-text-base-color;
+}
+
+.menu-item > .right-container {
+   -fx-padding: 0.0em 0.833333em 0.0em 0.0em;
+}
+
+.radio-menu-item:checked > .left-container > .radio, 
+.check-menu-item:checked > .left-container > .check {
+    -fx-background-color: -fx-text-base-color;
+    -fx-shape: "m 269.9,233.66286 c 0.15,-0.12 1.97,1.7 2.54,3.1 2.3,-7.33 4.09,-9.1 6.79,-12.1 1.5,-0.25 2.4,-0.27 4.36,0.11 -7.1,5.8 -8.8,16.7 -9.9,17.8 l -0.75,0.02 c 0,0 -2.36,-5.24 -5.6,-7.38 -0.27,-0.17 0.02,-1.5 -0.2,-1.6 z";
+    -fx-padding: 0.68em 0.68em 0.0em 0.0em;
+}
+
+.radio-menu-item > .left-container > .radio, 
+.check-menu-item > .left-container > .check {
+    -fx-background-color: transparent;
+    -fx-shape: "m 269.9,233.66286 c 0.15,-0.12 1.97,1.7 2.54,3.1 2.3,-7.33 4.09,-9.1 6.79,-12.1 1.5,-0.25 2.4,-0.27 4.36,0.11 -7.1,5.8 -8.8,16.7 -9.9,17.8 l -0.75,0.02 c 0,0 -2.36,-5.24 -5.6,-7.38 -0.27,-0.17 0.02,-1.5 -0.2,-1.6 z";
+    -fx-padding: 0.68em 0.68em 0.0em 0.0em;
+}
+
+.radio-menu-item:focused:checked > .left-container > .radio,
+.check-menu-item:focused:checked > .left-container > .check {
+    -fx-background-color: white;
+}
+
+.menu > .right-container > .arrow {
+    -fx-padding: 0.38em 0.3em 0.38em 0.267em; 
+    -fx-background-color: rgb(64.0, 64.0, 64.0);
+    -fx-shape: "M0,-4L4,0L0,4Z";
+}
+
+.menu:selected > .right-container > .arrow {
+    -fx-background-color: white;
+}
+
+.menu-item:show-mnemonics > .mnemonic-underline {
+    -fx-stroke: -fx-text-base-color;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * ChoiceBox                                                                   *
+ *                                                                             *
+ ******************************************************************************/
+
+.choice-box {
+    -fx-border-radius: 4.0;
+    -fx-border-width: 0.5;
+    -fx-border-insets: 0.5;
+    -fx-border-color: rgb(207.0, 207.0, 207.0);
+    
+    -fx-background-color: linear-gradient(rgb(147.0, 147.0, 147.0) 0.0%, rgb(127.0, 127.0, 127.0) 100.0%), -choice-base;
+    -fx-background-insets: 1.0, 1.5;
+    -fx-background-radius: 3.5, 3.5;
+    -fx-padding: 0.12em 0.0em 0.12em 0.0em;
+    -fx-alignment: CENTER;
+    -fx-content-display: LEFT;
+    
+    -fx-aqua-inner-focus-color: rgb(104, 155, 201, 0.8);
+    -fx-aqua-outer-focus-color: rgb(120, 171, 217);
+}
+
+.choice-box > .label {
+    -fx-padding: 0.0em 0.333333em 0.0em 0.666667em;
+    -fx-text-fill: -fx-text-base-color;
+}
+
+.choice-box > .open-button {
+    -fx-background-color: null;
+    -fx-padding: 0.0em 0.5em 0.0em 0.5em;
+}
+
+.choice-box > .open-button > .arrow {
+    -fx-background-color: rgb(110.0, 110.0, 110.0, 0.5), rgb(71.0, 71.0, 71.0);
+    -fx-background-insets: -0.5 0.0 0.5 0.0, 0.0;
+    -fx-padding: 0.4em 0.166667em 0.4em 0.166667em;
+    -fx-shape:  "m 4.5,3.03125 -3.5,5.5 7,0 z m -3.5,10.875 3.5,5.5 3.5,-5.5 z";
+}
+
+.choice-box:disabled {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+.choice-box .label:disabled{
+    -fx-opacity: 1.0;
+}
+
+
+/*******************************************************************************
+ *                                                                             *
+ * Slider                                                                      *
+ *                                                                             *
+ ******************************************************************************/
+.slider{
+    -fx-aqua-inner-focus-color: rgb(104, 155, 201, 0.8);
+    -fx-aqua-outer-focus-color: rgb(120, 171, 217);
+}
+
+.slider > .thumb {
+    -fx-border-width: 0.5;
+    -fx-border-color: rgb(87.0, 87.0, 87.0, 0.8);
+    -fx-border-radius: 1.0em;
+    -fx-background-color: rgb(250.0, 250.0, 250.0),
+        linear-gradient(
+            rgb(255.0, 255.0, 255.0) 0.0%, rgb(253.0,253.0,253.0) 25.0%,  
+            rgb(244.0, 244.0, 244.0) 50.0%, rgb(236.0, 236.0, 236.0) 51.0%,
+            rgb(243.0, 243.0, 243.0) 100.0% );
+    -fx-background-insets: 0.0, 1.0;
+    -fx-background-radius: 1.0em, 1.0em;
+    -fx-padding: 0.566667em;
+    -fx-effect: dropshadow(one-pass-box, rgb(192.0, 192.0, 198.0), 2.0, 0.1 , 0.0, 0.0);
+}
+
+.slider.alternative-thumb > .thumb {
+    -fx-shape: "M 9.1891716,18.913113 C 14.774865,12.498835 16.85604,11.01737 16.85604,9.11662 l 0,-6.093377 C 16.761936,1.8707681 16.193692,0.7655617 14.833202,0.54472254 13.971391,0.50911 2.5515364,0.50911 2.5515364,0.50911 1.0462919,0.75839775 0.54832274,1.9760737 0.5127102,3.023243 l 0,6.093377 c 0,1.975806 2.313591,3.725456 7.8990521,9.829757 0.055726,0.0609 0.6485114,0.11986 0.7774093,-0.03326 z";
+    -fx-background-insets: 4.0 0.0 -2.5 0.0;
+    -fx-border-insets: 4.0 0.0 -2.5 0.0;
+    -fx-scale-shape: false;
+    -fx-background-color: rgb(250.0, 250.0, 250.0),
+        linear-gradient(
+            rgb(255.0, 255.0, 255.0) 0.0%, rgb(253.0,253.0,253.0) 15.0%,  
+            rgb(244.0, 244.0, 244.0) 34.0%, rgb(236.0, 236.0, 236.0) 35.0%,
+            rgb(243.0, 243.0, 243.0) 100.0% );
+}
+
+.slider.alternative-thumb:vertical > .thumb {
+    -fx-rotate: 270.0;
+    -fx-background-insets: 4.0 0.0 -2.5 0.0;
+    -fx-border-insets: 4.0 0.0 -2.5 0.0;
+    -fx-background-color: rgb(250.0, 250.0, 250.0),
+        linear-gradient(to left,
+            rgb(255.0, 255.0, 255.0) 0.0%, rgb(253.0,253.0,253.0) 25.0%,  
+            rgb(244.0, 244.0, 244.0) 50.0%, rgb(236.0, 236.0, 236.0) 51.0%,
+            rgb(243.0, 243.0, 243.0) 100.0% );
+}
+
+.slider.alternative-thumb .thumb:pressed {
+     -fx-background-color: linear-gradient(
+            rgb(224.0, 224.0, 224.0) 0.0%, rgb(214.0, 214.0, 214.0) 50.0%,  
+            rgb(207.0, 207.0, 207.0) 51.0%, rgb(208.0, 208.0, 208.0) 95.0%, 
+            rgb(220.0, 220.0, 220.0) 97.5%, rgb(208.0, 208.0, 208.0) 100.0%);
+}
+
+/*.slider:focused > .thumb {
+TODO: effect-chaining!!!
+} */
+
+.slider .thumb:pressed {
+     -fx-background-color: linear-gradient(
+            rgb(224.0, 224.0, 224.0) 0.0%, rgb(214.0, 214.0, 214.0) 50.0%,  
+            rgb(207.0, 207.0, 207.0) 51.0%, rgb(208.0, 208.0, 208.0) 95.0%, 
+            rgb(220.0, 220.0, 220.0) 97.5%, rgb(208.0, 208.0, 208.0) 100.0%);
+    -fx-background-insets: 0.0;
+    -fx-background-radius: 1.0em;
+}
+
+.slider > .track {
+    -fx-background-color:
+       linear-gradient(to bottom, rgb(147.0, 147.0, 147.0), rgb(217.0, 217.0, 217.0));
+    -fx-background-radius: 2.5;
+    -fx-padding: 0.15em; 
+    
+    -fx-border-color: linear-gradient(to bottom, rgb(111.0, 111.0, 111.0), rgb(171.0, 171.0, 171.0));
+    -fx-border-width: 0.5;
+    -fx-border-radius: 2.5;
+}
+
+.slider:vertical > .track {
+     -fx-background-color:
+        linear-gradient(to right, rgb(147.0, 147.0, 147.0), rgb(217.0, 217.0, 217.0));
+    -fx-border-color: linear-gradient(to right, rgb(111.0, 111.0, 111.0), rgb(171.0, 171.0, 171.0));
+}
+
+.slider > .axis {
+    -fx-tick-label-gap: 4.0px;
+    -fx-tick-label-fill: -fx-text-base-color;
+    -fx-tick-length: 4.0px;
+    -fx-minor-tick-length: 5.0px;
+    -fx-border-color: null;
+}
+
+.slider > .axis {
+    -fx-translate-y: 0.461538em;
+    -fx-translate-x: 0.0em;
+}
+
+.slider:vertical > .axis {
+    -fx-translate-x: 0.461538em;
+    -fx-translate-y: 0.0em;
+}
+
+.slider > .axis > .axis-tick-mark  {
+     /*same gap to track for major- and minor tickmarks */
+    -fx-translate-y: 0.076923em;    
+    -fx-translate-x: 0.0em;
+}
+.slider:vertical > .axis > .axis-tick-mark  {
+     /*same gap to track for major- and minor tickmarks */
+    -fx-translate-x: 0.076923em;    
+    -fx-translate-y: 0.0em;
+}
+
+.slider > .axis > .axis-minor-tick-mark,
+.slider > .axis > .axis-tick-mark {
+    -fx-stroke : rgb(146.0, 146.0, 146.0);
+}
+
+.slider:disabled {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * ScrollBar                                                                   *
+ *                                                                             *
+ ******************************************************************************/
+
+.scroll-bar:horizontal, .scroll-bar:horizontal:focused, 
+.scroll-bar:horizontal > .track-background {
+    -fx-background-color:transparent;
+    -fx-background-insets: 0.0;
+    -fx-padding: 0.0 0.0 2.0 0.0;
+}
+
+.scroll-bar:horizontal:hover, .scroll-bar:horizontal:focused:hover, 
+.scroll-bar:horizontal:hover > .track-background {
+    -fx-background-color:transparent;
+    -fx-background-insets: 0.0;
+    -fx-padding: 0.0 0.0 0.0 0.0;
+}
+
+.scroll-bar:vertical{
+    -fx-background-color:transparent;
+    -fx-background-insets: 0.0;
+    -fx-padding: -1.0 2.0 -1.0 0.0;
+} 
+
+.scroll-bar:vertical > .track-background,
+.scroll-bar:vertical:hover > .track-background,
+.scroll-bar:vertical:hover, .scroll-bar:vertical:focused:hover {
+    -fx-background-color:transparent;
+    -fx-background-insets: 0.0;
+    -fx-padding: -1.0 0.0 -1.0 0.0;
+}
+
+.scroll-bar:horizontal > .thumb, .scroll-bar:vertical > .thumb {
+    -fx-background-color: rgb(0.0, 0.0, 0.0, 0.5);
+    -fx-background-insets: 0.0;
+    -fx-background-radius: 4.0;
+}
+
+.scroll-bar:horizontal:hover > .thumb, .scroll-bar:vertical:hover > .thumb {
+    -fx-background-color: rgb(0.0, 0.0, 0.0, 0.5);
+    -fx-background-radius: 6.0;
+}
+
+.scroll-bar:vertical:hover > .thumb {
+    -fx-background-insets: 0.0 2.0 0.0 2.0;
+}
+
+.scroll-bar:horizontal:hover > .thumb {
+    -fx-background-insets: 2.0 0.0 2.0 0.0;
+}
+
+.scroll-bar:horizontal > .track,
+.scroll-bar:vertical > .track {
+    -fx-background-color: transparent;
+    -fx-background-radius: 0.0;
+    -fx-background-insets: 0.0;
+}
+
+.scroll-bar:horizontal:hover > .track,
+.scroll-bar:vertical:hover > .track {
+    -fx-border-color: rgb(198.0, 198.0, 198.0);
+}
+
+.scroll-bar:vertical:hover > .track {
+    -fx-background-color: linear-gradient(rgb(238.0, 238.0, 238.0, 0.7) 0.0%, rgb(255.0, 255.0, 255.0, 0.7) 100.0%);
+    -fx-border-width: 0.0 0.0 0.0 1.0;
+    -fx-border-insets: 0.0 0.0 0.0 -1.0;
+}
+
+.scroll-bar:horizontal:hover > .track {
+    -fx-background-color: linear-gradient(rgb(238.0, 238.0, 238.0, 0.8) 0.0%, rgb(255.0, 255.0, 255.0, 0.8) 100.0%);
+    -fx-border-width: 1.0 0.0 0.0 0.0;
+    -fx-border-insets: -1.0 0.0 0.0 0.0;
+}
+
+.scroll-bar > .increment-button,
+.scroll-bar > .decrement-button {
+    -fx-background-color: transparent;
+    -fx-background-insets:  0.0;
+    -fx-padding: 0.0em;
+}
+
+.scroll-bar:vertical:hover > .increment-button, 
+.scroll-bar:vertical:hover > .decrement-button {
+    -fx-background-color: transparent;
+    -fx-background-insets:  0.0;
+    -fx-padding: 0.0em 6.0pt 0.0em 0.0em;
+}
+
+.scroll-bar:horizontal:hover > .increment-button,
+.scroll-bar:horizontal:hover > .decrement-button {
+    -fx-background-color: transparent;
+    -fx-background-insets:  0.0;
+    -fx-padding: 6.0pt 0.0em 0.0em 0.0em;
+}
+
+.scroll-bar:horizontal > .increment-button > .increment-arrow, 
+.scroll-bar:horizontal > .decrement-button > .decrement-arrow {
+    -fx-background-color: transparent;
+    -fx-background-insets:  0.0;
+    -fx-padding: 4.0pt 0.0em 0.0em 0.0em;
+}
+
+.scroll-bar:vertical > .increment-button > .increment-arrow,
+.scroll-bar:vertical > .decrement-button > .decrement-arrow {
+    -fx-background-color: transparent;
+    -fx-background-insets:  0.0;
+    -fx-padding: 0.0em 4.0pt 0.0em 0.0em;
+}
+
+.scroll-bar:disabled {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+
+
+/*******************************************************************************
+ *                                                                             *
+ * ScrollPane                                                                  *
+ *                                                                             *
+ ******************************************************************************/
+
+.scroll-pane > * > .scroll-bar:horizontal {
+    -fx-background-insets: 0.0, 0.0 0.0 0.0 0.0;
+    -fx-padding: 0.0 0.0 0.0 0.0;
+}
+
+.scroll-pane > * > .scroll-bar:vertical {
+    -fx-background-insets: 0.0, 0.0 0.0 0.0 0.0;
+    -fx-padding: 0.0 0.0 0.0 0.0;
+}
+
+.scroll-pane > .corner {
+    -fx-background-color: transparent;
+    -fx-background-insets: 0.0, 0.0 0.0 0.0 0.0;
+}
+
+.scroll-pane:disabled {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Separator                                                                   *
+ *                                                                             *
+ ******************************************************************************/
+
+.separator > .line {
+    -fx-border-width: 0.5px;
+}
+
+.separator:horizontal > .line {
+    -fx-background-color: rgb(132.0, 132.0, 132.0);
+    -fx-padding: 0.1 0.0 0.0 0.0;
+    -fx-border-color: transparent;
+}
+
+.separator:vertical > .line {
+    -fx-background-color:  rgb(132.0, 132.0, 132.0);
+    -fx-padding: 0.0 0.1 0.0 0.0;
+    -fx-border-color:  transparent;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * TextField                                                                   *
+ *                                                                             *
+ ******************************************************************************/
+
+.text-field {
+    -fx-border-color: linear-gradient(rgb(184.0, 184.0, 184.0) 0.0%, rgb(205.0, 205.0, 205.0) 100.0%);
+    -fx-border-width: 0.5;
+    -fx-border-insets: -0.5 0.0 3.0 0.0;
+    -fx-background-color: linear-gradient(rgb(155.0, 155.0, 155.0) 0.0%, rgb(172.0, 172.0, 172.0)  100.0%),
+                             rgb(255.0, 255.0, 255.0),
+                        linear-gradient(rgb(224.0, 224.0, 224.0) 0.0%, rgb(255.0, 255.0, 255.0)  10.0%),
+                        linear-gradient(to right, rgb(224.0, 224.0, 224.0) 0.0%, transparent 1.0%),
+                        linear-gradient(to left, rgb(224.0, 224.0, 224.0) 0.0%, transparent 1.0%);
+    -fx-background-insets: 0.0 0.5 3.5 0.5, 0.5 1.0 4.0 1.0, 0.5 1.0 4.0 1.0, 0.5 1.0 4.0 1.0;
+    -fx-background-radius: 0.0, 0.0;
+   
+    -fx-padding: 0.166667em;
+    -fx-text-fill: black;
+    -fx-highlight-fill: rgb(182.0, 214.0, 253.0);
+    -fx-prompt-text-fill: rgb(128.0, 128.0, 128.0);
+    -fx-cursor: text;
+    
+    -fx-aqua-inner-focus-color: rgb(104, 155, 201, 0.8);
+    -fx-aqua-outer-focus-color: rgb(120, 171, 217);
+}
+
+.text-field:focused {
+    -fx-highlight-fill: rgb(182.0, 214.0, 253.0);
+    -fx-highlight-text-fill: -fx-text-base-color; 
+}
+
+.text-field:disabled {
+    -fx-opacity: 1.0;
+    -fx-background-color: linear-gradient(rgb(155.0, 155.0, 155.0, 0.4) 0.0%, rgb(172.0, 172.0, 172.0, 0.4)  100.0%),
+                             rgb(255.0, 255.0, 255.0),
+                        linear-gradient(rgb(224.0, 224.0, 224.0, 0.4) 0.0%, rgb(255.0, 255.0, 255.0, 0.4)  10.0%),
+                        linear-gradient(to right, rgb(224.0, 224.0, 224.0) 0.0%, transparent 1.0%),
+                        linear-gradient(to left, rgb(224.0, 224.0, 224.0) 0.0%, transparent 1.0%);
+    -fx-border-color: linear-gradient(rgb(184.0, 184.0, 184.0, 0.4) 0.0%, rgb(205.0, 205.0, 205.0, 0.4) 100.0%);
+    -fx-text-fill: rgb(127.0, 127.0, 127.0);
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * PasswordField                                                               *
+ *                                                                             *
+ ******************************************************************************/
+
+.password-field {
+    -fx-text-fill: -fx-text-base-color;
+    
+    -fx-aqua-inner-focus-color: rgb(104, 155, 201, 0.8);
+    -fx-aqua-outer-focus-color: rgb(120, 171, 217);
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * TextArea                                                                    *
+ *                                                                             *
+ ******************************************************************************/
+
+.text-area {
+    -fx-padding: 1.0;
+    -fx-font-family: 'helvetica';
+    -fx-border-color: rgb(142.0, 142.0, 142.0) rgb(190.0, 190.0, 190.0) rgb(190.0, 190.0, 190.0) rgb(190.0, 190.0, 190.0);
+    -fx-border-width: 1.0;
+    -fx-background-color: white;
+    -fx-background-insets: 1.0;
+    -fx-background-radius: 0.0;
+    -fx-text-fill: -fx-text-base-color;
+    -fx-prompt-text-fill: rgb(128.0, 128.0, 128.0);
+    -fx-highlight-fill: transparent;
+    
+    -fx-aqua-inner-focus-color: rgb(104, 155, 201, 0.8);
+    -fx-aqua-outer-focus-color: rgb(120, 171, 217);
+}
+
+.text-area > .scroll-pane {
+    -fx-background-color: transparent;
+}
+
+.text-area .content {
+    -fx-padding: 1.2 3.0 2.0 1.0; 
+    -fx-cursor: text;
+}
+
+.text-area:focused {
+    -fx-prompt-text-fill: transparent;
+    -fx-highlight-fill: rgb(182.0, 214.0, 253.0);
+    -fx-highlight-text-fill: -fx-text-base-color;
+}
+
+.text-area:disabled {
+    -fx-opacity: 1.0;
+    -fx-background-color: white;
+       -fx-border-color: rgb(142.0, 142.0, 142.0) rgb(190.0, 190.0, 190.0) rgb(190.0, 190.0, 190.0) rgb(190.0, 190.0, 190.0);
+    -fx-text-fill: rgb(127.0, 127.0, 127.0);
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Customised CSS for controls placed directly within cells                    *
+ *                                                                             *
+ ******************************************************************************/
+
+.cell > .choice-box {
+    -fx-background-color: transparent;
+    -fx-background-insets: 0.0;
+    -fx-background-radius: 0.0;
+    -fx-padding: 0.0em 0.5em 0.0em 0.0em;
+    -fx-alignment: CENTER_LEFT;
+    -fx-content-display: LEFT;
+}
+
+.cell > .choice-box > .label {
+    -fx-padding: 0.0em 0.333333em 0.0em 0.333333;
+}
+
+.cell:focused:selected > .choice-box > .label {
+    -fx-text-fill: white;
+}
+
+
+/*******************************************************************************
+ *                                                                             *
+ * ListView and ListCell                                                       *
+ *                                                                             *
+ ******************************************************************************/
+
+.list-view {
+    -fx-background-color: white;
+    -fx-background-insets: 0.5;
+    -fx-border-color: rgb(156.0, 156.0, 156.0) rgb(190.0, 190.0, 190.0) rgb(190.0, 190.0, 190.0) rgb(190.0, 190.0, 190.0);
+    -fx-border-width: 1.0;
+    -fx-border-insets: 0.0;
+}
+
+.list-cell {
+    -fx-background-color: white;
+    -fx-padding: 0.2em 0.25em 0.2em 0.25em;
+    -fx-text-fill: -fx-text-base-color;
+}
+
+/* ListView Cells do not have a even/odd highlighting
+.list-cell:odd {
+    -fx-background-color: rgb(243.0, 246.0, 250.0);
+} */
+
+/* When the list-cell is selected and focused */
+.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:focused:selected,
+.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected {
+    -fx-background-color: linear-gradient(rgb(95.0, 165.0, 221.0), rgb(54.0, 124.0, 192.0)),
+     linear-gradient(rgb(116.0, 186.0, 232.0), rgb(116.0, 186.0, 232.0) 1.0%, rgb(109.0, 178.0, 227.0) 1.0%, rgb(59.0, 136.0, 208.0) 100.0%);
+    -fx-background-insets:  0.0, 1.0 0.0 1.0 0.0;
+    -fx-text-fill: white;
+}
+
+.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:focused:selected > .text,
+.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected > .text {
+    -fx-effect: dropshadow(one-pass-box , rgba(0.0,0.0,0.0,0.4) , 1.0, 0.1 , 0.0 , 1.0 );
+}
+
+/* When the ListView is _not_ focused, we show alternate selection colors */
+.list-cell:filled:selected:focused,
+.list-cell:filled:selected {
+    -fx-background-color: linear-gradient(rgb(187.0, 197.0, 214.0), rgb(147.0, 160.0, 185.0)),
+     linear-gradient(rgb(195.0, 204.0, 223.0), rgb(195.0, 204.0, 223.0) 1.0%, rgb(189.0, 199.0, 220.0) 1.0%, rgb(155.0, 169.0, 196.0) 100.0%);
+    -fx-background-insets:  0.0, 1.0 0.0 1.0 0.0;
+    -fx-text-fill: white;
+}
+
+.list-view:horizontal:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected {
+    -fx-background-color: linear-gradient(to right, rgb(95.0, 165.0, 221.0), rgb(54.0, 124.0, 192.0)),
+        linear-gradient(to right, rgb(116.0, 186.0, 232.0), rgb(116.0, 186.0, 232.0) 1.0%, rgb(109.0, 178.0, 227.0) 1.0%, rgb(59.0, 136.0, 208.0) 100.0%);
+    -fx-background-insets:  0.0, 0.0 1.0 0.0 1.0;
+    -fx-text-fill: white;
+}
+
+.list-view:horizontal > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected {
+    -fx-background-color: linear-gradient(to right, rgb(187.0, 197.0, 214.0), rgb(147.0, 160.0, 185.0)),
+     linear-gradient(to right, rgb(195.0, 204.0, 223.0), rgb(195.0, 204.0, 223.0) 1.0%, rgb(189.0, 199.0, 220.0) 1.0%, rgb(155.0, 169.0, 196.0) 100.0%);
+    -fx-background-insets:  0.0, 0.0 1.0 0.0 1.0;
+    -fx-text-fill: white;
+}
+
+.list-view:horizontal > .virtual-flow > .clipped-container > .sheet > .list-cell:odd {
+    -fx-background-color: rgb(243.0, 246.0, 250.0);
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * MenuButton                                                                  *
+ *                                                                             *
+ ******************************************************************************/
+.menu-button {
+    -fx-background-color: 
+        linear-gradient(rgb(245.0, 245.0, 245.0), rgb(185.0, 185.0, 185.0));
+    -fx-background-insets:0.0;
+    -fx-background-radius: 3.5, 3.5;
+    -fx-border-radius: 4.0;
+    -fx-border-width: 0.5;
+    -fx-border-insets:-0.5, 0.0 ;
+    -fx-border-color: linear-gradient(rgb(147.0, 147.0, 147.0), rgb(131.0, 131.0, 131.0)),
+        linear-gradient(rgb(116.0, 116.0, 116.0), rgb(105.0, 105.0, 105.0));
+    -fx-padding: 0.1em 0.0em 0.153846em 0.0em;
+
+    -fx-aqua-inner-focus-color: rgb(104, 155, 201, 0.8);
+    -fx-aqua-outer-focus-color: rgb(120, 171, 217);
+}
+
+.menu-button > .label { 
+    -fx-text-fill: -fx-text-base-color; 
+    -fx-padding: 0.0em 0.667em 0.0em 0.833333em; 
+}
+
+.menu-button:armed {
+    -fx-background-color: linear-gradient(rgb(160.0, 160.0, 160.0), rgb(215.0, 215.0, 215.0));
+    -fx-border-color: linear-gradient(rgb(147.0, 147.0, 147.0), rgb(131.0, 131.0, 131.0)),
+        linear-gradient(rgb(116.0, 116.0, 116.0), rgb(105.0, 105.0, 105.0));
+}
+.split-menu-button > .arrow-button {
+    -fx-background-insets: 0.0;
+    -fx-background-radius: 0.0;
+    -fx-padding: 0.0em 0.333333em 0.0em 0.2em; 
+}
+
+.menu-button > .arrow-button {
+    -fx-background-insets: 0.0;
+    -fx-background-radius: 0.0;
+    -fx-padding: 0.0em 0.333333em 0.0em 0.0em; 
+}
+
+.menu-button > .arrow-button > .arrow {
+    -fx-background-insets: 1.0 0.0 -1.0 0.0, 0.5 0.0 -0.5 0.0;
+    -fx-background-color: rgb(255.0, 255.0, 255.0), rgb(71.0, 71.0, 71.0);
+    -fx-padding: 0.166667em 0.25em 0.166667em 0.25em;
+    -fx-shape: "M 0 -3.5 v 7 l 4 -3.5 z";
+}
+
+.menu-button:openvertically > .arrow-button > .arrow {
+    -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}
+
+.menu-button:disabled {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+.menu-button:show-mnemonics > .mnemonic-underline {
+    -fx-stroke: -fx-text-base-color;
+} 
+
+
+
+/*******************************************************************************
+ *                                                                             *
+ *   SplitMenuButton                                                           *
+ *                                                                             *
+ ******************************************************************************/
+
+.split-menu-button {
+    -fx-padding: 0.0em;
+    -fx-text-fill: -fx-text-base-color;
+    
+    -fx-aqua-inner-focus-color: rgb(104, 155, 201, 0.8);
+    -fx-aqua-outer-focus-color: rgb(120, 171, 217);
+}
+
+.split-menu-button > .label {
+    -fx-background-color: 
+        linear-gradient(rgb(245.0, 245.0, 245.0), rgb(185.0, 185.0, 185.0));
+    -fx-background-insets:0.0;
+    -fx-background-radius: 4.0 0.0 0.0 4.0;
+    -fx-border-radius: 3.5 0.0 0.0 3.5, 3.5 0.0 0.0 3.5;
+    -fx-border-width: 0.5, 0.5;
+    -fx-border-insets:-0.5, 0.0 ;
+    -fx-border-color: linear-gradient(rgb(147.0, 147.0, 147.0), rgb(131.0, 131.0, 131.0)),
+        linear-gradient(rgb(116.0, 116.0, 116.0), rgb(105.0, 105.0, 105.0));
+    -fx-padding: 0.1em 0.667em 0.153846em 0.833333em;
+}
+
+.split-menu-button > .arrow-button {
+    -fx-background-color: 
+        linear-gradient(rgb(245.0, 245.0, 245.0), rgb(185.0, 185.0, 185.0));
+    -fx-background-insets:0.0;
+    -fx-background-radius: 0.0 4.0 4.0 0.0;
+    -fx-border-width: 0.5 0.5 0.5 0.5, 0.5 0.5 0.5 0.5;
+    -fx-border-insets:-0.5, 0.0 ;
+    -fx-border-color: linear-gradient(rgb(147.0, 147.0, 147.0), rgb(131.0, 131.0, 131.0)),
+        linear-gradient(rgb(116.0, 116.0, 116.0), rgb(105.0, 105.0, 105.0));
+    -fx-border-radius: 0.0 3.5 3.5 0.0, 0.0 3.5 3.5 0.0;
+    -fx-padding: 0.0em 0.5em 0.0em 0.5em; 
+}
+
+.split-menu-button:showing > .arrow-button {
+    -fx-background-color: linear-gradient(rgb(160.0, 160.0, 160.0), rgb(215.0, 215.0, 215.0));
+    -fx-border-color: linear-gradient(rgb(147.0, 147.0, 147.0), rgb(131.0, 131.0, 131.0)),
+        linear-gradient(rgb(116.0, 116.0, 116.0), rgb(105.0, 105.0, 105.0));
+}
+
+.split-menu-button > .arrow-button > .arrow {
+    -fx-background-insets: 1.0 0.0 -1.0 0.0, 0.5 0.0 -0.5 0.0;
+    -fx-background-color: rgb(255.0, 255.0, 255.0), rgb(71.0, 71.0, 71.0);
+    -fx-padding: 0.166667em 0.25em 0.166667em 0.25em;
+    -fx-shape: "M 0 -3.5 v 7 l 4 -3.5 z";
+}
+
+.split-menu-button:openvertically > .arrow-button > .arrow {
+    -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}
+
+.split-menu-button:disabled {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+.split-menu-button:show-mnemonics > .mnemonic-underline {
+    -fx-stroke: -fx-text-base-color;
+}
+
+
+
+/*******************************************************************************
+ *                                                                             *
+ * Tooltip                                                                     *
+ *                                                                             *
+ ******************************************************************************/
+
+.tooltip {
+    -fx-background-color:
+       rgb(251.0, 250.0, 205.0, 0.95);
+    -fx-background-insets: 0.5;
+    -fx-border-color: rgb(125.0, 125.0, 125.0, 0.4);
+    -fx-border-width: 0.5;
+    -fx-padding: 0.1em 0.35em 0.25em 0.196666em;
+    -fx-effect: dropshadow( three-pass-box , rgba(0.0,0.0,0.0,0.4) , 8.0, 0.0 , 0.0 , 3.0 );
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Toolbar                                                                     *                                             *
+ *                                                                             *
+ ******************************************************************************/
+
+.tool-bar:vertical {
+    -fx-background-color:
+        linear-gradient(to right, rgb(222.0, 222.0, 222.0), rgb(173.0, 173.0, 173.0) 99.0%, rgb(233.0, 233.0, 233.0));
+    -fx-border-color: rgb(103.0, 103.0, 103.0);
+    -fx-border-width: 0.0 1.0 0.0 0.0;
+    -fx-border-insets: 0.0;
+    -fx-padding: 0.833em 0.416667em 0.833em 0.416667em;
+    -fx-spacing: 0.333em;
+    -fx-alignment: TOP_LEFT;
+}
+
+.tool-bar:vertical.inactive { 
+    -fx-background-color: linear-gradient(to right, rgb(244.0, 244.0, 244.0), rgb(224.0, 224.0, 224.0) 99.0%, rgb(227.0, 227.0, 227.0));
+    -fx-border-color:  rgb(166.0, 166.0, 166.0);
+}
+
+.tool-bar:horizontal {
+    -fx-background-color: linear-gradient(to bottom, rgb(222.0, 222.0, 222.0), rgb(173.0, 173.0, 173.0) 99.0%, rgb(233.0, 233.0, 233.0));
+    -fx-padding: 0.230769em 0.833em 0.666667em 0.833em;
+    -fx-border-color:  rgb(103.0, 103.0, 103.0);
+    -fx-border-width: 0.0 0.0 1.0 0.0;
+    -fx-border-insets: 0.0;
+    -fx-alignment: CENTER_LEFT;
+}
+
+.tool-bar:horizontal.inactive { 
+    -fx-background-color: linear-gradient(to bottom, rgb(244.0, 244.0, 244.0), rgb(224.0, 224.0, 224.0) 99.0%, rgb(227.0, 227.0, 227.0));
+    -fx-border-color:  rgb(166.0, 166.0, 166.0);
+}
+
+.tool-bar > .container > .separator:vertical > .line {
+    -fx-border-style: solid;
+    -fx-background-color: null;
+    -fx-border-color:  transparent rgb(129.0, 129.0, 129.0) transparent transparent;
+}
+
+.tool-bar.inactive > .container > .separator:vertical > .line { 
+    -fx-border-color:  transparent rgb(177.0, 177.0, 177.0) transparent transparent;
+}
+
+.tool-bar > .container > .separator:horizontal > .line {
+    -fx-border-style: solid;
+    -fx-background-color: null;
+    -fx-border-color:  transparent transparent rgb(129.0, 129.0, 129.0) transparent;
+}
+
+.tool-bar.inactive > .container > .separator:horizontal > .line { 
+    -fx-border-color:  transparent transparent rgb(177.0, 177.0, 177.0) transparent;
+}
+
+.tool-bar:vertical > .container > .separator {
+    -fx-orientation: horizontal;    
+    -fx-padding: 0.083333em 0.0em 0.083333em 0.0em;
+}
+
+.tool-bar:horizontal > .container > .separator {
+    -fx-orientation: vertical;
+    -fx-padding: 0.0em 0.083333em 0.0em 0.083333em; 
+}
+
+.tool-bar-overflow-button {
+    -fx-background-color: transparent;
+}
+
+.tool-bar-overflow-button > .arrow {
+    -fx-background-color:  rgb(127.0, 127.0, 127.0);
+    -fx-background-insets: 0.0;
+    -fx-padding: 0.666667em 0.916667em 0.0em 0.0em;
+    -fx-shape: "m -4.1094335,2.2064997 -2.8103114,0 4.1861081,3.5669889 -4.1861081,3.6832295 2.7950633,0 4.3381035,-3.6948229 z m -6.1415245,0 -3.020299,0 4.3219166,3.5553955 -4.3219166,3.6948229 3.020299,0 4.4263398,-3.6948229 z";
+    -fx-effect: innershadow(one-pass-box, rgb(28.0, 28.0, 28.0), 1.5, 0.6, -0.5, 1.0);
+}
+
+.inactive .tool-bar-overflow-button > .arrow {
+    -fx-background-color:  rgb(177.0, 177.0, 177.0);
+    -fx-effect: innershadow(one-pass-box, rgb(28.0, 28.0, 28.0, 0.5), 1.5, 0.6, -0.5, 1.0);
+}
+
+.tool-bar-overflow-button:pressed > .arrow {
+  -fx-effect: innershadow(one-pass-box, rgb(28.0, 28.0, 28.0), 2.5, 0.6, -0.5, 1.0);
+}
+
+.tool-bar .toggle-button,
+.tool-bar .button,
+.tool-bar .color-picker,
+.tool-bar .choice-box,
+.tool-bar .combo-box > .list-cell,
+.tool-bar .combo-box > .arrow-button {
+    -fx-background-color: 
+        linear-gradient(rgb(245.0, 245.0, 245.0), rgb(185.0, 185.0, 185.0));
+    -fx-background-insets:0.0;
+    -fx-border-width: 0.5;
+    -fx-border-insets:-0.5, 0.0 ;
+    -fx-border-color: linear-gradient(rgb(147.0, 147.0, 147.0), rgb(131.0, 131.0, 131.0)),
+        linear-gradient(rgb(116.0, 116.0, 116.0), rgb(105.0, 105.0, 105.0));
+}
+
+.tool-bar.inactive .toggle-button,
+.tool-bar.inactive .button,
+.tool-bar.inactive .color-picker,
+.tool-bar.inactive .choice-box,
+.tool-bar.inactive .combo-box > .list-cell,
+.tool-bar.inactive .menu-button,
+.tool-bar.inactive .split-menu-button > .label,
+.tool-bar.inactive .split-menu-button > .arrow-button,
+.tool-bar.inactive .combo-box > .arrow-button {
+    -fx-background-color: 
+        linear-gradient(rgb(241.0, 241.0, 241.0), rgb(229.0, 229.0, 229.0));
+    -fx-border-color: 
+        linear-gradient(rgb(201.0, 201.0, 201.0), rgb(193.0, 193.0, 193.0)), linear-gradient(rgb(184.0, 184.0, 184.0), rgb(177.0, 177.0, 177.0));
+}
+
+.tool-bar .button.button-icon-left,
+.tool-bar .toggle-button.button-icon-left {
+    -fx-padding: 0.1em 0.692398em 0.153846em 0.66em;
+}
+
+.tool-bar .button.button-icon-right,
+.tool-bar .toggle-button.button-icon-right {
+    -fx-padding: 0.1em 0.692398em 0.153846em 0.538462em;
+}
+
+.tool-bar .toggle-button:selected:armed,
+.tool-bar .toggle-button:selected,
+.tool-bar .toggle-button:armed{
+    -fx-background-color: -toggle-selected-base, -toggle-shadow;
+}
+
+.tool-bar.inactive .toggle-button:selected {
+    -fx-background-color: linear-gradient(rgb(147.0, 147.0, 147.0) 0.0%, rgb(164.0, 164.0, 164.0) 10.0%, 
+        rgb(190.0, 190.0, 190.0) 85.0%, rgb(195.0, 195.0, 195.0) 98.0%, rgb(198.0, 198.0, 198.0) 100.0%),
+        -toggle-shadow;
+}
+
+.tool-bar.inactive .combo-box-base:editable > .text-field {
+       -fx-border-color: 
+        linear-gradient(rgb(201.0, 201.0, 201.0), rgb(193.0, 193.0, 193.0));
+}
+
+.tool-bar .combo-box-base:editable > .text-field {
+    -fx-padding: 0.1em 0.0em 0.153846em 0.0em;
+    -fx-background-insets:0.0, 0.5, 0.5;
+    -fx-border-width: 1.0 0.0 1.0 1.0;
+    -fx-border-insets: -0.5;
+    -fx-border-color: linear-gradient(rgb(147.0, 147.0, 147.0), rgb(131.0, 131.0, 131.0));
+}
+
+.tool-bar .toggle-button,
+.tool-bar .button,
+.tool-bar .color-picker{
+    -fx-padding: 0.1em 0.9em 0.153846em 0.9em;
+}
+
+.tool-bar .choice-box {
+    -fx-padding: 0.1em 0.0em 0.153846em 0.0em;
+}
+
+.tool-bar .color-picker {
+    -fx-padding:-0.02em 1.2 -0.06em 0.0;
+}
+
+.tool-bar .button:armed,
+.tool-bar .color-picker:showing,
+.tool-bar .choice-box:showing,
+.tool-bar .combo-box:showing > .arrow-button {
+    -fx-background-color: linear-gradient(rgb(160.0, 160.0, 160.0), rgb(215.0, 215.0, 215.0));
+    -fx-border-color: linear-gradient(rgb(147.0, 147.0, 147.0), rgb(131.0, 131.0, 131.0)),
+        linear-gradient(rgb(116.0, 116.0, 116.0), rgb(105.0, 105.0, 105.0));
+    -fx-text-fill: -fx-text-base-color;
+}
+
+.tool-bar .toggle-button.right-pill,
+.tool-bar .button.right-pill {
+    -fx-border-width: 0.5 0.5 0.5 0.5;
+    -fx-border-style: solid solid solid segments(15.0, 2.75) phase 14.5 centered, 
+        solid solid solid segments(15.0, 2.75) phase 15.0 centered;
+}
+
+.tool-bar .toggle-button.center-pill,
+.tool-bar .button.center-pill {
+    -fx-border-width: 0.5 0.0 0.5 0.5;
+    -fx-border-style: solid solid solid segments(15.0, 2.75) phase 14.5 centered, 
+        solid solid solid segments(15.0, 2.75) phase 15.0 centered;
+}
+
+.tool-bar .toggle-button.center-pill,
+.tool-bar .toggle-button.left-pill,
+.tool-bar .button.center-pill,
+.tool-bar .button.left-pill {
+    -fx-border-width: 0.5 0.0 0.5 0.5;
+}
+
+.tool-bar .toggle-button.center-pill:selected,
+.tool-bar .toggle-button.center-pill:selected:armed,
+.tool-bar .button.center-pill:armed {
+    -fx-border-width:0.5 0.5 0.5 0.5, 0.5 0.0 0.5 0.5;
+    -fx-border-style: solid solid solid solid centered, solid solid solid solid centered;
+}
+
+.tool-bar .toggle-button.right-pill:selected,
+.tool-bar .toggle-button.right-pill:selected:armed,
+.tool-bar .button.right-pill:armed  {
+    -fx-border-width:0.5 0.5 0.5 0.5;
+    -fx-border-color: linear-gradient(rgb(147.0, 147.0, 147.0), rgb(131.0, 131.0, 131.0)),
+        linear-gradient(rgb(116.0, 116.0, 116.0), rgb(105.0, 105.0, 105.0));
+    -fx-border-style: solid solid solid solid centered;
+}
+
+.tool-bar.inactive .toggle-button.right-pill:selected {
+    -fx-border-color: rgb(172.0, 172.0, 172.0, 0.7),
+        linear-gradient(rgb(151.0, 151.0, 151.0), rgb(173.0, 173.0, 173.0));
+}
+
+.tool-bar .toggle-button.right-pill.neighbor,
+.tool-bar .button.right-pill.neighbor {
+    -fx-border-style: solid solid solid solid centered;
+    -fx-border-insets:-0.5, 0.0 ;
+    -fx-border-color: linear-gradient(rgb(147.0, 147.0, 147.0), rgb(131.0, 131.0, 131.0)),
+        linear-gradient(rgb(116.0, 116.0, 116.0), rgb(105.0, 105.0, 105.0));
+}
+
+
+.tool-bar.inactive .toggle-button.right-pill.neighbor,
+.tool-bar.inactive .button.right-pill.neighbor,
+.tool-bar.inactive .toggle-button.center-pill.neighbor,
+.tool-bar.inactive .button.center-pill.neighbor {
+    -fx-border-color: 
+        linear-gradient(rgb(201.0, 201.0, 201.0), rgb(193.0, 193.0, 193.0)), linear-gradient(rgb(184.0, 184.0, 184.0), rgb(177.0, 177.0, 177.0));
+}
+
+.tool-bar .toggle-button.center-pill.neighbor,
+.tool-bar .button.center-pill.neighbor {
+    -fx-border-style: solid solid solid solid centered;
+    -fx-border-insets:-0.5, 0.0 ;
+    -fx-border-color: linear-gradient(rgb(147.0, 147.0, 147.0), rgb(131.0, 131.0, 131.0)),
+        linear-gradient(rgb(116.0, 116.0, 116.0), rgb(105.0, 105.0, 105.0));
+}
+
+.tool-bar .button:disabled,
+.tool-bar .toggle-button:disabled,
+.tool-bar .color-picker:disabled,
+.tool-bar .combo-box:disabled,
+.tool-bar .menu-button:disabled,
+.tool-bar .split-menu-button:disabled,
+.tool-bar .choice-box:disabled {
+    -fx-opacity: 1.0;
+}
+
+.tool-bar .button > *:disabled,
+.tool-bar .toggle-button > *:disabled,
+.tool-bar .color-picker > *:disabled,
+.tool-bar .combo-box > *:disabled,
+.tool-bar .choice-box > *:disabled,
+.tool-bar .menu-button > *:disabled,
+.tool-bar .split-menu-button > *:disabled,
+.tool-bar .combo-box:editable > *:disabled,
+.tool-bar.inactive .aquaicon,
+.tool-bar.inactive .combo-box > .text-field > * > .text,
+.tool-bar.inactive .button > .text,
+.tool-bar.inactive .color-picker > .label,
+.tool-bar.inactive .color-picker > .arrow-button > .arrow,
+.tool-bar.inactive .choice-box > .label,
+.tool-bar.inactive .choice-box > .open-button > .arrow,
+.tool-bar.inactive .toggle-button > .text,
+.tool-bar.inactive .menu-button > * > .text,
+.tool-bar.inactive .menu-button > .arrow-button > .arrow,
+.tool-bar.inactive .split-menu-button > *  > .text,
+.tool-bar.inactive .split-menu-button > .arrow-button > .arrow,
+.tool-bar.inactive .combo-box > .list-cell > .text,
+.tool-bar.inactive .combo-box > .arrow-button > .arrow  {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+.tool-bar.inactive  *:disabled > .aquaicon,
+.tool-bar.inactive .button:disabled > .text,
+.tool-bar.inactive .toggle-button:disabled > .text,
+.tool-bar.inactive .color-picker:disabled > .label,
+.tool-bar.inactive .color-picker:disabled > .arrow-button > .arrow,
+.tool-bar.inactive .choice-box:disabled > .label,
+.tool-bar.inactive .choice-box:disabled > .open-button > .arrow,
+.tool-bar.inactive .combo-box:disabled > .list-cell > .text,
+.tool-bar.inactive .combo-box:disabled > .arrow-button > .arrow, 
+.tool-bar.inactive .combo-box-base:editable:disabled > .text-field > * > .text,
+.tool-bar.inactive .menu-button:disabled > .label,
+.tool-bar.inactive .menu-button:disabled > .arrow-button > .arrow,
+.tool-bar.inactive .split-menu-button:disabled > .label,
+.tool-bar.inactive .split-menu-button:disabled > .arrow-button,
+.tool-bar.inactive .button.button-icon-left > .icon-left:disabled,
+.tool-bar.inactive .toggle-button.button-icon-left > .icon-left:disabled,
+.tool-bar.inactive .button.button-icon-right > .icon-right:disabled,
+.tool-bar.inactive .toggle-button.button-icon-right > .icon-right:disabled {
+     -fx-opacity: 0.2
+}
+
+
+/*******************************************************************************
+ *                                                                             *
+ * ProgressBar                                                                 *
+ *                                                                             *
+ ******************************************************************************/
+
+.progress-bar {
+    -fx-border-color: rgb(146.0, 146.0, 146.0);
+    -fx-border-width: 0.5;
+    -fx-border-radius: 2.5;
+    -fx-background-color:
+        linear-gradient(rgb(176.0, 176.0, 176.0), rgb(207.0, 207.0, 207.0)),
+        linear-gradient(rgb(190.0, 190.0, 190.0) 0.0%, rgb(213.0, 213.0, 213.0) 15.0%, rgb(230.0, 230.0, 230.0) 50.0%, rgb(235.0, 235.0, 235.0) 100.0%),
+        linear-gradient(to left, rgb(196.0, 196.0, 196.0, 0.5) 0.0%, rgb(220.0, 220.0, 220.0, 0.2) 2.0% , transparent);
+    -fx-background-insets: 0.5, 1.0, 1.0;
+    -fx-background-radius: 2.0, 2.0, 2.0;
+    -fx-indeterminate-bar-length:-1.0;
+    -fx-indeterminate-bar-escape: false;
+    -fx-indeterminate-bar-flip: false;
+    -fx-indeterminate-bar-animation-time: 0.0;
+    
+    -fx-aqua-determinate-image: "progress.png";
+}
+
+.progress-bar:indeterminate  {
+    -fx-background-color: 
+        linear-gradient(rgb(176.0, 176.0, 176.0), rgb(207.0, 207.0, 207.0)),
+        linear-gradient(from 5.0% 45.0% to 10.0% 0.0%, reflect, rgb(84.0, 169.0, 239.0) 50.0%, rgb(236.0, 236.0, 236.0) 47.0%),
+        linear-gradient(rgb(255.0, 255.0, 255.0, 0.7) 5.0%, rgb(255.0, 255.0, 255.0, 0.5) 5.0%,
+            rgb(255.0, 255.0, 255.0, 0.1) 50.0%, rgb(255.0, 255.0, 255.0, 0.0) 50.0%, rgb(255.0, 255.0, 255.0, 0.0) 60.0%,
+            rgb(255.0, 255.0, 255.0, 0.4) 85.0%, rgb(245.0, 245.0, 245.0, 0.7) 100.0%);
+            
+      -fx-aqua-indeterminate-color:rgb(84.0, 169.0, 239.0);      
+}
+
+.progress-bar:indeterminate > .bar {
+    -fx-background-color: transparent;
+}
+
+.progress-bar > .bar {
+    -fx-border-color:linear-gradient(to bottom, rgb(161.0, 161.0, 161.0), rgb(208.0, 208.0, 208.0));
+    -fx-border-width: 0.0 0.5 0.0 0.0;
+    -fx-background-color:
+      radial-gradient(center 50.0% 50.0%, radius 50.0%, rgb(84.0, 170.0, 240.0), rgb(90.0, 192.0, 246.0));
+    -fx-background-insets: 0.0;
+    -fx-padding: 0.416667em;
+}
+
+.progress-bar:disabled {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * ProgressIndicator                                                           *
+ *                                                                             *
+ ******************************************************************************/
+
+.progress-indicator {
+    -fx-indeterminate-segment-count: 12.0;
+}
+
+.progress-indicator > .determinate-indicator > .indicator {
+    -fx-background-color:
+        rgb(208.0, 208.0, 208.0),
+        linear-gradient(rgb(176.0, 176.0, 176.0), rgb(207.0, 207.0, 207.0)),
+        linear-gradient(rgb(190.0, 190.0, 190.0) 0.0%, rgb(213.0, 213.0, 213.0) 15.0%, rgb(230.0, 230.0, 230.0) 50.0%, rgb(235.0, 235.0, 235.0) 100.0%),
+        linear-gradient(to left, rgb(196.0, 196.0, 196.0, 0.5) 0.0%, rgb(220.0, 220.0, 220.0, 0.2) 2.0% , transparent);
+    -fx-background-insets: 0.5 0.0 -0.5 0.0, 0.0, 0.5, 1.0;
+    -fx-padding: 0.083333em;
+}
+
+.progress-indicator > .determinate-indicator > .progress {
+    -fx-background-color:
+       rgb(208.0, 208.0, 208.0),
+       radial-gradient(center 50.0% 50.0%, radius 50.0%, rgb(84.0, 170.0, 240.0), rgb(90.0, 192.0, 246.0));
+    -fx-background-insets: 0.0, 0.5;
+    -fx-padding: 0.166667em; 
+}
+
+.progress-indicator > .determinate-indicator > .tick {
+    -fx-background-color: rgb(208.0, 208.0, 208.0), white;
+    -fx-background-insets: 1.0 0.0 -1.0 0.0, 0.0;
+    -fx-padding: 0.416667em;
+    -fx-shape: "m 18.174523,1027.137 c -0.18077,-0.4575 -0.184364,-0.8913 0.115901,-1.1721 0.300265,-0.2809 0.836622,-0.3601 1.288422,-0.041 0.4518,0.3191 2.020453,2.9316 2.020453,2.9316 l 5.41194,-8.0232 c -4e-6,0 0.516257,-0.6671 1.248682,-0.3099 0.648831,0.3165 0.559153,1.0373 0.559153,1.0373 0,0 -5.940433,9.3556 -6.15501,9.6287 -0.214577,0.273 -1.595078,0.2481 -1.817995,-0.027 -0.222917,-0.2751 -2.490777,-3.567 -2.671546,-4.0244 z";
+    -fx-scale-shape: false;
+}
+
+.progress-indicator > .percentage {
+    -fx-font-size: 0.916667em;
+}
+
+.progress-indicator:disabled {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+.progress-indicator:indeterminate > .spinner {
+    -fx-padding: 0.083333em; 
+}
+
+.progress-indicator:indeterminate .segment {
+    -fx-background-color: rgb(95.0, 95.0, 98.0), rgb(122.0, 122.0, 125.0);
+    -fx-background-insets:0.0, 0.5;
+}
+.progress-indicator:indeterminate .segment0 {
+    -fx-shape:"m 14.321262,6.5816808 c -0.824944,0.3797564 -0.10368,1.8484772 0.718513,1.3544717 L 18.786514,5.9486042 C 19.644992,5.4932031 18.92648,4.1387308 18.068001,4.5941315 z";
+}
+.progress-indicator:indeterminate .segment1 {
+    -fx-shape:"m 15.372451,9.2445322 c -0.906719,-0.051108 -0.957826,1.5843588 0,1.5332498 l 4.241273,0 c 0.97179,0 0.97179,-1.5332498 0,-1.5332498 z";
+}
+.progress-indicator:indeterminate .segment2 {
+    -fx-shape:"m 14.423504,13.443113 c -0.824945,-0.379757 -0.10368,-1.848478 0.718512,-1.354472 l 3.746739,1.987548 c 0.858478,0.455401 0.139967,1.809873 -0.718512,1.354473 z";
+}
+.progress-indicator:indeterminate .segment3 {
+    -fx-shape:"m 12.10997,15.070611 c -0.49762,-0.759687 0.893182,-1.621681 1.327834,-0.766626 l 2.120636,3.673051 c 0.485895,0.841595 -0.841938,1.60822 -1.327833,0.766625 z";
+}
+.progress-indicator:indeterminate .segment4 {
+    -fx-shape:"m 9.2224559,19.539943 c -0.051108,0.906718 1.5843581,0.957826 1.5332501,0 l 0,-4.241273 c 0,-0.97179 -1.5332501,-0.97179 -1.5332501,0 z";
+}
+.progress-indicator:indeterminate .segment5 {
+    -fx-shape:"M 8.0465401,15.070611 C 8.5441601,14.310924 7.1533584,13.44893 6.7187068,14.303985 l -2.1206366,3.673051 c -0.485895,0.841595 0.8419383,1.60822 1.3278333,0.766625 z";
+}
+.progress-indicator:indeterminate .segment6 {
+    -fx-shape:"M 5.7330066,13.443113 C 6.5579512,13.063356 5.8366865,11.594635 5.0144939,12.088641 L 1.2677551,14.076189 C 0.409277,14.53159 1.1277888,15.886062 1.9862674,15.430662 z";
+}
+.progress-indicator:indeterminate .segment7 {
+    -fx-shape:"m 0.42171041,9.2083842 c -0.90671825,-0.051108 -0.95782608,1.5843588 0,1.5332498 l 4.24127319,0 c 0.9717899,0 0.9717899,-1.5332498 0,-1.5332498 z";
+}
+.progress-indicator:indeterminate .segment8 {
+    -fx-shape:"M 5.7330066,6.5305598 C 6.5579512,6.9103162 5.8366865,8.3790371 5.0144939,7.8850315 L 1.2677551,5.8974832 C 0.409277,5.4420823 1.1277888,4.0876101 1.9862674,4.5430105 z";
+}
+.progress-indicator:indeterminate .segment9 {
+    -fx-shape:"M 8.0465401,4.9030617 C 8.5441601,5.6627485 7.1533584,6.5247425 6.7187068,5.6696872 L 4.5980702,1.9966363 C 4.1121752,1.1550418 5.4400085,0.38841683 5.9259035,1.2300114 z";
+}
+.progress-indicator:indeterminate .segment10 {
+    -fx-shape:"m 9.2224559,4.62535 c -0.051108,0.9067177 1.5843581,0.957826 1.5332501,0 l 0,-4.24127319 c 0,-0.9717899 -1.5332501,-0.9717899 -1.5332501,0 z";
+}
+.progress-indicator:indeterminate .segment11 {
+    -fx-shape:"m 12.007729,4.9541827 c -0.49762,0.7596865 0.893181,1.6216808 1.327833,0.7666252 L 15.456199,2.0477574 C 15.942094,1.2061627 14.61426,0.43953765 14.128365,1.2811324 z";
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * TableView & TreeTableView                                                   *
+ * Note: A lot of the CSS for TreeTableView is included with the TreeView and  *
+ * TableView CSS styles elsewhere (as they are the same, just                  *
+ * targeting different CSS style classes).                                     *
+ *                                                                             *
+ ******************************************************************************/
+
+.table-view,
+.tree-table-view {
+    -fx-background-color: white;
+    -fx-background-insets: 0.5;
+    -fx-border-color: rgb(156.0, 156.0, 156.0) rgb(190.0, 190.0, 190.0) rgb(190.0, 190.0, 190.0) rgb(190.0, 190.0, 190.0);
+    -fx-border-width: 1.0;
+    -fx-border-insets: 0.0;
+    -fx-table-cell-border-color: transparent;
+}
+
+/* Draws focus border around tableview */
+.table-view:focused,
+.tree-table-view:focused,
+.tree-view:focused,
+.list-view:focused  {
+    -fx-effect: dropshadow(one-pass-box , rgb(120.0,171.0,217.0), 8.0, 0.8 , 0.0, 0.0);
+}
+
+.table-view:disabled,
+.tree-view:disabled,
+.tree-table-view:disabled,
+.list-view:disabled,
+.list-cell:filled:selected:focused:disabled, 
+.list-cell:filled:selected:disabled {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+/* Each row in the table is a table-row-cell. Inside a table-row-cell is any
+   number of table-cell. */
+.table-row-cell,
+.tree-table-row-cell {
+    -fx-background-color: white;
+    -fx-background-insets: 0.0;
+    -fx-text-fill: -fx-text-base-color;
+}
+
+.table-row-cell:odd,
+.tree-table-row-cell:odd {
+    -fx-background-color: rgb(243.0, 246.0, 250.0);
+}
+
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled:selected > .table-cell,
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:selected > .tree-table-cell {
+    -fx-text-fill: white;
+}
+
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled:selected, 
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:selected,
+.table-view:row-selection:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled:focused:selected:hover,
+.tree-table-view:row-selection:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:focused:selected:hover {
+    -fx-background-color: rgb(60.0, 119.0, 212.0);
+    -fx-background-insets: 0.0;
+}
+
+/* When the TableView is _not_ focused, we show alternate selection colors */
+.table-row-cell:filled:selected:focused, 
+.table-row-cell:filled:selected,
+.tree-table-row-cell:filled:selected:focused, 
+.tree-table-row-cell:filled:selected,
+.tree-cell:filled:selected:focused, 
+.tree-cell:filled:selected {
+    -fx-background-color: lightgray;
+    -fx-text-fill: -fx-text-base-color;
+}
+
+.table-row-cell:selected:disabled,
+.tree-table-row-cell:selected:disabled,
+.tree-cell > .tree-disclosure-node:disabled,
+.tree-table-row-cell > .tree-disclosure-node:disabled {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+.table-view:row-selection > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled:hover,
+.tree-view > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:hover,
+.table-view:row-selection > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled:focused:hover,
+.tree-table-view:row-selection > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:focused:hover,
+.tree-table-view:row-selection > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:hover, 
+.tree-view > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:selected:hover,
+.tree-table-row-cell:filled:selected:hover { 
+    -fx-background-color: -fx-cell-hover-color;
+    -fx-background-insets: 0.0;
+    -fx-text-fill: -fx-text-base-color;
+}
+
+.table-cell,
+.tree-table-cell {
+    -fx-background-color: transparent;
+    -fx-background-insets: 0.0;
+    -fx-border-color: transparent;
+    -fx-border-width: 0.0em;
+    -fx-text-fill: -fx-text-base-color;
+    -fx-padding: 0.0em 0.769231em 0.0em 0.769231em;
+}
+
+/* When in constrained resize mode, the right-most visible cell should not have
+   a right-border, as it is not possible to get this cleanly out of view without
+   introducing horizontal scrollbars (see RT-14886). */
+.table-view:constrained-resize > .virtual-flow > .clipped-container > .sheet > .table-row-cell > .table-cell:last-visible,
+.tree-table-view:constrained-resize > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell > .tree-table-cell:last-visible {
+    -fx-border-color: transparent;
+}
+.table-view:constrained-resize > .column-header:last-visible,
+.tree-table-view:constrained-resize > .column-header:last-visible {
+    -fx-border-width: 0.083333em 0.0em 0.083333em 0.083333em, 0.083333em 0.0em 0.083333em 0.083333em;
+}
+.table-view:constrained-resize .filler,
+.tree-table-view:constrained-resize .filler {
+    -fx-border-insets: 0.0 1.0 1.0 1.0, 0.0 0.0 0.0 0.0;
+}
+
+/* When the TableView is _not_ focused, we show alternate selection colors */
+ .table-row-cell:filled > .table-cell:selected:focused, 
+ .table-row-cell:filled > .table-cell:selected,
+ .tree-table-row-cell:filled > .tree-table-cell:selected:focused, 
+ .tree-table-row-cell:filled > .tree-table-cell:selected {
+    -fx-background-color: lightgray;
+}
+
+.table-cell:selected:disabled,
+.tree-table-cell:selected:disabled,
+.tree-cell:filled:selected:focused:disabled, 
+.tree-cell:filled:selected:disabled {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+/* The column-resize-line is shown when the user is attempting to resize a column. */
+.table-view .column-resize-line,
+.tree-table-view .column-resize-line {
+    -fx-background-color: lightgray;
+    -fx-padding: 0.0em 0.02em 0.0em 0.02em; 
+}
+
+/* This is the area behind the column headers. An ideal place to specify background
+   and border colors for the whole area (not individual column-header's). */
+.table-view .column-header-background,
+.tree-table-view .column-header-background {
+     -fx-background-color:
+        linear-gradient(rgb(255.0, 255.0, 255.0) 25.0%, rgb(243.0, 243.0, 243.0) 50.0%, rgb(236.0, 236.0, 236.0) 50.0%, rgb(243.0, 243.0, 243.0) 98.0% , rgb(250.0, 250.0, 250.0) 100.0% );
+    -fx-background-insets:  0.0;
+    -fx-border-color: rgb(156.0, 156.0, 156.0);
+    -fx-border-insets: 0.0 0.0 0.5 0.0;
+    -fx-border-width: 0.0 0.0 0.5 0.0;
+    -fx-padding: 0.0;
+}
+
+/* The column header row is made up of a number of column-header, one for each
+   TableColumn, and a 'filler' area that extends from the right-most column
+   to the edge of the tableview, or up to the 'column control' button. */
+.table-view .column-header,
+.tree-table-view .column-header {
+    /* since there could appear nested column-headers in a header, the border-color is defined by a gradient */
+    -fx-right-border: linear-gradient(transparent, transparent 15.0%, rgb(190.0, 190.0, 190.0, 0.8) 15.0%, rgb(190.0, 190.0, 190.0, 0.8) 85.0%, transparent 85.0%, transparent);
+    -fx-border-color: rgb(212.0, 212.0, 212.0, 0.8) -fx-right-border rgb(212.0, 212.0, 212.0, 0.8) transparent;
+    -fx-border-width: 0.5 1.0 0.5 0.0;
+    -fx-border-insets: 0.0;
+}
+
+
+/* This is especially for AquaFX. Apple uses tables with one column for simple Lists. This is just, to make it possible for users. The ListView Class  */
+.table-view.hide-header .column-header{
+    -fx-min-height: 0.0;
+    -fx-max-height: 0.0;
+    -fx-pref-height: 0.0;
+}
+
+/* filler is the area, which is next to column-header, but has no column..*/
+.table-view .filler,
+.tree-table-view .filler {
+    -fx-border-color: rgb(212.0, 212.0, 212.0, 0.8);
+    -fx-border-width: 0.5 0.0 0.5 0.0;
+    -fx-border-insets: 0.0;
+}
+
+.table-view .column-header:pressed,
+.tree-table-view .column-header:pressed,
+.table-view .filler:pressed,
+.tree-table-view .filler:pressed {
+     -fx-background-color:
+        linear-gradient(rgb(224.0, 224.0, 224.0) 25.0%, rgb(214.0, 214.0, 214.0) 50.0%, rgb(207.0, 207.0, 207.0) 50.0%, 
+                rgb(209.0, 209.0, 209.0) 98.0% , rgb(218.0, 218.0, 218.0) 100.0%
+        );
+    -fx-border-color: rgb(156.0, 156.0, 156.0);
+    -fx-border-width: 0.5 1.0 0.5 1.0 ;
+    -fx-border-insets: -0.5 0.0 -0.5 -1.0;
+}
+
+.table-view .column-header .sort-order-dots-container,
+.tree-table-view .column-header .sort-order-dots-container{
+    -fx-padding: 2.0 0.0 2.0 0.0;
+}
+
+.table-view .column-header .sort-order,
+.tree-table-view .column-header .sort-order{
+    -fx-font-size: 0.916667em;
+}
+
+.table-view .column-header .sort-order-dot,
+.tree-table-view .column-header .sort-order-dot {
+    -fx-background-color: rgb(255.0, 255.0, 255.0, 0.4), rgb(0.0,0.0,0.0, 0.4);
+    -fx-padding: 0.0625em 0.104em 0.0625em 0.104em;
+}
+
+
+/* dots beneath/ above the sort order-arrows */
+.table-view .column-header .sort-order-dot.ascending,
+.tree-table-view .column-header .sort-order-dot.ascending {
+    -fx-background-insets: -1.0 0.0 1.0 0.0, 0.0; 
+}
+
+.table-view .column-header .sort-order-dot.descending,
+.tree-table-view .column-header .sort-order-dot.descending {
+    -fx-background-insets: 1.0 0.0 -1.0 0.0, 0.0; 
+}
+
+.table-view > .column-header-background > .show-hide-columns-button,
+.tree-table-view > .column-header-background > .show-hide-columns-button{
+    -fx-background-color: transparent;
+}
+
+.table-view .show-hide-column-image,
+.tree-table-view .show-hide-column-image {
+    -fx-background-color: rgb(255.0, 255.0, 255.0, 0.4), rgb(0.0,0.0,0.0, 0.4);
+    -fx-background-insets: 3.0 2.0 -3.0 -2.0,  2.0 2.0 -2.0 -2.0;
+    -fx-padding: 0.25em;
+    -fx-shape: "M398.902,298.045c0.667,0,1.333,0,2,0c0,0.667,0,1.333,0,2c0.667,0,1.333,0,2,0c0,0.667,0,1.333,0,2c-0.667,0-1.333,0-2,0c0,0.666,0,1.332,0,1.999c-0.667,0-1.333,0-2,0c0-0.667,0-1.333,0-1.999c-0.666,0-1.333,0-1.999,0c0-0.667,0-1.334,0-2c0.666,0,1.333,0,1.999,0C398.902,299.378,398.902,298.711,398.902,298.045z"; 
+}
+
+.table-view .column-drag-header,
+.tree-table-view .column-drag-header {
+    -fx-background-color:  linear-gradient(rgb(224.0, 224.0, 224.0) 25.0%, rgb(214.0, 214.0, 214.0) 50.0%, rgb(207.0, 207.0, 207.0) 50.0%, 
+                rgb(209.0, 209.0, 209.0) 98.0% , rgb(218.0, 218.0, 218.0) 100.0%);
+    -fx-border-color: transparent;
+    -fx-opacity: 0.6;
+}
+
+.table-view /*> column-header-background > nested-column-header >*/ .arrow,
+.tree-table-view /*> column-header-background > nested-column-header >*/ .arrow {
+    -fx-background-color: rgb(255.0, 255.0, 255.0, 0.4), rgb(0.0,0.0,0.0, 0.4);
+    -fx-background-insets: 1.5 0.5 -1.0 0.5, 0.0, 0.0 0.5 0.0 0.5;
+    -fx-padding: 0.25em; 
+    -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}
+
+/* This is shown when the table has no rows and/or no columns. */
+.table-view .empty-table,
+.tree-table-view .empty-table {
+    -fx-background-color: white;
+}
+ .tree-table-row-cell:empty  .check-box-tree-table-cell,
+ .table-row-cell:empty  .check-box-table-cell,
+ .list-cell:empty {
+     -fx-opacity:0.0;
+ }
+
+.check-box-tree-table-cell,
+.check-box-table-cell {
+    -fx-alignment: center;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * TreeView and TreeCell                                                       *
+ *                                                                             *
+ ******************************************************************************/
+
+.tree-view {
+    -fx-background-color: white;
+    -fx-background-insets: 0.5;
+    -fx-border-color: rgb(156.0, 156.0, 156.0) rgb(190.0, 190.0, 190.0) rgb(190.0, 190.0, 190.0) rgb(190.0, 190.0, 190.0);
+    -fx-border-width: 1.0;
+    -fx-border-insets: 0.0;
+}
+
+.tree-cell {
+    -fx-background-color: white;
+    -fx-padding: 0.083333em;
+    -fx-text-fill: -fx-text-base-color;
+    -fx-indent: 13.0;
+}
+
+.tree-cell .label {
+    -fx-padding: 0.0em 0.0em 0.0em 0.25em;
+}
+
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:focused:selected,
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:selected, 
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:selected:hover,
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:focused:selected:hover {
+    -fx-background-color: rgb(60.0, 119.0, 212.0);
+    -fx-text-fill: white;
+}
+
+.tree-cell > .tree-disclosure-node,
+.tree-table-row-cell > .tree-disclosure-node {
+    -fx-padding: 4.0;
+    -fx-background-color: transparent;
+}
+
+.tree-cell > .tree-disclosure-node > .arrow,
+.tree-table-row-cell > .tree-disclosure-node > .arrow {
+    -fx-background-color: rgb(134.0, 134.0, 134.0);
+    -fx-padding: 0.25em 0.333333em 0.153846em 0.333333em;
+    -fx-background-insets: 0.0 0.5 0.0 0.5;
+    -fx-shape: "M 0 -4 L 8 0 L 0 4 z";
+    -fx-scale-shape: false;
+}
+
+.tree-cell:expanded > .tree-disclosure-node > .arrow,
+.tree-table-row-cell:expanded > .tree-disclosure-node > .arrow {
+    -fx-rotate: 90.0;
+}
+
+.tree-view > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:hover,
+.tree-table-row-cell:filled:hover,
+.tree-view > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:selected:hover,
+.tree-table-row-cell:filled:selected:hover {
+    -fx-background-color: -fx-cell-hover-color;
+    -fx-text-fill: -fx-text-base-color;
+}
+
+.tree-view > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:selected > .tree-disclosure-node > .arrow,
+.tree-view > .virtual-flow > .clipped-container > .sheet > .tree-cell:selected > .tree-disclosure-node > .arrow,
+.tree-cell:filled:hover > .tree-disclosure-node > .arrow,
+.tree-table-row-cell:filled:hover > .tree-disclosure-node > .arrow {
+    -fx-background-color: rgb(134.0, 134.0, 134.0);
+}
+
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:selected:focused > .tree-disclosure-node > .arrow, 
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:selected:hover:focused > .tree-disclosure-node > .arrow,
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:selected:hover > .tree-disclosure-node > .arrow,
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:selected > .tree-disclosure-node > .arrow {
+    -fx-background-color: white;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * TitledPane                                                                  *
+ *                                                                             *
+ ******************************************************************************/
+
+.titled-pane {
+    -fx-text-fill: -fx-text-base-color;
+    -fx-border-color: rgb(146.0, 146.0, 146.0);
+    -fx-border-width: 1.0 0.0 1.0 0.0;
+}
+
+.titled-pane:focused  > .title > .arrow-button > .arrow  {
+    -fx-effect: dropshadow(one-pass-box , rgb(104.0, 155.0, 201.0), 6.5, 0.8 , 0.0, 0.0);
+}
+
+.titled-pane > .title {
+    -fx-padding: 0.166667em 0.833333em 0.25em 0.833333em;
+}
+
+.titled-pane > .title > .arrow-button {
+    -fx-background-color: null;
+    -fx-background-insets: 0.0;
+    -fx-background-radius: 0.0;
+    -fx-padding: 0.0em 0.25em 0.0em 0.0em;
+}
+
+.titled-pane > .title > .arrow-button > .arrow {
+    -fx-background-color: rgb(134.0, 134.0, 134.0), rgb(176.0, 176.0, 176.0, 0.3);
+    -fx-background-insets: 0.5 0.0 -0.5 0.0, 0.0;
+    -fx-padding: 0.25em 0.3125em 0.25em 0.3125em;
+    -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}
+
+.titled-pane > *.content {
+    -fx-padding: 0.167em;
+}
+
+
+/*******************************************************************************
+ *                                                                             *
+ * Accordion                                                                   *
+ *                                                                             *
+ ******************************************************************************/
+
+.accordion > .titled-pane {
+    -fx-border-width: 1.0 0.0 0.0 0.0;
+}
+
+.accordion > .first-titled-pane  {
+   -fx-border-color: transparent;
+    -fx-border-width: 0.0;
+}
+
+
+/*******************************************************************************
+ *                                                                             *
+ * SplitPane                                                                   *
+ *                                                                             *
+ ******************************************************************************/
+.tab-pane > * > .split-pane,
+.split-pane > * > .tab-pane,
+.split-pane > * > .table-view,
+.split-pane > * > .list-view,
+.split-pane > * > .tree-view,
+.split-pane > * > .scroll-pane,
+.split-pane > * > .split-pane {
+    -fx-border-width: 0.0;
+    -fx-padding: 0.0;
+ }
+
+.split-pane {
+    -fx-border-color: rgb(175.0, 175.0, 175.0);
+    -fx-border-width: 1.0;
+    -fx-background-color: white;
+    -fx-padding: 0.0;
+}
+
+.split-pane > .split-pane-divider {
+    -fx-padding: 0.0em 0.307692em 0.0em 0.307692em;
+}
+
+/* horizontal the two nodes are placed to the left/right of each other. */
+.split-pane:horizontal > .split-pane-divider {
+   -fx-border-color: transparent rgb(180.0, 180.0, 180.0) transparent rgb(180.0, 180.0, 180.0);
+   -fx-border-width: 1.0;
+   -fx-background-color: linear-gradient(to right, rgb(252.0, 252.0, 252.0), rgb(224.0, 224.0, 224.0));
+}
+
+/* vertical the two nodes are placed on top of each other. */
+.split-pane:vertical > .split-pane-divider {
+   -fx-border-color:  rgb(180.0, 180.0, 180.0) transparent rgb(180.0, 180.0, 180.0) transparent;
+   -fx-border-width: 1.0;
+   -fx-background-color: linear-gradient(rgb(252.0, 252.0, 252.0), rgb(224.0, 224.0, 224.0));
+}
+
+.split-pane > .split-pane-divider > .horizontal-grabber,
+.split-pane > .split-pane-divider > .vertical-grabber {
+    -fx-padding: 0.153846em;
+    -fx-background-color: radial-gradient(focus-angle 90.0deg, focus-distance 15.0%, center 75.0% 50.0%, radius 65.0%, rgb(203.0, 203.0, 203.0), rgb(167.0, 167.0, 167.0));
+    -fx-background-insets: 0.0;
+    -fx-shape: "m 7.3638763,7.3678179 c 0,1.9327203 -1.7375658,3.4995001 -3.8809619,3.4995001 -2.143396,0 -3.88096185,-1.5667798 -3.88096185,-3.4995001 0,-1.9327204 1.73756585,-3.4994998 3.88096185,-3.4994998 2.1340502,0 3.8677202,1.5536502 3.8808881,3.4779066";
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * TabPane                                                                     *
+ *                                                                             *
+ ******************************************************************************/
+
+.tab-pane {
+    -fx-tab-alignment: CENTER;
+}
+
+.tab-pane:top > .tab-content-area {
+    -fx-border-width: 0.0 0.5 0.5 0.5;
+    -fx-border-radius: 0.0 0.0 6.0 6.0;
+    -fx-border-insets: 0.0 5.0 5.0 5.0;
+    -fx-background-insets: 0.0 5.0 5.0 5.0;
+    -fx-background-radius: 0.0 0.0 6.0 6.0;
+    -fx-border-color: rgb(193.0, 193.0, 193.0);
+    -fx-background-color: rgb(227.0, 227.0, 227.0),
+        linear-gradient(to right, rgb(168.0, 168.0, 168.0, 0.5) 0.0%, transparent 0.4%, transparent 99.6%, rgb(168.0, 168.0, 168.0, 0.5));    
+}
+
+.tab-pane:right > .tab-content-area{
+    -fx-border-width: 0.5 0.0 0.5 0.5;
+    -fx-border-radius: 6.0 0.0 0.0 6.0;
+    -fx-border-insets: 5.0 0.0 5.0 5.0;
+    -fx-background-insets: 5.0 0.0 5.0 5.0;
+    -fx-background-radius: 6.0 0.0 0.0 6.0;
+    -fx-border-color: rgb(193.0, 193.0, 193.0);
+    -fx-background-color: rgb(227.0, 227.0, 227.0),
+        linear-gradient(to bottom, rgb(168.0, 168.0, 168.0, 0.5) 0.0%, transparent 2.0%, transparent 98.0%, rgb(168.0, 168.0, 168.0, 0.5));    
+}
+
+.tab-pane:bottom > .tab-content-area{
+    -fx-border-width: 0.5 0.5 0.0 0.5;
+    -fx-border-radius: 6.0 6.0 0.0 0.0;
+    -fx-border-insets: 5.0 5.0 0.0 5.0;
+    -fx-background-insets: 5.0 5.0 0.0 5.0;
+    -fx-background-radius: 6.0 6.0 0.0 0.0;    
+    -fx-border-color: rgb(193.0, 193.0, 193.0);
+    -fx-background-color: rgb(227.0, 227.0, 227.0),
+        linear-gradient(to right, rgb(168.0, 168.0, 168.0, 0.5) 0.0%, transparent 0.4%, transparent 99.6%, rgb(168.0, 168.0, 168.0, 0.5));    
+}
+
+.tab-pane:left > .tab-content-area{
+    -fx-border-width: 0.5 0.5 0.5 0.0;
+    -fx-border-radius: 0.0 6.0 6.0 0.0;
+    -fx-border-insets: 5.0 5.0 5.0 0.0;
+    -fx-background-insets: 5.0 5.0 5.0 0.0;   
+    -fx-background-radius: 0.0 6.0 6.0 0.0;
+    -fx-border-color: rgb(193.0, 193.0, 193.0);
+    -fx-background-color: rgb(227.0, 227.0, 227.0),
+        linear-gradient(to bottom, rgb(168.0, 168.0, 168.0, 0.5) 0.0%, transparent 2.0%, transparent 98.0%, rgb(168.0, 168.0, 168.0, 0.5));    
+}
+
+.tab-pane > .tab-header-area > .headers-region > .tab {
+    -fx-background-color: rgb(255.0, 255.0, 255.0),
+        linear-gradient(rgb(255.0, 255.0, 255.0) 25.0%, rgb(243.0, 243.0, 243.0) 50.0%, rgb(236.0, 236.0, 236.0) 50.0%, rgb(243.0, 243.0, 243.0) 100.0% );
+    -fx-padding: 0.07em 0.75em 0.1em 0.75em;
+    -fx-content-display: LEFT;
+    -fx-background-radius: 0.0, 0.0;
+    -fx-background-insets:  0.0, 1.0 0.0 0.0 0.0;
+    -fx-border-radius: 0.0;
+    -fx-border-width:0.5 0.0 0.5 1.0;
+    -fx-border-style: solid solid solid segments(15.0, 2.5) phase 15.0 ;
+    -fx-border-color: rgb(147.0, 147.0, 147.0) rgb(129.0, 129.0, 129.0) rgb(129.0, 129.0, 129.0) rgb(203.0, 203.0, 203.0);
+}
+
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label {
+    -fx-text-fill: -fx-text-base-color;
+}
+
+.tab-pane > .tab-header-area > .headers-region > .first-tab{
+    -fx-background-radius: 4.0 0.0 0.0 4.0, 4.0 0.0 0.0 4.0;
+    -fx-background-insets:  0.0, 1.0 0.0 0.0 1.0;
+    -fx-border-radius: 4.0 0.0 0.0 4.0;
+    -fx-border-width:0.5 0.0 0.5 0.5;
+    -fx-border-style: solid;
+    -fx-border-color: rgb(147.0, 147.0, 147.0) rgb(129.0, 129.0, 129.0) rgb(129.0, 129.0, 129.0) rgb(129.0, 129.0, 129.0);
+}
+
+.tab-pane > .tab-header-area > .headers-region > .last-tab{
+    -fx-background-radius: 0.0 4.0 4.0 0.0, 0.0 4.0 4.0 0.0;
+    -fx-background-insets:  0.0, 1.0 1.0 0.0 0.0;
+    -fx-border-radius: 0.0 4.0 4.0 0.0;
+    -fx-border-width:0.5 0.5 0.5 1.0;
+    -fx-border-style: solid solid solid segments(15.0, 2.25) phase 15.0 centered;
+    -fx-border-color: rgb(147.0, 147.0, 147.0) rgb(129.0, 129.0, 129.0) rgb(129.0, 129.0, 129.0) rgb(203.0, 203.0, 203.0);
+}
+
+.tab-pane > .tab-header-area > .headers-region > .tab.neighbor,
+.tab-pane > .tab-header-area > .headers-region > .last-tab.neighbor{
+    -fx-border-style: solid solid solid solid;
+    -fx-border-color: rgb(147.0, 147.0, 147.0) rgb(129.0, 129.0, 129.0) rgb(129.0, 129.0, 129.0)
+        rgb(74.0, 74.0, 74.0);
+}
+
+.tab-pane > .tab-header-area > .headers-region > .single-tab{
+    -fx-background-radius: 4.0 , 4.0;
+    -fx-background-insets:  0.0, 1.0;
+    -fx-border-radius: 4.0;
+    -fx-border-width:0.5;
+    -fx-border-style: solid;
+    -fx-border-color: rgb(129.0, 129.0, 129.0);
+}
+
+.tab-pane:top > .tab-header-area,
+.tab-pane:bottom > .tab-header-area{
+    -fx-padding: 0.0em 0.5em 0.0em 0.5em;
+}
+
+.tab-pane:right > .tab-header-area,
+.tab-pane:left > .tab-header-area{
+        -fx-padding: 0.5em 0.0em 0.5em 0.0em;
+}
+
+.tab-pane > .tab-header-area > .tab-header-background {
+    -fx-background-color: rgb(227.0, 227.0, 227.0);
+    -fx-background-insets: 9.0 5.0 0.0 5.0;
+    -fx-background-radius: 6.0 6.0 0.0 0.0;
+    -fx-border-color: rgb(193.0, 193.0, 193.0);
+    -fx-border-width: 0.5 0.5 0.0 0.5;
+    -fx-border-radius: 6.0 6.0 0.0 0.0;
+    -fx-border-insets: 9.0 5.0 0.0 5.0;
+    -fx-effect: innershadow(one-pass-box, rgb(168.0, 168.0, 168.0, 0.6), 4.0, 0.6, 0.0, 2.0);
+}
+
+/* CONTROL BUTTONS */
+.tab-pane > .tab-header-area > .control-buttons-tab {
+    -fx-background-color:
+        linear-gradient(rgb(255.0, 255.0, 255.0) 25.0%, rgb(243.0, 243.0, 243.0) 50.0%, rgb(236.0, 236.0, 236.0) 50.0%, rgb(243.0, 243.0, 243.0) 100.0% );
+    -fx-background-insets: 0.0;
+    -fx-background-radius: 15.0;
+    -fx-border-color: rgb(129.0, 129.0, 129.0);
+    -fx-border-radius: 15.0;
+    -fx-border-width: 0.5;
+    -fx-padding: 0.27em 0.4em 0.27em 0.4em; 
+} 
+
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button {
+    -fx-background-color: transparent;
+    -fx-padding: 0.4em 0.0em 0.5em 0.0em; 
+}
+
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button .arrow {
+    -fx-background-color: rgb(64.0, 64.0, 64.0);
+    -fx-background-insets: 1.0 0.0 6.0 0.0;
+    -fx-padding: 0.8em 0.3em 0.2em 0.3em; 
+    -fx-shape: "M 0 0 H 7 L 3.5 4 z";
+}
+
+.tab-pane:bottom > .tab-header-area > .control-buttons-tab > .container > .tab-down-button .arrow {
+    -fx-background-insets: 7.0 0.0 0.0 0.0;
+}
+
+/* TABPANE SELECTED STATE */
+.tab-pane > .tab-header-area > .headers-region > .tab:selected {
+    -fx-background-color: rgb(97.0, 97.0, 97.0), -toggle-selected-base, -toggle-shadow;
+    -fx-background-insets:0.0, 1.0 1.0 0.5 1.0, 1.0;
+    -fx-effect:innershadow(one-pass-box, rgb(94.0, 94.0, 94.0, 0.5), 5.5, 0.7, 0.0, 2.0);
+    -fx-border-style: solid solid solid solid centered;
+    -fx-border-color: rgb(147.0, 147.0, 147.0) rgb(129.0, 129.0, 129.0) rgb(129.0, 129.0, 129.0) rgb(74.0, 74.0, 74.0);
+}
+
+.tab-pane > .tab-header-area > .headers-region > .tab:selected > .tab-container > .tab-label {
+    -fx-text-fill: white;
+    -fx-effect: dropshadow(two-pass-box , rgba(0.0, 0.0, 0.0, 0.4), 1.0, 0.0 , 0.0, 0.5);
+}
+
+.tab-pane > .tab-header-area > .headers-region > .last-tab:selected{
+    -fx-border-style: solid solid solid solid centered;
+    -fx-border-color: rgb(147.0, 147.0, 147.0) rgb(129.0, 129.0, 129.0) rgb(129.0, 129.0, 129.0) rgb(74.0, 74.0, 74.0);
+}
+
+
+/* Tabs are not closeable in Aqua!
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-close-button {
+    -fx-background-color: rgb(255.0, 255.0, 255.0);
+    -fx-shape: "M 0,0 H1 L 4,3 7,0 H8 V1 L 5,4 8,7 V8 H7 L 4,5 1,8 H0 V7 L 3,4 0,1 Z";
+    -fx-scale-shape: false;
+    -fx-effect: dropshadow(two-pass-box , rgba(0.0, 0.0, 0.0, 0.3), 1.0, 0.0 , 0.0, 1.0);
+}*/
+
+
+.tab-pane > .tab-header-area > .headers-region > .tab:pressed {
+    -fx-background-color: rgb(87.0, 87.0, 87.0), -toggle-armed-base, -toggle-shadow-armed;
+    -fx-background-insets:0.0, 1.0 1.0 0.0 1.0, 1.0;
+    -fx-text-fill: white;
+    -fx-border-style: solid solid solid solid centered;
+    -fx-border-color: rgb(147.0, 147.0, 147.0) rgb(129.0, 129.0, 129.0) rgb(129.0, 129.0, 129.0) rgb(74.0, 74.0, 74.0);
+}
+
+.tab-pane > .tab-header-area > .headers-region > .last-tab:pressed{
+    -fx-border-style: solid solid solid solid centered;
+    -fx-border-color: rgb(147.0, 147.0, 147.0) rgb(129.0, 129.0, 129.0) rgb(129.0, 129.0, 129.0) rgb(74.0, 74.0, 74.0);
+}
+
+/* TODO: Focus handling
+ * .tab-pane:focused > .tab-header-area > .headers-region > .tab:selected .focus-indicator{
+    -fx-effect: dropshadow(one-pass-box , rgb(104, 155, 201), 6.5, 0.8 , 0.0, 0.0);
+} */
+
+.tab-pane > .tab-header-area > .headers-region > .tab:disabled {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+.tab:disable {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+
+
+/**
+ *  TabPane with small Icon-Buttons and no text. Known of some preferences dialogs
+ */
+
+.tab-pane.tabpane-type-small-icon-buttons {
+    -fx-tab-alignment: LEFT;
+}
+
+.tab-pane.tabpane-type-small-icon-buttons > .tab-content-area{
+    -fx-border-width: 0.0;
+    -fx-border-radius: 0.0;
+    -fx-border-insets: 0.0;
+    -fx-background-insets: 0.0;   
+    -fx-background-radius: 0.0 ;
+    -fx-border-color: transparent;
+    -fx-background-color: transparent;    
+}
+
+.tab-pane.tabpane-type-small-icon-buttons > .tab-header-area > .tab-header-background {
+    -fx-background-color: transparent;
+    -fx-background-insets: 0.0;
+    -fx-background-radius: 0.0;
+    -fx-border-color: rgb(193.0, 193.0, 193.0);
+    -fx-border-width: 0.0 0.0 1.0 0.0;
+    -fx-border-radius: 0.0;
+    -fx-border-insets:0.0;
+}
+
+.tab-pane.tabpane-type-small-icon-buttons > .tab-header-area {
+        -fx-padding: 0.0em;
+}
+
+.tab-pane.tabpane-type-small-icon-buttons > .tab-header-area > .headers-region > .tab,
+.tab-pane.tabpane-type-small-icon-buttons > .tab-header-area > .headers-region > .first-tab,
+.tab-pane.tabpane-type-small-icon-buttons > .tab-header-area > .headers-region > .last-tab,
+.tab-pane.tabpane-type-small-icon-buttons > .tab-header-area > .headers-region > .tab.neighbor,
+.tab-pane.tabpane-type-small-icon-buttons > .tab-header-area > .headers-region > .single-tab {
+    -fx-background-color: linear-gradient(rgb(255.0, 255.0, 255.0), rgb(246.0, 246.0, 246.0)),
+        linear-gradient(rgb(255.0, 255.0, 255.0) 25.0%, rgb(243.0, 243.0, 243.0) 50.0%, rgb(236.0, 236.0, 236.0) 50.0%, rgb(243.0, 243.0, 243.0) 100.0% );
+    -fx-padding: 0.24em 0.166667em 0.24em 0.166667em;
+    -fx-content-display: CENTER;
+    -fx-background-radius: 0.0, 0.0;
+    -fx-background-insets: 0.0 0.0 1.0 0.0, 0.5 0.0 1.5 0.0;
+    -fx-border-radius: 0.0;
+    -fx-border-width: 0.0 1.0 0.0 0.0;
+    -fx-border-insets: 0.0 0.0 1.0 0.0;
+    -fx-border-style: solid;
+    -fx-border-color: rgb(193.0, 193.0, 193.0, 0.5);
+}
+
+.tab-pane.tabpane-type-small-icon-buttons > .tab-header-area > .headers-region > .tab:selected,
+.tab-pane.tabpane-type-small-icon-buttons > .tab-header-area > .headers-region > .tab:pressed,
+.tab-pane.tabpane-type-small-icon-buttons > .tab-header-area > .headers-region > .first-tab:selected,
+.tab-pane.tabpane-type-small-icon-buttons > .tab-header-area > .headers-region > .first-tab:pressed,
+.tab-pane.tabpane-type-small-icon-buttons > .tab-header-area > .headers-region > .last-tab:selected,
+.tab-pane.tabpane-type-small-icon-buttons > .tab-header-area > .headers-region > .last-tab:pressed,
+.tab-pane.tabpane-type-small-icon-buttons > .tab-header-area > .headers-region > .tab.neighbor:selected,
+.tab-pane.tabpane-type-small-icon-buttons > .tab-header-area > .headers-region > .tab.neighbor:pressed,
+.tab-pane.tabpane-type-small-icon-buttons > .tab-header-area > .headers-region > .single-tab:selected,
+.tab-pane.tabpane-type-small-icon-buttons > .tab-header-area > .headers-region > .single-tab:pressed {
+    -fx-background-color: linear-gradient(rgb(224.0, 237.0, 253.0), rgb(204.0, 242.0, 249.0)), 
+        linear-gradient(rgb(207.0, 222.0, 238.0) 0.0%, rgb(163.0, 203.0, 234.0) 50.0%, rgb(111.0, 176.0, 227.0) 50.0%, rgb(189.0, 237.0, 247.0) 100.0% );
+    -fx-border-color: linear-gradient(rgb(175.0, 188.0, 202.0) 0.0%, rgb(138.0, 170.0, 199.0) 50.0%, rgb(92.0, 148.0, 192.0) 50.0%, rgb(159.0, 200.0, 210.0) 100.0% );
+    -fx-border-width: 0.0 1.0 0.0 0.0;
+    -fx-border-insets: 0.0 0.0 1.0 0.0;
+    -fx-border-style: solid;
+    -fx-effect: null;
+}
+
+.tab-pane.tabpane-type-small-icon-buttons > .tab-header-area > .headers-region > .tab:selected > .tab-container > .tab-label,
+.tab-pane.tabpane-type-small-icon-buttons > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label {
+    -fx-text-fill: -fx-text-base-color;
+    -fx-effect: null;
+}
+
+/**
+ *  TabPane with bigger Icon-Buttons and Text underneath it. Known of almost all preferences dialogs
+ */
+
+
+.tab-pane.tabpane-type-icon-buttons {
+    -fx-tab-alignment: LEFT;
+}
+
+.tab-pane.tabpane-type-icon-buttons > .tab-content-area{
+    -fx-border-width: 0.0;
+    -fx-border-radius: 0.0;
+    -fx-border-insets: 0.0;
+    -fx-background-insets: 0.0;   
+    -fx-background-radius: 0.0 ;
+    -fx-border-color: transparent;
+    -fx-background-color: transparent;    
+}
+
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .tab-header-background {
+     -fx-background-color:
+        linear-gradient(rgb(222.0, 222.0, 222.0), rgb(173.0, 173.0, 173.0) 99.0%, rgb(233.0, 233.0, 233.0));
+    -fx-background-insets: 0.0;
+    -fx-background-radius: 0.0;
+    -fx-border-width: 0.0 0.0 1.0 0.0;
+    -fx-border-radius: 0.0;
+    -fx-border-color: rgb(103.0, 103.0, 103.0);
+    -fx-border-insets: 0.0;
+    -fx-padding: 0.833em 0.416667em 0.833em 0.416667em;
+    -fx-effect: null;
+}
+
+.tab-pane.tabpane-type-icon-buttons.inactive > .tab-header-area > .tab-header-background { 
+    -fx-background-color: linear-gradient(rgb(244.0, 244.0, 244.0), rgb(224.0, 224.0, 224.0) 99.0%, rgb(227.0, 227.0, 227.0));
+    -fx-border-color:  rgb(166.0, 166.0, 166.0);
+}
+
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area {
+        -fx-padding: 0.0em 0.25em 0.0em 0.25em;
+}
+
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .headers-region > .tab,
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .headers-region > .first-tab,
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .headers-region > .last-tab,
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .headers-region > .tab.neighbor,
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .headers-region > .single-tab {
+    -fx-background-color:transparent;
+    -fx-padding: 0.24em 0.25em 0.0em 0.25em;
+    -fx-content-display: CENTER;
+    -fx-background-radius: 0.0;
+    -fx-background-insets: 0.0;
+    -fx-border-radius: 0.0;
+    -fx-border-width: 0.0 1.0 0.0 1.0;
+    -fx-border-insets: 0.0;
+    -fx-border-style: solid;
+    -fx-border-color: transparent;
+}
+
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .headers-region > .tab:selected,
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .headers-region > .tab:pressed,
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .headers-region > .first-tab:selected,
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .headers-region > .first-tab:pressed,
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .headers-region > .last-tab:selected,
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .headers-region > .last-tab:pressed,
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .headers-region > .tab.neighbor:selected,
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .headers-region > .tab.neighbor:pressed,
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .headers-region > .single-tab:selected,
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .headers-region > .single-tab:pressed {
+    -fx-background-color: linear-gradient(rgb(168.0, 168.0, 168.0, 0.0) 0.0%, rgb(168.0, 168.0, 168.0) 50.0%, rgb(168.0, 168.0, 168.0, 0.0) 100.0% );
+    -fx-border-color: linear-gradient(rgb(105.0, 105.0, 105.0, 0.0) 0.0%, rgb(105.0, 105.0, 105.0) 50.0%, rgb(105.0, 105.0, 105.0, 0.0) 100.0% ),
+        linear-gradient(rgb(147.0, 147.0, 147.0, 0.0) 0.0%, rgb(147.0, 147.0, 147.0) 50.0%, rgb(147.0, 147.0, 147.0, 0.0) 100.0% );
+    -fx-border-width: 0.0 0.5 0.0 0.5, 0.0 0.5 0.0 0.5;
+    -fx-border-insets: 0.0, 0.0 0.5 0.0 0.5;
+    -fx-border-style: solid;
+    -fx-effect: null;
+}
+
+.tab-pane.tabpane-type-icon-buttons.inactive > .tab-header-area > .headers-region > .tab:selected,
+.tab-pane.tabpane-type-icon-buttons.inactive > .tab-header-area > .headers-region > .first-tab:selected,
+.tab-pane.tabpane-type-icon-buttons.inactive > .tab-header-area > .headers-region > .last-tab:selected,
+.tab-pane.tabpane-type-icon-buttons.inactive > .tab-header-area > .headers-region > .tab.neighbor:selected,
+.tab-pane.tabpane-type-icon-buttons.inactive > .tab-header-area > .headers-region > .single-tab:selected {
+    -fx-background-color: linear-gradient(rgb(168.0, 168.0, 168.0, 0.0) 0.0%, rgb(168.0, 168.0, 168.0, 0.5) 50.0%, rgb(168.0, 168.0, 168.0, 0.0) 100.0% );
+    -fx-border-color: linear-gradient(rgb(105.0, 105.0, 105.0, 0.0) 0.0%, rgb(105.0, 105.0, 105.0, 0.5) 50.0%, rgb(105.0, 105.0, 105.0, 0.0) 100.0%),
+        linear-gradient(rgb(147.0, 147.0, 147.0, 0.0) 0.0%, rgb(147.0, 147.0, 147.0, 0.5) 50.0%, rgb(147.0, 147.0, 147.0, 0.0) 100.0% );
+    -fx-effect: null;
+}
+
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .headers-region > .tab:selected > .tab-container > .tab-label,
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label {
+    -fx-text-fill: -fx-text-base-color;
+    -fx-font-size: 11;
+    -fx-content-display: top;
+    -fx-effect: null;
+}
+
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .headers-region > .tab:selected > .tab-container > .tab-label > .text,
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label > .text {
+    -fx-effect: dropshadow(one-pass-box , rgb(235.0, 235.0, 235.0, 0.9), 1.0, 0.8 , 0.0, 1.0);
+    -fx-translate-y: -7;
+}
+
+.tab-pane.tabpane-type-icon-buttons.inactive > .tab-header-area > .headers-region > .tab:selected > .tab-container > .tab-label,
+.tab-pane.tabpane-type-icon-buttons.inactive > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label {
+    -fx-text-fill: derive(-fx-text-base-color, 50% ) ;
+}
+
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .headers-region > .tab:focused > .tab-container > .tab-label > .icon {
+    -fx-effect: dropshadow(one-pass-box , rgb(104.0, 155.0, 201.0), 6.5, 0.8 , 0.0, 0.0);
+}
+
+.tab-pane.tabpane-type-icon-buttons > .tab-header-area > .headers-region > .tab:pressed > .tab-container > .tab-label > .icon {
+    -fx-blend-mode: difference;
+}
+
+
+
+
+/*******************************************************************************
+ *                                                                             *
+ * ComboBox                                                                    *
+ *                                                                             *
+ ******************************************************************************/
+
+/* -------------- CODE  FOR THE NON-EDITABLE COMBO-BOX -------------- */
+.combo-box-base > .arrow-button {
+    -fx-background-color: 
+        linear-gradient(rgb(155.0, 155.0, 155.0) 0.0%, rgb(172.0, 172.0, 172.0)  100.0%),
+        rgb(255.0, 255.0, 255.0),
+        linear-gradient(rgb(255.0, 255.0, 255.0) 25.0%, rgb(243.0, 243.0, 243.0) 50.0%, rgb(236.0, 236.0, 236.0) 50.0%, rgb(243.0, 243.0, 243.0) 100.0% );
+    -fx-background-insets: 0.5 0.5 0.5 0.0, 1.0 1.5 1.0 0.5, 1.0 2.0 1.0 0.5;
+    -fx-background-radius: 0.0 4.0 4.0 0.0, 0.0 3.0 3.0 0.0, 0.0 3.0 3.0 0.0;
+    -fx-border-width: 0.5 0.5 0.5 0.0;
+    -fx-border-color: rgb(169.0, 169.0, 169.0) rgb(205.0, 205.0, 205.0) rgb(205.0, 205.0, 205.0) rgb(205.0, 205.0, 205.0);
+    -fx-border-radius: 0.0 4.0 4.0 0.0;
+    -fx-padding: 0.0em 0.4em 0.0em 0.433333em; 
+}
+
+.combo-box-base:showing > .arrow-button {
+    -fx-background-color: 
+        linear-gradient(rgb(155.0, 155.0, 155.0) 0.0%, rgb(172.0, 172.0, 172.0)  100.0%),
+        linear-gradient(rgb(225.0, 225.0, 225.0) 25.0%, rgb(213.0, 213.0, 213.0) 50.0%, rgb(207.0, 207.0, 207.0) 50.0%, rgb(212.0, 212.0, 212.0) 100.0% );
+    -fx-background-insets: 0.5 0.5 0.5 0.0, 1.0 1.5 1.0 0.5;
+} 
+
+.combo-box-base > .arrow-button > .arrow,
+.web-view .form-select-button .arrow {
+    -fx-background-insets: 1.0 0.0 -1.0 0.0, 0.5 0.0 -0.5 0.0;
+    -fx-background-color: rgb(255.0, 255.0, 255.0), rgb(71.0, 71.0, 71.0);
+    -fx-padding: 0.2em 0.266667em 0.166667em 0.266667em;
+    -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}
+
+.combo-box-base:disabled {
+    -fx-opacity: 1.0 ;
+}
+
+.combo-box-base > .text-field:disabled,
+.combo-box-base > .arrow-button:disabled,
+.combo-box-base > .list-cell:disabled {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+.web-view .form-select-button {
+    -fx-background-radius: 2.0, 2.0, 1.0, 0.0;
+    -fx-background-insets: 2.0 2.0 1.0 2.0, 2.0, 3.0, 4.0;
+}
+
+/* -------------- CODE  FOR THE EDITABLE COMBO-BOX -------------- */
+
+/* ------- TEXTBOX SEGMENT OF COMBO BOX ------- */
+.combo-box-base:editable > .text-field {
+    -fx-border-color: rgb(169.0, 169.0, 169.0) rgb(205.0, 205.0, 205.0) rgb(205.0, 205.0, 205.0) rgb(205.0, 205.0, 205.0);
+    -fx-border-width: 0.5 0.0 0.5 0.5;
+    -fx-background-color: linear-gradient(rgb(155.0, 155.0, 155.0) 0.0%, rgb(172.0, 172.0, 172.0)  100.0%),
+                        linear-gradient(rgb(224.0, 224.0, 224.0) 0.0%, rgb(255.0, 255.0, 255.0)  10.0%),
+                        linear-gradient(to left, rgb(224.0, 224.0, 224.0) 0.0%, transparent 1.0%);
+}
+
+.combo-box-base:editable > .arrow-button {
+    -fx-background-color: 
+        linear-gradient(rgb(155.0, 155.0, 155.0) 0.0%, rgb(172.0, 172.0, 172.0)  100.0%),
+        rgb(255.0, 255.0, 255.0),
+        linear-gradient(rgb(255.0, 255.0, 255.0) 25.0%, rgb(243.0, 243.0, 243.0) 50.0%, rgb(236.0, 236.0, 236.0) 50.0%, rgb(243.0, 243.0, 243.0) 100.0% );
+    -fx-background-insets: 0.0 0.5 3.5 0.0, 0.5 1.0 4.0 0.0, 1.0 1.0 4.0 0.0; 
+    -fx-background-radius: 0.0 4.0 4.0 0.0, 0.0 3.0 3.0 0.0, 0.0 3.0 3.0 0.0;
+    -fx-border-width: 0.5 0.5 0.5 0.0;
+    -fx-border-color: rgb(169.0, 169.0, 169.0) rgb(205.0, 205.0, 205.0) rgb(205.0, 205.0, 205.0) rgb(205.0, 205.0, 205.0);
+    -fx-border-insets: -0.5 0.0 3.0 0.0; 
+    -fx-border-radius: 0.0 4.0 4.0 0.0;
+    -fx-padding: 0.230769em 0.4em 0.230769em 0.433333em; 
+}
+
+/* -------------- STYLES FOR THE DEFAULT LISTVIEW-BASED COMBOBOX ------------- */
+
+.combo-box {
+    -fx-aqua-inner-focus-color: rgb(104, 155, 201, 0.8);
+    -fx-aqua-outer-focus-color: rgb(120, 171, 217);
+}
+
+/* Customize the ListCell that appears in the ComboBox button itself */
+.combo-box > .list-cell {
+    -fx-text-fill: -fx-text-base-color;
+    -fx-padding: 0.12em 0.5em 0.18em 0.583333em;
+    -fx-border-radius: 4.0 0.0 0.0 4.0;
+    -fx-border-width: 0.5 0.0 0.5 0.5;
+    -fx-border-color: rgb(169.0, 169.0, 169.0) rgb(205.0, 205.0, 205.0) rgb(205.0, 205.0, 205.0) rgb(205.0, 205.0, 205.0);
+    -fx-background-color: linear-gradient(rgb(155.0, 155.0, 155.0) 0.0%, rgb(172.0, 172.0, 172.0)  100.0%),
+        -choice-base;
+    -fx-background-insets: 0.5 0.0 0.5 0.5, 1.0 0.0 1.0 1.0;
+    -fx-background-radius: 4.0 0.0 0.0 4.0, 4.0 0.0 0.0 4.0;
+    -fx-content-display: LEFT;
+    -fx-opacity: 1.0;
+}
+
+.combo-box-popup > .list-view {
+    -fx-background-color: white;
+    -fx-background-insets: -3.0 0.0 0.0 0.0;
+    -fx-background-radius: 0.0;
+    -fx-border-color: rgb(0.0,0.0,0.0,0.4);
+    -fx-border-insets: -3.0 0.0 0.0 0.0;
+    -fx-border-width: 0.5 0.5 1.5 0.5;
+   -fx-effect: dropshadow( three-pass-box , rgba(0.0,0.0,0.0,0.6) , 8.0, 0.0 , 0.0 , 0.0 );
+}
+
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell {
+    -fx-padding: 4.0 0.0 4.0 5.0;
+    -fx-background-color: white;
+}
+
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected, 
+.combo-box-popup  > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected:hover {
+    -fx-background-color:  rgb(60.0, 119.0, 212.0);
+    -fx-text-fill: white;
+}
+
+
+/* -------------------------- STYLES FOR THE COLOR-PICKER CONTROL ----- */
+
+.color-picker {
+    -fx-color-rect-width: 1.7em; 
+    -fx-color-rect-height: 0.8em;  
+    
+    -fx-border-radius: 3.5;
+    -fx-border-width: 0.5;
+    -fx-border-color: rgb(207.0, 207.0, 207.0);
+    
+    -fx-background-color: linear-gradient(rgb(147.0, 147.0, 147.0) 0.0%, rgb(127.0, 127.0, 127.0) 100.0%), -choice-base;
+    -fx-background-insets: 0.5, 1.0;
+    -fx-background-radius: 3.5, 3.5;
+    -fx-padding:0.0 1.2 0.0 0.0;
+    -fx-alignment: CENTER;
+    -fx-content-display: LEFT;
+    
+    -fx-aqua-inner-focus-color: rgb(104, 155, 201, 0.8);
+    -fx-aqua-outer-focus-color: rgb(120, 171, 217);
+}
+
+.color-picker > .arrow-button, .color-picker.button > .arrow-button > .arrow {
+  -fx-background-color: null;
+  -fx-border-color: null;
+}
+
+.color-picker.split-button > .arrow-button {
+    -fx-background-color: null;
+    -fx-background-insets: 0.0;
+    -fx-border-width: 0.0 0.0 0.0 1.0;
+    -fx-border-color: linear-gradient(rgb(155.0, 155.0, 155.0) 0.0%, rgb(172.0, 172.0, 172.0)  100.0%);
+    -fx-border-radius: 0.0 3.5 3.5 0.0;
+    -fx-border-insets: 0.0 -1.0 0.0 0.0;
+}
+
+.color-picker.split-button:showing > .arrow-button {
+    -fx-background-color: 
+        linear-gradient(rgb(225.0, 225.0, 225.0) 25.0%, rgb(213.0, 213.0, 213.0) 50.0%, rgb(207.0, 207.0, 207.0) 50.0%, rgb(212.0, 212.0, 212.0) 100.0% );
+    -fx-background-insets: 1.0 -1.0 -1.0 0.0;
+} 
+
+.color-picker.split-button > .arrow-button > .arrow{
+    -fx-background-color: rgb(255.0, 255.0, 255.0), rgb(71.0, 71.0, 71.0);
+    -fx-padding: 0.2em 0.266667em 0.2em 0.266667em;
+    -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}
+
+.color-picker > .arrow-button > .arrow{
+    -fx-background-color: rgb(110.0, 110.0, 110.0, 0.5), rgb(71.0, 71.0, 71.0);
+    -fx-background-insets: 1.0 -1.0 0.0 0.0, 1.0 0.0 0.0 0.0;
+    -fx-padding: 0.5em 0.18em 0.366667em 0.18em;
+    -fx-shape:  "m 4.5,3.03125 -3.5,5.5 7,0 z m -3.5,10.875 3.5,5.5 3.5,-5.5 z";
+}
+
+.color-picker:showing > .arrow-button {
+    -fx-background-color: null
+} 
+
+.color-picker > .color-picker-label{
+    -fx-padding: 0.11em 0.3em 0.12em 0.613em; 
+}
+
+.color-picker > .color-picker-label > .picker-color{
+    -fx-padding: 0.0em 0.15em 0.0em 0.0em;
+}
+
+
+.color-picker > .color-picker-label > .picker-color > .picker-color-rect {
+    -fx-stroke: rgb(141.0, 141.0, 141.0);
+    -fx-stroke-width: 1.0;
+}
+
+/* First PopUp when ColorPicker is pressed */
+.color-palette {
+    -fx-spacing: 15.0px;
+    -fx-background-color:rgb(255.0, 255.0, 255.0, 0.95);
+    -fx-background-radius: 6.0;
+    -fx-border-width: 0.5;
+    -fx-border-radius: 6.0;
+    -fx-border-color: rgb(209.0, 209.0, 209.0, 0.4);
+    -fx-padding: 15.0 15.0 15.0 15.0;
+    -fx-effect: dropshadow( three-pass-box , rgba(0.0,0.0,0.0,0.6) , 8.0, 0.0 , 0.0 , 0.0 );
+}
+
+.color-palette > .color-picker-grid > .color-square > .color-rect {
+    -fx-stroke: rgb(141.0, 141.0, 141.0);
+    -fx-stroke-width: 0.4;
+    -fx-border-color: black;
+}
+
+.color-palette > .color-picker-grid > .color-square {
+    -fx-background-color: transparent;
+    -fx-background-insets: -1.0, 0.0;   
+    -fx-padding: 0.5;
+    -fx-border: black;
+}
+
+/* the color over which the user is hovering */
+.color-palette > .color-picker-grid > .color-square:focused, 
+.color-palette > .color-picker-grid > .color-square:selected:focused {
+    -fx-background-color: rgb(229.0, 229.0, 229.0);
+}
+
+/* the currently selected color */
+.color-palette > .color-picker-grid > .color-square:selected {
+    -fx-background-color: black;
+} 
+
+.color-palette > .separator > .line {
+    -fx-background-color: rgb(229.0, 229.0, 229.0);
+    -fx-padding: 6.0 0.0 0.0 0.0;
+    -fx-background-insets: 4.0 -10.0 0.0 -10.0, 5.0 -10.0 0.0 -10.0;
+    -fx-border-style: none;
+    -fx-border-color: null;
+}
+
+/* PopUp when Custom-Color is pressed */
+.custom-color-dialog > .color-rect-pane {
+   -fx-padding: 30.0 15.0 30.0 15.0;
+   -fx-background-color: rgb(237.0, 237.0, 237.0);
+}
+
+.custom-color-dialog > .controls-pane {
+    -fx-padding: 10.0 15.0 10.0 0.0;
+    -fx-background-color: rgb(237.0, 237.0, 237.0);
+}
+.custom-color-dialog  {
+    -fx-background-color: rgb(237.0, 237.0, 237.0);
+}
+
+.custom-color-dialog .webcolor-field,
+.custom-color-dialog .double-field,
+.custom-color-dialog .integer-field,
+.custom-color-dialog .input-field,
+.custom-color-dialog .controls-pane .alpha-settings .text-field,
+.custom-color-dialog .controls-pane .customcolor-controls-background,
+.custom-color-dialog .controls-pane .current-new-color-grid {
+    -fx-padding: 3.0 5.0 3.0 5.0;
+}
+
+.custom-color-dialog .controls-pane .current-new-color-grid .label {
+    -fx-padding: 3.0 0.0 3.0 5.0;
+}
+
+.custom-color-dialog .controls-pane .current-new-color-grid .color-rect{
+    -fx-padding: 15.0;
+}
+
+.custom-color-dialog .input-field:disabled {
+    -fx-opacity: -fx-disabled-opacity;
+}
+
+
+/* -------------------------- STYLES FOR PAGINATION CONTROL ----- */
+.pagination {
+    -fx-padding: 0.416667em;        
+    -fx-arrows-visible: true;
+    -fx-tooltip-visible: true;
+    -fx-page-information-visible: true;
+    -fx-page-information-alignment: bottom;        
+}
+.pagination > .page {
+    -fx-background-color: transparent;
+}
+
+.pagination > .pagination-control {
+    -fx-background-color: transparent;    
+    -fx-padding: 0.833333em 0.0em 0.833333em 0.0em;
+}
+
+.pagination > .pagination-control > .control-box {
+    -fx-spacing: 3.0;
+    -fx-alignment: center;
+}
+
+.pagination > .pagination-control > .control-box > .number-button {
+    -fx-border-radius: 3.0em;
+    -fx-background-radius: 3.0em, 3.0em;
+    -fx-padding: 0.166667em;
+}
+
+.pagination > .pagination-control > .control-box > .left-arrow-button {
+    -fx-border-radius: 3.0em;
+    -fx-background-radius: 3.0em, 3.0em;
+     -fx-padding: 0.166667em 0.416em 0.25em 0.166667em;
+}
+
+.pagination > .pagination-control > .control-box > .right-arrow-button {
+    -fx-border-radius: 3.0em;
+    -fx-background-radius: 3.0em, 3.0em;
+    -fx-padding: 0.166667em 0.166667em 0.25em 0.25em;
+}
+
+.pagination > .pagination-control .left-arrow {
+    -fx-background-color: rgb(255.0, 255.0, 255.0, 0.5), rgb(71.0, 71.0, 71.0);
+    -fx-background-insets: 1.0 0.0 -1.0 0.0, 0.0;
+    -fx-padding: 0.375em 0.291em 0.375em 0.291em;
+    -fx-shape: "M 0 0 L -13 7 L 0 13 z";
+    -fx-scale-shape: true;
+}
+
+.pagination > .pagination-control .right-arrow {
+    -fx-background-color: rgb(255.0, 255.0, 255.0, 0.5), rgb(71.0, 71.0, 71.0);
+    -fx-background-insets: 1.0 0.0 -1.0 0.0, 0.0;
+    -fx-padding: 0.375em 0.291em 0.375em 0.291em;
+    -fx-shape: "M 0 0 L 13 7 L 0 13 z";
+    -fx-scale-shape: true;
+}
+
+.pagination > .pagination-control > .control-box > .bullet-button {
+    -fx-border-width: 0.5;
+    -fx-border-insets: 3.0;
+    -fx-border-color: rgb(129.0, 129.0, 129.0);
+    -fx-border-radius: 3.0em;
+    -fx-background-color: rgb(250.0, 250.0, 250.0),
+        linear-gradient(
+            rgb(255.0, 255.0, 255.0) 0.0%, rgb(253.0,253.0,253.0) 25.0%,  
+            rgb(244.0, 244.0, 244.0) 50.0%, rgb(236.0, 236.0, 236.0) 51.0%,
+            rgb(243.0, 243.0, 243.0) 100.0% );
+    -fx-background-insets: 3.0, 4.0;
+    -fx-background-radius: 3.0em, 3.0em;
+    -fx-padding: 0.0em;
+    -fx-spacing: 14.0;
+}
+
+.pagination > .pagination-control > .control-box > .bullet-button:selected {   
+    -fx-border-color: linear-gradient(
+        rgb(100.0, 103.0, 124.0) 0.0%, rgb(92.0, 94.0, 116.0) 100.0%);
+    -fx-background-color: 
+        linear-gradient(
+            rgb(228.0, 250.0, 255.0) 0.0%, #91bdee 50.0%, 
+            #78b0ee 51.0%, rgb(228.0, 250.0, 255.0) 100.0% );
+    -fx-background-insets: 3.0;
+    -fx-background-radius: 3.0em;
+}
+
+.pagination > .pagination-control > .page-information {   
+    -fx-padding: 0.416em 0.0 0.0 0.0;
+}
+
+
+/********************************************************************************
+ *                                                                              *
+ * HTMLEditor                                                                   *
+ *                                                                              *
+ ********************************************************************************/
+
+.html-editor {
+    -fx-border-width: 0.5 0.5 0.5 0.5;
+    -fx-border-style: solid outside;
+    -fx-padding: 0.0;
+    -fx-border-color: rgb(115.0, 115.0, 115.0, 0.5);
+}
+
+.html-editor > * > .top-toolbar {
+    -fx-background-color:
+        linear-gradient(to bottom, rgb(233.0, 233.0, 233.0), rgb(173.0, 173.0, 173.0) 99.0%, rgb(233.0, 233.0, 233.0));
+    -fx-background-insets: 0.0;
+    -fx-border-color: rgb(107.0, 107.0, 107.0);
+    -fx-border-width: 0.0 0.0 1.0 0.0;
+    -fx-padding: 0.333em 0.5em 0.333em 0.5em;
+    -fx-spacing: 0.333em;
+}
+
+.html-editor > * > .bottom-toolbar {
+    -fx-background-color:
+        linear-gradient(to bottom, rgb(233.0, 233.0, 233.0), rgb(180.0, 180.0, 180.0) 1.0%, rgb(184.0, 184.0, 184.0));
+    -fx-background-insets: 0.0;
+    -fx-border-color: rgb(154.0, 154.0, 154.0);
+    -fx-border-width: 0.0 0.0 0.5 0.0;
+    -fx-padding: 0.166667em 0.5em 0.166667em 0.5em;
+    -fx-spacing: 0.333em;
+}
+
+.html-editor-foreground, .html-editor-background {
+    -fx-color-label-visible: false;
+    -fx-color-rect-x: 0.0;
+    -fx-color-rect-y: 10.0;
+    -fx-color-rect-width: 16.0;
+    -fx-color-rect-height: 4.0;
+    -fx-padding: 0.0;
+    -fx-background-color: rgb(245.0, 245.0, 245.0),
+        linear-gradient(rgb(230.0, 230.0, 230.0), rgb(182.0, 182.0, 182.0));
+    -fx-background-insets:0.0, 1.0 0.0 0.0 0.0;
+    -fx-border-width: 1.0;
+    -fx-border-insets:-1.0;
+    -fx-border-color: rgb(147.0, 147.0, 147.0) rgb(129.0, 129.0, 129.0) rgb(129.0, 129.0, 129.0) rgb(129.0, 129.0, 129.0);
+} 
+.html-editor-foreground .label, .html-editor-background .label{
+    -fx-padding: 1.5 0.0 1.0 8.0;
+}
+/*
+.html-editor > * > * > .separator:vertical > .line{
+    -fx-border-style: solid;
+    -fx-background-color: null;
+    -fx-border-color: transparent rgb(129.0, 129.0, 129.0) transparent transparent;
+}*/
+
+.html-editor > * > .bottom-toolbar:horizontal {
+    -fx-padding: 0.417em;
+}
+
+.html-editor .button ,
+.html-editor .toggle-button {
+    -fx-background-color: rgb(245.0, 245.0, 245.0),
+        linear-gradient(rgb(230.0, 230.0, 230.0), rgb(182.0, 182.0, 182.0));
+    -fx-background-insets:0.0, 1.0 0.0 0.0 0.0;
+    -fx-border-width: 1.0;
+    -fx-border-insets:-1.0;
+    -fx-border-color: rgb(122.0, 122.0, 122.0);
+    -fx-padding: 0.1em 0.85em 0.07em 0.85em;
+}
+
+.html-editor .button:armed ,
+.html-editor .toggle-button:selected{
+    -fx-background-color: rgb(205.0, 205.0, 205.0),
+        linear-gradient(rgb(183.0, 183.0, 183.0), rgb(144.0, 144.0, 144.0));
+    -fx-border-color: rgb(122.0, 122.0, 122.0);
+}
+
+.html-editor .combo-box > .list-cell {
+    -fx-border-radius: 4.0 0.0 0.0 4.0;
+    -fx-border-width: 1.0 0.0 1.0 1.0;
+    -fx-border-color: rgb(122.0, 122.0, 122.0);
+    -fx-border-insets:-1.0;
+    -fx-background-color: rgb(245.0, 245.0, 245.0),
+        linear-gradient(rgb(230.0, 230.0, 230.0), rgb(182.0, 182.0, 182.0));
+    -fx-background-insets: 0.0, 1.0 0.0 0.0 0.0;
+    -fx-background-radius: 3.5 0.0 0.0 3.5, 3.5 0.0 0.0 3.5;
+    -fx-padding: 0.1em 0.85em 0.07em 0.85em;
+}
+
+.html-editor .combo-box > .arrow-button {
+    -fx-background-color: rgb(245.0, 245.0, 245.0),
+        linear-gradient(rgb(230.0, 230.0, 230.0), rgb(182.0, 182.0, 182.0));
+    -fx-background-insets: 0.0, 1.0 0.0 0.0 0.0;
+    -fx-background-radius: 0.0 4.0 4.0 0.0, 0.0 3.0 3.0 0.0;
+    -fx-border-width: 1.0 1.0 1.0 0.0;
+    -fx-border-color: rgb(122.0, 122.0, 122.0);
+    -fx-border-radius: 0.0 4.0 4.0 0.0;
+    -fx-border-insets:-1.0;
+}
+
+
+
+/* ====== CHART TOP LEVEL ITEMS =========================================================== */
+.chart {
+    -fx-padding: 5.0px;
+}
+.chart-content {
+    -fx-padding: 10.0px;
+}
+.chart-title {
+    -fx-font-size: 1.4em;
+}
+.chart-legend {
+   -fx-background-color:  #cccccc, #eeeeee;
+   -fx-background-insets: 0.0,1.0;
+   -fx-background-radius: 6.0,5.0;
+   -fx-padding: 6.0px;
+}
+
+/* ====== AXIS ============================================================================ */
+.axis {
+    -fx-tick-label-font: 0.833333em System; /* 10 pix */
+    -fx-tick-label-fill: -fx-text-base-color;
+}
+.axis:top {
+    -fx-border-color: transparent transparent #666666 transparent;
+}
+.axis:right {
+    -fx-border-color: transparent transparent transparent #666666;
+}
+.axis:bottom {
+    -fx-border-color: #666666 transparent transparent transparent;
+}
+.axis:left {
+    -fx-border-color: transparent #666666 transparent transparent;
+}
+.axis-tick-mark {
+    -fx-fill: null;
+    -fx-stroke: #666666;
+}
+.axis-minor-tick-mark {
+    -fx-fill: null;
+    -fx-stroke: #AAAAAA;
+}
+
+.axis .text {
+  -fx-font-smoothing-type: lcd;
+}
+
+/* ====== CHART PLOT BACKGROUND =========================================================== */
+.chart-plot-background {
+    -fx-background-color: #f5f5f5;
+}
+.chart-vertical-grid-lines {
+    -fx-stroke: #dddddd;
+}
+.chart-horizontal-grid-lines {
+    -fx-stroke: #dddddd;
+}
+.chart-alternative-column-fill {
+    -fx-fill: #eeeeee;
+    -fx-stroke: transparent;
+    -fx-stroke-width: 0.0;
+}
+.chart-alternative-row-fill {
+    -fx-fill: #eeeeee;
+    -fx-stroke: transparent;
+    -fx-stroke-width: 0.0;
+}
+.chart-vertical-zero-line {
+    -fx-stroke: #999999;
+}
+.chart-horizontal-zero-line {
+    -fx-stroke: #999999;
+}
+/* ====== SCATTER CHART =========================================================== */
+.chart-symbol { /* solid circle */
+    -fx-background-color: #f9d900;
+    -fx-background-radius: 5.0px;
+    -fx-padding: 5.0px;
+}
+.default-color1.chart-symbol { /* solid square */
+    -fx-background-color: #a9e200;
+    -fx-background-radius: 0.0;
+}
+.default-color2.chart-symbol { /* solid diamond */
+    -fx-background-color: #22bad9;
+    -fx-background-radius: 0.0;
+    -fx-padding: 7.0px 5.0px 7.0px 5.0px;
+    -fx-shape: "M5,0 L10,9 L5,18 L0,9 Z";
+}
+.default-color3.chart-symbol { /* cross */
+    -fx-background-color: #0181e2;
+    -fx-background-radius: 0.0;
+    -fx-background-insets: 0.0;
+    -fx-shape: "M2,0 L5,4 L8,0 L10,0 L10,2 L6,5 L10,8 L10,10 L8,10 L5,6 L2,10 L0,10 L0,8 L4,5 L0,2 L0,0 Z";
+}
+.default-color4.chart-symbol { /* solid triangle */
+    -fx-background-color: #2f357f;
+    -fx-background-radius: 0.0;
+    -fx-background-insets: 0.0;
+    -fx-shape: "M5,0 L10,8 L0,8 Z";
+}
+.default-color5.chart-symbol { /* hollow circle */
+    -fx-background-color: #860061, white;
+    -fx-background-insets: 0.0, 2.0;
+    -fx-background-radius: 5.0px;
+    -fx-padding: 5.0px;
+}
+.default-color6.chart-symbol { /* hollow square */
+    -fx-background-color: #c62b00, white;
+    -fx-background-insets: 0.0, 2.0;
+    -fx-background-radius: 0.0;
+}
+.default-color7.chart-symbol { /* hollow diamond */
+    -fx-background-color: #ff5700, white;
+    -fx-background-radius: 0.0;
+    -fx-background-insets: 0.0, 2.5;
+    -fx-padding: 7.0px 5.0px 7.0px 5.0px;
+    -fx-shape: "M5,0 L10,9 L5,18 L0,9 Z";
+}
+
+/* ====== LINE CHART =========================================================== */
+.chart-line-symbol {
+    -fx-background-color: #f9d900, white;
+    -fx-background-insets: 0.0, 2.0;
+    -fx-background-radius: 5.0px;
+    -fx-padding: 5.0px;
+}
+.chart-series-line {
+    -fx-stroke: #f9d900;
+    -fx-stroke-width: 4.0px;
+    -fx-effect: dropshadow( two-pass-box , rgba(0.0,0.0,0.0,0.3) , 8.0, 0.0 , 0.0 , 3.0 );
+}
+.default-color0.chart-line-symbol { -fx-background-color: #f9d900, white; }
+.default-color1.chart-line-symbol { -fx-background-color: #a9e200, white; }
+.default-color2.chart-line-symbol { -fx-background-color: #22bad9, white; }
+.default-color3.chart-line-symbol { -fx-background-color: #0181e2, white; }
+.default-color4.chart-line-symbol { -fx-background-color: #2f357f, white; }
+.default-color5.chart-line-symbol { -fx-background-color: #860061, white; }
+.default-color6.chart-line-symbol { -fx-background-color: #c62b00, white; }
+.default-color7.chart-line-symbol { -fx-background-color: #ff5700, white; }
+.default-color0.chart-series-line { -fx-stroke: #f9d900; }
+.default-color1.chart-series-line { -fx-stroke: #a9e200; }
+.default-color2.chart-series-line { -fx-stroke: #22bad9; }
+.default-color3.chart-series-line { -fx-stroke: #0181e2; }
+.default-color4.chart-series-line { -fx-stroke: #2f357f; }
+.default-color5.chart-series-line { -fx-stroke: #860061; }
+.default-color6.chart-series-line { -fx-stroke: #c62b00; }
+.default-color7.chart-series-line { -fx-stroke: #ff5700; }
+
+/* ====== AREA CHART =========================================================== */
+.chart-area-symbol {
+    -fx-background-color: #f9d900, white;
+    -fx-background-insets: 0.0, 1.0;
+    -fx-background-radius: 4.0px; /* makes sure this remains circular */
+    -fx-padding: 3.0px;
+}
+.default-color0.chart-area-symbol { -fx-background-color: #f9d900, white; }
+.default-color1.chart-area-symbol { -fx-background-color: #a9e200, white; }
+.default-color2.chart-area-symbol { -fx-background-color: #22bad9, white; }
+.default-color3.chart-area-symbol { -fx-background-color: #0181e2, white; }
+.default-color4.chart-area-symbol { -fx-background-color: #2f357f, white; }
+.default-color5.chart-area-symbol { -fx-background-color: #860061, white; }
+.default-color6.chart-area-symbol { -fx-background-color: #c62b00, white; }
+.default-color7.chart-area-symbol { -fx-background-color: #ff5700, white; }
+.chart-series-area-line {
+    -fx-stroke: #f9d900;
+    -fx-stroke-width: 1.0px;
+}
+.default-color0.chart-series-area-line { -fx-stroke: #c2a902; }
+.default-color1.chart-series-area-line { -fx-stroke: #88b501; }
+.default-color2.chart-series-area-line { -fx-stroke: #22bad9; }
+.default-color3.chart-series-area-line { -fx-stroke: #0181e2; }
+.default-color4.chart-series-area-line { -fx-stroke: #2f357f; }
+.default-color5.chart-series-area-line { -fx-stroke: #860061; }
+.default-color6.chart-series-area-line { -fx-stroke: #c62b00; }
+.default-color7.chart-series-area-line { -fx-stroke: #ff5700; }
+.chart-series-area-fill {
+    -fx-stroke: null;
+    -fx-fill: #f9d90044;
+}
+.default-color0.chart-series-area-fill { -fx-fill: #f9d90044; }
+.default-color1.chart-series-area-fill { -fx-fill: #a9e20044; }
+.default-color2.chart-series-area-fill { -fx-fill: #22bad944; }
+.default-color3.chart-series-area-fill { -fx-fill: #0181e244; }
+.default-color4.chart-series-area-fill { -fx-fill: #2f357f44; }
+.default-color5.chart-series-area-fill { -fx-fill: #86006144; }
+.default-color6.chart-series-area-fill { -fx-fill: #c62b0044; }
+.default-color7.chart-series-area-fill { -fx-fill: #ff570044; }
+.area-legend-symbol {
+    -fx-padding: 6.0px;
+    -fx-background-radius: 6.0px; /* makes sure this remains circular */
+    -fx-background-insets: 0.0, 3.0;
+}
+/* ====== BUBBLE CHART =========================================================== */
+.bubble-legend-symbol {
+    -fx-background-radius: 8.0px;
+    -fx-padding: 8.0px;
+}
+.chart-bubble {
+    -fx-bubble-fill: #f9d900;
+    -fx-background-color: radial-gradient(center 50.0% 50.0%, radius 80.0%, derive(-fx-bubble-fill,20.0%), derive(-fx-bubble-fill,-30.0%));
+}
+.default-color0.chart-bubble { -fx-bubble-fill: #f9d900aa; }
+.default-color1.chart-bubble { -fx-bubble-fill: #a9e200aa; }
+.default-color2.chart-bubble { -fx-bubble-fill: #22bad9aa; }
+.default-color3.chart-bubble { -fx-bubble-fill: #0181e2aa; }
+.default-color4.chart-bubble { -fx-bubble-fill: #2f357faa; }
+.default-color5.chart-bubble { -fx-bubble-fill: #860061aa; }
+.default-color6.chart-bubble { -fx-bubble-fill: #c62b00aa; }
+.default-color7.chart-bubble { -fx-bubble-fill: #ff5700aa; }
+
+/* ====== BAR CHART =========================================================== */
+/* TODO flip gradient vertical for negative bars */
+.chart-bar {
+    -fx-bar-fill: #22bad9;
+    -fx-background-color: linear-gradient(derive(-fx-bar-fill,-30.0%), derive(-fx-bar-fill,-40.0%)),
+                          linear-gradient(derive(-fx-bar-fill,80.0%), derive(-fx-bar-fill, 0.0%)),
+                          linear-gradient(derive(-fx-bar-fill,30.0%), derive(-fx-bar-fill,-10.0%));
+    -fx-background-insets: 0.0,1.0,2.0;
+    -fx-background-radius: 5.0 5.0 0.0 0.0, 4.0 4.0 0.0 0.0, 3.0 3.0 0.0 0.0;
+}
+
+.negative.chart-bar {
+   -fx-background-color: linear-gradient(to top, derive(-fx-bar-fill,-30.0%), derive(-fx-bar-fill,-40.0%)),
+                          linear-gradient(to top, derive(-fx-bar-fill, 80.0%), derive(-fx-bar-fill,0.0%)),
+                          linear-gradient(to top, derive(-fx-bar-fill,30.0%), derive(-fx-bar-fill,-10.0%));
+   -fx-background-radius: 0.0 0.0 5.0 5.0, 0.0 0.0 4.0 4.0, 0.0 0.0 3.0 3.0;
+}
+.bar-chart:horizontal .chart-bar, .stacked-bar-chart:horizontal .chart-bar {
+    -fx-background-color: linear-gradient(to left, derive(-fx-bar-fill,-30.0%), derive(-fx-bar-fill,-40.0%)),
+                          linear-gradient(to left, derive(-fx-bar-fill,80.0%), derive(-fx-bar-fill, 0.0%)),
+                          linear-gradient(to left, derive(-fx-bar-fill,30.0%), derive(-fx-bar-fill,-10.0%));
+    -fx-background-radius: 0.0 5.0 5.0 0.0, 0.0 4.0 4.0 0.0, 0.0 3.0 3.0 0.0;
+}
+.bar-chart:horizontal .negative.chart-bar, .stacked-bar-chart:horizontal .negative.chart-bar {
+    -fx-background-color: linear-gradient(to right, derive(-fx-bar-fill,-30.0%), derive(-fx-bar-fill,-40.0%)),
+                          linear-gradient(to right, derive(-fx-bar-fill, 80.0%), derive(-fx-bar-fill, 0.0%)),
+                          linear-gradient(to right, derive(-fx-bar-fill,30.0%), derive(-fx-bar-fill,-10.0%));
+    -fx-background-radius: 5.0 0.0 0.0 5.0, 4.0 0.0 0.0 4.0, 3.0 0.0 0.0 3.0;
+}
+.default-color0.chart-bar { -fx-bar-fill: #f9d900; }
+.default-color1.chart-bar { -fx-bar-fill: #a9e200; }
+.default-color2.chart-bar { -fx-bar-fill: #22bad9; }
+.default-color3.chart-bar { -fx-bar-fill: #0181e2; }
+.default-color4.chart-bar { -fx-bar-fill: #2f357f; }
+.default-color5.chart-bar { -fx-bar-fill: #860061; }
+.default-color6.chart-bar { -fx-bar-fill: #c62b00; }
+.default-color7.chart-bar { -fx-bar-fill: #ff5700; }
+.bar-legend-symbol {
+    -fx-padding: 8.0px;
+}
+/* ====== PIE CHART ============================================================== */
+.chart-pie {
+    -fx-pie-color: #2f357f;
+    -fx-background-color: radial-gradient(radius 100.0%, derive(-fx-pie-color,55.0%), derive(-fx-pie-color,-20.0%));
+    -fx-background-insets: 0.0;
+    -fx-border-color: derive(-fx-pie-color,-30.0%);
+}
+.chart-pie-label {
+    -fx-padding: 3.0px;
+}
+.chart-pie-label-line {
+    -fx-stroke: #aaaaaa;
+    -fx-fill: #aaaaaa;
+}
+.default-color0.chart-pie { -fx-pie-color: #f9d900; }
+.default-color1.chart-pie { -fx-pie-color: #a9e200; }
+.default-color2.chart-pie { -fx-pie-color: #22bad9; }
+.default-color3.chart-pie { -fx-pie-color: #0181e2; }
+.default-color4.chart-pie { -fx-pie-color: #2f357f; }
+.default-color5.chart-pie { -fx-pie-color: #860061; }
+.default-color6.chart-pie { -fx-pie-color: #c62b00; }
+.default-color7.chart-pie { -fx-pie-color: #ff5700; }
+.negative.chart-pie {
+    -fx-pie-color: transparent;
+    -fx-background-color: white;
+}
+.pie-legend-symbol.chart-pie {
+    -fx-background-radius: 8.0px;
+    -fx-padding: 8.0px;
+    -fx-border-color: null;
+}
+
diff --git a/org.fortiss.tooling.common.ui/res/jfxtras/JMetroLightTheme.css b/org.fortiss.tooling.common.ui/res/jfxtras/JMetroLightTheme.css
new file mode 100644
index 0000000000000000000000000000000000000000..28781b32ee33615ca674b44a70037362a2e218c9
--- /dev/null
+++ b/org.fortiss.tooling.common.ui/res/jfxtras/JMetroLightTheme.css
@@ -0,0 +1,1070 @@
+/*
+    Document   : JMetroLightTheme
+    Created on : Oct 16, 2012, 6:28:59 PM
+    Author     : Pedro Duque Vieira
+    Description:
+        Light Metro style sheet for use in JavaFX applications
+*/
+
+.background{
+    -fx-background-color: white;
+}
+
+.header{
+    -fx-font-size: 3.5em;
+    -fx-font-family: "Segoe UI Semilight";
+    -fx-text-fill: black;
+}
+
+.item-title{
+    -fx-font-size: 1em;
+    -fx-font-family: "Segoe UI";
+    -fx-text-fill: black;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Push Button                                                                 *
+ *                                                                             *
+ ******************************************************************************/
+
+.button {
+    -fx-padding: 5 22 5 22;
+
+    -fx-border-color: transparent;
+    -fx-border-width: 2;
+
+    -fx-background-radius: 0;
+
+    -fx-background-color: #cccccc;
+
+    -fx-font-family: "Segoe UI", Helvetica, Arial, sans-serif;
+    -fx-font-size: 11pt;
+    -fx-text-fill: black;
+}
+
+.button:hover{
+    -fx-background-color: #d8d8d8;
+}
+
+.button:pressed, .button:default:hover:pressed
+{
+  -fx-background-color: black;
+  -fx-text-fill: white;
+}
+
+.button:focused
+{
+    -fx-border-color: transparent, black;
+    -fx-border-width: 1, 1;
+    -fx-border-style: solid, segments(1, 2);
+    -fx-border-radius: 0, 0;
+    -fx-border-insets: 1 1 1 1, 0;
+}
+
+.button:disabled, .button:default:disabled
+{
+    -fx-opacity: 0.4;
+    -fx-background-color: #cccccc;
+    -fx-text-fill: #212121;
+}
+
+.button:default
+{
+    -fx-background-color: #008287;
+    -fx-text-fill: #ffffff;
+}
+
+.button:default:hover{
+    -fx-background-color: #219297;
+}
+
+
+/*******************************************************************************
+ *                                                                             *
+ * Toggle Button                                                               *
+ *                                                                             *
+ ******************************************************************************/
+
+.toggle-button {
+    -fx-padding: 5 22 5 22;
+    -fx-border-style: null;
+    -fx-background-radius: 0;
+
+    -fx-background-color: #cccccc;
+
+    -fx-font-family: "Segoe UI", Helvetica, Arial, sans-serif;
+    -fx-font-size: 11pt;
+    -fx-text-fill: black;
+
+    -fx-border-color: transparent;
+    -fx-border-width: 2;
+}
+
+.toggle-button:focused {
+    -fx-border-color: transparent, black;
+    -fx-border-width: 1, 1;
+    -fx-border-style: solid, segments(1, 2);
+    -fx-border-radius: 0, 0;
+    -fx-border-insets: 1 1 1 1, 0;
+}
+
+.toggle-button:hover {
+    -fx-background-color: #d8d8d8;
+    -fx-text-fill: black;
+}
+
+.toggle-button:selected {
+    -fx-background-color: black;
+    -fx-text-fill: white;
+}
+
+.toggle-button:selected:hover {
+    -fx-background-color: #666;
+    -fx-text-fill: white;
+}
+
+.toggle-button:disabled {
+    -fx-opacity: 0.4;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Check Box                                                                   *
+ *                                                                             *
+ ******************************************************************************/
+
+.check-box {
+    -fx-text-fill: black;
+}
+
+/* unselected */
+.check-box > .box {
+    -fx-background-color: white;
+    -fx-background-insets: 0;
+    -fx-background-radius: 0;
+    -fx-border-color: #bababa;
+    -fx-border-width: 2px;
+    -fx-border-style: solid;
+    -fx-padding: 1;
+}
+
+
+.check-box > .box > .mark {
+    -fx-background-insets: 0;
+
+    -fx-padding:7px;
+    -fx-shape: "M9.005,17.766l13.759,14.739h1.716L49.02,0l10.298,8.488L25.997,50.453h-3.629L0,26.897L9.005,17.766z"
+}
+
+.check-box:hover > .box {
+    -fx-border-color: #919191;
+}
+
+/* focused */
+
+.check-box:focused > .box{
+    -fx-background-insets: 0;
+    -fx-background-radius: 0;
+    -fx-border-color: black, #bababa;
+    -fx-border-width: 1, 2;
+    -fx-border-style: segments(1, 2), solid;
+    -fx-border-insets: -3, 0;
+}
+
+.check-box:focused:hover > .box{
+    -fx-border-color: black, #919191;
+}
+
+.check-box:indeterminate > .box > .mark {
+    -fx-background-color: black;
+    -fx-background-insets: 2.8;
+    -fx-padding:7px;
+    -fx-shape: null;
+}
+
+.check-box:selected > .box > .mark{
+    -fx-background-color: black;
+}
+
+.check-box:disabled
+{
+    -fx-opacity: 0.4;
+}
+
+.check-box:disabled > .box
+{
+    -fx-background-color: #cdcdcd;
+    -fx-border-color: #aaa;
+}
+
+.check-box:armed > .box
+{
+    -fx-background-color: white, black;
+    -fx-background-insets: -1, 2;
+    -fx-background-radius: 0, 0;
+    -fx-border-color: black;
+}
+
+.check-box:pressed:selected > .box > .mark
+{
+    -fx-background-color: white;
+}
+
+.check-box:armed > .box > .mark
+{
+    -fx-background-color: black;
+}
+
+
+/*******************************************************************************
+ *                                                                             *
+ * Radio Button                                                                *
+ *                                                                             *
+ ******************************************************************************/
+
+.radio-button {
+    -fx-text-fill: #212121;
+}
+
+.radio-button > .radio  {
+   -fx-background-color: transparent;
+   -fx-background-radius: 1.0em; /* large value to make sure this remains circular */
+   -fx-background-insets: 0;
+
+   -fx-border-radius: 1.0em;
+   -fx-border-color: #bababa;
+   -fx-border-width: 2px;
+
+   -fx-padding: 4px; /* 4 -- padding from outside edge to the inner black dot */
+}
+
+.radio-button > .radio > .dot {
+    -fx-background-color: transparent;
+    -fx-background-insets: 0;
+    -fx-background-radius: 1.0em; /* large value to make sure this remains circular */
+    -fx-padding: 6px; /* 3 -- radius of the inner black dot when selected */
+}
+
+.radio-button:selected > .radio > .dot {
+    -fx-background-color: #212121;
+}
+
+.radio-button:hover > .radio {
+    -fx-border-color: #919191;
+}
+
+.radio-button:disabled
+{
+    -fx-opacity: 0.5;
+}
+
+.radio-button:disabled > .radio
+{
+    -fx-background-color: #e6e6e6;
+    -fx-border-color: #d9d9d9;
+}
+
+.radio-button:focused > .radio
+{
+   -fx-background-color: transparent;
+   -fx-background-radius: 1.0em; /* large value to make sure this remains circular */
+   -fx-background-insets: 0;
+
+   -fx-border-style: solid, segments(1, 2);
+   -fx-border-radius: 1.0em, 0;
+   -fx-border-color: #bababa, black;
+   -fx-border-insets: 0px, -2px;
+   -fx-border-width: 2px, 1px;
+
+   -fx-padding: 4px; /* 4 -- padding from outside edge to the inner black dot */
+}
+
+.radio-button:focused:hover > .radio
+{
+    -fx-border-color: #919191, black;
+}
+
+.radio-button:focused:pressed > .radio
+{
+    -fx-border-color: #212121, black;
+}
+
+.radio-button:pressed > .radio
+{
+    -fx-background-color: #212121;
+    -fx-border-color: #212121;
+}
+
+.radio-button:pressed:selected > .radio > .dot
+{
+    -fx-background-color: white;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Tooltip                                                                     *
+ *                                                                             *
+ ******************************************************************************/
+
+.tooltip {
+    -fx-background-color: white;
+    -fx-background-insets: 0;
+    -fx-background-radius: 0 0 0 0;
+
+    -fx-padding: 0.333333em 0.666667em 0.333333em 0.666667em;  /*4 8 4 8 */
+
+    -fx-font-family: "Segoe UI Semilight", "Segoe UI Light", "Segoe UI", Helvetica, Arial, sans-serif;
+    -fx-text-fill: rgba(0, 0, 0, 0.6);
+
+    -fx-border-color: #808080;
+    -fx-border-width: 2px;
+
+    -fx-effect: null;
+}
+
+
+/*******************************************************************************
+ *                                                                             *
+ * Context Menu                                                                *
+ *                                                                             *
+ ******************************************************************************/
+
+.context-menu {
+    -fx-background-color: white;
+    -fx-background-insets: 0, 1, 2;
+    -fx-background-radius: 0 0 0 0, 0 0 0 0, 0 0 0 0;
+    -fx-padding: 0.5em 0em 0.5em 0em; /* 6 0 6 0 */
+
+    -fx-border-color: #212121;
+    -fx-border-style: solid;
+}
+
+.context-menu .separator {
+    -fx-padding: 0.58333275em 1.333332em 0.58333275em 1.333332em;  /*7 16 7 16 */
+}
+
+/* TODO: try to scope the menu-item style to the contextmenu */
+.menu-item {
+    -fx-background-color: transparent;
+    -fx-padding: 0.666666em 1.333332em 0.666666em 1.333332em;   /*8 16 8 16 */
+}
+
+.menu-item .label {
+    -fx-padding: 0em 1.333332em 0em 0em;
+    -fx-text-fill: #212121;
+    -fx-font-family: "Segoe UI", Helvetica, Arial, sans-serif;
+    -fx-font-size: 11pt;
+}
+
+.menu-item:focused {
+     -fx-background: -fx-accent;
+     -fx-background-color: #dedede;
+}
+
+.menu-item:pressed
+{
+    -fx-background-color: #212121;
+    -fx-text-fill: white;
+}
+
+.menu-item:pressed .label
+{
+    -fx-text-fill: white;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * ScrollBar                                                                   *
+ *                                                                             *
+ ******************************************************************************/
+
+.scroll-bar > .thumb{
+    -fx-background-color: #cdcdcd;
+    -fx-background-insets: 0;
+    -fx-background-radius: 0;
+}
+
+.scroll-bar > .thumb:hover {
+    -fx-background-color: #dadada;
+}
+
+.scroll-bar > .thumb:pressed {
+    -fx-background-color: #606060;
+}
+
+.scroll-bar > .track {
+    -fx-background-color: #f0f0f0;
+    -fx-background-insets: 0;
+    -fx-background-radius: 0;
+}
+.scroll-bar > .track-background {
+    -fx-background-color: #f0f0f0;
+    -fx-background-insets: 0;
+}
+
+.scroll-bar > .increment-button,
+.scroll-bar > .decrement-button {
+    -fx-background-color: #f0f0f0;
+    -fx-background-insets: 0;
+    -fx-background-radius: 0;
+
+    -fx-padding: 0.25em; /* 3 */
+}
+
+.scroll-bar > .increment-button:hover,
+.scroll-bar > .decrement-button:hover  {
+    -fx-background-color: #dadada;
+}
+
+.scroll-bar > .increment-button:pressed,
+.scroll-bar > .decrement-button:pressed {
+    -fx-background-color: #606060;
+}
+
+.scroll-bar > .decrement-button > .decrement-arrow,
+.scroll-bar > .increment-button > .increment-arrow{
+    -fx-background-insets: 1 0 -1 0, 0;
+    -fx-background-color: transparent, #606060;
+    -fx-effect: null;
+}
+
+.scroll-bar > .decrement-button:pressed > .decrement-arrow,
+.scroll-bar > .increment-button:pressed > .increment-arrow {
+    -fx-background-color: transparent, white;
+    -fx-effect: null;
+}
+
+.scroll-bar:vertical > .increment-button > .increment-arrow,
+.scroll-bar:vertical > .decrement-button > .decrement-arrow {
+    -fx-padding: 0.333333em 0.5em 0.0em 0.0em; /* 4 6 0 0 */
+}
+
+.scroll-bar:horizontal > .increment-button > .increment-arrow,
+.scroll-bar:horizontal > .decrement-button > .decrement-arrow {
+    -fx-padding: 0.5em 0.333333em 0.0em 0.0em; /* 6 4 0 0 */
+}
+
+.scroll-bar:disabled {
+    -fx-opacity: 0.4;
+}
+
+/* ARROW SHAPES */
+.scroll-bar:horizontal > .decrement-button > .decrement-arrow {
+    -fx-shape: "M11,17H8.111l-3.86-4.124l3.86-4.125H11l-3.375,4.125L11,17z";
+}
+
+.scroll-bar:horizontal > .increment-button > .increment-arrow {
+    -fx-shape: "M7.626,12.876L4.251,8.751H7.14L11,12.876L7.14,17H4.251L7.626,12.876z";
+}
+
+.scroll-bar:vertical > .decrement-button > .decrement-arrow {
+    -fx-shape: "M4,17v-2.889l4.124-3.86l4.125,3.86V17l-4.125-3.375L4,17z";
+}
+
+.scroll-bar:vertical > .increment-button > .increment-arrow {
+    -fx-shape: "M8.124,13.625l4.125-3.375v2.889l-4.125,3.86L4,13.139V10.25L8.124,13.625z";
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * ScrollPane                                                                  *
+ *                                                                             *
+ ******************************************************************************/
+
+.scroll-pane {
+    -fx-background-color: transparent, transparent;
+}
+
+.scroll-pane .corner {
+    -fx-background-radius: 0 0 0 0;
+    -fx-background-color: #f0f0f0;
+    -fx-background-insets: 1 0 0 1; /* have the square on the corner be centered */
+}
+
+
+/*******************************************************************************
+ *                                                                             *
+ * ComboBox                                                                    *
+ *                                                                             *
+ ******************************************************************************/
+
+.combo-box-base  {
+    -fx-background-color: transparent, #bababa, transparent, white;
+    -fx-background-radius: 0, 0, 0, 0;
+    -fx-padding: 0em 0.166667em 0em 0.166667em; /* 0 2px 0 2px*/
+
+    -fx-font-family: "Segoe UI", Helvetica, Arial, sans-serif;
+    -fx-font-size: 1.333333em; /* 16 */
+}
+
+.combo-box-base:hover {
+    -fx-background-color: transparent, #909090, transparent, white;
+}
+
+.combo-box-base:focused {
+    -fx-background-color: transparent, #5c5c5c, transparent, white;
+    -fx-background-insets: -1.4, 0, 1, 2;
+
+    -fx-background-radius: 0, 0, 0, 0;
+}
+
+.combo-box-base:focused:hover {
+    -fx-background-color: transparent, #909090, transparent, white;
+}
+
+.combo-box-base:disabled {
+    -fx-opacity: .4;
+}
+
+/* OPEN BUTTON */
+.combo-box-base > .arrow-button {
+    -fx-background-color: transparent, transparent, transparent;
+}
+
+/* ARROW */
+.combo-box-base > .arrow-button > .arrow {
+    -fx-padding: 0.236110875em 0.333333em 0.236110875em 0.333333em; /* (2/3 * 4.25) 4 (2/3 * 4.25) 4 */
+    -fx-shape: "M-78,640l-6-5.5v-3l6,5l0,0l6-5v3L-78,640L-78,640z";
+    -fx-background-insets: 0 0 0 0, 0;
+    -fx-background-color: black;
+}
+
+/* LIST (Popup)*/
+.combo-box-popup > .list-view {
+    -fx-effect: null;
+}
+
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell {
+    -fx-font-family: "Segoe UI", Helvetica, Arial, sans-serif;
+    -fx-font-size: 11pt;
+    -fx-padding: 4 0 4 5;
+}
+
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:hover{
+    -fx-background-color: #dedede;
+    -fx-text-fill: black;
+}
+
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected{
+    -fx-background-color: #55c4fe;  /* TODO: this probably is the "active" color" */
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Rating (ControlsFX)                                                         *
+ *                                                                             *
+ ******************************************************************************/
+
+.rating > .container > .button {
+    -fx-background-color: #bababa;
+    -fx-border-color: transparent;
+    -fx-shape: "M147.421,249.541l6.152,4.854l-2.393,7.355l6.521-4.361l6.549,4.361l-2.393-7.355l6.152-4.854h-7.738l-2.571-7.396l-2.543,7.396H147.421z";
+    -fx-background-image: null;
+    -fx-padding: 16 16;
+    -fx-background-image-repeat: no-repeat;
+}
+.rating > .container > .button.strong {
+    -fx-background-color: #00828b;
+    -fx-border-color: transparent;
+    -fx-background-image: null;
+
+}
+.rating > .container:hover > .button.strong {
+    -fx-background-color: #329aa3;
+}
+
+.rating > .container > .button:hover {
+    -fx-effect: null;
+}
+
+.rating > .container:pressed > .button.strong {
+    -fx-background-color: #25bbc4;
+}
+
+.rating > .container > .button:pressed {
+    -fx-background-color: #25bbc4;
+}
+
+.rating:disabled{
+    -fx-opacity: .6;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * TextBox (and PasswordBox)                                                   *
+ *                                                                             *
+ ******************************************************************************/
+.text-field{
+    -fx-skin: "jfxtras.styles.jmetro8.MetroTextFieldSkin";
+}
+
+.text-input{
+    -fx-background-radius: 0, 0;
+
+    -fx-background-color: #bababa, white;
+    -fx-background-insets: 0, 2;
+
+    -fx-prompt-text-fill: #9f9f9f;
+
+    -fx-highlight-fill: #008287; /* TODO: this probably is the "active" color" */
+    -fx-highlight-text-fill: white;
+}
+
+.text-input:hover{
+    -fx-background-color: #8f8f8f, white;
+}
+
+.text-input:focused{
+    -fx-background-color: #5c5c5c, white;
+
+    -fx-text-fill: black;
+}
+
+/*.text-input > Pane{*/
+    /*-fx-padding: 0.333333em 0.583em 0.333333em 0em; *//* 4 7 4 0 */
+/*}*/
+
+.text-input > .right-button{
+    -fx-cursor: default;
+
+    -fx-background-insets: -0.1666665em -0.45em -0.1666665em -0.45em; /* 4 7 4 7 -> this values are subtracted by 2px in em because of the border of the textfield */
+}
+
+.text-field > .right-button > .right-button-graphic {
+    -fx-shape            : "M221.738,305.873l6.135,6.16l-2.875,2.863l-6.135-6.159l-6.263,6.237l-2.864-2.875l6.263-6.238l-6.177-6.202l2.875-2.863l6.177,6.201l6.244-6.22l2.864,2.876L221.738,305.873z";
+
+    -fx-padding: 0.5em 0.5em; /* TODO: put the real number here 18 18 */
+    -fx-background-color: black;
+}
+
+.text-input > .right-button:hover {
+    -fx-background-color: #d9d9d9;
+}
+
+.text-input > .right-button:pressed {
+    -fx-background-color: black;
+}
+
+.text-input > .right-button:pressed > .right-button-graphic {
+    -fx-background-color: white;
+}
+
+.text-input:disabled
+{
+    -fx-opacity: 1;
+    -fx-background-color: #d9d9d9, #eaeaea;
+    -fx-text-fill: #adadad;
+}
+
+.item-title.disabled{
+    -fx-text-fill: #adadad;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * PasswordBox                                                                 *
+ *                                                                             *
+ ******************************************************************************/
+
+.password-field {
+    -fx-skin: "jfxtras.styles.jmetro8.MetroPasswordFieldSkin";
+}
+
+.password-field > .right-button > .right-button-graphic {
+    -fx-shape            : "M307.688,399.564c0,1.484-1.203,2.688-2.688,2.688c-1.484,0-2.688-1.203-2.688-2.688s1.203-2.688,2.688-2.688C306.484,396.876,307.688,398.08,307.688,399.564z M297.5,399h2.5c0,0,1.063-4,5-4c3.688,0,5,4,5,4h2.5c0,0-2.063-6.5-7.5-6.5C299,392.5,297.5,399,297.5,399z";
+    -fx-scale-shape: false;
+    -fx-background-color: black;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * ProgressBar                                                                 *
+ *                                                                             *
+ ******************************************************************************/
+.progress-bar > .bar {
+    -fx-background-color: #008287;
+    -fx-background-radius: 0;
+    -fx-background-insets: 1;
+}
+
+.progress-bar > .track {
+    -fx-background-color: white;
+    -fx-background-insets: 0;
+    -fx-background-radius: 0;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Slider                                                                      *
+ *                                                                             *
+ ******************************************************************************/
+
+.slider {
+    -fx-skin: "jfxtras.styles.jmetro8.FilledSliderSkin";
+}
+
+.slider .thumb {
+    -fx-background-color: black;
+    -fx-background-insets: 0;
+    -fx-background-radius: 0em;
+    -fx-padding: 0.333333em; /* 4 */
+
+    -fx-effect: null;
+}
+.slider:focused .thumb {
+    -fx-background-radius: 0em;
+}
+
+.slider .track {
+    -fx-background-color: #c6c6c6;
+    -fx-background-insets: 0;
+    -fx-background-radius: 0;
+    -fx-padding: 0.333333em; /* This value must be equal to ".slider .thumb" padding */
+}
+
+.slider .fill {
+    -fx-background-color: #00828b;
+    -fx-padding: 0.333333em; /* This value must be equal to ".slider .thumb" padding */
+}
+
+.slider .fill:hover {
+    -fx-background-color: #219297;
+}
+
+.slider .fill:pressed {
+    -fx-background-color: #25bbc4;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * ToggleSwitch                                                                *
+ *                                                                             *
+ ******************************************************************************/
+.toggle-switch .text {
+    -fx-fill: black;
+    -fx-font-size: 1em;
+    -fx-font-family: "Segoe UI Semibold", "Segoe UI";
+}
+
+.toggle-switch .thumb {
+    -fx-background-color: black;
+    -fx-padding: 0.583333em 0.333333em 0.583333em 0.333333em;  /* 7 4 7 4*/
+}
+
+.toggle-switch:selected .thumb-area{
+    -fx-background-insets: 0, 1, 2;
+    -fx-background-color: #a6a6a6, white, #219297; /* The last one is the accent color */
+}
+
+.toggle-switch .thumb-area{
+    -fx-background-insets: 0, 1, 2;
+    -fx-background-color: #a6a6a6, white, #a6a6a6;
+}
+
+.toggle-switch:selected:pressed .thumb-area{
+    -fx-background-insets: 0, 1, 2;
+    -fx-background-color: #a6a6a6, white, #25bbc4; /* The last one is the accent color */
+}
+
+.toggle-switch .thumb-area
+{
+    -fx-padding: 0.583333em 1.333333em 0.583333em 1.333333em; /* 7 16 7 16 */
+
+}
+
+.toggle-switch:disabled
+{
+    -fx-opacity: 0.4;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * ListSpinner (Jfxtras)                                                       *
+ *                                                                             *
+ ******************************************************************************/
+
+.ListSpinner {
+    -fx-skin: "jfxtras.labs.internal.scene.control.skin.ListSpinnerCaspianSkin";
+    -fx-background-color: #f0f0f0;
+    -fx-background-insets: 0 0 0 0;
+    -fx-background-radius: 0;
+    -fx-padding: 0.266667em 0.233333em 0.25em 0.233333em;
+    -fx-text-fill: #212121;
+}
+
+.ListSpinner:hover {
+    -fx-color: #f0f0f0;
+}
+
+.ListSpinner:focused {
+    -fx-color: -fx-focused-base;
+    -fx-background-color: -fx-focus-color, -fx-outer-border, -fx-inner-border, -fx-body-color;
+    -fx-background-insets: -1.4, 0, 1, 2;
+    -fx-background-radius: 6.4, 5, 4, 3;
+}
+
+.ListSpinner .valuePane {
+    -fx-padding: 0.0em 0.2em 0.0em 0.2em;
+}
+
+.ListSpinner .left-arrow {
+    -fx-shape: "M4,-4 L0,0 L4,4 Z";
+    -fx-scale-shape: false;
+}
+.ListSpinner .right-arrow {
+    -fx-shape: "M0,-4 L4,0 L0,4 Z";
+    -fx-scale-shape: false;
+}
+.ListSpinner .down-arrow {
+    -fx-shape: "M-4,-2 L0,2 L4,-2 Z";
+    -fx-scale-shape: false;
+}
+.ListSpinner .up-arrow {
+    -fx-shape: "M4,2 L-4,2 L0,-2 Z";
+    -fx-scale-shape: false;
+}
+.ListSpinner .idle {
+    -fx-background-color: -fx-mark-color;
+}
+.ListSpinner .clicked {
+    -fx-background-color: -fx-focus-color;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * Spinner                                                                     *
+ *                                                                             *
+ ******************************************************************************/
+
+.spinner {
+    -fx-background-color: #f0f0f0;
+    -fx-background-insets: 0;
+    -fx-background-radius: 0;
+}
+
+.spinner > .text-field{
+    -fx-skin: "com.sun.javafx.scene.control.skin.TextFieldSkin";
+}
+
+.spinner > .text-field {
+    -fx-background-color: #f0f0f0;
+    -fx-background-insets: 0;
+    -fx-background-radius: 0;
+}
+
+.spinner .increment-arrow-button, .spinner .decrement-arrow-button  {
+    -fx-background-color: #f0f0f0;
+    /*Change the two 0's here to -1 to get rid of the horizontal line */
+    -fx-background-insets: 0;
+    -fx-background-radius: 0;
+}
+
+.spinner .increment-arrow-button .increment-arrow, .spinner .decrement-arrow-button .decrement-arrow {
+    -fx-background-color: -fx-mark-color;
+}
+
+
+.spinner .increment-arrow-button:hover, .spinner .decrement-arrow-button:hover {
+    -fx-background-color: #dadada;
+}
+
+.spinner .increment-arrow-button:pressed, .spinner .decrement-arrow-button:pressed {
+    -fx-background-color: #606060;
+}
+
+.spinner.split-arrows-horizontal .increment-arrow-button:pressed .increment-arrow, .spinner.split-arrows-horizontal .decrement-arrow-button:pressed .decrement-arrow{
+    -fx-background-color: white;
+}
+
+
+/*******************************************************************************
+ *                                                                             *
+ * TreeTableView(-Cell)                                                        *
+ *                                                                             *
+ ******************************************************************************/
+
+.tree-table-cell {
+    -fx-border-color: grey;
+    -fx-border-width: 0.1px;
+}
+
+
+/*******************************************************************************
+ *                                                                             *
+ * DatePicker                                                                  *
+ *                                                                             *
+ ******************************************************************************/
+.date-picker > .arrow-button > .arrow {
+    -fx-shape: "M0,0v9h9V0H0z M2,8H1V7h1V8z M2,6H1V5h1V6z M2,4H1V3h1V4z M4,8H3V7h1V8z M4,6H3V5h1V6z M4,4H3V3h1V4z M6,8H5V7h1V8z M6,6H5 V5h1V6z M6,4H5V3h1V4z M8,8H7V7h1V8z M8,6H7V5h1V6z M8,4H7V3h1V4z";
+    -fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
+    -fx-background-insets: 1 0 -1 0, 0;
+    -fx-padding: 0.416667em 0.416667em 0.333333em 0.333333em; /* 5 5 4 4 */
+    -fx-scale-shape: true;
+}
+
+.date-picker .text-field{
+    -fx-skin: "com.sun.javafx.scene.control.skin.TextFieldSkin";
+}
+
+.date-picker .text-input{
+    -fx-background-radius: 0, 0;
+
+    -fx-background-color: transparent, white;
+    -fx-background-insets: 2, 2;
+}
+
+.date-picker > .arrow-button:hover {
+    -fx-background-color: #d9d9d9;
+    -fx-background-insets: 3 3 3 3;
+    -fx-background-radius: 0;
+}
+
+.date-picker > .arrow-button:pressed {
+    -fx-background-color: black;
+}
+
+.date-picker > .arrow-button:pressed > .arrow {
+    -fx-background-color: white;
+}
+
+.date-picker-popup {
+    -fx-background-color: white;
+    -fx-background-insets: 0;
+}
+
+.date-picker-popup > .month-year-pane {
+    -fx-background-color: white;
+    -fx-background-insets: 0;
+}
+
+.date-picker-popup > * > .spinner > .button {
+    -fx-padding: 0.25em 0.583333em 0.25em 0.583333em; /* 3 7 3 7 */
+}
+
+.date-picker-popup > * > .spinner > .button {
+    -fx-background-color: white;
+    -fx-background-insets: 0;
+}
+
+.date-picker-popup > * > .spinner {
+    -fx-background-color: white;
+    -fx-background-insets: 0;
+}
+
+.date-picker-popup > * > .spinner > .button:hover {
+    -fx-background-color: #dadada;
+}
+
+.date-picker-popup > * > .spinner > .button:armed {
+    -fx-background-color: #606060;
+}
+
+.date-picker-popup > * > .spinner > .button > .left-arrow,
+.date-picker-popup > * > .spinner > .button > .right-arrow {
+    -fx-background-color: #606060;
+    -fx-background-insets: 0;
+    -fx-effect: null;
+}
+
+.date-picker-popup > * > .spinner > .button:pressed > .left-arrow,
+.date-picker-popup > * > .spinner > .button:pressed > .right-arrow {
+    -fx-background-color: white;
+    -fx-background-insets: 0;
+}
+
+.date-picker-popup > .calendar-grid {
+    -fx-background-color: white;
+    /*-fx-background-insets: 1 0 0 0;*/
+    -fx-padding: 0;
+}
+
+.date-picker-popup > * > .previous-month,
+.date-picker-popup > * > .next-month {
+    -fx-background-color: white;
+    -fx-opacity: 0.3;
+}
+
+.date-picker-popup > * > .day-name-cell,
+.date-picker-popup > * > .week-number-cell {
+    -fx-font-size: 0.75em;
+    -fx-font-family: "Segoe UI Semibold", "Segoe UI", Helvetica, Arial, sans-serif;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * ChoiceBox                                                                   *
+ *                                                                             *
+ ******************************************************************************/
+
+.choice-box  {
+    -fx-background-color: transparent, #bababa, transparent, white;
+    -fx-background-radius: 0, 0, 0, 0;
+    -fx-padding: 0em 0.166667em 0em 0.166667em; /* 0 2px 0 2px*/
+    -fx-background-insets: -1.4, 0, 1, 2;
+
+    -fx-font-family: "Segoe UI", Helvetica, Arial, sans-serif;
+    -fx-font-size: 1.333333em; /* 16 */
+}
+
+.choice-box:focused {
+    -fx-background-color: transparent, #5c5c5c, transparent, white;
+}
+
+.choice-box:focused:hover {
+    -fx-background-color: transparent, #909090, transparent, white;
+}
+
+.choice-box:disabled {
+    -fx-opacity: .4;
+}
+
+.radio-menu-item:checked > .left-container > .radio {
+    -fx-shape: "M9.005,17.766l13.759,14.739h1.716L49.02,0l10.298,8.488L25.997,50.453h-3.629L0,26.897L9.005,17.766z";
+    -fx-padding:7px;
+    -fx-scale-shape: true;
+}
+
+/*******************************************************************************
+ *                                                                             *
+ * List Box                                                                    *
+ *                                                                             *
+ ******************************************************************************/
+
+.list-view {
+    -fx-background-color: white;
+    -fx-background-insets: 0;
+    -fx-padding: 0;
+
+    -fx-border-color: #a4a4a4;
+    -fx-border-width: 2px;
+}
+
+.list-view:focused {
+    -fx-background-color: white;
+    -fx-background-insets: 0;
+    -fx-background-radius: 0;
+}
+
+.list-view > .virtual-flow > .clipped-container > .sheet > .list-cell {
+    -fx-padding: 1em 2em 1em 2em;
+    -fx-font-family: "Segoe UI", Helvetica, Arial, sans-serif;
+}
+
+.list-view > .virtual-flow > .clipped-container > .sheet > .list-cell {
+    -fx-background-color: white;
+}
+
+.list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:focused {
+    -fx-background-color: #d3d3d3;
+}
+
+.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell {
+    -fx-background-color: white;
+}
+
+.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:focused {
+    -fx-background-color: -fx-background;
+    -fx-background-insets: 0;
+}
+
diff --git a/org.fortiss.tooling.common.ui/res/jfxtras/License.txt b/org.fortiss.tooling.common.ui/res/jfxtras/License.txt
new file mode 100644
index 0000000000000000000000000000000000000000..80a6234cde076442b1f602923f58d1773116beb9
--- /dev/null
+++ b/org.fortiss.tooling.common.ui/res/jfxtras/License.txt
@@ -0,0 +1,24 @@
+Copyright (c) 2011-2018, JFXtras
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of the JFXtras project nor the
+      names of its contributors may be used to endorse or promote products
+      derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/.ratings b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/.ratings
index 10ef4a833313fa5ac797231fd84684dde9834183..86b47393dc290e086696323a5f07d0be07adb0bb 100644
--- a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/.ratings
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/.ratings
@@ -1 +1 @@
-AF3FXViewPart.java b6a5e5efc2b7bb6f7a62eb478f697ec459a0cfb3 GREEN
+AF3FXViewPart.java 9e119a36de6ab9e1a07cd416de0126a89514bd38 GREEN
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/AF3FXViewPart.java b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/AF3FXViewPart.java
index b6a5e5efc2b7bb6f7a62eb478f697ec459a0cfb3..9e119a36de6ab9e1a07cd416de0126a89514bd38 100644
--- a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/AF3FXViewPart.java
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/AF3FXViewPart.java
@@ -16,15 +16,17 @@
 package org.fortiss.tooling.common.ui.javafx;
 
 import java.io.IOException;
-
-import org.eclipse.fx.ui.workbench3.FXViewPart;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
+import java.net.URL;
 
 import javafx.application.Platform;
 import javafx.fxml.FXMLLoader;
 import javafx.scene.Scene;
-import javafx.scene.layout.BorderPane;
+import javafx.scene.layout.Pane;
+
+import org.apache.commons.lang3.SystemUtils;
+import org.eclipse.fx.ui.workbench3.FXViewPart;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
 
 /**
  * Base class to create eclipse (SWT-based) views using JavaFX GUI elements. This class requires
@@ -37,11 +39,11 @@ import javafx.scene.layout.BorderPane;
  * class for non-removal.
  */
 public abstract class AF3FXViewPart extends FXViewPart { // NO_UCD
-	/** Holds the relative path to the CSS file defining the Applications appearance. */
-	private final static String CSSLOCATION = "/application.css";
-
 	/** For later use, if we need to define different styles. */
-	private final String cssLocation;
+	private String cssLocation;
+
+	/** Flag that indicates if a custom style sheet has been applied. */
+	private boolean isCustomStyleSheetApplied;
 
 	/**
 	 * Holds the relative location of the FXML JavaXML files. Roots are the source folders of the
@@ -59,15 +61,12 @@ public abstract class AF3FXViewPart extends FXViewPart { // NO_UCD
 	 *            Stub class that defines the FXML file defining the layout and controller
 	 * @param fXMLLocation
 	 *            location of the fXML file relative to the source (resource) folders.
-	 * @param cssLocation
-	 *            style sheet file path for the appearance settings relative to the source
-	 *            (resource) folders.
 	 * @throws Exception
 	 *             if the given FXML file path is not given or if it cannot be found in any of the
 	 *             source (resource) folders.
 	 */
-	private AF3FXViewPart(Class<? extends AF3FXViewPart> viewerClass, String fXMLLocation,
-			String cssLocation) throws Exception {
+	public AF3FXViewPart(Class<? extends AF3FXViewPart> viewerClass, String fXMLLocation)
+			throws Exception {
 		if(fXMLLocation == null) {
 			throw new Exception(
 					"The location of the FXML file defining the gui elements was not given," +
@@ -78,7 +77,6 @@ public abstract class AF3FXViewPart extends FXViewPart { // NO_UCD
 		Platform.setImplicitExit(false);
 		this.viewerClass = viewerClass;
 		this.fXMLLocation = fXMLLocation;
-		this.cssLocation = cssLocation;
 	}
 
 	/**
@@ -88,13 +86,17 @@ public abstract class AF3FXViewPart extends FXViewPart { // NO_UCD
 	 *            Stub class that defines the FXML file defining the layout and controller
 	 * @param fXMLLocation
 	 *            location of the fXML file relative to the source (resource) folders.
+	 * @param cssLocation
+	 *            style sheet file path for the appearance settings relative to the source
+	 *            (resource) folders.
 	 * @throws Exception
 	 *             if the given FXML file path is not given or if it cannot be found in any of the
 	 *             source (resource) folders.
 	 */
-	public AF3FXViewPart(Class<? extends AF3FXViewPart> viewerClass, String fXMLLocation)
-			throws Exception {
-		this(viewerClass, fXMLLocation, CSSLOCATION);
+	public AF3FXViewPart(Class<? extends AF3FXViewPart> viewerClass, String fXMLLocation,
+			String cssLocation) throws Exception {
+		this(viewerClass, fXMLLocation);
+		this.cssLocation = cssLocation;
 	}
 
 	/** {@inheritDoc} */
@@ -104,8 +106,9 @@ public abstract class AF3FXViewPart extends FXViewPart { // NO_UCD
 			if(!"0".equals(System.getenv("SWT_GTK3"))) {
 				org.eclipse.swt.widgets.Label errorLabel =
 						new org.eclipse.swt.widgets.Label(parent, SWT.BOLD);
-				errorLabel.setText("Cannot show JavaFX view without setting SWT_GTK3 to '0'.\n" +
-						"Please relaunch Eclipse using a terminal and 'SWT_GTK3=0 ./eclipse' command.");
+				errorLabel
+						.setText("Cannot show JavaFX view without setting SWT_GTK3 to '0'.\n"
+								+ "Please relaunch Eclipse using a terminal and 'SWT_GTK3=0 ./eclipse' command.");
 				return;
 			}
 		}
@@ -115,17 +118,23 @@ public abstract class AF3FXViewPart extends FXViewPart { // NO_UCD
 	/** {@inheritDoc} */
 	@Override
 	protected Scene createFxScene() {
-		BorderPane root = null;
+		Pane root = null;
 		FXMLLoader loader = new FXMLLoader();
 		loader.setClassLoader(viewerClass.getClassLoader());
 		loader.setLocation(viewerClass.getResource(fXMLLocation));
 		try {
-			root = (BorderPane)loader.load();
+			root = (Pane)loader.load();
 		} catch(IOException e) {
 			throw new RuntimeException("Cannot load the resource located at " + fXMLLocation, e);
 		}
-		Scene scene = new Scene(root, 400, 400);
-		scene.getStylesheets().add(getClass().getResource(cssLocation).toExternalForm());
+
+		if(cssLocation != null) {
+			isCustomStyleSheetApplied = applyStyleSheet(root, getClass(), cssLocation);
+		}
+		if(!isCustomStyleSheetApplied) {
+			setNativeLook(root);
+		}
+		Scene scene = new Scene(root);
 		return scene;
 	}
 
@@ -134,4 +143,48 @@ public abstract class AF3FXViewPart extends FXViewPart { // NO_UCD
 	protected void setFxFocus() {
 		// Not needed.
 	}
+
+	/**
+	 * Sets the native look of the target platform to break the UI. Most of the UI code is based on
+	 * SWT which uses a platform native look. Currently, Windows 8&10, Windows 7, and MacOS X native
+	 * looks are supported.
+	 */
+	private void setNativeLook(Pane pane) {
+		if(SystemUtils.IS_OS_WINDOWS_10 || SystemUtils.IS_OS_WINDOWS_8) {
+			applyStyleSheet(pane, AF3FXViewPart.class, "/jfxtras/JMetroLightTheme.css");
+		} else if(SystemUtils.IS_OS_WINDOWS) {
+			applyStyleSheet(pane, AF3FXViewPart.class, "/aerofx/win7.css");
+		} else if(SystemUtils.IS_OS_MAC_OSX) {
+			applyStyleSheet(pane, AF3FXViewPart.class, "/aquafx/aquafx.css");
+		} else if(SystemUtils.IS_OS_LINUX) {
+			// At the time of writing this method, no CSS is known that mimics GTK or QT. Thus, use
+			// the default modena look.
+		}
+	}
+
+	/**
+	 * Applies the style sheet from the given location to the given {@link Pane}. The class loader
+	 * of the plugin containing the style sheet must be given such that this resource can be loaded.
+	 * For instance the class loader of the common.ui plugin must be given for the native looks.
+	 * 
+	 * @param pane
+	 *            {@link Pane} to which the style sheet shall be applied.
+	 * @param viewerClass
+	 *            Class containing the style sheet resource.
+	 * @param styleSheetLocation
+	 *            relative location of the style sheet to its containing resource folder (aka source
+	 *            folder).
+	 * @return whether the style sheet could be applied.
+	 */
+	private boolean applyStyleSheet(Pane pane, Class<?> viewerClass, String styleSheetLocation) {
+		if(viewerClass == null || styleSheetLocation == null) {
+			return false;
+		}
+		URL cssURL = viewerClass.getResource(styleSheetLocation);
+		if(cssURL != null) {
+			pane.getStylesheets().add(cssURL.toExternalForm());
+			return true;
+		}
+		return false;
+	}
 }
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/.ratings b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/.ratings
new file mode 100644
index 0000000000000000000000000000000000000000..ae65b55ceb5b989a058739bfe8f94c7bf256987b
--- /dev/null
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/.ratings
@@ -0,0 +1,8 @@
+DynamicTreeContentProviderBase.java dff437afeaf7486af05460fa54eca4fa61d7eae6 GREEN
+DynamicTreeItem.java afc105cf5acf3d2506d89e0892555100c234ce5b GREEN
+DynamicTreeTableUIProviderBase.java fd9fce19a65eb1006ceacb0d869bbe90a8c578b3 GREEN
+DynamicTreeTableViewer.java e474f3a890fd6525db7de8e299d7fbe67f932a15 GREEN
+DynamicTreeUIProviderBase.java 56fe4df4577b35f1e5e6e4c4be189b706c852d52 GREEN
+DynamicTreeViewer.java d5b9f87862d9c42327c46bce02fb34d64673d413 GREEN
+DynamicTreeViewerBase.java 47124c847de322a0ae26eb7a114f85ce4bd02d7e GREEN
+IDoubleClickHandler.java 447f7769dead9a106b3ea3139ef0da51eb0b9a89 GREEN
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeContentProviderBase.java b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeContentProviderBase.java
new file mode 100644
index 0000000000000000000000000000000000000000..dff437afeaf7486af05460fa54eca4fa61d7eae6
--- /dev/null
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeContentProviderBase.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2016, 2018 fortiss GmbH. 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v2.0 which is available at
+ * http://www.eclipse.org/legal/epl-v20.html
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Florian Hoelzl (fortiss GmbH) - initial implementation
+ *     Alexander Diewald (fortiss GmbH) - backport to AF3 & Integration
+ *                                        improvements
+ *
+ *******************************************************************************/
+package org.fortiss.tooling.common.ui.javafx.control.treetableview;
+
+import static java.util.Collections.emptyList;
+import static java.util.stream.Collectors.toList;
+
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.function.Predicate;
+
+/**
+ * Base class for implementing tree content providers used in {@link DynamicTreeViewer} and
+ * {@link DynamicTreeTableViewer}.
+ */
+public abstract class DynamicTreeContentProviderBase<T> {
+	/** Returns the children of the given parent in the tree. */
+	protected abstract Collection<? extends T> getChildren(T parent);
+
+	/** Returns the filer predicate. */
+	protected Predicate<Object> getFilterPredicate() {
+		return (o) -> true;
+	}
+
+	/** Returns the sorter comparator. */
+	protected Comparator<Object> getSortingComparator() {
+		return (o1, o2) -> 0;
+	}
+
+	/** Returns the filtered children of the given element. */
+	public final Collection<? extends T> getFilteredSortedChildren(T parent) {
+		Collection<? extends T> l = getChildren(parent);
+		if(l == null) {
+			return emptyList();
+		}
+		return l.stream().filter(getFilterPredicate()).sorted(getSortingComparator())
+				.collect(toList());
+	}
+}
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeItem.java b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..afc105cf5acf3d2506d89e0892555100c234ce5b
--- /dev/null
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeItem.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2016, 2018 fortiss GmbH.
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v2.0 which is available at
+ * http://www.eclipse.org/legal/epl-v20.html
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Florian Hoelzl (fortiss GmbH) - initial implementation
+ *     Alexander Diewald (fortiss GmbH) - backport to AF3 & Integration
+ *                                        improvements
+ *
+ *******************************************************************************/
+package org.fortiss.tooling.common.ui.javafx.control.treetableview;
+
+import java.util.Collection;
+import java.util.HashMap;
+
+import javafx.scene.control.TreeItem;
+
+/**
+ * {@link TreeItem} with support for dynamic children using the {@link DynamicTreeItem#update()}
+ * method.
+ */
+public class DynamicTreeItem<T> extends TreeItem<T> {
+	/** The viewer. */
+	private DynamicTreeViewerBase<T> viewer;
+
+	/** Constructor. */
+	public DynamicTreeItem(T data, DynamicTreeViewerBase<T> viewer) {
+		super(data);
+		this.viewer = viewer;
+	}
+
+	/** Updates the children of this item from the underlying content model. */
+	public void update() {
+		// remember expanded state of children
+		HashMap<T, TreeItem<T>> expanded = new HashMap<>();
+		for(TreeItem<T> c : getChildren()) {
+			if(c.isExpanded()) {
+				expanded.put(c.getValue(), c);
+			}
+		}
+		// get list of children and create tree items
+		getChildren().clear();
+		for(T element : viewer.getContentProvider().getFilteredSortedChildren(getValue())) {
+			DynamicTreeItem<T> dti;
+			if(expanded.containsKey(element)) {
+				dti = (DynamicTreeItem<T>)expanded.get(element);
+			} else {
+				dti = new DynamicTreeItem<T>(element, viewer);
+			}
+			getChildren().add(dti);
+			dti.update();
+		}
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public boolean isLeaf() {
+		Collection<? extends Object> children = viewer.getContentProvider().getChildren(getValue());
+		return children == null || children.isEmpty();
+	}
+}
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeTableUIProviderBase.java b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeTableUIProviderBase.java
new file mode 100644
index 0000000000000000000000000000000000000000..fd9fce19a65eb1006ceacb0d869bbe90a8c578b3
--- /dev/null
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeTableUIProviderBase.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2016, 2018 fortiss GmbH.
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v2.0 which is available at
+ * http://www.eclipse.org/legal/epl-v20.html
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Florian Hoelzl (fortiss GmbH) - initial implementation
+ *
+ *******************************************************************************/
+package org.fortiss.tooling.common.ui.javafx.control.treetableview;
+
+import javafx.scene.Node;
+import javafx.scene.control.ContextMenu;
+
+/**
+ * This UI provider is responsible to return the label, the icon, and the context menu for each cell
+ * in the {@link DynamicTreeTableViewer} based on the data object and the column.
+ */
+public abstract class DynamicTreeTableUIProviderBase {
+	/**
+	 * @param element
+	 *            the element to be displayed in the current row
+	 * @param column
+	 *            the current column
+	 * @return the label to be displayed in the given column
+	 */
+	public String getLabel(Object element, int column) {
+		return "";
+	}
+
+	/**
+	 * @param element
+	 *            the element to be displayed in the current row
+	 * @param column
+	 *            the current column
+	 * @return the node to be displayed as the icon in the given column
+	 */
+	public Node getIconNode(Object element, int column) {
+		return null;
+	}
+
+	/**
+	 * @param element
+	 *            the element to be displayed in the current row
+	 * @param column
+	 *            the current column
+	 * @return the context menu in the given column
+	 */
+	public ContextMenu createContextMenu(Object element, int column) {
+		return null;
+	}
+}
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeTableViewer.java b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeTableViewer.java
new file mode 100644
index 0000000000000000000000000000000000000000..e474f3a890fd6525db7de8e299d7fbe67f932a15
--- /dev/null
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeTableViewer.java
@@ -0,0 +1,120 @@
+/*******************************************************************************
+ * Copyright (c) 2016, 2018 fortiss GmbH.
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v2.0 which is available at
+ * http://www.eclipse.org/legal/epl-v20.html
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Florian Hoelzl (fortiss GmbH) - initial implementation
+ *     Alexander Diewald (fortiss GmbH) - backport to AF3 & Integration
+ *                                        improvements
+ *
+ *******************************************************************************/
+package org.fortiss.tooling.common.ui.javafx.control.treetableview;
+
+import javafx.beans.property.ReadOnlyStringWrapper;
+import javafx.scene.Node;
+import javafx.scene.control.ContextMenu;
+import javafx.scene.control.TreeItem;
+import javafx.scene.control.TreeTableCell;
+import javafx.scene.control.TreeTableColumn;
+import javafx.scene.control.TreeTableView;
+
+/**
+ * A JavaFX {@link TreeTableView} based on an {@link DynamicTreeContentProviderBase} and
+ * {@link DynamicTreeTableUIProviderBase}. This class is intended to be used as a wrapper for
+ * {@link TreeTableView} and its rather complex expert API.
+ * <P>
+ * This class currently supports only a static tree-table layout, i.e., there is no way to alter the
+ * columns unless the developer changes the underlying {@link TreeTableView} directly. Note that if
+ * a column is removed the index provided to the label provider might not be correct anymore.
+ * <P>
+ * Furthermore, the selection model is currently fixed to be row selection.
+ */
+public final class DynamicTreeTableViewer<T> extends DynamicTreeViewerBase<T> {
+	/** The {@link TreeTableView} control to be managed. */
+	private final TreeTableView<T> view;
+	/** The UI provider of this tree-table. */
+	private final DynamicTreeTableUIProviderBase uiProvider;
+
+	/** Constructor. */
+	public DynamicTreeTableViewer(TreeTableView<T> view, T root, boolean showRoot, int revealLevel,
+			DynamicTreeContentProviderBase<T> contentProvider,
+			DynamicTreeTableUIProviderBase uiProvider) {
+		super(contentProvider);
+		this.uiProvider = uiProvider;
+		// construct view
+		this.view = view;
+		DynamicTreeItem<T> rootItem = new DynamicTreeItem<T>(root, this);
+		view.setRoot(rootItem);
+		view.setShowRoot(showRoot);
+		rootItem.update();
+		// expand to reveal (+1 if root node is not shown
+		expandItem(rootItem, showRoot ? revealLevel : revealLevel + 1);
+	}
+
+	/** Constructor. */
+	public DynamicTreeTableViewer(T root, boolean showRoot, int revealLevel,
+			DynamicTreeContentProviderBase<T> contentProvider,
+			DynamicTreeTableUIProviderBase uiProvider) {
+		this(new TreeTableView<T>(), root, showRoot, revealLevel, contentProvider, uiProvider);
+	}
+
+	/** Updates the viewer content. */
+	public void update() {
+		// wild cast works: see constructor
+		DynamicTreeItem<T> rootItem = (DynamicTreeItem<T>)view.getRoot();
+		rootItem.update();
+	}
+
+	/** Expands items up to the given level. */
+	private void expandItem(TreeItem<T> parentItem, int revealLevel) {
+		if(revealLevel <= 0) {
+			return;
+		}
+		parentItem.setExpanded(true);
+		revealLevel--;
+		for(TreeItem<T> child : parentItem.getChildren()) {
+			expandItem(child, revealLevel);
+		}
+	}
+
+	/** Adds a column to the table part of the view. */
+	public void addColumn(String headerLabel, int prefWidth) {
+		final int num = view.getColumns().size();
+		TreeTableColumn<T, String> col = new TreeTableColumn<>(headerLabel);
+		col.setPrefWidth(prefWidth);
+		col.setCellValueFactory(param -> {
+			Object data = param.getValue().getValue();
+			return new ReadOnlyStringWrapper(uiProvider.getLabel(data, num));
+		});
+		col.setCellFactory(param -> {
+			TreeTableCell<T, String> cell = new TreeTableCell<T, String>() {
+				@Override
+				protected void updateItem(String item, boolean empty) {
+					super.updateItem(item, empty);
+					ContextMenu menu = null;
+					Node icon = null;
+					if(!empty && item != null) {
+						T data = this.getTreeTableRow().getItem();
+						menu = uiProvider.createContextMenu(data, num);
+						icon = uiProvider.getIconNode(data, num);
+					}
+					this.setContextMenu(menu);
+					this.setGraphic(icon);
+				}
+			};
+			cell.textProperty().bind(cell.itemProperty());
+			return cell;
+		});
+		view.getColumns().add(col);
+	}
+
+	/** Returns the underlying {@link TreeTableView}. */
+	public TreeTableView<T> getControl() {
+		return view;
+	}
+}
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeUIProviderBase.java b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeUIProviderBase.java
new file mode 100644
index 0000000000000000000000000000000000000000..56fe4df4577b35f1e5e6e4c4be189b706c852d52
--- /dev/null
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeUIProviderBase.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2016, 2018 fortiss GmbH. 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v2.0 which is available at
+ * http://www.eclipse.org/legal/epl-v20.html
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Florian Hoelzl (fortiss GmbH) - initial implementation
+ *
+ *******************************************************************************/
+package org.fortiss.tooling.common.ui.javafx.control.treetableview;
+
+import javafx.scene.Node;
+import javafx.scene.control.ContextMenu;
+
+/**
+ * This UI provider is responsible to return the label, the icon, and the context menu for each cell
+ * in the {@link DynamicTreeViewer} based on the data object.
+ */
+public abstract class DynamicTreeUIProviderBase<T> {
+	/**
+	 * @param element
+	 *            the displayed element
+	 * @return the label to be displayed
+	 */
+	public String getLabel(T element) {
+		return "";
+	}
+
+	/**
+	 * @param element
+	 *            the displayed element
+	 * @return the node to be displayed as the icon
+	 */
+	public Node getIconNode(T element) {
+		return null;
+	}
+
+	/**
+	 * @param element
+	 *            the displayed element
+	 * @return the context menu
+	 */
+	public ContextMenu createContextMenu(T element) {
+		return null;
+	}
+}
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeViewer.java b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeViewer.java
new file mode 100644
index 0000000000000000000000000000000000000000..d5b9f87862d9c42327c46bce02fb34d64673d413
--- /dev/null
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeViewer.java
@@ -0,0 +1,200 @@
+/*******************************************************************************
+ * Copyright (c) 2016, 2018 fortiss GmbH.
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v2.0 which is available at
+ * http://www.eclipse.org/legal/epl-v20.html
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Florian Hoelzl (fortiss GmbH) - initial implementation
+ *     Alexander Diewald (fortiss GmbH) - backport to AF3 & Integration
+ *                                        improvements
+ *
+ *******************************************************************************/
+package org.fortiss.tooling.common.ui.javafx.control.treetableview;
+
+import javafx.beans.value.ChangeListener;
+import javafx.event.Event;
+import javafx.event.EventDispatchChain;
+import javafx.event.EventDispatcher;
+import javafx.scene.control.ContextMenu;
+import javafx.scene.control.TreeCell;
+import javafx.scene.control.TreeItem;
+import javafx.scene.control.TreeView;
+import javafx.scene.input.MouseButton;
+import javafx.scene.input.MouseEvent;
+
+/**
+ * A JavaFX {@link TreeView} based on a {@link DynamicTreeContentProviderBase} and a
+ * {@link DynamicTreeUIProviderBase}. This class is intended to be used as a wrapper for
+ * {@link TreeView} and its rather complex expert API.
+ */
+public final class DynamicTreeViewer<T> extends DynamicTreeViewerBase<T> {
+	/** The {@link TreeView} control to be managed. */
+	private final TreeView<T> view;
+	/** The UI provider implementation. */
+	private final DynamicTreeUIProviderBase<T> uiProvider;
+	/** The selection change listener. */
+	private ChangeListener<Object> selectionChangeListener = null;
+	/** The double click handler. */
+	private IDoubleClickHandler doubleClickHandler;
+
+	/** Constructor. */
+	public DynamicTreeViewer(TreeView<T> view, T root, boolean showRoot, int revealLevel,
+			DynamicTreeContentProviderBase<T> contentProvider,
+			DynamicTreeUIProviderBase<T> uiProvider) {
+		super(contentProvider);
+		this.uiProvider = uiProvider;
+		// construct view
+		this.view = view;
+		DynamicTreeItem<T> rootItem = new DynamicTreeItem<T>(root, this);
+		view.setRoot(rootItem);
+		view.setShowRoot(showRoot);
+		configureCellFactory();
+		view.getSelectionModel().selectedItemProperty().addListener((obs, oldVal, newVal) -> {
+			if(selectionChangeListener != null) {
+				Object oVal = oldVal != null ? oldVal.getValue() : null;
+				Object nVal = newVal != null ? newVal.getValue() : null;
+				selectionChangeListener.changed(obs, oVal, nVal);
+			}
+		});
+		rootItem.update();
+		// expand to reveal (+1 if root node is not shown)
+		expandItem(rootItem, showRoot ? revealLevel : revealLevel + 1);
+	}
+
+	/** Constructor. */
+	public DynamicTreeViewer(T root, boolean showRoot, int revealLevel,
+			DynamicTreeContentProviderBase<T> contentProvider,
+			DynamicTreeUIProviderBase<T> uiProvider) {
+		this(new TreeView<T>(), root, showRoot, revealLevel, contentProvider, uiProvider);
+	}
+
+	/** Updates the tree view. */
+	public void update() {
+		// wild cast works: see constructor
+		DynamicTreeItem<T> rootItem = (DynamicTreeItem<T>)view.getRoot();
+		rootItem.update();
+	}
+
+	/** Sets the selection of this tree view. */
+	public void setSelection(Object value) {
+		// wild cast works: see constructor
+		DynamicTreeItem<T> rootItem = (DynamicTreeItem<T>)view.getRoot();
+		DynamicTreeItem<T> item = findItem(rootItem, value);
+		int row = view.getRow(item);
+		view.getSelectionModel().select(row);
+	}
+
+	/** Searches the {@link DynamicTreeItem} for the given value. */
+	public DynamicTreeItem<T> findItem(DynamicTreeItem<T> item, Object value) {
+		if(item == null || value == null) {
+			return null;
+		}
+		if(item.getValue().equals(value)) {
+			return item;
+		}
+		for(TreeItem<T> subItem : item.getChildren()) {
+			if(subItem instanceof DynamicTreeItem) {
+				DynamicTreeItem<T> i = findItem((DynamicTreeItem<T>)subItem, value);
+				if(i != null) {
+					return i;
+				}
+			}
+		}
+		return null;
+	}
+
+	/** Sets the selection change listener. */
+	public void setSelectionListener(ChangeListener<Object> listener) {
+		this.selectionChangeListener = listener;
+	}
+
+	/** Sets the double click handler. */
+	public void setDoubleClickHandler(IDoubleClickHandler handler) {
+		this.doubleClickHandler = handler;
+	}
+
+	/** Configures the cell factory for the viewer. */
+	private void configureCellFactory() {
+		view.setCellFactory(param -> {
+			TreeCell<T> cell = new TreeCell<T>() {
+				@Override
+				public void updateItem(T item, boolean empty) {
+					super.updateItem(item, empty);
+					ContextMenu menu = null;
+					if(!empty && item != null) {
+						menu = uiProvider.createContextMenu(item);
+						EventDispatcher original = this.getEventDispatcher();
+						this.setEventDispatcher(new DoubleClickEventDispatcher(original));
+						this.setText(uiProvider.getLabel(item));
+						this.setGraphic(uiProvider.getIconNode(item));
+					} else {
+						this.setText(null);
+						this.setGraphic(null);
+					}
+					this.setContextMenu(menu);
+				}
+			};
+			return cell;
+		});
+	}
+
+	/** Expands items up to the given level. */
+	private void expandItem(TreeItem<T> parentItem, int revealLevel) {
+		if(revealLevel <= 0) {
+			return;
+		}
+		parentItem.setExpanded(true);
+		revealLevel--;
+		for(TreeItem<T> child : parentItem.getChildren()) {
+			expandItem(child, revealLevel);
+		}
+	}
+
+	/** Returns the underlying {@link TreeView}. */
+	public TreeView<T> getControl() {
+		return view;
+	}
+
+	/** Returns the UI provider. */
+	public DynamicTreeUIProviderBase<T> getUIProvider() {
+		return uiProvider;
+	}
+
+	/**
+	 * Customized event dispatcher to fix double-click behavior. Thiss prevents opening/closing of
+	 * tree items with double click listeners assigned.
+	 */
+	private class DoubleClickEventDispatcher implements EventDispatcher {
+		/** The original event dispatcher. */
+		private final EventDispatcher original;
+
+		/** Constructor. */
+		public DoubleClickEventDispatcher(EventDispatcher original) {
+			this.original = original;
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public Event dispatchEvent(Event event, EventDispatchChain tail) {
+			if(event instanceof MouseEvent) {
+				MouseEvent mevt = (MouseEvent)event;
+				if(mevt.getButton() == MouseButton.PRIMARY && mevt.getClickCount() >= 2) {
+					if(mevt.getEventType().equals(MouseEvent.MOUSE_CLICKED) &&
+							doubleClickHandler != null) {
+						DynamicTreeItem<T> item =
+								(DynamicTreeItem<T>)view.getSelectionModel().getSelectedItem();
+						if(item != null) {
+							doubleClickHandler.doubleClicked(item.getValue());
+						}
+					}
+					event.consume();
+				}
+			}
+			return original.dispatchEvent(event, tail);
+		}
+	}
+}
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeViewerBase.java b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeViewerBase.java
new file mode 100644
index 0000000000000000000000000000000000000000..47124c847de322a0ae26eb7a114f85ce4bd02d7e
--- /dev/null
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeViewerBase.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2016, 2018 fortiss GmbH. 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v2.0 which is available at
+ * http://www.eclipse.org/legal/epl-v20.html
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Florian Hoelzl (fortiss GmbH) - initial implementation
+ *     Alexander Diewald (fortiss GmbH) - backport to AF3 & Integration
+ *                                        improvements
+ *
+ *******************************************************************************/
+package org.fortiss.tooling.common.ui.javafx.control.treetableview;
+
+/**
+ * Base class for {@link DynamicTreeViewer} and {@link DynamicTreeTableViewer}.
+ */
+abstract class DynamicTreeViewerBase<T> {
+	/** The content provider implementation. */
+	private final DynamicTreeContentProviderBase<T> contentProvider;
+
+	/** Constructor. */
+	public DynamicTreeViewerBase(DynamicTreeContentProviderBase<T> contentProvider) {
+		this.contentProvider = contentProvider;
+	}
+
+	/** Returns the content provider. */
+	public final DynamicTreeContentProviderBase<T> getContentProvider() {
+		return contentProvider;
+	}
+}
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/IDoubleClickHandler.java b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/IDoubleClickHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..447f7769dead9a106b3ea3139ef0da51eb0b9a89
--- /dev/null
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/IDoubleClickHandler.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2017, 2018 fortiss GmbH. 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v2.0 which is available at
+ * http://www.eclipse.org/legal/epl-v20.html
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Florian Hoelzl (fortiss GmbH) - initial implementation
+ *     Alexander Diewald (fortiss GmbH) - backport to AF3 & Integration
+ *                                        improvements
+ *
+ *******************************************************************************/
+package org.fortiss.tooling.common.ui.javafx.control.treetableview;
+
+/**
+ * Functional interface for handlers interested in double-clicks on tree and tree-table items.
+ */
+@FunctionalInterface
+public interface IDoubleClickHandler {
+	/** A double-click event occured on the given value object. */
+	void doubleClicked(Object value);
+}
diff --git a/org.fortiss.tooling.common/.classpath b/org.fortiss.tooling.common/.classpath
index a85e8cb8e47f0e039ed1ed47b72b4dc73134065c..d3222840cdcada3aafe722665b5a062d495fd112 100644
--- a/org.fortiss.tooling.common/.classpath
+++ b/org.fortiss.tooling.common/.classpath
@@ -4,8 +4,13 @@
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry exported="true" kind="lib" path="lib/org.conqat.ide.commons.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/commons-lang-2.6.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/commons-io-2.4.jar" sourcepath="lib/commons-io-2.4-sources.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/opencsv-2.3.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/apache-commons/commons-lang3-3.7.jar" sourcepath="lib/apache-commons/commons-lang3-3.7-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:platform:/resource/org.fortiss.tooling.common/lib/apache-commons/commons-lang3-3.7-javadoc.jar!/"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry exported="true" kind="lib" path="lib/apache-commons/commons-lang-2.6.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/apache-commons/commons-io-2.4.jar" sourcepath="lib/apache-commons/commons-io-2.4-sources.jar"/>
 	<classpathentry kind="output" path="build"/>
 </classpath>
diff --git a/org.fortiss.tooling.common/META-INF/MANIFEST.MF b/org.fortiss.tooling.common/META-INF/MANIFEST.MF
index aabef266017ce10a8b7e6c39a12594c0396248c8..e970af7485e04193f1aa474726f467ad6368b414 100644
--- a/org.fortiss.tooling.common/META-INF/MANIFEST.MF
+++ b/org.fortiss.tooling.common/META-INF/MANIFEST.MF
@@ -9,9 +9,10 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="3.7.0";visibility:=reex
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ClassPath: .,
+ lib/apache-commons/commons-lang-2.6.jar,
+ lib/apache-commons/commons-lang3-3.7.jar,
+ lib/apache-commons/commons-io-2.4.jar,
  lib/org.conqat.ide.commons.jar,
- lib/commons-lang-2.6.jar,
- lib/commons-io-2.4.jar,
  lib/opencsv-2.3.jar
 Export-Package: au.com.bytecode.opencsv,
  au.com.bytecode.opencsv.bean,
@@ -23,6 +24,7 @@ Export-Package: au.com.bytecode.opencsv,
  org.apache.commons.io.output,
  org.apache.commons.lang,
  org.apache.commons.lang.builder,
+ org.apache.commons.lang.enum,
  org.apache.commons.lang.enums,
  org.apache.commons.lang.exception,
  org.apache.commons.lang.math,
@@ -30,6 +32,19 @@ Export-Package: au.com.bytecode.opencsv,
  org.apache.commons.lang.reflect,
  org.apache.commons.lang.text,
  org.apache.commons.lang.time,
+ org.apache.commons.lang3,
+ org.apache.commons.lang3.arch,
+ org.apache.commons.lang3.builder,
+ org.apache.commons.lang3.concurrent,
+ org.apache.commons.lang3.event,
+ org.apache.commons.lang3.exception,
+ org.apache.commons.lang3.math,
+ org.apache.commons.lang3.mutable,
+ org.apache.commons.lang3.reflect,
+ org.apache.commons.lang3.text,
+ org.apache.commons.lang3.text.translate,
+ org.apache.commons.lang3.time,
+ org.apache.commons.lang3.tuple,
  org.conqat.lib.commons.algo,
  org.conqat.lib.commons.assertion,
  org.conqat.lib.commons.assessment,
diff --git a/org.fortiss.tooling.common/build.properties b/org.fortiss.tooling.common/build.properties
index 55d01c755f97c34c725a399eb38683860e4e625b..cff8dcb95edca35c858c420caaba57e2e483b980 100644
--- a/org.fortiss.tooling.common/build.properties
+++ b/org.fortiss.tooling.common/build.properties
@@ -5,7 +5,9 @@ output.. = build/
 bin.includes = .,\
                META-INF/,\
                lib/org.conqat.ide.commons.jar,\
-               lib/commons-lang-2.6.jar,\
-               lib/commons-io-2.4.jar,\
-               lib/opencsv-2.3.jar
+               lib/apache-commons/commons-lang-2.6.jar,\
+               lib/apache-commons/commons-io-2.4.jar,\
+               lib/opencsv-2.3.jar,\
+               lib/apache-commons/commons-lang3-3.7.jar,\
+               lib/apache-commons/LICENSE.txt
 src.includes = lib/
diff --git a/org.fortiss.tooling.common/lib/apache-commons/LICENSE.txt b/org.fortiss.tooling.common/lib/apache-commons/LICENSE.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d645695673349e3947e8e5ae42332d0ac3164cd7
--- /dev/null
+++ b/org.fortiss.tooling.common/lib/apache-commons/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/org.fortiss.tooling.common/lib/commons-io-2.4-sources.jar b/org.fortiss.tooling.common/lib/apache-commons/commons-io-2.4-sources.jar
similarity index 100%
rename from org.fortiss.tooling.common/lib/commons-io-2.4-sources.jar
rename to org.fortiss.tooling.common/lib/apache-commons/commons-io-2.4-sources.jar
diff --git a/org.fortiss.tooling.common/lib/commons-io-2.4.jar b/org.fortiss.tooling.common/lib/apache-commons/commons-io-2.4.jar
similarity index 100%
rename from org.fortiss.tooling.common/lib/commons-io-2.4.jar
rename to org.fortiss.tooling.common/lib/apache-commons/commons-io-2.4.jar
diff --git a/org.fortiss.tooling.common/lib/commons-lang-2.6.jar b/org.fortiss.tooling.common/lib/apache-commons/commons-lang-2.6.jar
similarity index 100%
rename from org.fortiss.tooling.common/lib/commons-lang-2.6.jar
rename to org.fortiss.tooling.common/lib/apache-commons/commons-lang-2.6.jar
diff --git a/org.fortiss.tooling.common/lib/apache-commons/commons-lang3-3.7-javadoc.jar b/org.fortiss.tooling.common/lib/apache-commons/commons-lang3-3.7-javadoc.jar
new file mode 100644
index 0000000000000000000000000000000000000000..f16817a442855cbd44bbc3eb0392a0e61d288dea
Binary files /dev/null and b/org.fortiss.tooling.common/lib/apache-commons/commons-lang3-3.7-javadoc.jar differ
diff --git a/org.fortiss.tooling.common/lib/apache-commons/commons-lang3-3.7-sources.jar b/org.fortiss.tooling.common/lib/apache-commons/commons-lang3-3.7-sources.jar
new file mode 100644
index 0000000000000000000000000000000000000000..a83c661a87db03d3f24bd440fde6d7fa6211e6fb
Binary files /dev/null and b/org.fortiss.tooling.common/lib/apache-commons/commons-lang3-3.7-sources.jar differ
diff --git a/org.fortiss.tooling.common/lib/apache-commons/commons-lang3-3.7.jar b/org.fortiss.tooling.common/lib/apache-commons/commons-lang3-3.7.jar
new file mode 100644
index 0000000000000000000000000000000000000000..f37ded60fe6d78afa7758866c089b6296503868f
Binary files /dev/null and b/org.fortiss.tooling.common/lib/apache-commons/commons-lang3-3.7.jar differ