parallel ip - initial checkin

Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/.project b/.project
new file mode 100644
index 0000000..fb7f963
--- /dev/null
+++ b/.project
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.vaadin.addons.aggregator</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,161 @@
+Eclipse Public License -v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION
+OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.
+A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate
+modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of
+its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute
+and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code
+form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the
+combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not
+apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no
+assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity
+based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property
+rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the
+Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to
+grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including
+warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any
+other party; and
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it
+in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and
+the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes
+the Program in a commercial product offering should do so in a manner which does not create potential liability for
+other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions
+brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual
+property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the
+Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may
+ participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is
+then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone.
+Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to
+those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result,
+the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED 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. Each Recipient is solely responsible for
+determining the appropriateness of using and distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance
+with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
+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 OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such
+Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such
+noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution
+of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses
+ granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement
+is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish
+new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the
+right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including Contributions) may always be
+distributed subject to the version of the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the
+new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States
+of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause
+of action arose. Each party waives its rights to a jury trial in any resulting litigation.
\ No newline at end of file
diff --git a/about.html b/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/epl-v10.html b/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/epl-v10.html
@@ -0,0 +1,259 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Public License - Version 1.0</title>
+<style type="text/css">
+  body {
+    size: 8.5in 11.0in;
+    margin: 0.25in 0.5in 0.25in 0.5in;
+    tab-interval: 0.5in;
+    }
+  p {  	
+    margin-left: auto;
+    margin-top:  0.5em;
+    margin-bottom: 0.5em;
+    }
+  p.list {
+  	margin-left: 0.5in;
+    margin-top:  0.05em;
+    margin-bottom: 0.05em;
+    }
+  </style>
+
+</head>
+
+<body lang="EN-US">
+
+<h2>Eclipse Public License - v 1.0</h2>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED 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. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), 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 OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+
+
+</body></html>
\ No newline at end of file
diff --git a/jenkins.build.config.xml b/jenkins.build.config.xml
new file mode 100644
index 0000000..466c9ba
--- /dev/null
+++ b/jenkins.build.config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+-->
+<!--#======================================================================= -->
+<!--# Module specific parameters for the Jenkins Job 						 -->
+<!--#======================================================================= -->
+
+<jenkins>
+	<jenkins.build.technologystack />
+	<settings>${user.home}/.m2/settingsMirrors.xml</settings>
+	<!-- DO NOT EDIT BELOW THIS LINE -->
+        <jenkins.build.dependencies>
+                <jenkins.build.dependency>org.eclipse.osbp.releng.maven</jenkins.build.dependency>
+        </jenkins.build.dependencies>
+</jenkins>
diff --git a/license.html b/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/license.html
@@ -0,0 +1,164 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>February 1, 2011</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY "CONTENT").  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse
+ Foundation is provided to you under the terms and conditions of the 
+Eclipse Public License Version 1.0
+   ("EPL").  A copy of the EPL is provided with this Content and is also
+ available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, 
+documentation and other files maintained in the Eclipse Foundation 
+source code
+   repository ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to 
+facilitate delivering, extending, and upgrading the Content.  Typical 
+modules may include plug-ins ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or 
+Fragments and associated material.  Each Feature may be packaged as a 
+sub-directory in a directory named "features".  Within a Feature, files 
+named "feature.xml" may contain a list of the names and version numbers 
+of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features ("Included 
+Features"). Within a Feature, files named "feature.xml" may contain a 
+list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be 
+contained in files named "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  Abouts and Feature Licenses may be located in any
+ directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named "src" of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is 
+installed using the Provisioning Technology (as defined below), you must
+ agree to a license ("Feature Update License") during the
+installation process.  If the Feature contains Included Features, the 
+Feature Update License should either provide you with the terms and 
+conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be 
+found in the "license" property of files named "feature.properties" 
+found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the 
+terms and conditions (or references to such terms and conditions) that 
+govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER 
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.
+  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND 
+CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, 
+or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions 
+govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, 
+examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). This 
+capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about 
+packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   ("Specification").</p>
+
+<p>You may use Provisioning Technology to allow other parties to install
+ Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to
+ be presented to, and accepted by, the users of the Provisioning 
+Technology
+   in accordance with the Specification. By using Provisioning 
+Technology in such a manner and making it available in accordance with 
+the
+   Specification, you further acknowledge your agreement to, and the 
+acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") with the intent of installing, 
+extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology 
+may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user 
+the terms and conditions that govern the use of the Installable
+       Software ("Installable Software Agreement") and such Installable 
+Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable 
+Software Agreement must inform the user of the terms and conditions that
+ govern
+       the Installable Software and must solicit acceptance by the end 
+user in the manner prescribed in such Installable Software Agreement. 
+Upon such
+       indication of agreement by the user, the provisioning Technology 
+will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are
+ currently may have restrictions on the import, possession, and use, 
+and/or re-export to
+   another country, of encryption software. BEFORE using any encryption 
+software, please check the country's laws, regulations and policies 
+concerning the import,
+   possession, or use, and re-export of encryption software, to see if 
+this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/.project b/org.eclipse.osbp.vaadin.addons.absolutelayout/.project
new file mode 100644
index 0000000..f33826b
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/.project
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.vaadin.addons.absolutelayout</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.vaadin.integration.eclipse.widgetsetBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.vaadin.integration.eclipse.addonStylesBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>com.vaadin.integration.eclipse.widgetsetNature</nature>
+		<nature>org.apache.ivyde.eclipse.ivynature</nature>
+		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/LICENSE.txt b/org.eclipse.osbp.vaadin.addons.absolutelayout/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/LICENSE.txt
@@ -0,0 +1,161 @@
+Eclipse Public License -v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION
+OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.
+A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate
+modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of
+its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute
+and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code
+form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the
+combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not
+apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no
+assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity
+based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property
+rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the
+Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to
+grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including
+warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any
+other party; and
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it
+in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and
+the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes
+the Program in a commercial product offering should do so in a manner which does not create potential liability for
+other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions
+brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual
+property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the
+Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may
+ participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is
+then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone.
+Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to
+those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result,
+the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED 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. Each Recipient is solely responsible for
+determining the appropriateness of using and distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance
+with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
+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 OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such
+Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such
+noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution
+of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses
+ granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement
+is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish
+new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the
+right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including Contributions) may always be
+distributed subject to the version of the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the
+new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States
+of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause
+of action arose. Each party waives its rights to a jury trial in any resulting litigation.
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/META-INF/MANIFEST.MF b/org.eclipse.osbp.vaadin.addons.absolutelayout/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..c01b4d9
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/META-INF/MANIFEST.MF
@@ -0,0 +1,31 @@
+Manifest-Version: 1.0
+Bnd-LastModified: 1491902092179
+Build-Jdk: 1.8.0_91
+Built-By: mollik
+Bundle-ActivationPolicy: lazy
+Bundle-Description: A parent POM aimed to set up the build of general Ma
+ ven based projects.
+Bundle-DocURL: http://www.eclipse.org/osbp
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.vaadin.addons.absolutelayout
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-SymbolicName: org.eclipse.osbp.vaadin.addons.absolutelayout
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Created-By: Apache Maven Bundle Plugin
+Export-Package: org.eclipse.osbp.vaadin.addons.absolutelayout;version="0
+ .9.0",org.eclipse.osbp.vaadin.addons.absolutelayout.client;version="0.9
+ .0",org.eclipse.osbp.vaadin.addons.absolutelayout.public.oabsolutelayou
+ t;version="0.9.0"
+Import-Package: com.vaadin.annotations;version="[7.5.7,7.7.0)",com.vaadi
+ n.client.communication;version="[7.5.7,7.7.0)",com.vaadin.client.ui.dd;
+ version="[7.5.7,7.7.0)",com.vaadin.server;version="[7.5.7,7.7.0)",com.v
+ aadin.ui;version="[7.5.7,7.7.0)",javax.servlet.annotation;resolution:=o
+ ptional;version="[3.0,4)",org.eclipse.osbp.vaadin.addons.absolutelayout
+ .client;version="[0.9,1)",org.junit
+Require-Bundle: com.vaadin.server;bundle-version="[7.5.7,7.7.0)",com.vaa
+ din.client;bundle-version="[7.5.7,7.7.0)",com.vaadin.shared;bundle-vers
+ ion="[7.5.7,7.7.0)",org.jsoup;bundle-version="[1.8.3,1.8.4)",dragdropla
+ youts.osgi;bundle-version="[1.1.3,1.1.4)"
+Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"
+Tool: Bnd-3.2.0.201605172007
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/META-INF/git.properties b/org.eclipse.osbp.vaadin.addons.absolutelayout/META-INF/git.properties
new file mode 100644
index 0000000..5eccd6e
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/META-INF/git.properties
@@ -0,0 +1,14 @@
+#Generated by Git-Commit-Id-Plugin
+#Tue Apr 11 11:17:32 CEST 2017
+git.remote.origin.url=ssh\://compex@10.1.13.14/osbpgit/org.eclipse.osbp.vaadin.addons.git
+git.closest.tag.name=OSBP-initial-commit-2-Eclipse-4-luna-2017-03-31-17-10-39
+git.commit.id.describe-short=OSBP-initial-commit-2-Eclipse-4-luna-2017-03-31-17-10-39-dirty
+git.commit.time=02.02.2017 @ 18\:04\:55 MEZ
+git.commit.message.full=remove the feature from build
+git.commit.message.short=remove the feature from build
+git.commit.id.abbrev=90dd482
+git.branch=OSBP-initial-commit-2-Eclipse-4-luna
+git.closest.tag.commit.count=0
+git.commit.id.describe=OSBP-initial-commit-2-Eclipse-4-luna-2017-03-31-17-10-39-dirty
+git.commit.id=90dd482e5bc78cd1a404d12445cebc868ee417b0
+git.tags=OSBP-initial-commit-2-Eclipse-4-luna-2017-03-31-17-10-39
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/SuperDevMode code server for org.eclipse.osbp.vaadin.addons.absolutelayout.launch b/org.eclipse.osbp.vaadin.addons.absolutelayout/SuperDevMode code server for org.eclipse.osbp.vaadin.addons.absolutelayout.launch
new file mode 100644
index 0000000..040f8f6
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/SuperDevMode code server for org.eclipse.osbp.vaadin.addons.absolutelayout.launch
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.osbp.vaadin.addons.absolutelayout"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
+<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#10;&lt;memento exportedEntriesOnly=&quot;false&quot; project=&quot;org.eclipse.osbp.vaadin.addons.absolutelayout&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.eclipse.osbp.vaadin.addons.absolutelayout/src&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.eclipse.osbp.vaadin.addons.absolutelayout/sample&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.eclipse.osbp.vaadin.addons.absolutelayout/test&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
+<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.codeserver.CodeServer"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="org.eclipse.osbp.vaadin.addons.absolutelayout.AbsoluteLayoutWidgetset"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.osbp.vaadin.addons.absolutelayout"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xss8M -Xmx512M -XX:MaxPermSize=512M"/>
+<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="/Users/florianpirchner/Work/dev/osbp_client/git/org.eclipse.osbp.vaadin.addons/org.eclipse.osbp.vaadin.addons.absolutelayout"/>
+</launchConfiguration>
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/epl-v10.html b/org.eclipse.osbp.vaadin.addons.absolutelayout/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/epl-v10.html
@@ -0,0 +1,259 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Public License - Version 1.0</title>
+<style type="text/css">
+  body {
+    size: 8.5in 11.0in;
+    margin: 0.25in 0.5in 0.25in 0.5in;
+    tab-interval: 0.5in;
+    }
+  p {  	
+    margin-left: auto;
+    margin-top:  0.5em;
+    margin-bottom: 0.5em;
+    }
+  p.list {
+  	margin-left: 0.5in;
+    margin-top:  0.05em;
+    margin-bottom: 0.05em;
+    }
+  </style>
+
+</head>
+
+<body lang="EN-US">
+
+<h2>Eclipse Public License - v 1.0</h2>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED 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. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), 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 OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/ivy.xml b/org.eclipse.osbp.vaadin.addons.absolutelayout/ivy.xml
new file mode 100644
index 0000000..b9bf25a
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/ivy.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<!DOCTYPE ivy-module [
+	<!ENTITY vaadin.version "7.5.7">
+]> 
+<ivy-module version="2.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
+	<info organisation="com.example" module="v7proj" />
+	<configurations>
+		<!-- The default configuration, which should be deployed to the server -->
+		<conf name="default" />
+		<!-- A configuration only needed when compiling the widget set. Should 
+			not be deployed to the server -->
+		<conf name="widgetset-compile" />
+		<!-- A configuration used in compilation of server side classes only.
+			Should be deployed to the server -->
+		<conf name="nodeploy" />
+	</configurations>
+	<dependencies defaultconf="default" defaultconfmapping="default->default">
+		<!-- The core server part of Vaadin -->
+		<dependency org="com.vaadin" name="vaadin-server" rev="&vaadin.version;" />
+ 
+		<!-- Vaadin themes -->
+		<dependency org="com.vaadin" name="vaadin-themes" rev="&vaadin.version;" />
+
+		<!-- Push support -->
+		<dependency org="com.vaadin" name="vaadin-push" rev="&vaadin.version;" />
+
+		<!-- Servlet 3.0 API -->
+		<dependency org="javax.servlet" name="javax.servlet-api" rev="3.0.1" conf="nodeploy->default" />
+
+		<!-- TestBench 4 -->
+		<dependency org="com.vaadin" name="vaadin-testbench-api" rev="latest.release" conf="nodeploy -> default" />
+
+		<!-- Precompiled DefaultWidgetSet -->
+		<dependency org="com.vaadin" name="vaadin-client-compiled"
+			rev="&vaadin.version;" />
+
+		<!-- Vaadin client side, needed for widget set compilation -->
+		<dependency org="com.vaadin" name="vaadin-client" rev="&vaadin.version;"
+			 conf="widgetset-compile->default" />
+
+		<!-- Compiler for custom widget sets. Should not be deployed -->
+		<dependency org="com.vaadin" name="vaadin-client-compiler"
+			rev="&vaadin.version;" conf="widgetset-compile->default" />
+
+		<dependency org="org.vaadin.addons" name="dragdroplayouts" rev="1.2.2" />
+		
+	</dependencies>
+</ivy-module>
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/ivysettings.xml b/org.eclipse.osbp.vaadin.addons.absolutelayout/ivysettings.xml
new file mode 100644
index 0000000..9c0f653
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/ivysettings.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ivysettings>
+	<settings defaultResolver="default" />
+	<resolvers>
+		<chain name="default">
+			<!-- Public Maven repository -->
+			<ibiblio name="public" m2compatible="true" />
+
+			<!-- Vaadin Add-on repository -->
+			<ibiblio name="vaadin-addons" usepoms="true" m2compatible="true"
+				root="http://maven.vaadin.com/vaadin-addons" />
+
+			<!-- Vaadin snapshots repository -->
+			<ibiblio name="vaadin-snapshots" usepoms="true" m2compatible="true"
+				root="https://oss.sonatype.org/content/repositories/vaadin-snapshots" />
+			<!-- Repository used for Vaadin modified smartsprites library -->
+			<dual name="custom-smartsprites">
+				<filesystem name="smartsprites-ivy">
+					<ivy pattern="${basedir}/ivymodule/[module]-ivy-[revision].xml" />
+				</filesystem>
+				<url name="smartsprites-artifact">
+					<artifact
+						pattern="http://dev.vaadin.com/svn/versions/6.8/build/smartsprites/lib/[artifact](-[revision]).[ext]" />
+				</url>
+			</dual>
+		</chain>
+	</resolvers>
+	<modules>
+		<!-- Vaadin patched SmartSprites -->
+		<module organisation="com.carrotsearch" name="smartsprites"
+			revision="0.2.3-itmill" resolver="custom-smartsprites" />
+	</modules>
+
+
+</ivysettings>
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/license.html b/org.eclipse.osbp.vaadin.addons.absolutelayout/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/license.html
@@ -0,0 +1,164 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>February 1, 2011</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY "CONTENT").  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse
+ Foundation is provided to you under the terms and conditions of the 
+Eclipse Public License Version 1.0
+   ("EPL").  A copy of the EPL is provided with this Content and is also
+ available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, 
+documentation and other files maintained in the Eclipse Foundation 
+source code
+   repository ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to 
+facilitate delivering, extending, and upgrading the Content.  Typical 
+modules may include plug-ins ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or 
+Fragments and associated material.  Each Feature may be packaged as a 
+sub-directory in a directory named "features".  Within a Feature, files 
+named "feature.xml" may contain a list of the names and version numbers 
+of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features ("Included 
+Features"). Within a Feature, files named "feature.xml" may contain a 
+list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be 
+contained in files named "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  Abouts and Feature Licenses may be located in any
+ directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named "src" of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is 
+installed using the Provisioning Technology (as defined below), you must
+ agree to a license ("Feature Update License") during the
+installation process.  If the Feature contains Included Features, the 
+Feature Update License should either provide you with the terms and 
+conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be 
+found in the "license" property of files named "feature.properties" 
+found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the 
+terms and conditions (or references to such terms and conditions) that 
+govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER 
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.
+  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND 
+CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, 
+or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions 
+govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, 
+examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). This 
+capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about 
+packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   ("Specification").</p>
+
+<p>You may use Provisioning Technology to allow other parties to install
+ Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to
+ be presented to, and accepted by, the users of the Provisioning 
+Technology
+   in accordance with the Specification. By using Provisioning 
+Technology in such a manner and making it available in accordance with 
+the
+   Specification, you further acknowledge your agreement to, and the 
+acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") with the intent of installing, 
+extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology 
+may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user 
+the terms and conditions that govern the use of the Installable
+       Software ("Installable Software Agreement") and such Installable 
+Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable 
+Software Agreement must inform the user of the terms and conditions that
+ govern
+       the Installable Software and must solicit acceptance by the end 
+user in the manner prescribed in such Installable Software Agreement. 
+Upon such
+       indication of agreement by the user, the provisioning Technology 
+will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are
+ currently may have restrictions on the import, possession, and use, 
+and/or re-export to
+   another country, of encryption software. BEFORE using any encryption 
+software, please check the country's laws, regulations and policies 
+concerning the import,
+   possession, or use, and re-export of encryption software, to see if 
+this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/pom.xml b/org.eclipse.osbp.vaadin.addons.absolutelayout/pom.xml
new file mode 100644
index 0000000..24eaf9f
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/pom.xml
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.eclipse.osbp.releng.maven</groupId>
+		<artifactId>org.eclipse.osbp.releng.maven.parent.mbp</artifactId>
+		<version>0.9.0-SNAPSHOT</version>
+		<relativePath />
+	</parent>
+
+	<groupId>org.eclipse.osbp.vaadin.addons</groupId>
+	<artifactId>org.eclipse.osbp.vaadin.addons.absolutelayout</artifactId>
+	<packaging>bundle</packaging>
+
+	<dependencies>
+		<dependency>
+			<groupId>com.vaadin</groupId>
+			<artifactId>vaadin-server</artifactId>
+			<version>${vaadin.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>com.vaadin</groupId>
+			<artifactId>vaadin-client</artifactId>
+			<version>${vaadin.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>javax.servlet-api</artifactId>
+			<version>3.0.1</version>
+		</dependency>
+		<dependency>
+			<groupId>org.eclipse.osbp.dependencies</groupId>
+			<artifactId>org.eclipse.osbp.dependencies.bundle.vaadin.addon.dragdroplayouts</artifactId>
+			<version>1.1.3-SNAPSHOT</version>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<sourceDirectory>${basedir}/src</sourceDirectory>
+
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-resources-plugin</artifactId>
+				<configuration>
+					<encoding>UTF-8</encoding>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>3.0</version>
+				<configuration>
+					<encoding>UTF-8</encoding>
+					<source>1.8</source>
+					<target>1.8</target>
+				</configuration>
+			</plugin>
+
+			<plugin>
+				<groupId>org.apache.felix</groupId>
+				<artifactId>maven-bundle-plugin</artifactId>
+				<extensions>true</extensions>
+				<configuration>
+					<instructions>
+						<Bundle-Name>OSBP Addon for Vaadin: Absolute Layout</Bundle-Name>
+						<Bundle-SymbolicName>org.eclipse.osbp.vaadin.addons.absolutelayout</Bundle-SymbolicName>
+                        <Bundle-Version>0.9.0.{osgi-version-qualifier}</Bundle-Version>
+						<Require-Bundle>com.vaadin.server;bundle-version="[7.5.7,7.7.0)",
+							com.vaadin.client;bundle-version="[7.5.7,7.7.0)",
+							com.vaadin.shared;bundle-version="[7.5.7,7.7.0)",
+							org.jsoup;bundle-version="[1.8.3,1.8.4)",
+							dragdroplayouts.osgi;bundle-version="[1.1.3,1.1.4)"
+						</Require-Bundle>
+						<Import-Package>
+							com.vaadin.*;version="[7.5.7,7.7.0)",
+							!fi.jasoft.*,
+                            javax.servlet.annotation;resolution:=optional,
+							*
+						</Import-Package>
+						<Export-Package>
+							!LICENSE,!LICENSE.txt,!THIRD-PARTY.txt,!NOTICE,!README.txt,!VERSION.txt,!build.properties,
+							!VAADIN.*,
+							org.eclipse.osbp.vaadin.addons.*;version="0.9.0"
+						</Export-Package>
+						<Include-Resource>{maven-resources},LICENSE.txt,epl-v10.html</Include-Resource>
+						<_nouses>true</_nouses>
+					</instructions>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-source-plugin</artifactId>
+				<version>2.2.1</version>
+				<executions>
+					<execution>
+						<id>attach-sources</id>
+						<goals>
+							<goal>jar</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+		<pluginManagement>
+			<plugins>
+
+				<!--This plugin's configuration is used to store Eclipse m2e settings 
+					only. It has no influence on the Maven build itself. -->
+				<plugin>
+					<groupId>org.eclipse.m2e</groupId>
+					<artifactId>lifecycle-mapping</artifactId>
+					<version>1.0.0</version>
+					<configuration>
+						<lifecycleMappingMetadata>
+							<pluginExecutions>
+								<pluginExecution>
+									<pluginExecutionFilter>
+										<groupId>
+											org.apache.maven.plugins
+										</groupId>
+										<artifactId>
+											maven-dependency-plugin
+										</artifactId>
+										<versionRange>
+											[2.0.0,)
+										</versionRange>
+										<goals>
+											<goal>
+												copy-dependencies
+											</goal>
+										</goals>
+									</pluginExecutionFilter>
+									<action>
+										<ignore></ignore>
+									</action>
+								</pluginExecution>
+								<pluginExecution>
+									<pluginExecutionFilter>
+										<groupId>com.vaadin</groupId>
+										<artifactId>
+											vaadin-maven-plugin
+										</artifactId>
+										<versionRange>
+											[7.0-SNAPSHOT,)
+										</versionRange>
+										<goals>
+											<goal>compile</goal>
+										</goals>
+									</pluginExecutionFilter>
+									<action>
+										<ignore></ignore>
+									</action>
+								</pluginExecution>
+							</pluginExecutions>
+						</lifecycleMappingMetadata>
+					</configuration>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+		<!-- This is needed for the sources required by the client-side compiler 
+			to be included in the produced JARs -->
+		<resources>
+			<resource>
+				<directory>src</directory>
+			</resource>
+		</resources>
+
+	</build>
+
+</project>
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/sample/org/eclipse/osbp/vaadin/addons/absolutelayout/AbsoluteLayoutUI.java b/org.eclipse.osbp.vaadin.addons.absolutelayout/sample/org/eclipse/osbp/vaadin/addons/absolutelayout/AbsoluteLayoutUI.java
new file mode 100644
index 0000000..24a29c5
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/sample/org/eclipse/osbp/vaadin/addons/absolutelayout/AbsoluteLayoutUI.java
@@ -0,0 +1,229 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+
+package org.eclipse.osbp.vaadin.addons.absolutelayout;
+
+import javax.servlet.annotation.WebServlet;
+
+import com.vaadin.annotations.Theme;
+import com.vaadin.annotations.VaadinServletConfiguration;
+import com.vaadin.data.Property;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.server.VaadinServlet;
+import com.vaadin.ui.AbsoluteLayout.ComponentPosition;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.CheckBox;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Panel;
+import com.vaadin.ui.TextField;
+import com.vaadin.ui.UI;
+import com.vaadin.ui.VerticalLayout;
+
+import fi.jasoft.dragdroplayouts.client.ui.LayoutDragMode;
+import fi.jasoft.dragdroplayouts.drophandlers.DefaultAbsoluteLayoutDropHandler;
+
+/**
+ * The Class AbsoluteLayoutUI.
+ */
+@SuppressWarnings("serial")
+@Theme("valo")
+public class AbsoluteLayoutUI extends UI {
+
+	/**
+	 * The Class Servlet.
+	 */
+	@WebServlet(value = "/*", asyncSupported = true)
+	@VaadinServletConfiguration(productionMode = false, ui = AbsoluteLayoutUI.class, widgetset = "org.eclipse.osbp.vaadin.addons.absolutelayout.AbsoluteLayoutWidgetset")
+	public static class Servlet extends VaadinServlet {
+	}
+
+	/** The layout1. */
+	private AbsoluteLayout layout1;
+
+	/** The layout2. */
+	private AbsoluteLayout layout2;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.vaadin.ui.UI#init(com.vaadin.server.VaadinRequest)
+	 */
+	@Override
+	protected void init(VaadinRequest request) {
+
+		HorizontalLayout main = new HorizontalLayout();
+		main.setSpacing(true);
+		main.setMargin(true);
+		main.setSizeFull();
+
+		VerticalLayout buttons = new VerticalLayout();
+		main.addComponent(buttons);
+		
+		Button b = new Button("new", new Button.ClickListener() {
+			@Override
+			public void buttonClick(Button.ClickEvent event) {
+				TextField f = new TextField("Foo");
+				f.addStyleName("bar");
+				layout1.addComponent(f);
+			}
+		});
+		buttons.addComponent(b);
+		
+		Button allNew = new Button("all new", new Button.ClickListener() {
+			@Override
+			public void buttonClick(Button.ClickEvent event) {
+				layout1.removeAllComponents();
+				layout2.removeAllComponents();
+				
+				createLayout(layout1);
+				createLayout(layout2);
+			}
+		});
+		buttons.addComponent(allNew);
+		buttons.setWidth("120px");
+		
+		Panel p1 = new Panel();
+		p1.setSizeFull();
+		main.addComponent(p1);
+		main.setExpandRatio(p1, 1.0f);
+
+		HorizontalLayout h1 = new HorizontalLayout();
+		h1.setSpacing(true);
+		h1.setMargin(true);
+		h1.setSizeFull();
+		p1.setContent(h1);
+
+		layout1 = new AbsoluteLayout();
+		layout1.setSizeFull();
+		h1.addComponent(layout1);
+		h1.setExpandRatio(layout1, 1.0f);
+		layout1.setDragMode(LayoutDragMode.CLONE);
+		layout1.setDropHandler(new DefaultAbsoluteLayoutDropHandler());
+		layout1.setResizable(true);
+		layout1.setUseAlignments(true);
+		createLayout(layout1);
+		
+		Panel p2 = new Panel();
+		p2.setSizeFull();
+		main.addComponent(p2);
+		main.setExpandRatio(p2, 1.0f);
+		
+		HorizontalLayout h2 = new HorizontalLayout();
+		h2.setSpacing(true);
+		h2.setMargin(true);
+		h2.setSizeFull();
+		p2.setContent(h2);
+		
+		layout2 = new AbsoluteLayout();
+		layout2.setSizeFull();
+		h2.addComponent(layout2);
+		h2.setExpandRatio(layout2, 1.0f);
+		layout2.setDragMode(LayoutDragMode.CLONE);
+		layout2.setDropHandler(new DefaultAbsoluteLayoutDropHandler());
+		layout2.setResizable(true);
+		layout2.setUseAlignments(true);
+		createLayout(layout2);
+
+		setContent(main);
+	}
+
+	/**
+	 * Creates the layout.
+	 *
+	 * @param layout
+	 *            the main
+	 * @return the absolute layout
+	 */
+	private AbsoluteLayout createLayout(AbsoluteLayout layout) {
+
+		ComponentPosition pos = layout.new ComponentPosition();
+
+		final CheckBox resize = new CheckBox("resize");
+		resize.setImmediate(true);
+		resize.setValue(true);
+		setSizeFull(resize);
+		resize.addValueChangeListener(new Property.ValueChangeListener() {
+			@Override
+			public void valueChange(Property.ValueChangeEvent event) {
+				layout.setResizable(resize.getValue());
+			}
+		});
+		pos.setLeft(30f, Unit.PIXELS);
+		pos.setTop(30f, Unit.PIXELS);
+		layout.addComponent(resize, pos.getCSSString());
+
+		final CheckBox drag = new CheckBox("drag");
+		drag.setImmediate(true);
+		drag.setValue(true);
+		setSizeFull(drag);
+		drag.addValueChangeListener(new Property.ValueChangeListener() {
+			@Override
+			public void valueChange(Property.ValueChangeEvent event) {
+				if (drag.getValue()) {
+					layout.setDragMode(LayoutDragMode.CLONE);
+				} else {
+					layout.setDragMode(LayoutDragMode.NONE);
+				}
+			}
+		});
+		pos.setLeft(130f, Unit.PIXELS);
+		pos.setTop(30f, Unit.PIXELS);
+		layout.addComponent(drag, pos.getCSSString());
+
+		final CheckBox alignments = new CheckBox("alignments");
+		alignments.setImmediate(true);
+		alignments.setValue(true);
+		setSizeFull(alignments);
+		alignments.addValueChangeListener(new Property.ValueChangeListener() {
+			@Override
+			public void valueChange(Property.ValueChangeEvent event) {
+				layout.setUseAlignments(alignments.getValue());
+			}
+		});
+		pos.setLeft(230f, Unit.PIXELS);
+		pos.setTop(30f, Unit.PIXELS);
+		layout.addComponent(alignments, pos.getCSSString());
+
+		TextField text = new TextField("Type me");
+		pos.setLeft(120f, Unit.PIXELS);
+		pos.setTop(200f, Unit.PIXELS);
+		setSizeFull(text);
+		layout.addComponent(text, pos.getCSSString());
+
+		Button button2 = new Button("Click Me2");
+		pos.setLeft(300f, Unit.PIXELS);
+		pos.setTop(300f, Unit.PIXELS);
+		setSizeFull(button2);
+		layout.addComponent(button2, pos.getCSSString());
+
+		CheckBox checkbox = new CheckBox("Check me");
+		pos.setLeft(470f, Unit.PIXELS);
+		pos.setTop(390f, Unit.PIXELS);
+		setSizeFull(checkbox);
+		layout.addComponent(checkbox, pos.getCSSString());
+
+		return layout;
+	}
+
+	/**
+	 * Sets the size full.
+	 *
+	 * @param resize
+	 *            the new size full
+	 */
+	private void setSizeFull(final Component resize) {
+		// resize.setSizeFull();
+	}
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/src/VAADIN/addons/osbee/vaadin/addons/absolutelayout/styles.scss b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/VAADIN/addons/osbee/vaadin/addons/absolutelayout/styles.scss
new file mode 100644
index 0000000..cba72d5
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/VAADIN/addons/osbee/vaadin/addons/absolutelayout/styles.scss
@@ -0,0 +1,63 @@
+@mixin osbee-absolutelayout {
+
+	.v-absolutelayout .o-alignmentLine {
+		// the color of the alignment line
+		background-color: green;
+	}
+
+	.o-absolutelayout{
+		// the amount of pixels, a snap to alignment lines is done
+		snap: 7;
+	}
+
+  .v-absolutelayout .v-absolutelayout-wrapper-o-resizable {
+    &.resizing {
+      overflow: visible;
+    }
+    .drag-overlay {
+      border: 1px solid red;
+      -webkit-box-sizing: border-box;
+      -moz-box-sizing: border-box;
+      box-sizing: border-box;
+      position: absolute;
+      z-index: 10;
+    }
+    .tlc, .te, .trc, .re, .brc, .be, .blc, .le {
+      background-color: transparent;
+      display: block;
+      overflow: visible;
+      position: absolute;
+    }
+    div.unused {
+      cursor: default !important;
+    }
+    .te {
+      cursor: ns-resize;
+      top: 0;
+      left: 0;
+      right: 0;
+      z-index: 6;
+    }
+    .re {
+      cursor: ew-resize;
+      top: 0;
+      right: 0;
+      bottom: 0;
+      z-index: 5;
+    }
+    .le {
+      cursor: ew-resize;
+      top: 0;
+      bottom: 0;
+      left: 0;
+      z-index: 5;
+    }
+    .be {
+      cursor: ns-resize;
+      right: 0;
+      bottom: 0;
+      left: 0;
+      z-index: 6;
+    }
+  }
+}
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/AbsoluteLayout.java b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/AbsoluteLayout.java
new file mode 100644
index 0000000..24eb08a
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/AbsoluteLayout.java
@@ -0,0 +1,382 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.absolutelayout;
+
+import java.io.Serializable;
+import java.lang.reflect.Method;
+
+import org.eclipse.osbp.vaadin.addons.absolutelayout.client.OAbsoluteLayoutServerRpc;
+import org.eclipse.osbp.vaadin.addons.absolutelayout.client.OAbsoluteLayoutState;
+import org.eclipse.osbp.vaadin.addons.absolutelayout.client.OResizeLocation;
+
+import com.vaadin.shared.Connector;
+import com.vaadin.ui.Component;
+import com.vaadin.util.ReflectTools;
+
+import fi.jasoft.dragdroplayouts.DDAbsoluteLayout;
+import fi.jasoft.dragdroplayouts.client.ui.LayoutDragMode;
+
+/**
+ * OS.bee AbsoluteLayout. <br>
+ * This layout supports resizing its elements. And also supports drag and drop
+ * of elemens.
+ * <p>
+ * Only DragModes NONE and COPY are allowed
+ */
+@SuppressWarnings("serial")
+public class AbsoluteLayout extends DDAbsoluteLayout {
+
+	/** The rpc. */
+	private OAbsoluteLayoutServerRpc rpc = new OAbsoluteLayoutServerRpc() {
+		@Override
+		public void resized(Connector connector, int newWidth, int newHeight, int oldWidth, int oldHeight,
+				OResizeLocation location) {
+			internalResizeChild((Component) connector, newWidth, newHeight, oldWidth, oldHeight, location);
+
+			fireEvent(new ChildResizedEvent((Component) connector, newWidth, newHeight, oldWidth, oldHeight, location));
+		}
+	};
+
+	/**
+	 * Instantiates a new absolute layout.
+	 */
+	public AbsoluteLayout() {
+		registerRpc(rpc);
+	}
+
+	/* (non-Javadoc)
+	 * @see fi.jasoft.dragdroplayouts.DDAbsoluteLayout#getState()
+	 */
+	@Override
+	public OAbsoluteLayoutState getState() {
+		return (OAbsoluteLayoutState) super.getState();
+	}
+
+	/* (non-Javadoc)
+	 * @see fi.jasoft.dragdroplayouts.DDAbsoluteLayout#getState(boolean)
+	 */
+	@Override
+	protected OAbsoluteLayoutState getState(boolean markAsDirty) {
+		return (OAbsoluteLayoutState) super.getState(markAsDirty);
+	}
+
+	/**
+	 * Internal resize child.
+	 *
+	 * @param child the child
+	 * @param newWidth the new width
+	 * @param newHeight the new height
+	 * @param oldWidth the old width
+	 * @param oldHeight the old height
+	 * @param location the location
+	 */
+	protected void internalResizeChild(Component child, int newWidth, int newHeight, int oldWidth, int oldHeight,
+			OResizeLocation location) {
+		switch (location) {
+		case TOP_LEFT:
+			moveLeft(oldWidth - newWidth, child);
+		case TOP:
+			moveTop(oldHeight - newHeight, child);
+			break;
+		case TOP_RIGHT:
+			moveTop(oldHeight - newHeight, child);
+		case RIGHT:
+			moveRight(oldWidth - newWidth, child);
+			break;
+		case BOTTOM_RIGHT:
+			moveRight(oldWidth - newWidth, child);
+		case BOTTOM:
+			moveBottom(oldHeight - newHeight, child);
+			break;
+		case BOTTOM_LEFT:
+			moveBottom(oldHeight - newHeight, child);
+		case LEFT:
+			moveLeft(oldWidth - newWidth, child);
+			break;
+		default:
+			break;
+		}
+		child.setWidth(newWidth, Unit.PIXELS);
+		child.setHeight(newHeight, Unit.PIXELS);
+	}
+
+	/**
+	 * Adjusts the top position for the component when inside a
+	 * {@link com.vaadin.ui.AbsoluteLayout} and top position was set with
+	 * pixels.
+	 *
+	 * @param delta            the change of top position in pixels
+	 * @param child            the component that is inside the absolute layout
+	 */
+	protected void moveTop(int delta, Component child) {
+		ComponentPosition position = getPosition(child);
+		if (position.getTopValue() != null && position.getTopUnits().equals(Unit.PIXELS)) {
+			float newValue = (position.getTopValue() + delta);
+			if (newValue < 0) {
+				newValue = 0;
+			}
+			position.setTopValue(newValue);
+			setPosition(child, position);
+		} else {
+			// position bottom set, NOOP
+		}
+	}
+
+	/**
+	 * Adjusts the bottom position for the component when inside a
+	 * {@link com.vaadin.ui.AbsoluteLayout} and bottom position was set with
+	 * pixels.
+	 *
+	 * @param delta            the change of bottom position in pixels
+	 * @param child            the component that is inside the absolute layout
+	 */
+	protected void moveBottom(int delta, Component child) {
+		ComponentPosition position = getPosition(child);
+		if (position.getBottomValue() != null && position.getBottomUnits().equals(Unit.PIXELS)) {
+			float newValue = (position.getBottomValue() + delta);
+			if (newValue < 0) {
+				newValue = 0;
+			}
+			position.setBottomValue(newValue);
+			setPosition(child, position);
+		} else {
+			// position top used, NOOP
+		}
+	}
+
+	/**
+	 * Adjusts the right position for the component when inside a
+	 * {@link com.vaadin.ui.AbsoluteLayout} and right position was set with
+	 * pixels.
+	 *
+	 * @param delta            the change of right position in pixels
+	 * @param child the child
+	 */
+	protected void moveRight(int delta, Component child) {
+		ComponentPosition position = getPosition(child);
+		if (position.getRightValue() != null && position.getRightUnits().equals(Unit.PIXELS)) {
+			float newValue = (position.getRightValue() + delta);
+			if (newValue < 0) {
+				newValue = 0;
+			}
+			position.setRightValue(newValue);
+			setPosition(child, position);
+		} else {
+			// position left used, NOOP
+		}
+	}
+
+	/**
+	 * Adjusts the left position for the component when inside a
+	 * {@link com.vaadin.ui.AbsoluteLayout} and left position was set with
+	 * pixels.
+	 *
+	 * @param delta            the change of left position in pixels
+	 * @param child            the component that is inside the absolute layout
+	 */
+	protected void moveLeft(int delta, Component child) {
+		ComponentPosition position = getPosition(child);
+		if (position.getLeftValue() != null && position.getLeftUnits().equals(Unit.PIXELS)) {
+			float newValue = (position.getLeftValue() + delta);
+			if (newValue < 0) {
+				newValue = 0;
+			}
+			position.setLeftValue(newValue);
+			setPosition(child, position);
+		} else {
+			// position right set, NOOP
+		}
+	}
+
+	/**
+	 * True, if the children should be resizable.
+	 *
+	 * @return true, if is resizable
+	 */
+	public boolean isResizable() {
+		return getState(false).useResizing;
+	}
+
+	/**
+	 * True, if the children should be resizable.
+	 *
+	 * @param value the new resizable
+	 */
+	public void setResizable(boolean value) {
+		if (getState(false).useResizing != value) {
+			getState().useResizing = value;
+		}
+	}
+
+	/**
+	 * True, if alignments should be used.
+	 *
+	 * @return true, if is use alignments
+	 */
+	public boolean isUseAlignments() {
+		return getState(false).useAlignments;
+	}
+
+	/**
+	 * True, if alignments should be used.
+	 *
+	 * @param value the new use alignments
+	 */
+	public void setUseAlignments(boolean value) {
+		if (getState(false).useAlignments != value) {
+			getState().useAlignments = value;
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see fi.jasoft.dragdroplayouts.DDAbsoluteLayout#setDragMode(fi.jasoft.dragdroplayouts.client.ui.LayoutDragMode)
+	 */
+	@Override
+	public void setDragMode(LayoutDragMode mode) {
+		if (mode != LayoutDragMode.NONE && mode != LayoutDragMode.CLONE) {
+			throw new IllegalArgumentException("Mode is not supported!");
+		}
+		super.setDragMode(mode);
+	}
+
+	/**
+	 * Add listener which is being notified if a child should be resized.
+	 *
+	 * @param listener the listener
+	 */
+	public void addChildResizedListener(ChildResizedListener listener) {
+		addListener(ChildResizedEvent.class, listener, ChildResizedListener.CHILD_RESIZED_METHOD);
+	}
+
+	/**
+	 * Removes listener which is being notified if a child should be resized.
+	 *
+	 * @param listener the listener
+	 */
+	public void removeChildResizedListener(ChildResizedListener listener) {
+		removeListener(ChildResizedEvent.class, listener);
+	}
+
+	/**
+	 * The Class ChildResizedEvent.
+	 */
+	public static class ChildResizedEvent extends Event {
+
+		/** The new width. */
+		private final int newWidth;
+		
+		/** The new height. */
+		private final int newHeight;
+		
+		/** The old width. */
+		private final int oldWidth;
+		
+		/** The old height. */
+		private final int oldHeight;
+		
+		/** The location. */
+		private final OResizeLocation location;
+
+		/**
+		 * Instantiates a new child resized event.
+		 *
+		 * @param source the source
+		 * @param newWidth the new width
+		 * @param newHeight the new height
+		 * @param oldWidth the old width
+		 * @param oldHeight the old height
+		 * @param location the location
+		 */
+		public ChildResizedEvent(Component source, int newWidth, int newHeight, int oldWidth, int oldHeight,
+				OResizeLocation location) {
+			super(source);
+			this.newWidth = newWidth;
+			this.newHeight = newHeight;
+			this.oldWidth = oldWidth;
+			this.oldHeight = oldHeight;
+			this.location = location;
+		}
+
+		/**
+		 * Gets the new width.
+		 *
+		 * @return the new width
+		 */
+		public int getNewWidth() {
+			return newWidth;
+		}
+
+		/**
+		 * Gets the new height.
+		 *
+		 * @return the new height
+		 */
+		public int getNewHeight() {
+			return newHeight;
+		}
+
+		/**
+		 * Gets the old width.
+		 *
+		 * @return the old width
+		 */
+		public int getOldWidth() {
+			return oldWidth;
+		}
+
+		/**
+		 * Gets the old height.
+		 *
+		 * @return the old height
+		 */
+		public int getOldHeight() {
+			return oldHeight;
+		}
+
+		/**
+		 * Gets the location.
+		 *
+		 * @return the location
+		 */
+		public OResizeLocation getLocation() {
+			return location;
+		}
+
+	}
+
+	/**
+	 * The listener interface for receiving childResized events.
+	 * The class that is interested in processing a childResized
+	 * event implements this interface, and the object created
+	 * with that class is registered with a component using the
+	 * component's <code>addChildResizedListener</code> method. When
+	 * the childResized event occurs, that object's appropriate
+	 * method is invoked.
+	 *
+	 * @see ChildResizedEvent
+	 */
+	public interface ChildResizedListener extends Serializable {
+		
+		/** The Constant CHILD_RESIZED_METHOD. */
+		public static final Method CHILD_RESIZED_METHOD = ReflectTools.findMethod(ChildResizedListener.class,
+				"childResized", ChildResizedEvent.class);
+
+		/**
+		 * Child resized.
+		 *
+		 * @param event the event
+		 */
+		void childResized(ChildResizedEvent event);
+	}
+
+}
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/AbsoluteLayoutWidgetset.gwt.xml b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/AbsoluteLayoutWidgetset.gwt.xml
new file mode 100644
index 0000000..4699e48
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/AbsoluteLayoutWidgetset.gwt.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.5.1//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.5.1/distro-source/core/src/gwt-module.dtd">
+<module>
+	<inherits name="com.vaadin.DefaultWidgetSet" />
+
+	<!-- 
+	    Uncomment the following to compile the widgetset for one browser only. 
+		Multiple browsers can be specified as a comma separated list. The supported 
+		user agents at the moment of writing were: ie8,ie9,gecko1_8,safari,opera 
+		The value gecko1_8 is used for Firefox and safari is used for webkit based 
+		browsers including Google Chrome.
+   	   <set-property name="user.agent" value="safari" /> 
+
+        To enable SuperDevMode, uncomment this line. See https://vaadin.com/wiki/-/wiki/Main/Using%20SuperDevMode
+ 		for more information and instructions.
+			<set-configuration-property name="devModeRedirectEnabled" value="true" />
+		/> 
+	-->
+
+<!-- 	<add-linker name="xsiframe" /> -->
+<!-- 	<set-configuration-property name="devModeRedirectEnabled" value="true" /> -->
+
+	<inherits name="fi.jasoft.dragdroplayouts.DragDropLayoutsWidgetSet" />
+	
+	<stylesheet src="oabsolutelayout/styles.css" />
+	
+</module>
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/IOConstants.java b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/IOConstants.java
new file mode 100644
index 0000000..1083f19
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/IOConstants.java
@@ -0,0 +1,30 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.absolutelayout.client;
+
+/**
+ * The Interface IOConstants.
+ */
+public interface IOConstants {
+	
+	/**
+	 * Divs for the resizing operations are marked with this css class.
+	 */
+	public static final String CSS_RESIZE_DIV = "o-resize-div";
+	
+	/**
+	 * Is used to define the snap css property in pixels. 
+	 */
+	public static final String CSS_SNAP_PROPERTY = "snap";
+
+}
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAbsoluteLayoutClientRpc.java b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAbsoluteLayoutClientRpc.java
new file mode 100644
index 0000000..3a61e01
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAbsoluteLayoutClientRpc.java
@@ -0,0 +1,37 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.absolutelayout.client;
+
+import com.vaadin.shared.communication.ClientRpc;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Interface OAbsoluteLayoutClientRpc.
+ */
+public interface OAbsoluteLayoutClientRpc extends ClientRpc {
+
+	/**
+	 * True if alignments should be used. False otherwise.
+	 *
+	 * @param value the new use alignments
+	 */
+	public void setUseAlignments(boolean value);
+
+	/**
+	 * True if resizing should be used. False otherwise.
+	 *
+	 * @param value the new use resizing
+	 */
+	public void setUseResizing(boolean value);
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAbsoluteLayoutConnector.java b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAbsoluteLayoutConnector.java
new file mode 100644
index 0000000..a41e001
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAbsoluteLayoutConnector.java
@@ -0,0 +1,104 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.absolutelayout.client;
+
+import org.eclipse.osbp.vaadin.addons.absolutelayout.AbsoluteLayout;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.client.communication.RpcProxy;
+import com.vaadin.client.communication.StateChangeEvent;
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.ui.Connect;
+
+import fi.jasoft.dragdroplayouts.client.ui.absolutelayout.DDAbsoluteLayoutConnector;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class OAbsoluteLayoutConnector.
+ */
+@Connect(AbsoluteLayout.class)
+public class OAbsoluteLayoutConnector extends DDAbsoluteLayoutConnector implements OChildResizeListener {
+
+	/** The Constant serialVersionUID. */
+	private static final long serialVersionUID = -3501965859455838012L;
+
+	/** The rpc. */
+	OAbsoluteLayoutServerRpc rpc = RpcProxy.create(OAbsoluteLayoutServerRpc.class, this);
+	
+	/**
+	 * Instantiates a new o absolute layout connector.
+	 */
+	public OAbsoluteLayoutConnector() {
+		registerRpc(OAbsoluteLayoutClientRpc.class, new OAbsoluteLayoutClientRpc() {
+			private static final long serialVersionUID = 8264383260169834245L;
+
+			@Override
+			public void setUseAlignments(boolean value) {
+				getWidget().setUseAlignments(value);
+			}
+
+			@Override
+			public void setUseResizing(boolean value) {
+				getWidget().setUseResizing(value);
+			}
+		});
+	}
+
+	/* (non-Javadoc)
+	 * @see com.vaadin.client.ui.AbstractComponentConnector#createWidget()
+	 */
+	@Override
+	protected Widget createWidget() {
+		OAbsoluteLayoutWidget widget = GWT.create(OAbsoluteLayoutWidget.class);
+		widget.setResizeListener(this);
+		return widget;
+	}
+
+	/* (non-Javadoc)
+	 * @see fi.jasoft.dragdroplayouts.client.ui.absolutelayout.DDAbsoluteLayoutConnector#getWidget()
+	 */
+	@Override
+	public OAbsoluteLayoutWidget getWidget() {
+		return (OAbsoluteLayoutWidget) super.getWidget();
+	}
+
+	/* (non-Javadoc)
+	 * @see fi.jasoft.dragdroplayouts.client.ui.absolutelayout.DDAbsoluteLayoutConnector#getState()
+	 */
+	@Override
+	public OAbsoluteLayoutState getState() {
+		return (OAbsoluteLayoutState) super.getState();
+	}
+
+	/* (non-Javadoc)
+	 * @see com.vaadin.client.ui.absolutelayout.AbsoluteLayoutConnector#onStateChanged(com.vaadin.client.communication.StateChangeEvent)
+	 */
+	@Override
+	public void onStateChanged(StateChangeEvent stateChangeEvent) {
+		super.onStateChanged(stateChangeEvent);
+
+		getWidget().setUseAlignments(getState().useAlignments);
+		getWidget().setUseResizing(getState().useResizing);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.osbp.vaadin.addons.absolutelayout.client.OChildResizeListener#resized(com.vaadin.shared.Connector, int, int, int, int, org.eclipse.osbp.vaadin.addons.absolutelayout.client.OResizeLocation)
+	 */
+	@Override
+	public void resized(Connector child, int newWidth, int newHeight, int oldWidth, int oldHeight,
+			OResizeLocation location) {
+		rpc.resized(child, newWidth, newHeight, oldWidth, oldHeight, location);
+	}
+
+}
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAbsoluteLayoutServerRpc.java b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAbsoluteLayoutServerRpc.java
new file mode 100644
index 0000000..a3cc7a2
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAbsoluteLayoutServerRpc.java
@@ -0,0 +1,38 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.absolutelayout.client;
+
+import com.vaadin.shared.Connector;
+import com.vaadin.shared.communication.ServerRpc;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Interface OAbsoluteLayoutServerRpc.
+ */
+public interface OAbsoluteLayoutServerRpc extends ServerRpc {
+
+	/**
+	 * Is called if the given connector was resized. So the server layout needs
+	 * to update the position of the child.
+	 *
+	 * @param connector the connector
+	 * @param newWidth the new width
+	 * @param newHeight the new height
+	 * @param oldWidth the old width
+	 * @param oldHeight the old height
+	 * @param location the location
+	 */
+	void resized(Connector connector, int newWidth, int newHeight, int oldWidth, int oldHeight,
+			OResizeLocation location);
+
+}
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAbsoluteLayoutState.java b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAbsoluteLayoutState.java
new file mode 100644
index 0000000..d267cdb
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAbsoluteLayoutState.java
@@ -0,0 +1,30 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.absolutelayout.client;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class OAbsoluteLayoutState.
+ */
+public class OAbsoluteLayoutState extends fi.jasoft.dragdroplayouts.client.ui.absolutelayout.DDAbsoluteLayoutState {
+
+	/** The Constant serialVersionUID. */
+	private static final long serialVersionUID = -138381612142479069L;
+
+	/** The use alignments. */
+	public boolean useAlignments;
+	
+	/** The use resizing. */
+	public boolean useResizing;
+
+}
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAbsoluteLayoutWidget.java b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAbsoluteLayoutWidget.java
new file mode 100644
index 0000000..dfe0d3f
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAbsoluteLayoutWidget.java
@@ -0,0 +1,953 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.absolutelayout.client;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.google.gwt.dom.client.Element;
+import com.google.gwt.dom.client.EventTarget;
+import com.google.gwt.dom.client.NativeEvent;
+import com.google.gwt.dom.client.Style;
+import com.google.gwt.dom.client.Style.Unit;
+import com.google.gwt.event.dom.client.KeyCodes;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.Event;
+import com.google.gwt.user.client.Event.NativePreviewEvent;
+import com.google.gwt.user.client.Event.NativePreviewHandler;
+import com.google.gwt.user.client.EventListener;
+import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.user.client.ui.WidgetCollection;
+import com.vaadin.client.ComponentConnector;
+import com.vaadin.client.Util;
+import com.vaadin.client.WidgetUtil;
+import com.vaadin.client.ui.dd.VDragEvent;
+
+import fi.jasoft.dragdroplayouts.client.ui.absolutelayout.VDDAbsoluteLayout;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Absolute layout widget that supports drag and drop, resizing and alignment.
+ */
+public class OAbsoluteLayoutWidget extends VDDAbsoluteLayout {
+
+	/** The Constant CLASSNAME. */
+	public static final String CLASSNAME = "o-absolutelayout";
+
+	/** The resize listener. */
+	protected OChildResizeListener resizeListener;
+
+	/** The use resizing. */
+	protected boolean useResizing;
+
+	/**
+	 * Instantiates a new o absolute layout widget.
+	 */
+	public OAbsoluteLayoutWidget() {
+		addStyleName(CLASSNAME);
+	}
+
+	/* (non-Javadoc)
+	 * @see fi.jasoft.dragdroplayouts.client.ui.absolutelayout.VDDAbsoluteLayout#postDropHook(com.vaadin.client.ui.dd.VDragEvent)
+	 */
+	@Override
+	protected boolean postDropHook(VDragEvent drag) {
+		boolean result = super.postDropHook(drag);
+
+		OAlignmentManager.get().updateDropDetails(drag);
+		OAlignmentManager.get().stop();
+
+		return result;
+	}
+
+	/* (non-Javadoc)
+	 * @see fi.jasoft.dragdroplayouts.client.ui.absolutelayout.VDDAbsoluteLayout#postEnterHook(com.vaadin.client.ui.dd.VDragEvent)
+	 */
+	@Override
+	protected void postEnterHook(VDragEvent drag) {
+		super.postEnterHook(drag);
+
+		updateDrag(drag);
+	}
+
+	/* (non-Javadoc)
+	 * @see fi.jasoft.dragdroplayouts.client.ui.absolutelayout.VDDAbsoluteLayout#postLeaveHook(com.vaadin.client.ui.dd.VDragEvent)
+	 */
+	@Override
+	protected void postLeaveHook(VDragEvent drag) {
+		super.postLeaveHook(drag);
+
+		updateDrag(drag);
+	}
+
+	/* (non-Javadoc)
+	 * @see fi.jasoft.dragdroplayouts.client.ui.absolutelayout.VDDAbsoluteLayout#postOverHook(com.vaadin.client.ui.dd.VDragEvent)
+	 */
+	@Override
+	protected void postOverHook(VDragEvent drag) {
+		super.postOverHook(drag);
+
+		updateDrag(drag);
+	}
+
+	/**
+	 * Updates the drag information and alignments.
+	 *
+	 * @param drag the drag
+	 */
+	private void updateDrag(VDragEvent drag) {
+		if (!OAlignmentManager.get().isActive()) {
+			OAlignmentManager.get().startDragAndDrop(this);
+		}
+		OAlignmentManager.get().updateAlignmentsForDrop(drag);
+	}
+
+	/**
+	 * True, if alignments should be used. False otherwise.
+	 *
+	 * @param useAlignments the new use alignments
+	 */
+	public void setUseAlignments(boolean useAlignments) {
+		OAlignmentManager.get().setUseAlignments(useAlignments);
+	}
+
+	/**
+	 * True, if resizing should be used. False otherwise.
+	 *
+	 * @param useResizing the new use resizing
+	 */
+	public void setUseResizing(boolean useResizing) {
+		this.useResizing = useResizing;
+
+		for (Widget child : getChildren()) {
+			if (child instanceof ResizableAbsoluteWrapper) {
+				ResizableAbsoluteWrapper wrapper = (ResizableAbsoluteWrapper) child;
+				wrapper.setResizable(useResizing);
+			}
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see com.google.gwt.user.client.ui.ComplexPanel#getChildren()
+	 */
+	public WidgetCollection getChildren() {
+		return super.getChildren();
+	}
+
+	/* (non-Javadoc)
+	 * @see com.vaadin.client.ui.VAbsoluteLayout#add(com.google.gwt.user.client.ui.Widget)
+	 */
+	@Override
+	public void add(Widget child) {
+		ResizableAbsoluteWrapper wrapper = new ResizableAbsoluteWrapper(child);
+		super.add(wrapper, canvas);
+	}
+
+	/**
+	 * Returns true, if alignments are used. False otherwise.
+	 *
+	 * @return true, if is use alignments
+	 */
+	public boolean isUseAlignments() {
+		return OAlignmentManager.get().isUseAlignments();
+	}
+
+	/**
+	 * Sets the resize listener.
+	 *
+	 * @param resizeListener the new resize listener
+	 */
+	public void setResizeListener(OChildResizeListener resizeListener) {
+		this.resizeListener = resizeListener;
+	}
+
+	/**
+	 * The Class ResizeHandler.
+	 */
+	protected static class ResizeHandler implements EventListener {
+
+		/** The wrapper. */
+		protected final ResizableAbsoluteWrapper wrapper;
+
+		/** The start client x. */
+		protected int startClientX = 0;
+		
+		/** The start client y. */
+		protected int startClientY = 0;
+		
+		/** The start width. */
+		protected int startWidth = 0;
+		
+		/** The start height. */
+		protected int startHeight = 0;
+		
+		/** The resizing x. */
+		protected boolean resizingX;
+		
+		/** The revert x. */
+		protected boolean revertX;
+		
+		/** The revert y. */
+		protected boolean revertY;
+		
+		/** The resizing y. */
+		protected boolean resizingY;
+
+		/** The dragged element. */
+		// TODO remove me later -> Same as wrapper?
+		protected Element draggedElement;
+		
+		/** The waiting accept. */
+		protected boolean waitingAccept;
+		
+		/** The cancel listener registration. */
+		protected HandlerRegistration cancelListenerRegistration;
+		
+		/** The resize canceled. */
+		protected boolean resizeCanceled;
+
+		/** The keep aspect ratio. */
+		protected boolean keepAspectRatio;
+
+		/** The old width. */
+		protected int oldWidth;
+		
+		/** The old height. */
+		protected int oldHeight;
+		
+		/** The resize location. */
+		protected OResizeLocation resizeLocation;
+
+		/** The Constant locationToCursorMap. */
+		@SuppressWarnings("serial")
+		protected static final Map<OResizeLocation, String> locationToCursorMap = new HashMap<OResizeLocation, String>() {
+			{
+				// put(CResizeLocation.TOP_LEFT, "nwse-resize");
+				put(OResizeLocation.TOP, "ns-resize");
+				// put(CResizeLocation.TOP_RIGHT, "nesw-resize");
+				put(OResizeLocation.RIGHT, "ew-resize");
+				// put(CResizeLocation.BOTTOM_RIGHT, "nwse-resize");
+				put(OResizeLocation.BOTTOM, "ns-resize");
+				// put(CResizeLocation.BOTTOM_LEFT, "nesw-resize");
+				put(OResizeLocation.LEFT, "ew-resize");
+			}
+		};
+
+		/**
+		 * Instantiates a new resize handler.
+		 *
+		 * @param wrapper the wrapper
+		 */
+		public ResizeHandler(ResizableAbsoluteWrapper wrapper) {
+			this.wrapper = wrapper;
+		}
+
+		/* (non-Javadoc)
+		 * @see com.google.gwt.user.client.EventListener#onBrowserEvent(com.google.gwt.user.client.Event)
+		 */
+		@Override
+		public void onBrowserEvent(Event event) {
+			final EventTarget currentTarget = event.getCurrentEventTarget();
+			final Element target = currentTarget.cast();
+			final Element targetParent = target.getParentElement();
+			if (resizingX || resizingY || wrapper.getElement().equals(targetParent)
+					|| (targetParent != null && wrapper.getElement().equals(targetParent.getParentElement()))) {
+				switch (event.getTypeInt()) {
+				case Event.ONMOUSEMOVE:
+					onMouseMove(event);
+					break;
+				case Event.ONMOUSEDOWN:
+					onResizeStart(event, target);
+					break;
+				case Event.ONMOUSEUP:
+					onResizeEnd(event);
+					break;
+				default:
+					break;
+				}
+			} else if (resizeCanceled && event.getTypeInt() == Event.ONMOUSEUP) {
+				event.preventDefault();
+				event.stopPropagation();
+			}
+		}
+
+		/**
+		 * On mouse move.
+		 *
+		 * @param event the event
+		 */
+		protected void onMouseMove(Event event) {
+			if (!resizingX && !resizingY) {
+				return;
+			}
+
+			double height = -1.0;
+			double width = -1.0;
+
+			if (resizingY) {
+				int clientY = WidgetUtil.getTouchOrMouseClientY(event);
+				if (!isInVerticalBoundary(event)) {
+					// set the size to the edge of the boundary element
+					clientY = clientY < wrapper.getElement().getAbsoluteTop()
+							? (wrapper.getElement().getAbsoluteTop() + 2)
+							: (wrapper.getElement().getAbsoluteBottom() - 2);
+				}
+				int extraScrollHeight = wrapper.getElement() == null ? 0 : wrapper.getElement().getScrollTop();
+				height = startHeight + extraScrollHeight + (revertY ? startClientY - clientY : clientY - startClientY);
+				event.stopPropagation();
+			}
+
+			if (resizingX) {
+				int clientX = WidgetUtil.getTouchOrMouseClientX(event);
+				if (!isInHorizontalBoundary(event)) {
+					// set the size to the edge of the boundary element
+					clientX = clientX < wrapper.getElement().getAbsoluteLeft()
+							? (wrapper.getElement().getAbsoluteLeft() + 2)
+							: (wrapper.getElement().getAbsoluteRight() - 2);
+				}
+				int extraScrollWidth = wrapper.getElement() == null ? 0 : wrapper.getElement().getScrollLeft();
+				width = startWidth + extraScrollWidth + (revertX ? startClientX - clientX : clientX - startClientX);
+				event.stopPropagation();
+			}
+
+			if (keepAspectRatio && (height > -1.0 || width > 1.0)) {
+				final double wRatio = width / startWidth;
+				final double hRatio = height / startHeight;
+
+				if (height == -1.0) {
+					height = startHeight * wRatio;
+				} else if (width == -1.0) {
+					width = startWidth * hRatio;
+				} else {
+					if (wRatio < hRatio) {
+						height = startHeight * wRatio;
+					} else {
+						width = startWidth * hRatio;
+					}
+
+				}
+
+				wrapper.dragOverlayElement.getStyle().setHeight(height, Unit.PX);
+				wrapper.dragOverlayElement.getStyle().setWidth(width, Unit.PX);
+			}
+
+			if (height > -1.0) {
+				wrapper.dragOverlayElement.getStyle().setHeight(height, Unit.PX);
+			}
+			if (width > -1.0) {
+				wrapper.dragOverlayElement.getStyle().setWidth(width, Unit.PX);
+			}
+
+			// notify about resizing
+			wrapper.notifyResizing((int) width, (int) height, oldWidth, oldHeight, resizeLocation, draggedElement,
+					wrapper.dragOverlayElement);
+
+		}
+
+		/**
+		 * Checks if is in horizontal boundary.
+		 *
+		 * @param event the event
+		 * @return true, if is in horizontal boundary
+		 */
+		protected boolean isInHorizontalBoundary(Event event) {
+			if (wrapper.getParent().getElement() != null) {
+				int clientX = event.getClientX();
+				int right = wrapper.getParent().getElement().getAbsoluteRight() - 1;
+				int left = wrapper.getParent().getElement().getAbsoluteLeft() + 1;
+				return clientX > left && clientX < right;
+			}
+			return true;
+		}
+
+		/**
+		 * Checks if is in vertical boundary.
+		 *
+		 * @param event the event
+		 * @return true, if is in vertical boundary
+		 */
+		protected boolean isInVerticalBoundary(Event event) {
+			if (wrapper.getParent().getElement() != null) {
+				int clientY = event.getClientY();
+				int top = wrapper.getParent().getElement().getAbsoluteTop() + 1;
+				int bottom = wrapper.getParent().getElement().getAbsoluteBottom() - 1;
+				return clientY > top && clientY < bottom;
+			}
+			return true;
+		}
+
+		/**
+		 * Override cursor.
+		 *
+		 * @param location the location
+		 */
+		protected void overrideCursor(OResizeLocation location) {
+			String cursorValue = locationToCursorMap.get(location);
+			if (wrapper.getElement() != null) {
+				wrapper.getElement().getStyle().setProperty("cursor", cursorValue);
+			}
+			wrapper.dragOverlayElement.getStyle().setProperty("cursor", cursorValue);
+		}
+
+		/**
+		 * Stop cursor override.
+		 */
+		protected void stopCursorOverride() {
+			if (wrapper.getElement() != null) {
+				wrapper.getElement().getStyle().clearCursor();
+			}
+			wrapper.dragOverlayElement.getStyle().clearCursor();
+		}
+
+		/**
+		 * Mark boundary resizing.
+		 */
+		protected void markBoundaryResizing() {
+			if (wrapper.getElement() != null) {
+				wrapper.getElement().addClassName("resizing-child");
+			}
+		}
+
+		/**
+		 * Unmark boundary resizing.
+		 */
+		protected void unmarkBoundaryResizing() {
+			if (wrapper.getElement() != null) {
+				wrapper.getElement().removeClassName("resizing-child");
+			}
+		}
+
+		/**
+		 * Accept resize.
+		 *
+		 * @param accept the accept
+		 */
+		protected void acceptResize(boolean accept) {
+			if (waitingAccept) {
+				waitingAccept = false;
+				OAlignmentManager.get().updateResizedWidget(accept, oldWidth, oldHeight);
+				OAlignmentManager.get().stop();
+
+				resizingX = false;
+				resizingY = false;
+				draggedElement = null;
+				wrapper.dragOverlayElement.removeFromParent();
+				Style style = wrapper.dragOverlayElement.getStyle();
+				style.clearTop();
+				style.clearRight();
+				style.clearBottom();
+				style.clearLeft();
+				style.clearHeight();
+				style.clearWidth();
+				startClientX = 0;
+				startClientY = 0;
+				startHeight = 0;
+				startWidth = 0;
+
+				oldWidth = 0;
+				oldHeight = 0;
+				resizeLocation = null;
+
+				wrapper.getElement().removeClassName("resizing");
+			}
+		}
+
+		/**
+		 * On resize end.
+		 *
+		 * @param event the event
+		 */
+		protected void onResizeEnd(Event event) {
+			if (resizingX || resizingY) {
+				resizingX = false;
+				resizingY = false;
+				waitingAccept = true;
+
+				keepAspectRatio = false;
+
+				Event.releaseCapture(draggedElement);
+				event.stopPropagation();
+
+				stopCursorOverride();
+				unmarkBoundaryResizing();
+
+				acceptResize(true);
+			}
+		}
+
+		/**
+		 * On resize start.
+		 *
+		 * @param event the event
+		 * @param target the target
+		 */
+		protected void onResizeStart(Event event, Element target) {
+			if (!(resizingX || resizingY || waitingAccept)) {
+				resizeCanceled = false;
+				keepAspectRatio = false;
+				draggedElement = target;
+				// startWidth =
+				// WidgetUtil.getRequiredWidth(wrapper.getElement());
+				// startHeight =
+				// WidgetUtil.getRequiredHeight(wrapper.getElement());
+				startWidth = wrapper.getElement().getOffsetWidth();
+				startHeight = wrapper.getElement().getOffsetHeight();
+				if (target.equals(wrapper.topEdge) || target.equals(wrapper.bottomEdge)) {
+					resizeLocation = startVerticalResize(event, target);
+				} else if (target.equals(wrapper.leftEdge) || target.equals(wrapper.rightEdge)) {
+					resizeLocation = startHorizontalResize(event, target);
+				}
+				// else {
+				// resizeLocation = startDiagonalResize(event, target);
+				// }
+
+				// initialize the old values
+				oldWidth = wrapper.getElement().getOffsetWidth();
+				oldHeight = wrapper.getElement().getOffsetHeight();
+
+				wrapper.getElement().addClassName("resizing");
+				wrapper.getElement().appendChild(wrapper.dragOverlayElement);
+				Event.setCapture(draggedElement);
+				event.stopPropagation();
+
+				overrideCursor(resizeLocation);
+				markBoundaryResizing();
+				listenToKeyboard();
+
+				OAlignmentManager.get().startResize((OAbsoluteLayoutWidget) wrapper.getParent(), wrapper,
+						resizeLocation, wrapper.dragOverlayElement);
+			}
+		}
+
+		/**
+		 * Listen to keyboard.
+		 */
+		protected void listenToKeyboard() {
+			cancelListenerRegistration = Event.addNativePreviewHandler(new NativePreviewHandler() {
+
+				@Override
+				public void onPreviewNativeEvent(NativePreviewEvent event) {
+					if (event.getTypeInt() == Event.ONKEYDOWN && (resizingX || resizingY)) {
+						final int keyCode = event.getNativeEvent().getKeyCode();
+						if (keyCode == KeyCodes.KEY_ESCAPE) {
+							onResizeCancel(event.getNativeEvent());
+						} else if (keyCode == KeyCodes.KEY_SHIFT) {
+							keepAspectRatio = true;
+						}
+					} else if (event.getTypeInt() == Event.ONKEYUP && (resizingX || resizingY)) {
+						final int keyCode = event.getNativeEvent().getKeyCode();
+						if (keyCode == KeyCodes.KEY_SHIFT) {
+							keepAspectRatio = false;
+						}
+					}
+				}
+			});
+		}
+
+		/**
+		 * On resize cancel.
+		 *
+		 * @param event the event
+		 */
+		protected void onResizeCancel(NativeEvent event) {
+			if (cancelListenerRegistration != null) {
+				cancelListenerRegistration.removeHandler();
+			}
+			Event.releaseCapture(draggedElement);
+			event.stopPropagation();
+			event.preventDefault();
+
+			resizeCanceled = true;
+			waitingAccept = true;
+			acceptResize(false);
+
+			keepAspectRatio = false;
+
+			stopCursorOverride();
+			unmarkBoundaryResizing();
+		}
+
+		// protected CResizeLocation startDiagonalResize(Event event, Element
+		// target) {
+		// CResizeLocation resizeLocation;
+		// resizingX = true;
+		// resizingY = true;
+		//
+		// Style style = wrapper.dragOverlayElement.getStyle();
+		// startClientY = WidgetUtil.getTouchOrMouseClientY(event);
+		// style.setHeight(startHeight, Unit.PX);
+		// startClientX = WidgetUtil.getTouchOrMouseClientX(event);
+		// style.setWidth(startWidth, Unit.PX);
+		//
+		// if (target.equals(wrapper.topLeftCorner) ||
+		// target.equals(wrapper.topRightCorner)) {
+		// revertY = true;
+		// style.setBottom(0, Unit.PX);
+		// resizeLocation = target.equals(wrapper.topLeftCorner) ?
+		// CResizeLocation.TOP_LEFT
+		// : CResizeLocation.TOP_RIGHT;
+		// } else {
+		// revertY = false;
+		// style.setTop(0, Unit.PX);
+		// resizeLocation = target.equals(wrapper.bottomRightCorner) ?
+		// CResizeLocation.BOTTOM_RIGHT
+		// : CResizeLocation.BOTTOM_LEFT;
+		// }
+		// if (target.equals(wrapper.topLeftCorner) ||
+		// target.equals(wrapper.bottomLeftCorner)) {
+		// revertX = true;
+		// style.setRight(0, Unit.PX);
+		// } else {
+		// revertX = false;
+		// style.setLeft(0, Unit.PX);
+		// }
+		// return resizeLocation;
+		// }
+
+		/**
+		 * Start vertical resize.
+		 *
+		 * @param event the event
+		 * @param target the target
+		 * @return the o resize location
+		 */
+		protected OResizeLocation startVerticalResize(Event event, Element target) {
+			OResizeLocation resizeLocation;
+			resizingY = true;
+			Style style = wrapper.dragOverlayElement.getStyle();
+			startClientY = WidgetUtil.getTouchOrMouseClientY(event);
+			style.setHeight(startHeight, Unit.PX);
+
+			if (target.equals(wrapper.topEdge)) {
+				revertY = true;
+				style.setBottom(0, Unit.PX);
+				resizeLocation = OResizeLocation.TOP;
+			} else {
+				revertY = false;
+				style.setTop(0, Unit.PX);
+				resizeLocation = OResizeLocation.BOTTOM;
+			}
+			style.setLeft(0, Unit.PX);
+			style.setRight(0, Unit.PX);
+			return resizeLocation;
+		}
+
+		/**
+		 * Start horizontal resize.
+		 *
+		 * @param event the event
+		 * @param target the target
+		 * @return the o resize location
+		 */
+		protected OResizeLocation startHorizontalResize(Event event, Element target) {
+			OResizeLocation resizeLocation;
+			resizingX = true;
+			Style style = wrapper.dragOverlayElement.getStyle();
+			startClientX = WidgetUtil.getTouchOrMouseClientX(event);
+			style.setWidth(startWidth, Unit.PX);
+
+			if (target.equals(wrapper.leftEdge)) {
+				revertX = true;
+				style.setRight(0, Unit.PX);
+				resizeLocation = OResizeLocation.LEFT;
+			} else {
+				revertX = false;
+				style.setLeft(0, Unit.PX);
+				resizeLocation = OResizeLocation.RIGHT;
+			}
+			style.setTop(0, Unit.PX);
+			style.setBottom(0, Unit.PX);
+			return resizeLocation;
+		}
+
+	}
+
+	/**
+	 * The Class ResizableAbsoluteWrapper.
+	 */
+	public class ResizableAbsoluteWrapper extends AbsoluteWrapper {
+
+		/** The Constant O_RESIZABLE_STYLE_NAME. */
+		protected static final String O_RESIZABLE_STYLE_NAME = "o-resizable";
+
+		/** The Constant DEFAULT_DRAG_SIZE_PIXELS. */
+		protected static final int DEFAULT_DRAG_SIZE_PIXELS = 10;
+
+		// protected Element topLeftCorner;
+		// protected Element topRightCorner;
+		// protected Element bottomLeftCorner;
+		/** The top edge. */
+		// protected Element bottomRightCorner;
+		protected Element topEdge;
+		
+		/** The right edge. */
+		protected Element rightEdge;
+		
+		/** The bottom edge. */
+		protected Element bottomEdge;
+		
+		/** The left edge. */
+		protected Element leftEdge;
+		
+		/** The drag overlay element. */
+		protected Element dragOverlayElement;
+
+		/** The drag size pixels. */
+		protected int dragSizePixels;
+
+		/** The resizable. */
+		protected boolean resizable;
+		
+		/** The resize handler. */
+		protected ResizeHandler resizeHandler;
+
+		/**
+		 * Instantiates a new resizable absolute wrapper.
+		 *
+		 * @param child the child
+		 */
+		public ResizableAbsoluteWrapper(Widget child) {
+			super(child);
+
+			resizeHandler = new ResizeHandler(this);
+
+			child.addStyleName(O_RESIZABLE_STYLE_NAME);
+			// getElement().addClassName("resizable");
+
+			initDOM();
+			initListeners();
+			setResizeLocationSize(DEFAULT_DRAG_SIZE_PIXELS);
+		}
+
+		/**
+		 * Notify resized.
+		 *
+		 * @param width the width
+		 * @param height the height
+		 * @param oldWidth the old width
+		 * @param oldHeight the old height
+		 * @param location the location
+		 */
+		public void notifyResized(int width, int height, int oldWidth, int oldHeight, OResizeLocation location) {
+			ComponentConnector c = Util.findConnectorFor(getWidget());
+			resizeListener.resized(c, width, height, oldWidth, oldHeight, location);
+			OAlignmentManager.get().resetAlignments();
+		}
+
+		/**
+		 * Notify resizing.
+		 *
+		 * @param width the width
+		 * @param height the height
+		 * @param oldWidth the old width
+		 * @param oldHeight the old height
+		 * @param location the location
+		 * @param draggedElement the dragged element
+		 * @param dragOverlayElement the drag overlay element
+		 */
+		public void notifyResizing(int width, int height, int oldWidth, int oldHeight, OResizeLocation location,
+				Element draggedElement, Element dragOverlayElement) {
+			OAlignmentManager.get().updateAlignmentsForResize(draggedElement, dragOverlayElement);
+		}
+
+		/**
+		 * Notify resizing cancel.
+		 */
+		public void notifyResizingCancel() {
+			OAlignmentManager.get().resetAlignments();
+		}
+
+		/**
+		 * Inits the dom.
+		 */
+		protected void initDOM() {
+			// topLeftCorner = DOM.createDiv();
+			// topLeftCorner.addClassName("tlc");
+			// topLeftCorner.addClassName(ICConstants.RESIZE_DIV);
+			// topRightCorner = DOM.createDiv();
+			// topRightCorner.addClassName("trc");
+			// topRightCorner.addClassName(ICConstants.RESIZE_DIV);
+			// bottomLeftCorner = DOM.createDiv();
+			// bottomLeftCorner.addClassName("blc");
+			// bottomLeftCorner.addClassName(ICConstants.RESIZE_DIV);
+			// bottomRightCorner = DOM.createDiv();
+			// bottomRightCorner.addClassName("brc");
+			// bottomRightCorner.addClassName(ICConstants.RESIZE_DIV);
+
+			topEdge = DOM.createDiv();
+			topEdge.addClassName("te");
+			topEdge.addClassName(IOConstants.CSS_RESIZE_DIV);
+			rightEdge = DOM.createDiv();
+			rightEdge.addClassName("re");
+			rightEdge.addClassName(IOConstants.CSS_RESIZE_DIV);
+			bottomEdge = DOM.createDiv();
+			bottomEdge.addClassName("be");
+			bottomEdge.addClassName(IOConstants.CSS_RESIZE_DIV);
+			leftEdge = DOM.createDiv();
+			leftEdge.addClassName("le");
+			leftEdge.addClassName(IOConstants.CSS_RESIZE_DIV);
+
+			dragOverlayElement = DOM.createDiv();
+			dragOverlayElement.addClassName("drag-overlay");
+
+			// topEdge.appendChild(topLeftCorner);
+			// topEdge.appendChild(topRightCorner);
+
+			// bottomEdge.appendChild(bottomLeftCorner);
+			// bottomEdge.appendChild(bottomRightCorner);
+
+			setResizable(true);
+		}
+
+		/**
+		 * Inits the listeners.
+		 */
+		protected void initListeners() {
+			// Event.sinkEvents(topLeftCorner, Event.MOUSEEVENTS);
+			// Event.sinkEvents(topRightCorner, Event.MOUSEEVENTS);
+			// Event.sinkEvents(bottomLeftCorner, Event.MOUSEEVENTS);
+			// Event.sinkEvents(bottomRightCorner, Event.MOUSEEVENTS);
+			Event.sinkEvents(topEdge, Event.MOUSEEVENTS);
+			Event.sinkEvents(rightEdge, Event.MOUSEEVENTS);
+			Event.sinkEvents(bottomEdge, Event.MOUSEEVENTS);
+			Event.sinkEvents(leftEdge, Event.MOUSEEVENTS);
+		}
+
+		/**
+		 * Set the size of the resize locations in pixels. This will be the
+		 * width&amp;height for the corner locations, width for the left&amp;right
+		 * sides, and height for the top&amp;bottom sides.
+		 * <p>
+		 * Default size is {@value #DEFAULT_DRAG_SIZE_PIXELS}.
+		 *
+		 * @param resizeLocationSize the new resize location size
+		 */
+		public void setResizeLocationSize(int resizeLocationSize) {
+			if (dragSizePixels != resizeLocationSize) {
+				dragSizePixels = resizeLocationSize;
+				// topLeftCorner.getStyle().setHeight(resizeLocationSize,
+				// Unit.PX);
+				// topLeftCorner.getStyle().setWidth(resizeLocationSize,
+				// Unit.PX);
+				// topRightCorner.getStyle().setHeight(resizeLocationSize,
+				// Unit.PX);
+				// topRightCorner.getStyle().setWidth(resizeLocationSize,
+				// Unit.PX);
+				// bottomLeftCorner.getStyle().setHeight(resizeLocationSize,
+				// Unit.PX);
+				// bottomLeftCorner.getStyle().setWidth(resizeLocationSize,
+				// Unit.PX);
+				// bottomRightCorner.getStyle().setHeight(resizeLocationSize,
+				// Unit.PX);
+				// bottomRightCorner.getStyle().setWidth(resizeLocationSize,
+				// Unit.PX);
+
+				topEdge.getStyle().setHeight(resizeLocationSize, Unit.PX);
+				rightEdge.getStyle().setWidth(resizeLocationSize, Unit.PX);
+				bottomEdge.getStyle().setHeight(resizeLocationSize, Unit.PX);
+				leftEdge.getStyle().setWidth(resizeLocationSize, Unit.PX);
+
+				int negativeMargin = new BigDecimal(resizeLocationSize).divideToIntegralValue(new BigDecimal(2))
+						.negate().intValueExact();
+				// topLeftCorner.getStyle().setMarginLeft(negativeMargin,
+				// Unit.PX);
+				// topRightCorner.getStyle().setMarginRight(negativeMargin,
+				// Unit.PX);
+				// bottomRightCorner.getStyle().setMarginRight(negativeMargin,
+				// Unit.PX);
+				// bottomLeftCorner.getStyle().setMarginLeft(negativeMargin,
+				// Unit.PX);
+				topEdge.getStyle().setMarginTop(negativeMargin, Unit.PX);
+				rightEdge.getStyle().setMarginRight(negativeMargin, Unit.PX);
+				bottomEdge.getStyle().setMarginBottom(negativeMargin, Unit.PX);
+				leftEdge.getStyle().setMarginLeft(negativeMargin, Unit.PX);
+			}
+		}
+
+		/**
+		 * Trigger the resizable mode for the component.
+		 *
+		 * @param resizable the new resizable
+		 */
+		public void setResizable(boolean resizable) {
+			if (this.resizable != resizable) {
+				this.resizable = resizable;
+				if (resizable) {
+					enableResize(topEdge);
+					enableResize(leftEdge);
+					enableResize(rightEdge);
+					enableResize(bottomEdge);
+					getElement().addClassName(O_RESIZABLE_STYLE_NAME);
+				} else {
+					disableResize(topEdge);
+					disableResize(leftEdge);
+					disableResize(rightEdge);
+					disableResize(bottomEdge);
+					getElement().removeClassName(O_RESIZABLE_STYLE_NAME);
+				}
+			}
+		}
+
+		/**
+		 * Enable resize.
+		 *
+		 * @param element the element
+		 */
+		protected void enableResize(Element element) {
+			getElement().appendChild(element);
+			Event.setEventListener(element, resizeHandler);
+		}
+
+		/**
+		 * Disable resize.
+		 *
+		 * @param element the element
+		 */
+		protected void disableResize(Element element) {
+			getElement().removeChild(element);
+			Event.setEventListener(element, null);
+		}
+
+		/**
+		 * Is the component in resizable mode.
+		 *
+		 * @return the resizable
+		 */
+		public boolean getResizable() {
+			return resizable;
+		}
+
+		/* (non-Javadoc)
+		 * @see com.vaadin.client.ui.VAbsoluteLayout.AbsoluteWrapper#setWrapperStyleNames(java.lang.String[])
+		 */
+		public void setWrapperStyleNames(String... stylenames) {
+			List<String> styles = stylenames != null ? new ArrayList<String>(Arrays.asList(stylenames)) : new ArrayList<String>();
+			styles.add(O_RESIZABLE_STYLE_NAME);
+			super.setWrapperStyleNames(styles.toArray(new String[styles.size()]));
+		}
+
+		/* (non-Javadoc)
+		 * @see com.vaadin.client.ui.VAbsoluteLayout.AbsoluteWrapper#destroy()
+		 */
+		public void destroy() {
+			setResizable(false);
+
+			super.destroy();
+		}
+	}
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAlignmentManager.java b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAlignmentManager.java
new file mode 100644
index 0000000..11d10c3
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAlignmentManager.java
@@ -0,0 +1,536 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.absolutelayout.client;
+
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.osbp.vaadin.addons.absolutelayout.client.OAlignmentOverlay.AlignmentsLocation;
+
+import com.google.gwt.core.client.Scheduler;
+import com.google.gwt.dom.client.Element;
+import com.google.gwt.dom.client.Style.Unit;
+import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.client.ui.dd.VDragEvent;
+
+import fi.jasoft.dragdroplayouts.client.ui.Constants;
+
+// TODO: Auto-generated Javadoc
+/**
+ * This class handles alignments for drag and drop and resize operations.
+ */
+public class OAlignmentManager {
+
+	/** The manager. */
+	private static OAlignmentManager manager;
+
+	/** The alignments. */
+	protected Set<OAlignmentOverlay> alignments = new HashSet<>();
+	
+	/** The snap. */
+	protected int snap = 4;
+
+	/** The layout. */
+	private OAbsoluteLayoutWidget layout;
+	
+	/** The snap info. */
+	private OAlignmentSnapInfo snapInfo;
+	
+	/** The resizing widget. */
+	private OAbsoluteLayoutWidget.ResizableAbsoluteWrapper resizingWidget;
+	
+	/** The resizing overlay. */
+	private Element resizingOverlay;
+	
+	/** The resize location. */
+	private OResizeLocation resizeLocation;
+
+	/** The use alignments. */
+	private boolean useAlignments;
+
+	/**
+	 * Instantiates a new o alignment manager.
+	 */
+	private OAlignmentManager() {
+
+	}
+
+	/**
+	 * Gets the.
+	 *
+	 * @return the o alignment manager
+	 */
+	public static OAlignmentManager get() {
+		if (manager == null) {
+			manager = new OAlignmentManager();
+		}
+		return manager;
+	}
+
+	/**
+	 * Start.
+	 *
+	 * @param layout the layout
+	 */
+	protected void start(OAbsoluteLayoutWidget layout) {
+		this.layout = layout;
+	}
+
+	/**
+	 * Start drag and drop.
+	 *
+	 * @param layout the layout
+	 */
+	public void startDragAndDrop(OAbsoluteLayoutWidget layout) {
+		start(layout);
+	}
+
+	/**
+	 * Start resize.
+	 *
+	 * @param layout the layout
+	 * @param resizingWidget the resizing widget
+	 * @param resizeLocation the resize location
+	 * @param resizingOverlay the resizing overlay
+	 */
+	public void startResize(OAbsoluteLayoutWidget layout, OAbsoluteLayoutWidget.ResizableAbsoluteWrapper resizingWidget,
+			OResizeLocation resizeLocation, Element resizingOverlay) {
+		this.layout = layout;
+		this.resizingWidget = resizingWidget;
+		this.resizeLocation = resizeLocation;
+		this.resizingOverlay = resizingOverlay;
+
+		start(layout);
+	}
+
+	/**
+	 * Checks if is active.
+	 *
+	 * @return true, if is active
+	 */
+	public boolean isActive() {
+		return layout != null;
+	}
+
+	/**
+	 * Stop.
+	 */
+	public void stop() {
+		resetAlignments();
+		layout = null;
+		alignments.clear();
+		resizeLocation = null;
+		resizingWidget = null;
+		snapInfo = null;
+	}
+
+	/**
+	 * Update alignments for drop.
+	 *
+	 * @param drag the drag
+	 */
+	public void updateAlignmentsForDrop(final VDragEvent drag) {
+		if (!useAlignments) {
+			return;
+		}
+
+		Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
+			@Override
+			public void execute() {
+				resetSnap();
+				resetAlignments();
+
+				Map<String, Object> dropDetail = drag.getDropDetails();
+				if (!dropDetail.containsKey(Constants.DROP_DETAIL_RELATIVE_TOP)) {
+					return;
+				}
+				int top = (int) dropDetail.get(Constants.DROP_DETAIL_RELATIVE_TOP);
+				int left = (int) dropDetail.get(Constants.DROP_DETAIL_RELATIVE_LEFT);
+				int width = (int) dropDetail.get(Constants.DROP_DETAIL_COMPONENT_WIDTH);
+				int height = (int) dropDetail.get(Constants.DROP_DETAIL_COMPONENT_HEIGHT);
+
+				int topEdgeY = top;
+				int leftEdgeX = left;
+				int rightEdgeX = left + width;
+				int bottomEdgeY = top + height;
+
+				int snapCount = 0;
+				for (Widget child : layout.getChildren()) {
+					int childTop = child.getElement().getOffsetTop();
+					int childLeft = child.getElement().getOffsetLeft();
+					int childWidth = child.getElement().getOffsetWidth();
+					int childHeight = child.getElement().getOffsetHeight();
+
+					int childTopEdgeY = childTop;
+					int childLeftEdgeX = childLeft;
+					int childRightEdgeX = childLeft + childWidth;
+					int childBottomEdgeY = childTop + childHeight;
+
+					boolean isDraggedLeftOf = false;
+					boolean isDraggedToOf = false;
+					if (left < child.getAbsoluteLeft()) {
+						isDraggedLeftOf = true;
+					}
+
+					if (top < child.getAbsoluteTop()) {
+						isDraggedToOf = true;
+					}
+
+					AlignmentsLocation location = null;
+					// paired sides -> left to left,...
+					int top_top_EdgeYDelta = topEdgeY - childTopEdgeY;
+					int bottom_bottom_EdgeYDelta = bottomEdgeY - childBottomEdgeY;
+					int left_left_EdgeXDelta = leftEdgeX - childLeftEdgeX;
+					int right_right_EdgeXDelta = rightEdgeX - childRightEdgeX;
+					int top_bottom_EdgeYDelta = topEdgeY - childBottomEdgeY;
+					int bottom_top_EdgeYDelta = bottomEdgeY - childTopEdgeY;
+					int left_right_EdgeXDelta = leftEdgeX - childRightEdgeX;
+					int right_left_EdgeXDelta = rightEdgeX - childLeftEdgeX;
+
+					OAlignmentSnapInfo snapInfo = null;
+					if (isInsideSnapBounds(top_top_EdgeYDelta)) {
+						snapInfo = new OAlignmentSnapInfo(0, top_top_EdgeYDelta);
+						location = isDraggedLeftOf ? AlignmentsLocation.TOP_EDGE_TOLEFT
+								: AlignmentsLocation.TOP_EDGE_TORIGHT;
+					} else if (isInsideSnapBounds(left_left_EdgeXDelta)) {
+						snapInfo = new OAlignmentSnapInfo(left_left_EdgeXDelta, 0);
+						location = isDraggedToOf ? AlignmentsLocation.LEFT_EDGE_TOTOP
+								: AlignmentsLocation.LEFT_EDGE_TOBOTTOM;
+					} else if (isInsideSnapBounds(right_right_EdgeXDelta)) {
+						snapInfo = new OAlignmentSnapInfo(right_right_EdgeXDelta, 0);
+						location = isDraggedToOf ? AlignmentsLocation.RIGHT_EDGE_TOTOP
+								: AlignmentsLocation.RIGHT_EDGE_TOBOTTOM;
+					} else if (isInsideSnapBounds(bottom_bottom_EdgeYDelta)) {
+						snapInfo = new OAlignmentSnapInfo(0, bottom_bottom_EdgeYDelta);
+						location = isDraggedLeftOf ? AlignmentsLocation.BOTTOM_EDGE_TOLEFT
+								: AlignmentsLocation.BOTTOM_EDGE_TORIGHT;
+						// unpaired sides
+					} else if (isInsideSnapBounds(top_bottom_EdgeYDelta)) {
+						snapInfo = new OAlignmentSnapInfo(0, top_bottom_EdgeYDelta);
+						location = isDraggedLeftOf ? AlignmentsLocation.BOTTOM_EDGE_TOLEFT
+								: AlignmentsLocation.BOTTOM_EDGE_TORIGHT;
+					} else if (isInsideSnapBounds(left_right_EdgeXDelta)) {
+						snapInfo = new OAlignmentSnapInfo(left_right_EdgeXDelta, 0);
+						location = isDraggedToOf ? AlignmentsLocation.RIGHT_EDGE_TOTOP
+								: AlignmentsLocation.RIGHT_EDGE_TOBOTTOM;
+					} else if (isInsideSnapBounds(right_left_EdgeXDelta)) {
+						snapInfo = new OAlignmentSnapInfo(right_left_EdgeXDelta, 0);
+						location = isDraggedToOf ? AlignmentsLocation.LEFT_EDGE_TOTOP
+								: AlignmentsLocation.LEFT_EDGE_TOBOTTOM;
+					} else if (isInsideSnapBounds(bottom_top_EdgeYDelta)) {
+						snapInfo = new OAlignmentSnapInfo(0, bottom_top_EdgeYDelta);
+						location = isDraggedLeftOf ? AlignmentsLocation.TOP_EDGE_TOLEFT
+								: AlignmentsLocation.TOP_EDGE_TORIGHT;
+					}
+
+					if (location != null) {
+						snapCount++;
+
+						if (isFirstSnap(snapCount)) {
+							registerSnap(snapInfo);
+						}
+
+						OAlignmentOverlay overlay = new OAlignmentOverlay(child, drag.getDragImage(), location,
+								snapInfo, false, snapCount == 1);
+						alignments.add(overlay);
+						overlay.show();
+					}
+				}
+			}
+		});
+	}
+
+	/**
+	 * Update alignments for resize.
+	 *
+	 * @param draggedElement            the resize preview element
+	 * @param dragOverlayElement the drag overlay element
+	 */
+	public void updateAlignmentsForResize(final Element draggedElement, final Element dragOverlayElement) {
+		if (dragOverlayElement == null || !useAlignments) {
+			return;
+		}
+		Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
+			@Override
+			public void execute() {
+				resetSnap();
+				resetAlignments();
+
+				int top = (int) dragOverlayElement.getAbsoluteTop();
+				int left = (int) dragOverlayElement.getAbsoluteLeft();
+				int width = (int) dragOverlayElement.getOffsetWidth();
+				int height = (int) dragOverlayElement.getOffsetHeight();
+
+				int topEdgeY = top;
+				int leftEdgeX = left;
+				int rightEdgeX = left + width;
+				int bottomEdgeY = top + height;
+
+				int snapCount = 0;
+
+				for (Widget child : layout.getChildren()) {
+					if (child == getResizingWidget()) {
+						continue;
+					}
+
+					int childTop = child.getElement().getAbsoluteTop();
+					int childLeft = child.getElement().getAbsoluteLeft();
+					int childWidth = child.getElement().getOffsetWidth();
+					int childHeight = child.getElement().getOffsetHeight();
+
+					int childTopEdgeY = childTop;
+					int childLeftEdgeX = childLeft;
+					int childRightEdgeX = childLeft + childWidth;
+					int childBottomEdgeY = childTop + childHeight;
+
+					boolean isDraggedLeftOf = false;
+					boolean isDraggedToOf = false;
+					if (left < child.getAbsoluteLeft()) {
+						isDraggedLeftOf = true;
+					}
+
+					if (top < child.getAbsoluteTop()) {
+						isDraggedToOf = true;
+					}
+
+					AlignmentsLocation location = null;
+					// paired sides -> left to left,...
+					int top_top_EdgeYDelta = topEdgeY - childTopEdgeY;
+					int bottom_bottom_EdgeYDelta = bottomEdgeY - childBottomEdgeY;
+					int left_left_EdgeXDelta = leftEdgeX - childLeftEdgeX;
+					int right_right_EdgeXDelta = rightEdgeX - childRightEdgeX;
+					int top_bottom_EdgeYDelta = topEdgeY - childBottomEdgeY;
+					int bottom_top_EdgeYDelta = bottomEdgeY - childTopEdgeY;
+					int left_right_EdgeXDelta = leftEdgeX - childRightEdgeX;
+					int right_left_EdgeXDelta = rightEdgeX - childLeftEdgeX;
+
+					OAlignmentSnapInfo snapInfo = null;
+					OResizeLocation resizeLoc = getResizeLocation();
+					if (resizeLoc.isTop() && isInsideSnapBounds(top_top_EdgeYDelta)) {
+						snapInfo = new OAlignmentSnapInfo(0, top_top_EdgeYDelta, resizeLoc);
+						location = isDraggedLeftOf ? AlignmentsLocation.TOP_EDGE_TOLEFT
+								: AlignmentsLocation.TOP_EDGE_TORIGHT;
+					} else if (resizeLoc.isLeft() && isInsideSnapBounds(left_left_EdgeXDelta)) {
+						snapInfo = new OAlignmentSnapInfo(left_left_EdgeXDelta, 0, resizeLoc);
+						location = isDraggedToOf ? AlignmentsLocation.LEFT_EDGE_TOTOP
+								: AlignmentsLocation.LEFT_EDGE_TOBOTTOM;
+					} else if (resizeLoc.isRight() && isInsideSnapBounds(right_right_EdgeXDelta)) {
+						snapInfo = new OAlignmentSnapInfo(right_right_EdgeXDelta, 0, resizeLoc);
+						location = isDraggedToOf ? AlignmentsLocation.RIGHT_EDGE_TOTOP
+								: AlignmentsLocation.RIGHT_EDGE_TOBOTTOM;
+					} else if (resizeLoc.isBottom() && isInsideSnapBounds(bottom_bottom_EdgeYDelta)) {
+						snapInfo = new OAlignmentSnapInfo(0, bottom_bottom_EdgeYDelta, resizeLoc);
+						location = isDraggedLeftOf ? AlignmentsLocation.BOTTOM_EDGE_TOLEFT
+								: AlignmentsLocation.BOTTOM_EDGE_TORIGHT;
+						// unpaired sides
+					} else if (resizeLoc.isTop() && isInsideSnapBounds(top_bottom_EdgeYDelta)) {
+						snapInfo = new OAlignmentSnapInfo(0, top_bottom_EdgeYDelta, resizeLoc);
+						location = isDraggedLeftOf ? AlignmentsLocation.BOTTOM_EDGE_TOLEFT
+								: AlignmentsLocation.BOTTOM_EDGE_TORIGHT;
+					} else if (resizeLoc.isLeft() && isInsideSnapBounds(left_right_EdgeXDelta)) {
+						snapInfo = new OAlignmentSnapInfo(left_right_EdgeXDelta, 0, resizeLoc);
+						location = isDraggedToOf ? AlignmentsLocation.RIGHT_EDGE_TOTOP
+								: AlignmentsLocation.RIGHT_EDGE_TOBOTTOM;
+					} else if (resizeLoc.isRight() && isInsideSnapBounds(right_left_EdgeXDelta)) {
+						snapInfo = new OAlignmentSnapInfo(right_left_EdgeXDelta, 0, resizeLoc);
+						location = isDraggedToOf ? AlignmentsLocation.LEFT_EDGE_TOTOP
+								: AlignmentsLocation.LEFT_EDGE_TOBOTTOM;
+					} else if (resizeLoc.isBottom() && isInsideSnapBounds(bottom_top_EdgeYDelta)) {
+						snapInfo = new OAlignmentSnapInfo(0, bottom_top_EdgeYDelta, resizeLoc);
+						location = isDraggedLeftOf ? AlignmentsLocation.TOP_EDGE_TOLEFT
+								: AlignmentsLocation.TOP_EDGE_TORIGHT;
+					}
+
+					if (location != null) {
+						snapCount++;
+
+						if (isFirstSnap(snapCount)) {
+							registerSnap(snapInfo);
+						}
+
+						OAlignmentOverlay overlay = new OAlignmentOverlay(child, dragOverlayElement, location, snapInfo,
+								true, isFirstSnap(snapCount));
+						alignments.add(overlay);
+						overlay.show();
+					}
+				}
+			}
+		});
+	}
+
+	/**
+	 * Checks if is first snap.
+	 *
+	 * @param snapCount the snap count
+	 * @return true, if is first snap
+	 */
+	private boolean isFirstSnap(int snapCount) {
+		return snapCount == 1;
+	}
+
+	/**
+	 * Resets all alignments.
+	 */
+	protected void resetAlignments() {
+		for (OAlignmentOverlay alignment : alignments) {
+			alignment.hide();
+		}
+		alignments.clear();
+	}
+
+	/**
+	 * Checks if is inside snap bounds.
+	 *
+	 * @param value the value
+	 * @return true, if is inside snap bounds
+	 */
+	protected boolean isInsideSnapBounds(int value) {
+		int snap = getSnapFromCSS();
+		return value <= snap && value >= -snap;
+	}
+
+	/**
+	 * Reads the snap in pixels from the elements style.
+	 *
+	 * @return the snap from css
+	 */
+	protected int getSnapFromCSS() {
+		String snapStr = layout.getElement().getStyle().getProperty(IOConstants.CSS_SNAP_PROPERTY);
+		if (snapStr != null) {
+			return Integer.valueOf(snapStr);
+		} else {
+			return snap;
+		}
+	}
+
+	/**
+	 * Registers the current snap. Only one snap definition can be active at a
+	 * time.
+	 *
+	 * @param snapInfo the snap info
+	 */
+	protected void registerSnap(OAlignmentSnapInfo snapInfo) {
+		this.snapInfo = snapInfo;
+	}
+
+	/**
+	 * Resets the snap info.
+	 */
+	protected void resetSnap() {
+		this.snapInfo = null;
+	}
+
+	/**
+	 * Gets the snap.
+	 *
+	 * @return the snap
+	 */
+	protected OAlignmentSnapInfo getSnap() {
+		return snapInfo != null ? snapInfo : new OAlignmentSnapInfo(0, 0);
+	}
+
+	/**
+	 * Updates the dropDetails after drop event.
+	 *
+	 * @param drag the drag
+	 */
+	public void updateDropDetails(VDragEvent drag) {
+		if (snapInfo != null) {
+			Map<String, Object> dropDetail = drag.getDropDetails();
+			int rTop = (int) dropDetail.get(Constants.DROP_DETAIL_RELATIVE_TOP);
+			int aTop = (int) dropDetail.get(Constants.DROP_DETAIL_ABSOLUTE_TOP);
+			int rLeft = (int) dropDetail.get(Constants.DROP_DETAIL_RELATIVE_LEFT);
+			int aLeft = (int) dropDetail.get(Constants.DROP_DETAIL_ABSOLUTE_LEFT);
+
+			rTop -= snapInfo.getY();
+			aTop -= snapInfo.getY();
+			rLeft -= snapInfo.getX();
+			aLeft -= snapInfo.getX();
+
+			dropDetail.put(Constants.DROP_DETAIL_RELATIVE_TOP, rTop);
+			dropDetail.put(Constants.DROP_DETAIL_ABSOLUTE_TOP, aTop);
+			dropDetail.put(Constants.DROP_DETAIL_RELATIVE_LEFT, rLeft);
+			dropDetail.put(Constants.DROP_DETAIL_ABSOLUTE_LEFT, aLeft);
+		}
+	}
+
+	/**
+	 * Updates the resized widget after the resizing was finished.
+	 *
+	 * @param accept the accept
+	 * @param oldWidth the old width
+	 * @param oldHeight the old height
+	 */
+	public void updateResizedWidget(boolean accept, int oldWidth, int oldHeight) {
+		if (accept) {
+			int width = resizingOverlay.getOffsetWidth();
+			int height = resizingOverlay.getOffsetHeight();
+
+			resizingWidget.getElement().getStyle().setWidth(width, Unit.PX);
+			resizingWidget.getElement().getStyle().setHeight(height, Unit.PX);
+
+			resizingWidget.notifyResized(width, height, oldWidth, oldHeight, resizeLocation);
+		} else {
+			resizingWidget.notifyResizingCancel();
+		}
+	}
+
+	/**
+	 * Returns the widget that is currently resized.
+	 *
+	 * @return the resizing widget
+	 */
+	public Widget getResizingWidget() {
+		return resizingWidget;
+	}
+
+	/**
+	 * Returns the resizing operation currently performed.
+	 *
+	 * @return the resize location
+	 */
+	public OResizeLocation getResizeLocation() {
+		return resizeLocation;
+	}
+
+	/**
+	 * Returns true, if alignments should be used.
+	 *
+	 * @return true, if is use alignments
+	 */
+	public boolean isUseAlignments() {
+		return useAlignments;
+	}
+
+	/**
+	 * Sets the use alignments.
+	 *
+	 * @param useAlignments the new use alignments
+	 */
+	public void setUseAlignments(boolean useAlignments) {
+		// if alignments switched off, ensure that pending alignments are being
+		// removed.
+		if (this.useAlignments == true && useAlignments == false) {
+			Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
+				@Override
+				public void execute() {
+					resetSnap();
+					resetAlignments();
+				}
+			});
+		}
+		this.useAlignments = useAlignments;
+	}
+
+}
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAlignmentOverlay.java b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAlignmentOverlay.java
new file mode 100644
index 0000000..014c996
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAlignmentOverlay.java
@@ -0,0 +1,306 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.absolutelayout.client;
+
+import com.google.gwt.dom.client.Element;
+import com.google.gwt.dom.client.Style.Unit;
+import com.google.gwt.user.client.Timer;
+import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.client.ui.VOverlay;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class OAlignmentOverlay.
+ */
+public class OAlignmentOverlay extends VOverlay {
+
+	/** The Constant THICKNESS. */
+	private static final int THICKNESS = 1;
+
+	/** The Constant CLASSNAME. */
+	private static final String CLASSNAME = "o-alignmentLine";
+
+	/** The alignment location. */
+	private final AlignmentsLocation alignmentLocation;
+	
+	/** The drag element. */
+	private final Element dragElement;
+
+	/** The snap timer. */
+	private Timer snapTimer;
+
+	/**
+	 * Shows alignment lines for drag and resize operations.
+	 *
+	 * @param owner the owner
+	 * @param dragElement the drag element
+	 * @param location the location
+	 * @param snap the snap
+	 * @param resize the resize
+	 * @param autoSnap the auto snap
+	 */
+	public OAlignmentOverlay(Widget owner, final Element dragElement, AlignmentsLocation location,
+			final OAlignmentSnapInfo snap, final boolean resize, boolean autoSnap) {
+		super(false, false);
+
+		super.setOwner(owner);
+		this.dragElement = dragElement;
+		this.alignmentLocation = location;
+
+		setStyleName(CLASSNAME);
+
+		setZIndex(VOverlay.Z_INDEX + 1);
+
+		if (autoSnap && (snap.getX() != 0 || snap.getY() != 0)) {
+			snapTimer = new Timer() {
+				@Override
+				public void run() {
+					if (resize) {
+						snapResizeImagePosition(dragElement, snap);
+					} else {
+						snapDragImagePosition(dragElement, snap);
+					}
+				}
+			};
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see com.vaadin.client.ui.VOverlay#show()
+	 */
+	@Override
+	public void show() {
+		int left = 0;
+		int top = 0;
+		int width = 0;
+		int height = 0;
+
+		if (alignmentLocation == null) {
+			return;
+		}
+
+		switch (alignmentLocation) {
+		case TOP_EDGE_TOLEFT:
+			width = getAlignmentLineX();
+			left = getOwner().getOffsetWidth() - width;
+			height = THICKNESS;
+			break;
+		case TOP_EDGE_TORIGHT:
+			width = getAlignmentLineX();
+			left = 0;
+			height = THICKNESS;
+			break;
+		case BOTTOM_EDGE_TOLEFT:
+			top = getOwner().getOffsetHeight();
+			width = getAlignmentLineX();
+			left = getOwner().getOffsetWidth() - width;
+			height = THICKNESS;
+			break;
+		case BOTTOM_EDGE_TORIGHT:
+			width = getAlignmentLineX();
+			left = 0;
+			top = getOwner().getOffsetHeight();
+			height = THICKNESS;
+			break;
+		case LEFT_EDGE_TOBOTTOM:
+			top = 0;
+			width = THICKNESS;
+			height = getAlignmentLineY();
+			break;
+		case LEFT_EDGE_TOTOP:
+			top = getOwner().getOffsetHeight() - getAlignmentLineY();
+			width = THICKNESS;
+			height = getAlignmentLineY();
+			break;
+		case RIGHT_EDGE_TOBOTTOM:
+			top = 0;
+			left = getOwner().getOffsetWidth();
+			width = THICKNESS;
+			height = getAlignmentLineY();
+			break;
+		case RIGHT_EDGE_TOTOP:
+			top = getOwner().getOffsetHeight() - getAlignmentLineY();
+			left = getOwner().getOffsetWidth();
+			width = THICKNESS;
+			height = getAlignmentLineY();
+			break;
+		}
+
+		// set adjustment size
+		Element element = getContainerElement();
+		element.getStyle().setWidth(width, Unit.PX);
+		element.getStyle().setHeight(height, Unit.PX);
+		String bg = element.getStyle().getBackgroundColor();
+		if (bg == null || bg.equals("")) {
+			element.getStyle().setBackgroundColor("red");
+		}
+
+		// set the popup position
+		int absoluteLeft = getOwner().getAbsoluteLeft() + left;
+		int absoluteTop = getOwner().getAbsoluteTop() + top;
+		setPopupPosition(absoluteLeft, absoluteTop);
+
+		super.show();
+
+		if (snapTimer != null) {
+			snapTimer.schedule(300);
+		}
+	}
+
+	/**
+	 * Calculates the horizontal alignment line.
+	 *
+	 * @return the alignment line x
+	 */
+	private int getAlignmentLineX() {
+		if (isOwnerLeftOfImage()) {
+			return dragElement.getAbsoluteLeft() - getOwner().getAbsoluteLeft() + +dragElement.getOffsetWidth();
+		} else {
+			return getOwner().getAbsoluteLeft() - dragElement.getAbsoluteLeft() + getOwner().getOffsetWidth();
+		}
+	}
+
+	/**
+	 * Checks if is owner left of image.
+	 *
+	 * @return true, if is owner left of image
+	 */
+	private boolean isOwnerLeftOfImage() {
+		return getOwner().getAbsoluteLeft() < dragElement.getAbsoluteLeft();
+	}
+
+	/**
+	 * Calculates the vertical alignment line.
+	 *
+	 * @return the alignment line y
+	 */
+	private int getAlignmentLineY() {
+		if (isOwnerTopOfImage()) {
+			return dragElement.getAbsoluteTop() - getOwner().getAbsoluteTop() + dragElement.getOffsetHeight();
+		} else {
+			return getOwner().getAbsoluteTop() - dragElement.getAbsoluteTop() + getOwner().getOffsetHeight();
+		}
+	}
+
+	/**
+	 * Checks if is owner top of image.
+	 *
+	 * @return true, if is owner top of image
+	 */
+	private boolean isOwnerTopOfImage() {
+		return getOwner().getAbsoluteTop() < dragElement.getAbsoluteTop();
+	}
+
+	/* (non-Javadoc)
+	 * @see com.vaadin.client.ui.VOverlay#hide()
+	 */
+	@Override
+	public void hide() {
+		if (snapTimer != null) {
+			snapTimer.cancel();
+		}
+
+		super.hide();
+	}
+
+	/**
+	 * Snap drag image position.
+	 *
+	 * @param dragImage the drag image
+	 * @param snap the snap
+	 */
+	private void snapDragImagePosition(final Element dragImage, final OAlignmentSnapInfo snap) {
+		int offsetTop = 0;
+		try {
+			String offsetTopStr = dragImage.getStyle().getMarginTop();
+			offsetTop = Integer.parseInt(offsetTopStr.substring(0, offsetTopStr.length() - 2));
+		} catch (NumberFormatException e) {
+			// nothing to do
+		}
+		dragImage.getStyle().setTop(dragImage.getAbsoluteTop() - offsetTop - snap.getY(), Unit.PX);
+
+		int offsetLeft = 0;
+		try {
+			String offsetLeftStr = dragImage.getStyle().getMarginLeft();
+			offsetLeft = Integer.parseInt(offsetLeftStr.substring(0, offsetLeftStr.length() - 2));
+		} catch (NumberFormatException e) {
+			// nothing to do
+		}
+		dragImage.getStyle().setLeft(dragImage.getAbsoluteLeft() - offsetLeft - snap.getX(), Unit.PX);
+	}
+
+	/**
+	 * Snap resize image position.
+	 *
+	 * @param dragImage the drag image
+	 * @param delta the delta
+	 */
+	private void snapResizeImagePosition(final Element dragImage, final OAlignmentSnapInfo delta) {
+
+		OResizeLocation location = OAlignmentManager.get().getResizeLocation();
+		int oldWidth = dragImage.getOffsetWidth();
+		int oldHeigth = dragImage.getOffsetHeight();
+
+		int newWidth = 0;
+		int newHeight = 0;
+
+		switch (location) {
+		case TOP:
+		case TOP_LEFT:
+		case LEFT:
+			newHeight = oldHeigth + delta.getY();
+			newWidth = oldWidth + delta.getX();
+			break;
+		case BOTTOM:
+		case BOTTOM_RIGHT:
+		case RIGHT:
+			newHeight = oldHeigth - delta.getY();
+			newWidth = oldWidth - delta.getX();
+			break;
+		case TOP_RIGHT:
+			newHeight = oldHeigth + delta.getY();
+			newWidth = oldWidth - delta.getX();
+			break;
+		case BOTTOM_LEFT:
+			newHeight = oldHeigth - delta.getY();
+			newWidth = oldWidth + delta.getX();
+			break;
+		}
+
+		dragImage.getStyle().setWidth(newWidth, Unit.PX);
+		dragImage.getStyle().setHeight(newHeight, Unit.PX);
+	}
+
+	/**
+	 * Indicates where the alignments should be painted.
+	 */
+	public enum AlignmentsLocation {
+		
+		/** The top edge toleft. */
+		TOP_EDGE_TOLEFT, 
+ /** The top edge toright. */
+ TOP_EDGE_TORIGHT, 
+ /** The left edge totop. */
+ LEFT_EDGE_TOTOP, 
+ /** The left edge tobottom. */
+ LEFT_EDGE_TOBOTTOM, 
+ /** The bottom edge toleft. */
+ BOTTOM_EDGE_TOLEFT, 
+ /** The bottom edge toright. */
+ BOTTOM_EDGE_TORIGHT, 
+ /** The right edge totop. */
+ RIGHT_EDGE_TOTOP, 
+ /** The right edge tobottom. */
+ RIGHT_EDGE_TOBOTTOM
+	}
+}
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAlignmentSnapInfo.java b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAlignmentSnapInfo.java
new file mode 100644
index 0000000..3f8668e
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OAlignmentSnapInfo.java
@@ -0,0 +1,89 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.absolutelayout.client;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Defines the x and y pixel to the next snapping position. Location defines the
+ * type of resizing operation done.
+ */
+public class OAlignmentSnapInfo {
+
+	/** The x. */
+	private final int x; 
+	
+	/** The y. */
+	private final int y;
+	
+	/** The location. */
+	private final OResizeLocation location;
+
+	/**
+	 * Instantiates a new o alignment snap info.
+	 *
+	 * @param x the x
+	 * @param y the y
+	 */
+	public OAlignmentSnapInfo(int x, int y) {
+		super();
+		this.x = x;
+		this.y = y;
+		this.location = null;
+	}
+
+	/**
+	 * Instantiates a new o alignment snap info.
+	 *
+	 * @param x the x
+	 * @param y the y
+	 * @param location the location
+	 */
+	public OAlignmentSnapInfo(int x, int y, OResizeLocation location) {
+		super();
+		this.x = x;
+		this.y = y;
+		this.location = location;
+	}
+
+	/**
+	 * X value is delta from dragElement - absoluteLayout#child. A negative
+	 * value means, that the dragged element is more left (left is smaller) then
+	 * the child from absolute layout.
+	 *
+	 * @return the x
+	 */
+	public int getX() {
+		return x;
+	}
+
+	/**
+	 * Y value is delta from dragElement - absoluteLayout#child. A negative
+	 * value means, that the dragged element is more top (top is smaller) then
+	 * the child from absolute layout.
+	 *
+	 * @return the y
+	 */
+	public int getY() {
+		return y;
+	}
+
+	/**
+	 * Gets the location.
+	 *
+	 * @return the location
+	 */
+	public OResizeLocation getLocation() {
+		return location;
+	}
+
+}
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OChildResizeListener.java b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OChildResizeListener.java
new file mode 100644
index 0000000..0e86dd6
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OChildResizeListener.java
@@ -0,0 +1,37 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.absolutelayout.client;
+
+import com.vaadin.shared.Connector;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Listener that is notified, if the resize operation proceeded.
+ *
+ * see OChildResizeEvent
+ */
+public interface OChildResizeListener {
+
+	/**
+	 * Is called if the resize operation proceeded.
+	 *
+	 * @param child the child
+	 * @param newWidth the new width
+	 * @param newHeight the new height
+	 * @param oldWidth the old width
+	 * @param oldHeight the old height
+	 * @param location the location
+	 */
+	void resized(Connector child, int newWidth, int newHeight, int oldWidth, int oldHeight, OResizeLocation location);
+
+}
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OResizeLocation.java b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OResizeLocation.java
new file mode 100644
index 0000000..49b0c44
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/client/OResizeLocation.java
@@ -0,0 +1,92 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.absolutelayout.client;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Enum OResizeLocation.
+ */
+public enum OResizeLocation {
+    
+    /** The top left. */
+    TOP_LEFT, 
+ /** The top. */
+ TOP, 
+ /** The top right. */
+ TOP_RIGHT, 
+ /** The right. */
+ RIGHT, 
+ /** The bottom right. */
+ BOTTOM_RIGHT, 
+ /** The bottom. */
+ BOTTOM, 
+ /** The bottom left. */
+ BOTTOM_LEFT, 
+ /** The left. */
+ LEFT;
+	
+	/**
+	 * Checks if is top.
+	 *
+	 * @return true, if is top
+	 */
+	public boolean isTop(){
+		return this == OResizeLocation.TOP_LEFT || this == OResizeLocation.TOP || this == OResizeLocation.TOP_RIGHT;
+	}
+	
+	/**
+	 * Checks if is bottom.
+	 *
+	 * @return true, if is bottom
+	 */
+	public boolean isBottom(){
+		return this == OResizeLocation.BOTTOM_LEFT || this == OResizeLocation.BOTTOM || this == OResizeLocation.BOTTOM_RIGHT;
+	}
+	
+	/**
+	 * Checks if is left.
+	 *
+	 * @return true, if is left
+	 */
+	public boolean isLeft(){
+		return this == OResizeLocation.TOP_LEFT || this == OResizeLocation.LEFT || this == OResizeLocation.BOTTOM_LEFT;
+	}
+	
+	/**
+	 * Checks if is right.
+	 *
+	 * @return true, if is right
+	 */
+	public boolean isRight(){
+		return this == OResizeLocation.TOP_RIGHT || this == OResizeLocation.RIGHT || this == OResizeLocation.BOTTOM_RIGHT;
+	}
+	
+	/**
+	 * Checks if is y.
+	 *
+	 * @return true, if is y
+	 */
+	public boolean isY(){
+		return isTop() || isBottom();
+	}
+	
+	/**
+	 * Checks if is x.
+	 *
+	 * @return true, if is x
+	 */
+	public boolean isX(){
+		return isLeft() || isRight();
+	}
+}
+
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/public/oabsolutelayout/styles.css b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/public/oabsolutelayout/styles.css
new file mode 100644
index 0000000..5fd286f
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/src/org/eclipse/osbp/vaadin/addons/absolutelayout/public/oabsolutelayout/styles.css
@@ -0,0 +1,66 @@
+
+	.v-absolutelayout .o-alignmentLine {
+		// the color of the alignment line
+		background-color: green;
+	}
+
+	.o-absolutelayout{
+		// the amount of pixels, a snap to alignment lines is done
+		snap: 7;
+	}
+
+    .v-absolutelayout .v-absolutelayout-wrapper-o-resizable .resizing {
+      overflow: visible;
+    }
+    .v-absolutelayout .v-absolutelayout-wrapper-o-resizable .drag-overlay {
+      border: 1px solid red;
+      -webkit-box-sizing: border-box;
+      -moz-box-sizing: border-box;
+      box-sizing: border-box;
+      position: absolute;
+      z-index: 10;
+    }
+    .v-absolutelayout .v-absolutelayout-wrapper-o-resizable .tlc, 
+    .v-absolutelayout .v-absolutelayout-wrapper-o-resizable .te, 
+    .v-absolutelayout .v-absolutelayout-wrapper-o-resizable .trc, 
+    .v-absolutelayout .v-absolutelayout-wrapper-o-resizable .re, 
+    .v-absolutelayout .v-absolutelayout-wrapper-o-resizable .brc, 
+    .v-absolutelayout .v-absolutelayout-wrapper-o-resizable .be, 
+    .v-absolutelayout .v-absolutelayout-wrapper-o-resizable .blc, 
+    .v-absolutelayout .v-absolutelayout-wrapper-o-resizable .le {
+      background-color: transparent;
+      display: block;
+      overflow: visible;
+      position: absolute;
+    }
+    .v-absolutelayout .v-absolutelayout-wrapper-o-resizable .div.unused {
+      cursor: default !important;
+    }
+    .v-absolutelayout .v-absolutelayout-wrapper-o-resizable .te {
+      cursor: ns-resize;
+      top: 0;
+      left: 0;
+      right: 0;
+      z-index: 6;
+    }
+    .v-absolutelayout .v-absolutelayout-wrapper-o-resizable .re {
+      cursor: ew-resize;
+      top: 0;
+      right: 0;
+      bottom: 0;
+      z-index: 5;
+    }
+    .v-absolutelayout .v-absolutelayout-wrapper-o-resizable .le {
+      cursor: ew-resize;
+      top: 0;
+      bottom: 0;
+      left: 0;
+      z-index: 5;
+    }
+    .v-absolutelayout .v-absolutelayout-wrapper-o-resizable .be {
+      cursor: ns-resize;
+      right: 0;
+      bottom: 0;
+      left: 0;
+      z-index: 6;
+    }
diff --git a/org.eclipse.osbp.vaadin.addons.absolutelayout/test/org/eclipse/osbp/vaadin/addons/absolutelayout/AbsoluteLayoutTest.java b/org.eclipse.osbp.vaadin.addons.absolutelayout/test/org/eclipse/osbp/vaadin/addons/absolutelayout/AbsoluteLayoutTest.java
new file mode 100644
index 0000000..602d9d2
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.absolutelayout/test/org/eclipse/osbp/vaadin/addons/absolutelayout/AbsoluteLayoutTest.java
@@ -0,0 +1,99 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+ package org.eclipse.osbp.vaadin.addons.absolutelayout;
+
+import com.vaadin.testbench.ScreenshotOnFailureRule;
+import com.vaadin.testbench.TestBenchTestCase;
+import com.vaadin.testbench.elements.ButtonElement;
+import com.vaadin.testbench.elements.LabelElement;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.openqa.selenium.firefox.FirefoxDriver;
+
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+/**
+ * This class contains JUnit tests, which are run using Vaadin TestBench 4.
+ *
+ * To run this, first get an evaluation license from
+ * https://vaadin.com/addon/vaadin-testbench and follow the instructions at
+ * https://vaadin.com/directory/help/installing-cval-license to install it.
+ *
+ * Once the license is installed, you can run this class as a JUnit test.
+ */
+public class AbsoluteLayoutTest extends TestBenchTestCase {
+    @Rule
+    public ScreenshotOnFailureRule screenshotOnFailureRule =
+            new ScreenshotOnFailureRule(this, true);
+
+    @Before
+    public void setUp() throws Exception {
+        setDriver(new FirefoxDriver()); // Firefox
+
+        // To use Chrome, first install chromedriver.exe from
+        // http://chromedriver.storage.googleapis.com/index.html
+        // on your system path (e.g. C:\Windows\System32\)
+        //   setDriver(new ChromeDriver()); // Chrome
+
+        // To use Internet Explorer, first install iedriverserver.exe from
+        // http://selenium-release.storage.googleapis.com/index.html?path=2.43/
+        // on your system path (e.g. C:\Windows\System32\)
+        //   setDriver(new InternetExplorerDriver()); // IE
+
+        // To test headlessly (without a browser), first install phantomjs.exe
+        // from http://phantomjs.org/download.html on your system path
+        // (e.g. C:\Windows\System32\)
+        //   setDriver(new PhantomJSDriver()); // PhantomJS headless browser
+    }
+
+    /**
+     * Opens the URL where the application is deployed.
+     */
+    private void openTestUrl() {
+        getDriver().get("http://localhost:8080/org.eclipse.osbp.vaadin.addons.absolutelayout");
+    }
+
+    @Test
+    public void testClickButton() throws Exception {
+        openTestUrl();
+
+        // At first there should be no labels
+        assertFalse($(LabelElement.class).exists());
+
+        // Click the button
+        ButtonElement clickMeButton = $(ButtonElement.class).
+                caption("Click Me").first();
+        clickMeButton.click();
+
+        // There should now be one label
+        assertEquals(1, $(LabelElement.class).all().size());
+        // ... with the specified text
+        assertEquals("Thank you for clicking",
+                $(LabelElement.class).first().getText());
+
+        // Click the button again
+        clickMeButton.click();
+
+        // There should now be two labels
+        List<LabelElement> allLabels = $(LabelElement.class).all();
+        assertEquals(2, allLabels.size());
+        // ... and the last label should have the correct text
+        LabelElement lastLabel = allLabels.get(1);
+        assertEquals("Thank you for clicking", lastLabel.getText());
+    }
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/.designer/designer-theme.css b/org.eclipse.osbp.vaadin.addons.designer.overlay/.designer/designer-theme.css
new file mode 100644
index 0000000..3aa7ca1
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/.designer/designer-theme.css
@@ -0,0 +1,12934 @@
+/**
+ * Checks if a list contains a certain value.
+ * 
+ * @param {list} $list - the list to check
+ * @param {value} $var - the value to search for
+ * @param {bool} $recursive (false) - should any contained lists be checked for the value
+ * 
+ * @return {bool} true if the value is found from the list, false otherwise
+ * 
+ * @group lists
+ */
+
+/**
+ * Cross-browser opacity.
+ *
+ * @param {number} $value - opacity value from 0 to 1
+ * @param {bool} $important (false) - should the property value be declared with !important
+ *
+ * @group util
+ */
+
+@-webkit-keyframes valo-animate-in-fade {
+		0% {
+		opacity: 0;
+	}
+	}
+
+@-moz-keyframes valo-animate-in-fade {
+		0% {
+		opacity: 0;
+	}
+	}
+
+@keyframes valo-animate-in-fade {
+		0% {
+		opacity: 0;
+	}
+	}
+
+@-webkit-keyframes valo-animate-out-fade {
+		100% {
+		opacity: 0;
+	}
+	}
+
+@-moz-keyframes valo-animate-out-fade {
+		100% {
+		opacity: 0;
+	}
+	}
+
+@keyframes valo-animate-out-fade {
+		100% {
+		opacity: 0;
+	}
+	}
+
+@-webkit-keyframes valo-animate-in-slide-down {
+		0% {
+		-webkit-transform: translateY(-100%);
+	}
+	}
+
+@-moz-keyframes valo-animate-in-slide-down {
+		0% {
+		-moz-transform: translateY(-100%);
+	}
+	}
+
+@keyframes valo-animate-in-slide-down {
+		0% {
+		-webkit-transform: translateY(-100%);
+		-moz-transform: translateY(-100%);
+		-ms-transform: translateY(-100%);
+		-o-transform: translateY(-100%);
+		transform: translateY(-100%);
+	}
+	}
+
+@-webkit-keyframes valo-animate-in-slide-up {
+		0% {
+		-webkit-transform: translateY(100%);
+	}
+	}
+
+@-moz-keyframes valo-animate-in-slide-up {
+		0% {
+		-moz-transform: translateY(100%);
+	}
+	}
+
+@keyframes valo-animate-in-slide-up {
+		0% {
+		-webkit-transform: translateY(100%);
+		-moz-transform: translateY(100%);
+		-ms-transform: translateY(100%);
+		-o-transform: translateY(100%);
+		transform: translateY(100%);
+	}
+	}
+
+@-webkit-keyframes valo-animate-in-slide-left {
+		0% {
+		-webkit-transform: translateX(100%);
+	}
+	}
+
+@-moz-keyframes valo-animate-in-slide-left {
+		0% {
+		-moz-transform: translateX(100%);
+	}
+	}
+
+@keyframes valo-animate-in-slide-left {
+		0% {
+		-webkit-transform: translateX(100%);
+		-moz-transform: translateX(100%);
+		-ms-transform: translateX(100%);
+		-o-transform: translateX(100%);
+		transform: translateX(100%);
+	}
+	}
+
+@-webkit-keyframes valo-animate-in-slide-right {
+		0% {
+		-webkit-transform: translateX(-100%);
+	}
+	}
+
+@-moz-keyframes valo-animate-in-slide-right {
+		0% {
+		-moz-transform: translateX(-100%);
+	}
+	}
+
+@keyframes valo-animate-in-slide-right {
+		0% {
+		-webkit-transform: translateX(-100%);
+		-moz-transform: translateX(-100%);
+		-ms-transform: translateX(-100%);
+		-o-transform: translateX(-100%);
+		transform: translateX(-100%);
+	}
+	}
+
+@-webkit-keyframes valo-animate-out-slide-down {
+		100% {
+		-webkit-transform: translateY(100%);
+	}
+	}
+
+@-moz-keyframes valo-animate-out-slide-down {
+		100% {
+		-moz-transform: translateY(100%);
+	}
+	}
+
+@keyframes valo-animate-out-slide-down {
+		100% {
+		-webkit-transform: translateY(100%);
+		-moz-transform: translateY(100%);
+		-ms-transform: translateY(100%);
+		-o-transform: translateY(100%);
+		transform: translateY(100%);
+	}
+	}
+
+@-webkit-keyframes valo-animate-out-slide-up {
+		100% {
+		-webkit-transform: translateY(-100%);
+	}
+	}
+
+@-moz-keyframes valo-animate-out-slide-up {
+		100% {
+		-moz-transform: translateY(-100%);
+	}
+	}
+
+@keyframes valo-animate-out-slide-up {
+		100% {
+		-webkit-transform: translateY(-100%);
+		-moz-transform: translateY(-100%);
+		-ms-transform: translateY(-100%);
+		-o-transform: translateY(-100%);
+		transform: translateY(-100%);
+	}
+	}
+
+@-webkit-keyframes valo-animate-out-slide-left {
+		100% {
+		-webkit-transform: translateX(-100%);
+	}
+	}
+
+@-moz-keyframes valo-animate-out-slide-left {
+		100% {
+		-moz-transform: translateX(-100%);
+	}
+	}
+
+@keyframes valo-animate-out-slide-left {
+		100% {
+		-webkit-transform: translateX(-100%);
+		-moz-transform: translateX(-100%);
+		-ms-transform: translateX(-100%);
+		-o-transform: translateX(-100%);
+		transform: translateX(-100%);
+	}
+	}
+
+@-webkit-keyframes valo-animate-out-slide-right {
+		100% {
+		-webkit-transform: translateX(100%);
+	}
+	}
+
+@-moz-keyframes valo-animate-out-slide-right {
+		100% {
+		-moz-transform: translateX(100%);
+	}
+	}
+
+@keyframes valo-animate-out-slide-right {
+		100% {
+		-webkit-transform: translateX(100%);
+		-moz-transform: translateX(100%);
+		-ms-transform: translateX(100%);
+		-o-transform: translateX(100%);
+		transform: translateX(100%);
+	}
+	}
+
+@-webkit-keyframes valo-overlay-animate-in {
+		0% {
+		-webkit-transform: translatey(-4px);
+		opacity: 0;
+	}
+	}
+
+@-moz-keyframes valo-overlay-animate-in {
+		0% {
+		-moz-transform: translatey(-4px);
+		opacity: 0;
+	}
+	}
+
+@keyframes valo-overlay-animate-in {
+		0% {
+		-webkit-transform: translatey(-4px);
+		-moz-transform: translatey(-4px);
+		-ms-transform: translatey(-4px);
+		-o-transform: translatey(-4px);
+		transform: translatey(-4px);
+		opacity: 0;
+	}
+	}
+
+@-webkit-keyframes valo-animate-out-slide-down-fade {
+		100% {
+		opacity: 0;
+		-webkit-transform: translatey(30%);
+	}
+	}
+
+@-moz-keyframes valo-animate-out-slide-down-fade {
+		100% {
+		opacity: 0;
+		-moz-transform: translatey(30%);
+	}
+	}
+
+@keyframes valo-animate-out-slide-down-fade {
+		100% {
+		opacity: 0;
+		-webkit-transform: translatey(30%);
+		-moz-transform: translatey(30%);
+		-ms-transform: translatey(30%);
+		-o-transform: translatey(30%);
+		transform: translatey(30%);
+	}
+	}
+
+/**
+ * Outputs cross-browser Valo-specific linear gradient background-image declarations.
+ * 
+ * @group style
+ * 
+ * @param {color} $color ($v-background-color) - The base color for the gradient color stops
+ * @param {list} $gradient ($v-gradient) - Valo-specific gradient value. See the documentation for $v-gradient.
+ * @param {color} $fallback (null) - A fallback color for browser which do not support linear gradients (IE8 and IE9 in particular). If null, the base $color is used instead.
+ * @param {string} $direction (to bottom) - the direction of the linear gradient. The color stops are by default so that a lighter shade is at the start and a darker shade is at the end.
+ */
+
+/**
+ * Computes a CSS border property value for the given base color.
+ *
+ * @group style
+ *
+ * @param {list} $border ($v-border) - CSS border value which can contain any of the color keywords
+ * @param {color} $color ($v-background-color) - the base color to which the color keywords are applied to
+ * @param {color} $context (null) - context/surrounding color where the border is expected to appear. The color of the final border is the darker of the two parameters passed to this function.
+ * @param {number} $strength (1) - adjustment for the border contrast
+ *
+ * @return {list} The input $border value with any color keyword replaced with the corresponding actual color
+ */
+
+/**
+ * Ouput selectors and properties to vertically center elements inside their parent.
+ * 
+ * @param {string} $to-align (()) - The selector to match the elements which you wish to align vertically. The targeted elements should be inline or inline-block elements.
+ * @param {string} $align (middle) - The vertical-align value, e.g. top, middle, bottom
+ * @param {string} $pseudo-element (after) - Which pseudo element to use for the vertical align guide
+ * 
+ * @group util
+ */
+
+@font-face {
+	font-family: ThemeIcons;
+	font-weight: normal;
+	font-style: normal;
+	src: url(../valo/util/bourbon/css3/../../../../base/fonts/themeicons-webfont.eot);
+	src: url(../valo/util/bourbon/css3/../../../../base/fonts/themeicons-webfont.eot?#iefix) format("embedded-opentype"), url(../valo/util/bourbon/css3/../../../../base/fonts/themeicons-webfont.woff) format("woff"), url(../valo/util/bourbon/css3/../../../../base/fonts/themeicons-webfont.ttf) format("truetype"), url(../valo/util/bourbon/css3/../../../../base/fonts/themeicons-webfont.svg#ThemeIcons) format("svg");
+}
+
+.ThemeIcons {
+	font-family: ThemeIcons;
+	font-style: normal;
+	font-weight: normal;
+	-webkit-font-smoothing: antialiased;
+	-moz-osx-font-smoothing: grayscale;
+	display: inline-block;
+	text-align: center;
+}
+
+@font-face {
+	font-family: FontAwesome;
+	font-weight: normal;
+	font-style: normal;
+	src: url(../valo/util/bourbon/css3/../../../../base/fonts/fontawesome-webfont.eot);
+	src: url(../valo/util/bourbon/css3/../../../../base/fonts/fontawesome-webfont.eot?#iefix) format("embedded-opentype"), url(../valo/util/bourbon/css3/../../../../base/fonts/fontawesome-webfont.woff) format("woff"), url(../valo/util/bourbon/css3/../../../../base/fonts/fontawesome-webfont.ttf) format("truetype"), url(../valo/util/bourbon/css3/../../../../base/fonts/fontawesome-webfont.svg#FontAwesome) format("svg");
+}
+
+.FontAwesome {
+	font-family: FontAwesome;
+	font-style: normal;
+	font-weight: normal;
+	-webkit-font-smoothing: antialiased;
+	-moz-osx-font-smoothing: grayscale;
+	display: inline-block;
+	text-align: center;
+}
+
+@font-face {
+	font-family: "Open Sans";
+	src: url(../valo/fonts/open-sans/OpenSans-Light-webfont.eot);
+	src: url(../valo/fonts/open-sans/OpenSans-Light-webfont.eot?#iefix) format("embedded-opentype"), url(../valo/fonts/open-sans/OpenSans-Light-webfont.woff) format("woff"), url(../valo/fonts/open-sans/OpenSans-Light-webfont.ttf) format("truetype");
+	font-weight: 300;
+	font-style: normal;
+}
+
+@font-face {
+	font-family: "Open Sans";
+	src: url(../valo/fonts/open-sans/OpenSans-Regular-webfont.eot);
+	src: url(../valo/fonts/open-sans/OpenSans-Regular-webfont.eot?#iefix) format("embedded-opentype"), url(../valo/fonts/open-sans/OpenSans-Regular-webfont.woff) format("woff"), url(../valo/fonts/open-sans/OpenSans-Regular-webfont.ttf) format("truetype");
+	font-weight: 400;
+	font-style: normal;
+}
+
+@font-face {
+	font-family: "Open Sans";
+	src: url(../valo/fonts/open-sans/OpenSans-Semibold-webfont.eot);
+	src: url(../valo/fonts/open-sans/OpenSans-Semibold-webfont.eot?#iefix) format("embedded-opentype"), url(../valo/fonts/open-sans/OpenSans-Semibold-webfont.woff) format("woff"), url(../valo/fonts/open-sans/OpenSans-Semibold-webfont.ttf) format("truetype");
+	font-weight: 600;
+	font-style: normal;
+}
+
+@-webkit-keyframes v-rotate-360 {
+		to {
+		-webkit-transform: rotate(360deg);
+	}
+	}
+
+@-moz-keyframes v-rotate-360 {
+		to {
+		-moz-transform: rotate(360deg);
+	}
+	}
+
+@-o-keyframes v-rotate-360 {
+		to {
+		-o-transform: rotate(360deg);
+	}
+	}
+
+@keyframes v-rotate-360 {
+		to {
+		transform: rotate(360deg);
+	}
+	}
+
+@-webkit-keyframes v-progress-start {
+		0% {
+		width: 0%;
+	}
+		100% {
+		width: 50%;
+	}
+	}
+
+@-moz-keyframes v-progress-start {
+		0% {
+		width: 0%;
+	}
+		100% {
+		width: 50%;
+	}
+	}
+
+@keyframes v-progress-start {
+		0% {
+		width: 0%;
+	}
+		100% {
+		width: 50%;
+	}
+	}
+
+@-webkit-keyframes v-progress-delay {
+		0% {
+		width: 50%;
+	}
+		100% {
+		width: 90%;
+	}
+	}
+
+@-moz-keyframes v-progress-delay {
+		0% {
+		width: 50%;
+	}
+		100% {
+		width: 90%;
+	}
+	}
+
+@keyframes v-progress-delay {
+		0% {
+		width: 50%;
+	}
+		100% {
+		width: 90%;
+	}
+	}
+
+@-webkit-keyframes v-progress-wait {
+		0% {
+		width: 90%;
+		height: 4px;
+	}
+		3% {
+		width: 91%;
+		height: 7px;
+	}
+		100% {
+		width: 96%;
+		height: 7px;
+	}
+	}
+
+@-moz-keyframes v-progress-wait {
+		0% {
+		width: 90%;
+		height: 4px;
+	}
+		3% {
+		width: 91%;
+		height: 7px;
+	}
+		100% {
+		width: 96%;
+		height: 7px;
+	}
+	}
+
+@keyframes v-progress-wait {
+		0% {
+		width: 90%;
+		height: 4px;
+	}
+		3% {
+		width: 91%;
+		height: 7px;
+	}
+		100% {
+		width: 96%;
+		height: 7px;
+	}
+	}
+
+@-webkit-keyframes v-progress-wait-pulse {
+		0% {
+		opacity: 1;
+	}
+		50% {
+		opacity: 0.1;
+	}
+		100% {
+		opacity: 1;
+	}
+	}
+
+@-moz-keyframes v-progress-wait-pulse {
+		0% {
+		opacity: 1;
+	}
+		50% {
+		opacity: 0.1;
+	}
+		100% {
+		opacity: 1;
+	}
+	}
+
+@keyframes v-progress-wait-pulse {
+		0% {
+		opacity: 1;
+	}
+		50% {
+		opacity: 0.1;
+	}
+		100% {
+		opacity: 1;
+	}
+	}
+
+/**
+ * Outputs the context menu selectors and styles, which is used by Table and Tree for instance.
+ * 
+ * @requires {mixin} valo-selection-item-style
+ * @requires {mixin} valo-selection-item-selected-style
+ */
+
+/**
+ * The background color for overlay elements.
+ *
+ * @type color
+ * @group overlay
+ */
+
+.v-shadow, .v-shadow-window {
+	display: none;
+}
+
+.v-ie8 .v-shadow, .v-ie8 .v-shadow-window {
+	display: block;
+}
+
+.v-ie8 .v-shadow .top, .v-ie8 .v-shadow-window .top {
+	position: absolute;
+	top: -6px;
+	right: 10px;
+	bottom: 6px;
+	left: -10px;
+	background: black;
+	filter: alpha(opacity=5) progid:DXImageTransform.Microsoft.blur(pixelradius=10, makeShadow=false);
+}
+
+.v-ie8 .v-shadow .top-left, .v-ie8 .v-shadow-window .top-left {
+	position: absolute;
+	top: -1px;
+	right: -1px;
+	bottom: -1px;
+	left: -1px;
+	background: black;
+	filter: alpha(opacity=9) progid:DXImageTransform.Microsoft.blur(pixelradius=0, makeShadow=false);
+}
+
+/**
+ * The backgound color for tooltips.
+ *
+ * @type color
+ * @group tooltip
+ */
+
+/**
+ *
+ *
+ * @param {string} $primary-stylename (v-absolutelayout) - 
+ *
+ * @group absolutelayout
+ */
+
+/**
+ * Outputs the selectors and properties for the Accordion component.
+ *
+ * @param {string} $primary-stylename (v-accordion) - the primary style name for the selectors
+ * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component
+ * @group accordion
+ */
+
+/**
+ * Outputs the selectors and properties for the Button component.
+ *
+ * @param {string} $primary-stylename (v-button) - the primary style name for the selectors
+ * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component
+ *
+ * @group button
+ */
+
+/**
+ * A list of colors for custom event colors. Can be an empty list of you don't 
+ * need any custom event colors.
+ * 
+ * @example javascript
+ * // Java code
+ * // 'event' is an instance of EditableCalendarEvent
+ * event.setStyleName("color1"); // 1st color in the list
+ * event.setStyleName("color2"); // 2nd color in the list
+ * // etc.
+ * 
+ * @group calendar
+ */
+
+/**
+ * Outputs the selectors and properties for the CheckBox component.
+ *
+ * @param {string} $primary-stylename (v-checkbox) - the primary style name for the selectors
+ * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component
+ *
+ * @group checkbox
+ */
+
+/**
+ * Outputs the global selectors and properties for the ColorPicker component - styles which are 
+ * considered mandatory for the component to work properly.
+ *
+ * @param {string} $primary-stylename (v-colorpicker) - the primary style name for the selectors
+ *
+ * @group colorpicker
+ */
+
+/**
+ * Outputs the selectors and properties for the ComboBox component.
+ *
+ * @param {string} $primary-stylename (v-filterselect) - the primary style name for the selectors
+ * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component
+ *
+ * @group combobox
+ */
+
+/**
+ * The amount of spacing between different widgets in a component group.
+ * If null, a computed value is used ($v-border size * -1, or 1px if $v-border size is 0)
+ * 
+ * @group csslayout
+ */
+
+/**
+ *
+ *
+ * @param {string} $primary-stylename (v-customcomponent) - 
+ *
+ * @group customcomponent
+ */
+
+/**
+ *
+ *
+ * @param {string} $primary-stylename (v-customlayout) - 
+ *
+ * @group customlayout
+ */
+
+/**
+ * Outputs the selectors and properties for the DateField component.
+ *
+ * @param {string} $primary-stylename (v-datefield) - the primary style name for the selectors
+ * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component
+ *
+ * @group datefield
+ */
+
+/**
+ * Outputs the styles and selectors for the DragAndDropWrapper component.
+ * 
+ * @param {string} $primary-stylename (v-ddwrapper) - the primary style name for the selectors
+ * 
+ * @group drag-n-drop
+ */
+
+/**
+ *
+ *
+ * @param {string} $primary-stylename (v-form) - 
+ *
+ * @group form
+ */
+
+/**
+ * Outputs the selectors and properties for the FormLayout component.
+ *
+ * @param {string} $primary-stylename (v-formlayout) - the primary style name for the selectors
+ * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component
+ *
+ * @group formlayout
+ */
+
+/**
+ *
+ * @group table
+ */
+
+@-webkit-keyframes valo-grid-editor-footer-animate-in {
+		0% {
+		margin-top: -37px;
+	}
+	}
+
+@-moz-keyframes valo-grid-editor-footer-animate-in {
+		0% {
+		margin-top: -37px;
+	}
+	}
+
+@keyframes valo-grid-editor-footer-animate-in {
+		0% {
+		margin-top: -37px;
+	}
+	}
+
+@-webkit-keyframes valo-grid-editor-footer-animate-in-alt {
+		0% {
+		margin-bottom: -38px;
+	}
+		100% {
+		margin-bottom: -1px;
+	}
+	}
+
+@-moz-keyframes valo-grid-editor-footer-animate-in-alt {
+		0% {
+		margin-bottom: -38px;
+	}
+		100% {
+		margin-bottom: -1px;
+	}
+	}
+
+@keyframes valo-grid-editor-footer-animate-in-alt {
+		0% {
+		margin-bottom: -38px;
+	}
+		100% {
+		margin-bottom: -1px;
+	}
+	}
+
+/**
+ *
+ *
+ * @param {string} $primary-stylename (v-gridlayout) - 
+ *
+ * @group gridlayout
+ */
+
+/**
+ * The font weight for headers.
+ * 
+ * @group label
+ */
+
+/**
+ *
+ * @group link
+ */
+
+/**
+ *
+ *
+ * @param {string} $primary-stylename (v-loginform) - 
+ *
+ * @group loginform
+ */
+
+/**
+ *
+ *
+ * @param {string} $primary-stylename (v-menubar) - 
+ * @param {bool} $include-additional-styles - 
+ *
+ * @group menubar
+ */
+
+/**
+ *
+ *
+ * @param {string} $primary-stylename (v-nativebutton) - 
+ *
+ * @group nativebutton
+ */
+
+/**
+ *
+ *
+ * @param {string} $primary-stylename (v-select) - 
+ *
+ * @group nativeselect
+ */
+
+/**
+ *
+ * @group notification
+ */
+
+/**
+ *
+ *
+ * @param {string} $primary-stylename (v-select-optiongroup) - 
+ * @param {bool} $include-additional-styles - 
+ *
+ * @group optiongroup
+ */
+
+/**
+ *
+ *
+ *
+ * @group orderedlayout
+ */
+
+/**
+ *
+ * @group panel
+ */
+
+@-webkit-keyframes v-popupview-animate-in {
+		0% {
+		-webkit-transform: scale(0);
+	}
+	}
+
+@-moz-keyframes v-popupview-animate-in {
+		0% {
+		-moz-transform: scale(0);
+	}
+	}
+
+@keyframes v-popupview-animate-in {
+		0% {
+		-webkit-transform: scale(0);
+		-moz-transform: scale(0);
+		-ms-transform: scale(0);
+		-o-transform: scale(0);
+		transform: scale(0);
+	}
+	}
+
+/**
+ *
+ * @group progressbar
+ */
+
+/**
+ *
+ * @group richtextarea
+ */
+
+/**
+ *
+ * @group slider
+ */
+
+/**
+ *
+ *
+ * @param {string} $primary-stylename (v-splitpanel) - 
+ * @param {bool} $include-additional-styles - 
+ *
+ * @group splitpanel
+ */
+
+/**
+ *
+ * @group table
+ */
+
+/**
+ * Should the tabsheet content changes be animated.
+ * 
+ * @group tabsheet
+ */
+
+/**
+ * The background color for text fields.
+ * @group textfield
+ */
+
+/**
+ * Outputs the selectors and properties for the TextArea component.
+ *
+ * @param {string} $primary-stylename (v-textarea) - the primary style name for the selectors
+ * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component
+ *
+ * @group textarea
+ */
+
+/**
+ *
+ * @group tree
+ */
+
+/**
+ *
+ *
+ * @param {string} $primary-stylename (v-treetable) - 
+ *
+ * @group treetable
+ */
+
+/**
+ *
+ *
+ * @param {string} $primary-stylename (v-select-twincol) - 
+ *
+ * @group twin-column-select
+ */
+
+/**
+ *
+ *
+ * @param {string} $primary-stylename (v-upload) -
+ *
+ * @group upload
+ */
+
+/**
+ *
+ */
+
+/**
+ * @group window
+ */
+
+@-webkit-keyframes valo-modal-window-indication {
+		0% {
+		opacity: 0;
+	}
+		100% {
+		opacity: 1;
+	}
+	}
+
+@-moz-keyframes valo-modal-window-indication {
+		0% {
+		opacity: 0;
+	}
+		100% {
+		opacity: 1;
+	}
+	}
+
+@keyframes valo-modal-window-indication {
+		0% {
+		opacity: 0;
+	}
+		100% {
+		opacity: 1;
+	}
+	}
+
+@-webkit-keyframes valo-animate-out-scale-down-fade {
+		100% {
+		-webkit-transform: scale(0.8);
+		opacity: 0;
+	}
+	}
+
+@-moz-keyframes valo-animate-out-scale-down-fade {
+		100% {
+		-moz-transform: scale(0.8);
+		opacity: 0;
+	}
+	}
+
+@keyframes valo-animate-out-scale-down-fade {
+		100% {
+		-webkit-transform: scale(0.8);
+		-moz-transform: scale(0.8);
+		-ms-transform: scale(0.8);
+		-o-transform: scale(0.8);
+		transform: scale(0.8);
+		opacity: 0;
+	}
+	}
+
+/**
+ * @group valo-menu
+ */
+
+.v-vaadin-version:after {
+	content: "7.6.1";
+}
+
+.v-widget {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	display: inline-block;
+	vertical-align: top;
+	text-align: left;
+	white-space: normal;
+}
+
+.v-generated-body {
+	overflow: hidden;
+	margin: 0;
+	padding: 0;
+	border: 0;
+}
+
+.v-app {
+	height: 100%;
+	-webkit-tap-highlight-color: transparent;
+	-webkit-text-size-adjust: 100%;
+	-ms-text-size-adjust: 100%;
+	-webkit-text-size-adjust: 100%;
+	-webkit-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+.v-app input[type="text"], .v-app .v-slot > .v-caption, .v-app .v-gridlayout-slot > .v-caption, .v-app .v-has-caption > .v-caption, .v-app .v-formlayout-captioncell > .v-caption, .v-app .v-csslayout > .v-caption {
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+}
+
+.v-app input::-ms-clear {
+	display: none;
+}
+
+.v-ui {
+	position: relative;
+}
+
+.v-ui.v-ui-embedded {
+	margin-top: -1px;
+	border-top: 1px solid transparent;
+}
+
+.v-ui:focus {
+	outline: none;
+}
+
+.v-overlay-container {
+	width: 0;
+	height: 0;
+}
+
+.v-drag-element {
+	z-index: 60000;
+	position: absolute !important;
+	cursor: default;
+}
+
+.v-clip {
+	overflow: hidden;
+}
+
+.v-scrollable {
+	overflow: auto;
+}
+
+.v-scrollable  > .v-widget {
+	vertical-align: middle;
+	overflow: hidden;
+}
+
+.v-ios.v-webkit .v-scrollable {
+	-webkit-overflow-scrolling: touch;
+}
+
+.v-ios5.v-webkit .v-scrollable {
+	-webkit-overflow-scrolling: none;
+}
+
+.v-webkit.v-ios .v-browserframe {
+	-webkit-overflow-scrolling: touch;
+	overflow: auto;
+}
+
+.v-assistive-device-only {
+	position: absolute;
+	top: -2000px;
+	left: -2000px;
+	width: 10px;
+	overflow: hidden;
+}
+
+.v-icon {
+	cursor: inherit;
+	-webkit-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+.v-icon, .v-errorindicator, .v-required-field-indicator {
+	display: inline-block;
+	line-height: inherit;
+}
+
+.v-caption {
+	display: inline-block;
+	white-space: nowrap;
+	line-height: 1.55;
+}
+
+.v-captiontext {
+	display: inline-block;
+	line-height: inherit;
+}
+
+div.v-layout.v-horizontal.v-widget {
+	white-space: nowrap;
+}
+
+.v-layout.v-vertical > .v-expand, .v-layout.v-horizontal > .v-expand {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	width: 100%;
+	height: 100%;
+}
+
+.v-slot, .v-spacing {
+	display: inline-block;
+	white-space: nowrap;
+	vertical-align: top;
+}
+
+.v-vertical > .v-slot:after {
+	display: inline-block;
+	clear: both;
+	width: 0;
+	height: 0;
+	overflow: hidden;
+}
+
+.v-vertical > .v-slot, .v-vertical > .v-expand > .v-slot {
+	display: block;
+	clear: both;
+}
+
+.v-horizontal > .v-slot, .v-horizontal > .v-expand > .v-slot {
+	height: 100%;
+}
+
+.v-horizontal > .v-expand > .v-slot {
+	position: relative;
+}
+
+.v-vertical > .v-spacing, .v-vertical > .v-expand > .v-spacing {
+	width: 0 !important;
+	display: block;
+	clear: both;
+}
+
+.v-horizontal > .v-spacing, .v-horizontal > .v-expand > .v-spacing {
+	height: 0 !important;
+}
+
+.v-align-middle:before, .v-align-bottom:before, .v-expand > .v-align-middle:before, .v-expand > .v-align-bottom:before {
+	content: "";
+	display: inline-block;
+	height: 100%;
+	vertical-align: middle;
+	width: 0;
+}
+
+.v-align-middle, .v-align-bottom {
+	white-space: nowrap;
+}
+
+.v-align-middle > .v-widget, .v-align-bottom > .v-widget {
+	display: inline-block;
+}
+
+.v-align-middle, .v-align-middle > .v-widget {
+	vertical-align: middle;
+}
+
+.v-align-bottom, .v-align-bottom > .v-widget {
+	vertical-align: bottom;
+}
+
+.v-align-center {
+	text-align: center;
+}
+
+.v-align-center > .v-widget {
+	margin-left: auto;
+	margin-right: auto;
+}
+
+.v-align-right {
+	text-align: right;
+}
+
+.v-align-right > .v-widget {
+	margin-left: auto;
+}
+
+.v-has-caption, .v-has-caption > .v-caption {
+	display: inline-block;
+}
+
+.v-caption-on-left, .v-caption-on-right {
+	white-space: nowrap;
+}
+
+.v-caption-on-top > .v-caption, .v-caption-on-bottom > .v-caption {
+	display: block;
+}
+
+.v-caption-on-left > .v-caption {
+	padding-right: 0.5em;
+}
+
+.v-caption-on-left > .v-widget, .v-caption-on-right > .v-widget {
+	display: inline-block;
+}
+
+.v-has-caption.v-has-width > .v-widget {
+	width: 100% !important;
+}
+
+.v-has-caption.v-has-height > .v-widget {
+	height: 100% !important;
+}
+
+.v-gridlayout {
+	position: relative;
+}
+
+.v-gridlayout-slot {
+	position: absolute;
+	line-height: 1.55;
+}
+
+.v-gridlayout-spacing-on {
+	overflow: hidden;
+}
+
+.v-gridlayout-spacing, .v-gridlayout-spacing-off {
+	padding-left: 0;
+	padding-top: 0;
+}
+
+.v-gridlayout-spacing-off {
+	overflow: hidden;
+}
+
+.v-calendar-month-day-scrollable {
+	overflow-y: scroll;
+}
+
+.v-calendar-week-wrapper {
+	position: relative;
+	overflow: hidden;
+}
+
+.v-calendar-current-time {
+	position: absolute;
+	left: 0;
+	width: 100%;
+	height: 1px;
+	background: red;
+	z-index: 2;
+}
+
+.v-calendar-event-resizetop, .v-calendar-event-resizebottom {
+	position: absolute;
+	height: 5%;
+	min-height: 3px;
+	width: 100%;
+	z-index: 1;
+}
+
+.v-calendar-event-resizetop {
+	cursor: row-resize;
+	top: 0;
+}
+
+.v-calendar-event-resizebottom {
+	cursor: row-resize;
+	bottom: 0;
+}
+
+.v-calendar-header-month td:first-child {
+	padding-left: 20px;
+}
+
+.v-calendar-month-sizedheight .v-calendar-month-day {
+	height: 100px;
+}
+
+.v-calendar-month-sizedwidth .v-calendar-month-day {
+	width: 100px;
+}
+
+.v-calendar-header-month-Hsized .v-calendar-header-day {
+	width: 101px;
+}
+
+.v-calendar-header-month-Hsized td:first-child {
+	padding-left: 21px;
+}
+
+.v-calendar-header-day-Hsized {
+	width: 200px;
+}
+
+.v-calendar-week-numbers-Vsized .v-calendar-week-number {
+	height: 100px;
+	line-height: 100px;
+}
+
+.v-calendar-week-wrapper-Vsized {
+	height: 400px;
+	overflow-x: hidden !important;
+}
+
+.v-calendar-times-Vsized .v-calendar-time {
+	height: 38px;
+}
+
+.v-calendar-times-Hsized .v-calendar-time {
+	width: 42px;
+}
+
+.v-calendar-day-times-Vsized .v-datecellslot, .v-calendar-day-times-Vsized .v-datecellslot-even {
+	height: 18px;
+}
+
+.v-calendar-day-times-Hsized, .v-calendar-day-times-Hsized .v-datecellslot, .v-calendar-day-times-Hsized .v-datecellslot-even {
+	width: 200px;
+}
+
+.v-colorpicker-popup.v-window {
+	min-width: 220px !important;
+}
+
+.v-colorpicker-gradient-container {
+	overflow: visible !important;
+}
+
+.v-colorpicker-gradient-clicklayer {
+	opacity: 0;
+	filter: alpha(opacity=0) ;
+}
+
+.rgb-gradient .v-colorpicker-gradient-background {
+	background: url(../valo/components/img/colorpicker/gradient2.png);
+}
+
+.hsv-gradient .v-colorpicker-gradient-foreground {
+	background: url(../valo/components/img/colorpicker/gradient.png);
+}
+
+.v-colorpicker-gradient-higherbox:before {
+	content: "";
+	width: 11px;
+	height: 11px;
+	border-radius: 7px;
+	border: 1px solid #fff;
+	-webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(0, 0, 0, 0.3);
+	box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(0, 0, 0, 0.3);
+	position: absolute;
+	bottom: -6px;
+	left: -6px;
+}
+
+.v-colorpicker-popup .v-slider.v-slider-red:before {
+	background-color: red;
+}
+
+.v-colorpicker-popup .v-slider.v-slider-green:before {
+	background-color: green;
+}
+
+.v-colorpicker-popup .v-slider.v-slider-blue:before {
+	background-color: blue;
+}
+
+.v-colorpicker-popup .v-slider.hue-slider:before {
+	background: url(../valo/components/img/colorpicker/slider_hue_bg.png);
+}
+
+.v-colorpicker-popup input.v-textfield-dark {
+	color: #fff;
+}
+
+.v-colorpicker-popup input.v-textfield-light {
+	color: #000;
+}
+
+.v-colorpicker-grid {
+	height: 319px;
+}
+
+.v-colorpicker-popup .colorselect td {
+	line-height: 15px;
+}
+
+.v-table-header table, .v-table-footer table, .v-table-table {
+	border-spacing: 0;
+	border-collapse: separate;
+	margin: 0;
+	padding: 0;
+	border: 0;
+	line-height: 1.55;
+}
+
+.v-table-resizer, .v-table-sort-indicator {
+	float: right;
+}
+
+.v-table-caption-container-align-center {
+	text-align: center;
+}
+
+.v-table-caption-container-align-right {
+	text-align: right;
+}
+
+.v-table-header td, .v-table-footer td, .v-table-cell-content {
+	padding: 0;
+}
+
+.v-table-sort-indicator {
+	width: 0;
+}
+
+.v-tabsheet-hidetabs > .v-tabsheet-tabcontainer, .v-tabsheet-spacertd, .v-disabled .v-tabsheet-scroller, .v-tabsheet .v-disabled .v-tabsheet-caption-close {
+	display: none;
+}
+
+.v-tabsheet {
+	overflow: visible !important;
+	position: relative;
+}
+
+.v-tabsheet-tabcontainer table, .v-tabsheet-tabcontainer tbody, .v-tabsheet-tabcontainer tr {
+	display: inline-block;
+	border-spacing: 0;
+	border-collapse: collapse;
+	vertical-align: top;
+}
+
+.v-tabsheet-tabcontainer td {
+	display: inline-block;
+	padding: 0;
+}
+
+.v-tabsheet-tabs {
+	white-space: nowrap;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+.v-tabsheet-content {
+	position: relative;
+}
+
+.v-tabsheet-content  > div > .v-scrollable  > .v-margin-top {
+	padding-top: 12px;
+}
+
+.v-tabsheet-content  > div > .v-scrollable  > .v-margin-right {
+	padding-right: 12px;
+}
+
+.v-tabsheet-content  > div > .v-scrollable  > .v-margin-bottom {
+	padding-bottom: 12px;
+}
+
+.v-tabsheet-content  > div > .v-scrollable  > .v-margin-left {
+	padding-left: 12px;
+}
+
+.v-splitpanel-vertical, .v-splitpanel-horizontal {
+	overflow: hidden;
+	white-space: nowrap;
+}
+
+.v-splitpanel-hsplitter {
+	z-index: 100;
+	cursor: e-resize;
+	cursor: col-resize;
+}
+
+.v-splitpanel-vsplitter {
+	z-index: 100;
+	cursor: s-resize;
+	cursor: row-resize;
+}
+
+.v-splitpanel-hsplitter:after, .v-splitpanel-vsplitter:after {
+	content: "";
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+}
+
+.v-splitpanel-hsplitter div, .v-splitpanel-vsplitter div {
+	width: inherit;
+	height: inherit;
+	overflow: hidden;
+	position: relative;
+}
+
+.v-splitpanel-hsplitter div:before, .v-splitpanel-vsplitter div:before {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	content: "";
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+}
+
+.v-disabled [class$="splitter"] div {
+	cursor: default;
+}
+
+.v-disabled [class$="splitter"] div:before {
+	display: none;
+}
+
+.v-splitpanel-horizontal > div  > .v-splitpanel-second-container {
+	position: static !important;
+	display: inline-block;
+	vertical-align: top;
+}
+
+.v-splitpanel-horizontal > div  > .v-splitpanel-first-container {
+	display: inline-block;
+	vertical-align: top;
+}
+
+.org_osbee_vaadin_addons_designer_overlay.v-app, .org_osbee_vaadin_addons_designer_overlay.v-app-loading {
+	font: 300 16px/1.55 "Open Sans", sans-serif;
+	color: #464646;
+	background-color: #fafafa;
+	cursor: default;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-app-loading {
+	width: 100%;
+	height: 100%;
+	background: #fafafa;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-app-loading:before {
+	content: "";
+	position: fixed;
+	z-index: 100;
+	top: 45%;
+	left: 50%;
+	width: 28px;
+	height: 28px;
+	padding: 9px;
+	margin-top: -24px;
+	margin-left: -24px;
+	background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50%;
+	border-radius: 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-loading-indicator {
+	position: fixed !important;
+	z-index: 99999;
+	left: 0;
+	right: auto;
+	top: 0;
+	width: 50%;
+	opacity: 1;
+	height: 4px;
+	background-color: #197de1;
+	pointer-events: none;
+	-webkit-transition: none;
+	-moz-transition: none;
+	transition: none;
+	-webkit-animation: v-progress-start 1000ms 200ms both;
+	-moz-animation: v-progress-start 1000ms 200ms both;
+	animation: v-progress-start 1000ms 200ms both;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-loading-indicator[style*="none"] {
+	display: block !important;
+	width: 100% !important;
+	opacity: 0;
+	-webkit-animation: none;
+	-moz-animation: none;
+	animation: none;
+	-webkit-transition: opacity 500ms 300ms, width 300ms;
+	-moz-transition: opacity 500ms 300ms, width 300ms;
+	transition: opacity 500ms 300ms, width 300ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-loading-indicator-delay {
+	width: 90%;
+	-webkit-animation: v-progress-delay 3.8s forwards;
+	-moz-animation: v-progress-delay 3.8s forwards;
+	animation: v-progress-delay 3.8s forwards;
+}
+
+.v-ff .org_osbee_vaadin_addons_designer_overlay .v-loading-indicator-delay {
+	width: 50%;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-loading-indicator-wait {
+	width: 96%;
+	-webkit-animation: v-progress-wait 5s forwards, v-progress-wait-pulse 1s 4s infinite backwards;
+	-moz-animation: v-progress-wait 5s forwards, v-progress-wait-pulse 1s 4s infinite backwards;
+	animation: v-progress-wait 5s forwards, v-progress-wait-pulse 1s 4s infinite backwards;
+}
+
+.v-ff .org_osbee_vaadin_addons_designer_overlay .v-loading-indicator-wait {
+	width: 90%;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-loading-indicator, .v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-loading-indicator-delay, .v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-loading-indicator-wait, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-loading-indicator, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-loading-indicator-delay, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-loading-indicator-wait {
+	width: 28px !important;
+	height: 28px;
+	padding: 9px;
+	background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50%;
+	border-radius: 4px;
+	top: 9px;
+	right: 9px;
+	left: auto;
+	filter: alpha(opacity=50);
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-loading-indicator[style*="none"], .v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-loading-indicator-delay[style*="none"], .v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-loading-indicator-wait[style*="none"], .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-loading-indicator[style*="none"], .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-loading-indicator-delay[style*="none"], .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-loading-indicator-wait[style*="none"] {
+	display: none !important;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-loading-indicator-wait, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-loading-indicator-wait {
+	filter: alpha(opacity=100);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-scrollable:focus {
+	outline: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay img.v-icon {
+	vertical-align: middle;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption {
+	font-size: 14px;
+	font-weight: 400;
+	padding-bottom: 0.3em;
+	padding-left: 1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-on-left .v-caption, .org_osbee_vaadin_addons_designer_overlay .v-caption-on-right .v-caption {
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-icon + .v-captiontext, .org_osbee_vaadin_addons_designer_overlay .v-icon + span {
+	margin-left: 7px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-icon + .v-captiontext:empty, .org_osbee_vaadin_addons_designer_overlay .v-icon + span:empty {
+	margin-left: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-errorindicator {
+	color: #ed473b;
+	font-weight: 600;
+	width: 19px;
+	text-align: center;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-errorindicator:before {
+	content: "!";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-required-field-indicator {
+	color: #ed473b;
+	padding: 0 0.2em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay select {
+	font: inherit;
+	font-weight: 400;
+	line-height: inherit;
+	padding: 5px;
+	margin: 0;
+	border-radius: 4px;
+	border: 1px solid #c5c5c5;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	color: #464646;
+}
+
+.org_osbee_vaadin_addons_designer_overlay select:focus {
+	outline: none;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay button {
+	font: inherit;
+	font-weight: 400;
+	line-height: 1.55;
+}
+
+.org_osbee_vaadin_addons_designer_overlay a {
+	cursor: pointer;
+	color: #197de1;
+	text-decoration: underline;
+	font-weight: inherit;
+	-webkit-transition: color 140ms;
+	-moz-transition: color 140ms;
+	transition: color 140ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay a:hover {
+	color: #4396ea;
+}
+
+.org_osbee_vaadin_addons_designer_overlay a.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-disabled {
+	cursor: default !important;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-drag-element {
+	background: #fafafa;
+	color: #464646;
+	-webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
+	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
+	border-radius: 4px;
+	overflow: hidden;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tooltip {
+	background-color: #323232;
+	background-color: rgba(50, 50, 50, 0.9);
+	-webkit-box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
+	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
+	color: white;
+	padding: 5px 9px;
+	border-radius: 3px;
+	max-width: 35em;
+	overflow: hidden !important;
+	font-size: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tooltip div[style*="width"] {
+	width: auto !important;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tooltip .v-errormessage {
+	background-color: white;
+	background-color: #fff;
+	color: #ed473b;
+	margin: -5px -9px;
+	padding: 5px 9px;
+	max-height: 10em;
+	overflow: auto;
+	font-weight: 400;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tooltip .v-errormessage h2:only-child {
+	font: inherit;
+	line-height: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tooltip .v-tooltip-text {
+	max-height: 10em;
+	overflow: auto;
+	margin-top: 10px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tooltip .v-errormessage[aria-hidden="true"] + .v-tooltip-text {
+	margin-top: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tooltip h1, .org_osbee_vaadin_addons_designer_overlay .v-tooltip h2, .org_osbee_vaadin_addons_designer_overlay .v-tooltip h3, .org_osbee_vaadin_addons_designer_overlay .v-tooltip h4 {
+	color: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-contextmenu {
+	padding: 4px 4px;
+	border-radius: 4px;
+	background-color: white;
+	color: #474747;
+	-webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098);
+	box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098);
+	-webkit-backface-visibility: hidden;
+	-moz-backface-visibility: hidden;
+	-ms-backface-visibility: hidden;
+	backface-visibility: hidden;
+	padding: 4px 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-contextmenu[class*="animate-in"] {
+	-webkit-animation: valo-overlay-animate-in 120ms;
+	-moz-animation: valo-overlay-animate-in 120ms;
+	animation: valo-overlay-animate-in 120ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-contextmenu[class*="animate-out"] {
+	-webkit-animation: valo-animate-out-fade 120ms;
+	-moz-animation: valo-animate-out-fade 120ms;
+	animation: valo-animate-out-fade 120ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-contextmenu table {
+	border-spacing: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-contextmenu .gwt-MenuItem {
+	cursor: pointer;
+	line-height: 27px;
+	padding: 0 20px 0 10px;
+	border-radius: 3px;
+	font-weight: 400;
+	white-space: nowrap;
+	position: relative;
+	display: block;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-contextmenu .gwt-MenuItem:active:before {
+	content: "";
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	background: #0957a6;
+	opacity: 0.15;
+	filter: alpha(opacity=15.0) ;
+	pointer-events: none;
+	border-radius: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-contextmenu .gwt-MenuItem .v-icon {
+	max-height: 27px;
+	margin-right: 5px;
+	min-width: 1em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-contextmenu .gwt-MenuItem-selected {
+	background-color: #197de1;
+	background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%);
+	background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%);
+	color: #ecf2f8;
+	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-reconnect-dialog {
+	color: white;
+	top: 12px;
+	right: 12px;
+	max-width: 100%;
+	border-radius: 0;
+	-webkit-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25);
+	box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25);
+	padding: 12px 15px;
+	background-color: #444;
+	background-color: rgba(68, 68, 68, 0.9);
+	line-height: 22px;
+	text-align: center;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-reconnect-dialog .text {
+	display: inline-block;
+	padding-left: 10px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-reconnect-dialog .spinner {
+	height: 24px !important;
+	width: 24px !important;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	border: 2px solid rgba(25, 125, 225, 0.2);
+	border-top-color: #197de1;
+	border-right-color: #197de1;
+	border-radius: 100%;
+	-webkit-animation: v-rotate-360 500ms infinite linear;
+	-moz-animation: v-rotate-360 500ms infinite linear;
+	animation: v-rotate-360 500ms infinite linear;
+	pointer-events: none;
+	display: none;
+	vertical-align: middle;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-reconnect-dialog .spinner, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-reconnect-dialog .spinner {
+	border: none;
+	border-radius: 4px;
+	background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50% 50%;
+	background-size: 80%;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-reconnect-dialog .spinner {
+	min-width: 30px;
+	min-height: 30px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-reconnect-dialog.active .spinner {
+	display: inline-block;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-absolutelayout-wrapper {
+	position: absolute;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-absolutelayout-margin, .org_osbee_vaadin_addons_designer_overlay .v-absolutelayout-canvas {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-absolutelayout.v-has-height > div, .org_osbee_vaadin_addons_designer_overlay .v-absolutelayout.v-has-height .v-absolutelayout-margin {
+	height: 100%;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-absolutelayout.v-has-height > div, .org_osbee_vaadin_addons_designer_overlay .v-absolutelayout.v-has-width .v-absolutelayout-margin {
+	width: 100%;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-margin-top {
+	padding-top: 37px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-margin-right {
+	padding-right: 37px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-margin-bottom {
+	padding-bottom: 37px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-margin-left {
+	padding-left: 37px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-spacing {
+	width: 12px;
+	height: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-verticallayout-well, .org_osbee_vaadin_addons_designer_overlay .v-horizontallayout-well {
+	background: #f5f5f5;
+	color: #454545;
+	-webkit-box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05);
+	border-radius: 4px;
+	border: 1px solid #c5c5c5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-verticallayout-well  > div > [class*="-caption"], .org_osbee_vaadin_addons_designer_overlay .v-horizontallayout-well  > div > [class*="-caption"] {
+	background: transparent;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-verticallayout-well  > .v-margin-top, .org_osbee_vaadin_addons_designer_overlay .v-horizontallayout-well  > .v-margin-top {
+	padding-top: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-verticallayout-well  > .v-margin-right, .org_osbee_vaadin_addons_designer_overlay .v-horizontallayout-well  > .v-margin-right {
+	padding-right: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-verticallayout-well  > .v-margin-bottom, .org_osbee_vaadin_addons_designer_overlay .v-horizontallayout-well  > .v-margin-bottom {
+	padding-bottom: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-verticallayout-well  > .v-margin-left, .org_osbee_vaadin_addons_designer_overlay .v-horizontallayout-well  > .v-margin-left {
+	padding-left: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-verticallayout-card, .org_osbee_vaadin_addons_designer_overlay .v-horizontallayout-card {
+	background: white;
+	color: #474747;
+	border-radius: 4px;
+	border: 1px solid #d5d5d5;
+	-webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-verticallayout-card  > .v-margin-top, .org_osbee_vaadin_addons_designer_overlay .v-horizontallayout-card  > .v-margin-top {
+	padding-top: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-verticallayout-card  > .v-margin-right, .org_osbee_vaadin_addons_designer_overlay .v-horizontallayout-card  > .v-margin-right {
+	padding-right: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-verticallayout-card  > .v-margin-bottom, .org_osbee_vaadin_addons_designer_overlay .v-horizontallayout-card  > .v-margin-bottom {
+	padding-bottom: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-verticallayout-card  > .v-margin-left, .org_osbee_vaadin_addons_designer_overlay .v-horizontallayout-card  > .v-margin-left {
+	padding-left: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-horizontallayout-wrapping {
+	white-space: normal !important;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-horizontallayout-wrapping > .v-spacing + .v-slot, .org_osbee_vaadin_addons_designer_overlay .v-horizontallayout-wrapping > .v-slot:first-child {
+	margin-bottom: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-horizontallayout-wrapping > .v-slot:first-child:last-child {
+	margin-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button {
+	position: relative;
+	text-align: center;
+	white-space: nowrap;
+	outline: none;
+	-webkit-tap-highlight-color: transparent;
+	-webkit-touch-callout: none;
+	cursor: pointer;
+	height: 37px;
+	padding: 0 16px;
+	color: #191919;
+	font-weight: 400;
+	
+	
+	border-radius: 4px;
+	border: 1px solid #c5c5c5;
+	border-top-color: #c5c5c5;
+	border-bottom-color: #bcbcbc;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	-webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button:before {
+	content: "";
+	display: inline-block;
+	width: 0;
+	height: 100%;
+	vertical-align: middle;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button > div {
+	vertical-align: middle;
+}
+
+.v-sa .org_osbee_vaadin_addons_designer_overlay .v-button:before {
+	height: 110%;
+}
+
+.v-ff .org_osbee_vaadin_addons_designer_overlay .v-button:before {
+	height: 107%;
+}
+
+.v-ie .org_osbee_vaadin_addons_designer_overlay .v-button:before {
+	margin-top: 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button:after {
+	content: "";
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	border-radius: inherit;
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button:focus:after {
+	-webkit-transition: none;
+	-moz-transition: none;
+	transition: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button.v-disabled:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button:after {
+	border: inherit;
+	top: -1px;
+	right: -1px;
+	bottom: -1px;
+	left: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button:hover:after {
+	background-color: rgba(186, 186, 186, 0.1);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button:focus:after {
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button:active:after {
+	background-color: rgba(125, 125, 125, 0.2);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-primary {
+	height: 37px;
+	padding: 0 16px;
+	color: #ecf2f8;
+	font-weight: 400;
+	
+	
+	border-radius: 4px;
+	border: 1px solid #1362b1;
+	border-top-color: #156ab3;
+	border-bottom-color: #1156a8;
+	background-color: #197de1;
+	background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%);
+	background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%);
+	-webkit-box-shadow: inset 0 1px 0 #4d98e6, inset 0 -1px 0 #166bca, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: inset 0 1px 0 #4d98e6, inset 0 -1px 0 #166bca, 0 2px 3px rgba(0, 0, 0, 0.05);
+	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05);
+	padding: 0 19px;
+	font-weight: bold;
+	min-width: 81px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-primary:after {
+	border: inherit;
+	top: -1px;
+	right: -1px;
+	bottom: -1px;
+	left: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-primary:hover:after {
+	background-color: rgba(90, 163, 237, 0.1);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-primary:focus:after {
+	border: inherit;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-primary:active:after {
+	background-color: rgba(2, 62, 122, 0.2);
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-button-primary {
+	min-width: 43px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-friendly {
+	height: 37px;
+	padding: 0 16px;
+	color: #eaf4e9;
+	font-weight: 400;
+	
+	
+	border-radius: 4px;
+	border: 1px solid #227719;
+	border-top-color: #257d1a;
+	border-bottom-color: #1e6b15;
+	background-color: #2c9720;
+	background-image: -webkit-linear-gradient(top, #2f9f22 2%, #26881b 98%);
+	background-image: linear-gradient(to bottom,#2f9f22 2%, #26881b 98%);
+	-webkit-box-shadow: inset 0 1px 0 #46b33a, inset 0 -1px 0 #26811b, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: inset 0 1px 0 #46b33a, inset 0 -1px 0 #26811b, 0 2px 3px rgba(0, 0, 0, 0.05);
+	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-friendly:after {
+	border: inherit;
+	top: -1px;
+	right: -1px;
+	bottom: -1px;
+	left: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-friendly:hover:after {
+	background-color: rgba(65, 211, 48, 0.1);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-friendly:focus:after {
+	border: inherit;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-friendly:active:after {
+	background-color: rgba(14, 86, 6, 0.2);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-danger {
+	height: 37px;
+	padding: 0 16px;
+	color: #f9f0ef;
+	font-weight: 400;
+	
+	
+	border-radius: 4px;
+	border: 1px solid #bb382e;
+	border-top-color: #bc3c31;
+	border-bottom-color: #b13028;
+	background-color: #ed473b;
+	background-image: -webkit-linear-gradient(top, #ee4c3f 2%, #e13e33 98%);
+	background-image: linear-gradient(to bottom,#ee4c3f 2%, #e13e33 98%);
+	-webkit-box-shadow: inset 0 1px 0 #ef786f, inset 0 -1px 0 #da3c31, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: inset 0 1px 0 #ef786f, inset 0 -1px 0 #da3c31, 0 2px 3px rgba(0, 0, 0, 0.05);
+	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-danger:after {
+	border: inherit;
+	top: -1px;
+	right: -1px;
+	bottom: -1px;
+	left: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-danger:hover:after {
+	background-color: rgba(243, 137, 129, 0.1);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-danger:focus:after {
+	border: inherit;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-danger:active:after {
+	background-color: rgba(146, 12, 2, 0.2);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-borderless {
+	border: none;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	background: transparent;
+	color: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-borderless:hover:after {
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-borderless:active {
+	opacity: 0.7;
+	filter: alpha(opacity=70) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-borderless:active:after {
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-borderless-colored {
+	border: none;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	background: transparent;
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-borderless-colored:hover {
+	color: #4396ea;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-borderless-colored:hover:after {
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-borderless-colored:active {
+	opacity: 0.7;
+	filter: alpha(opacity=70) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-borderless-colored:active:after {
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-quiet {
+	visibility: hidden;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-quiet:focus, .org_osbee_vaadin_addons_designer_overlay .v-button-quiet:hover {
+	visibility: visible;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-quiet [class*="wrap"] {
+	visibility: visible;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-quiet [class*="caption"] {
+	display: inline-block;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-link {
+	border: none;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	background: transparent;
+	color: inherit;
+	cursor: pointer;
+	color: #197de1;
+	text-decoration: underline;
+	font-weight: inherit;
+	-webkit-transition: color 140ms;
+	-moz-transition: color 140ms;
+	transition: color 140ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-link:hover:after {
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-link:active {
+	opacity: 0.7;
+	filter: alpha(opacity=70) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-link:active:after {
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-link:hover {
+	color: #4396ea;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-link.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-tiny {
+	height: 28px;
+	padding: 0 13px;
+	
+	
+	font-size: 12px;
+	
+	border-radius: 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-tiny:after {
+	border: inherit;
+	top: -1px;
+	right: -1px;
+	bottom: -1px;
+	left: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-small {
+	height: 31px;
+	padding: 0 14px;
+	
+	
+	font-size: 14px;
+	
+	border-radius: 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-small:after {
+	border: inherit;
+	top: -1px;
+	right: -1px;
+	bottom: -1px;
+	left: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-large {
+	height: 44px;
+	padding: 0 19px;
+	
+	
+	font-size: 20px;
+	
+	border-radius: 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-large:after {
+	border: inherit;
+	top: -1px;
+	right: -1px;
+	bottom: -1px;
+	left: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-huge {
+	height: 59px;
+	padding: 0 26px;
+	
+	
+	font-size: 26px;
+	
+	border-radius: 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-huge:after {
+	border: inherit;
+	top: -1px;
+	right: -1px;
+	bottom: -1px;
+	left: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-icon-align-right [class*="wrap"] {
+	display: inline-block;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-icon-align-right .v-icon {
+	float: right;
+	margin-left: 13px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-icon-align-right .v-icon  + span:not(:empty) {
+	margin-left: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-icon-align-top {
+	height: auto;
+	padding-top: 5px;
+	padding-bottom: 5px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-icon-align-top [class*="wrap"] {
+	display: inline-block;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-icon-align-top .v-icon {
+	display: block;
+	margin-left: auto;
+	margin-right: auto;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-icon-align-top .v-icon  + span:not(:empty) {
+	margin-top: 7px;
+	margin-left: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-icon-only {
+	width: 37px;
+	padding: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-icon-only.v-button-tiny {
+	width: 28px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-icon-only.v-button-small {
+	width: 31px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-icon-only.v-button-large {
+	width: 44px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-icon-only.v-button-huge {
+	width: 59px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-icon-only .v-button-caption {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-checkbox {
+	position: relative;
+	line-height: 19px;
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-checkbox.v-has-width label {
+	white-space: normal;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox {
+	padding-left: 25px;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox label {
+	-webkit-tap-highlight-color: transparent;
+	-webkit-touch-callout: none;
+	cursor: pointer;
+	display: inline-block;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox > input {
+	position: absolute;
+	clip: rect(0, 0, 0, 0);
+	left: 0.2em;
+	top: 0.2em;
+	z-index: 0;
+	margin: 0;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox > input:focus ~ label:before {
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox > input ~ label:before, :root .org_osbee_vaadin_addons_designer_overlay .v-checkbox > input ~ label:after {
+	content: "";
+	display: inline-block;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	width: 19px;
+	height: 19px;
+	position: absolute;
+	top: 0;
+	left: 0;
+	border-radius: 4px;
+	font-size: 13px;
+	text-align: center;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox > input ~ label:before {
+	height: 18.5px;
+	padding: 0 9px;
+	color: #191919;
+	font-weight: 400;
+	
+	
+	border-radius: 4px;
+	border: 1px solid #c5c5c5;
+	border-top-color: #c5c5c5;
+	border-bottom-color: #bcbcbc;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	-webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+	padding: 0;
+	height: 19px;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox > input ~ label:after {
+	content: "\f00c";
+	font-family: ThemeIcons;
+	color: transparent;
+	-webkit-transition: color 100ms;
+	-moz-transition: color 100ms;
+	transition: color 100ms;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox > input:active ~ label:after {
+	background-color: rgba(125, 125, 125, 0.2);
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox > input:checked ~ label:after {
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-checkbox > .v-icon, .org_osbee_vaadin_addons_designer_overlay .v-checkbox > label .v-icon {
+	margin: 0 6px 0 3px;
+	min-width: 1em;
+	cursor: pointer;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-checkbox.v-disabled  > label, .org_osbee_vaadin_addons_designer_overlay .v-checkbox.v-disabled  > .v-icon {
+	cursor: default;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-checkbox.v-disabled  > label > .v-icon {
+	cursor: default;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox.v-disabled > input:active ~ label:after {
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-checkbox.v-readonly  > label, .org_osbee_vaadin_addons_designer_overlay .v-checkbox.v-readonly  > .v-icon {
+	cursor: default;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-checkbox.v-readonly  > label > .v-icon {
+	cursor: default;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox.v-readonly > input:active ~ label:after {
+	background: transparent;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox.v-readonly > input ~ label:after {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-checkbox-small {
+	position: relative;
+	line-height: 16px;
+	white-space: nowrap;
+	font-size: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-checkbox-small.v-has-width label {
+	white-space: normal;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-small {
+	padding-left: 21px;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-small label {
+	-webkit-tap-highlight-color: transparent;
+	-webkit-touch-callout: none;
+	cursor: pointer;
+	display: inline-block;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-small > input {
+	position: absolute;
+	clip: rect(0, 0, 0, 0);
+	left: 0.2em;
+	top: 0.2em;
+	z-index: 0;
+	margin: 0;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-small > input:focus ~ label:before {
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-small > input ~ label:before, :root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-small > input ~ label:after {
+	content: "";
+	display: inline-block;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	width: 16px;
+	height: 16px;
+	position: absolute;
+	top: 0;
+	left: 0;
+	border-radius: 4px;
+	font-size: 11px;
+	text-align: center;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-small > input ~ label:before {
+	height: 15.5px;
+	padding: 0 7px;
+	color: #191919;
+	font-weight: 400;
+	
+	
+	border-radius: 4px;
+	border: 1px solid #c5c5c5;
+	border-top-color: #c5c5c5;
+	border-bottom-color: #bcbcbc;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	-webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+	padding: 0;
+	height: 16px;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-small > input ~ label:after {
+	content: "\f00c";
+	font-family: ThemeIcons;
+	color: transparent;
+	-webkit-transition: color 100ms;
+	-moz-transition: color 100ms;
+	transition: color 100ms;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-small > input:active ~ label:after {
+	background-color: rgba(125, 125, 125, 0.2);
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-small > input:checked ~ label:after {
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-checkbox-small > .v-icon, .org_osbee_vaadin_addons_designer_overlay .v-checkbox-small > label .v-icon {
+	margin: 0 5px 0 3px;
+	min-width: 1em;
+	cursor: pointer;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-checkbox-small.v-disabled  > label, .org_osbee_vaadin_addons_designer_overlay .v-checkbox-small.v-disabled  > .v-icon {
+	cursor: default;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-checkbox-small.v-disabled  > label > .v-icon {
+	cursor: default;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-small.v-disabled > input:active ~ label:after {
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-checkbox-small.v-readonly  > label, .org_osbee_vaadin_addons_designer_overlay .v-checkbox-small.v-readonly  > .v-icon {
+	cursor: default;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-checkbox-small.v-readonly  > label > .v-icon {
+	cursor: default;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-small.v-readonly > input:active ~ label:after {
+	background: transparent;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-small.v-readonly > input ~ label:after {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-checkbox-large {
+	position: relative;
+	line-height: 22px;
+	white-space: nowrap;
+	font-size: 20px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-checkbox-large.v-has-width label {
+	white-space: normal;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-large {
+	padding-left: 29px;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-large label {
+	-webkit-tap-highlight-color: transparent;
+	-webkit-touch-callout: none;
+	cursor: pointer;
+	display: inline-block;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-large > input {
+	position: absolute;
+	clip: rect(0, 0, 0, 0);
+	left: 0.2em;
+	top: 0.2em;
+	z-index: 0;
+	margin: 0;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-large > input:focus ~ label:before {
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-large > input ~ label:before, :root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-large > input ~ label:after {
+	content: "";
+	display: inline-block;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	width: 22px;
+	height: 22px;
+	position: absolute;
+	top: 0;
+	left: 0;
+	border-radius: 4px;
+	font-size: 15px;
+	text-align: center;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-large > input ~ label:before {
+	height: 22px;
+	padding: 0 10px;
+	color: #191919;
+	font-weight: 400;
+	
+	
+	border-radius: 4px;
+	border: 1px solid #c5c5c5;
+	border-top-color: #c5c5c5;
+	border-bottom-color: #bcbcbc;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	-webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+	padding: 0;
+	height: 22px;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-large > input ~ label:after {
+	content: "\f00c";
+	font-family: ThemeIcons;
+	color: transparent;
+	-webkit-transition: color 100ms;
+	-moz-transition: color 100ms;
+	transition: color 100ms;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-large > input:active ~ label:after {
+	background-color: rgba(125, 125, 125, 0.2);
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-large > input:checked ~ label:after {
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-checkbox-large > .v-icon, .org_osbee_vaadin_addons_designer_overlay .v-checkbox-large > label .v-icon {
+	margin: 0 7px 0 4px;
+	min-width: 1em;
+	cursor: pointer;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-checkbox-large.v-disabled  > label, .org_osbee_vaadin_addons_designer_overlay .v-checkbox-large.v-disabled  > .v-icon {
+	cursor: default;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-checkbox-large.v-disabled  > label > .v-icon {
+	cursor: default;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-large.v-disabled > input:active ~ label:after {
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-checkbox-large.v-readonly  > label, .org_osbee_vaadin_addons_designer_overlay .v-checkbox-large.v-readonly  > .v-icon {
+	cursor: default;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-checkbox-large.v-readonly  > label > .v-icon {
+	cursor: default;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-large.v-readonly > input:active ~ label:after {
+	background: transparent;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-checkbox-large.v-readonly > input ~ label:after {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect {
+	position: relative;
+	width: 185px;
+	height: 37px;
+	border-radius: 4px;
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect [class*="input"] {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 37px;
+	border-radius: 4px;
+	padding: 4px 9px;
+	border: 1px solid #c5c5c5;
+	background: white;
+	color: #474747;
+	-webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1);
+	box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1);
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+	width: 100% !important;
+	height: 100%;
+	padding-right: 38px;
+	border-radius: inherit;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-filterselect [class*="input"], .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-filterselect [class*="input"] {
+	line-height: 37px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect [class*="input"].v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect [class*="input"]:focus {
+	outline: none;
+	-webkit-transition: none;
+	-moz-transition: none;
+	transition: none;
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1);
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect [class*="input"][class*="prompt"] {
+	color: #a3a3a3;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect .v-icon + [class*="input"] {
+	padding-left: 37px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect img.v-icon {
+	max-height: 37px;
+	margin-left: 9px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect span.v-icon {
+	color: #474747;
+	width: 37px;
+	line-height: 1;
+	padding-top: 0.12em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect[class*="prompt"] > [class*="input"] {
+	color: #a3a3a3;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect [class$="button"] {
+	-webkit-tap-highlight-color: transparent;
+	-webkit-touch-callout: none;
+	cursor: pointer;
+	position: absolute;
+	width: 37px;
+	top: 1px;
+	right: 1px;
+	bottom: 1px;
+	border-left: 1px solid #e4e4e4;
+	color: #a3a3a3;
+	border-radius: 0 3px 3px 0;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-filterselect [class$="button"] {
+	background-color: white;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect [class$="button"]:before {
+	font-family: ThemeIcons;
+	content: "\f078";
+	-webkit-transition: color 140ms;
+	-moz-transition: color 140ms;
+	transition: color 140ms;
+	position: absolute;
+	width: 37px;
+	text-align: center;
+	top: 50%;
+	line-height: 1;
+	margin-top: -0.47em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect [class$="button"]:hover:before {
+	color: #474747;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect [class$="button"]:active:after {
+	content: "";
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	border-radius: inherit;
+	background-color: rgba(128, 128, 128, 0.2);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect.v-disabled [class$="button"] {
+	cursor: default;
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect.v-disabled [class$="button"]:active:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect.v-readonly [class*="input"] {
+	background: #fafafa;
+	color: #464646;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect.v-readonly [class*="input"]:focus {
+	box-shadow: none;
+	border-color: #c5c5c5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect.v-readonly [class$="button"] {
+	cursor: default;
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect.v-readonly [class$="button"]:active:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect .v-icon {
+	position: absolute;
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-error .v-filterselect-input {
+	border-color: #ed473b !important;
+	background: #fffbfb;
+	color: #6c2621;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-error .v-filterselect-button {
+	color: #ed473b;
+	border-color: #ed473b;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup {
+	margin-top: 5px !important;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup[class*="animate-in"] {
+	-webkit-animation: valo-overlay-animate-in 120ms;
+	-moz-animation: valo-overlay-animate-in 120ms;
+	animation: valo-overlay-animate-in 120ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup [class$="suggestmenu"] {
+	padding: 4px 4px;
+	border-radius: 4px;
+	background-color: white;
+	color: #474747;
+	-webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098);
+	box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098);
+	-webkit-backface-visibility: hidden;
+	-moz-backface-visibility: hidden;
+	-ms-backface-visibility: hidden;
+	backface-visibility: hidden;
+	padding: 4px 4px;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	position: relative;
+	z-index: 1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup [class$="suggestmenu"][style*="height"] {
+	-webkit-box-sizing: content-box;
+	-moz-box-sizing: content-box;
+	box-sizing: content-box;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup table, .org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup tbody, .org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup tr, .org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup td {
+	display: block;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup .gwt-MenuItem {
+	cursor: pointer;
+	line-height: 27px;
+	padding: 0 20px 0 10px;
+	border-radius: 3px;
+	font-weight: 400;
+	white-space: nowrap;
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup .gwt-MenuItem:active:before {
+	content: "";
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	background: #0957a6;
+	opacity: 0.15;
+	filter: alpha(opacity=15.0) ;
+	pointer-events: none;
+	border-radius: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup .gwt-MenuItem .v-icon {
+	max-height: 27px;
+	margin-right: 5px;
+	min-width: 1em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup .gwt-MenuItem-selected {
+	background-color: #197de1;
+	background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%);
+	background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%);
+	color: #ecf2f8;
+	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup [class$="status"] {
+	position: absolute;
+	right: 4px;
+	background: rgba(212, 212, 212, 0.9);
+	color: #3b3b3b;
+	border-radius: 0 0 4px 4px;
+	height: 23px;
+	bottom: -23px;
+	font-size: 12px;
+	line-height: 23px;
+	padding: 0 6px;
+	cursor: default;
+	pointer-events: none;
+	-webkit-animation: valo-animate-in-slide-down 200ms 80ms backwards;
+	-moz-animation: valo-animate-in-slide-down 200ms 80ms backwards;
+	animation: valo-animate-in-slide-down 200ms 80ms backwards;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup [class$="status"]  > * {
+	color: #3b3b3b;
+	text-decoration: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup div[class*="page"] {
+	position: absolute;
+	z-index: 3;
+	right: 0;
+	opacity: 0.2;
+	filter: alpha(opacity=20) ;
+	cursor: pointer;
+	-webkit-transition: all 200ms;
+	-moz-transition: all 200ms;
+	transition: all 200ms;
+	width: 25px;
+	height: 25px;
+	line-height: 25px;
+	text-align: center;
+	font-family: ThemeIcons;
+	-webkit-transform: scale(0.8);
+	-moz-transform: scale(0.8);
+	-ms-transform: scale(0.8);
+	-o-transform: scale(0.8);
+	transform: scale(0.8);
+	color: #464646;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup div[class*="page"]:after {
+	content: "";
+	position: absolute;
+	display: block;
+	border-radius: 50%;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup div[class*="page"]:hover {
+	opacity: 1;
+	filter: none ;
+	background: rgba(250, 250, 250, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup div[class*="page"]:hover:after {
+	top: -10px;
+	bottom: -10px;
+	left: -20px;
+	right: -20px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup div[class*="page"] span {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup:hover div[class*="page"] {
+	-webkit-transform: scale(1);
+	-moz-transform: scale(1);
+	-ms-transform: scale(1);
+	-o-transform: scale(1);
+	transform: scale(1);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup div[class*="prev"] {
+	top: 0;
+	-webkit-transform-origin: 100% 0%;
+	-moz-transform-origin: 100% 0%;
+	-ms-transform-origin: 100% 0%;
+	-o-transform-origin: 100% 0%;
+	transform-origin: 100% 0%;
+	border-radius: 0 4px 0 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup div[class*="prev"]:before {
+	content: "\f0d8";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup div[class*="next"] {
+	bottom: 0;
+	-webkit-transform-origin: 100% 100%;
+	-moz-transform-origin: 100% 100%;
+	-ms-transform-origin: 100% 100%;
+	-o-transform-origin: 100% 100%;
+	transform-origin: 100% 100%;
+	border-radius: 4px 0 4px 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup div[class*="next"]:before {
+	content: "\f0d7";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-suggestpopup div[class*="-off"] {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-no-input {
+	cursor: pointer;
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-no-input [class*="input"] {
+	-webkit-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	cursor: inherit;
+	-webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	border: 1px solid #c5c5c5;
+	border-top-color: #c5c5c5;
+	border-bottom-color: #bcbcbc;
+	text-shadow: inherit;
+	text-overflow: ellipsis;
+	border-radius: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-no-input [class*="input"]:focus {
+	outline: none;
+	-webkit-transition: none;
+	-moz-transition: none;
+	transition: none;
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-no-input [class$="button"] {
+	border-left: none !important;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-no-input:hover [class$="button"]:before {
+	color: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-borderless .v-filterselect-input {
+	border: none;
+	border-radius: 0;
+	background: transparent;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	color: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-borderless .v-filterselect-input:focus {
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-borderless .v-filterselect-input[class*="prompt"] {
+	color: inherit;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-borderless .v-filterselect-button {
+	border: none;
+	color: inherit;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-borderless.v-filterselect-prompt .v-filterselect-input {
+	color: inherit;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-align-right input {
+	text-align: right;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-align-center input {
+	text-align: center;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-tiny {
+	height: 28px;
+	
+	font-size: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-tiny [class*="input"] {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 28px;
+	
+	padding: 3px 5px;
+	
+	
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+	width: 100% !important;
+	height: 100%;
+	padding-right: 29px;
+	border-radius: inherit;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-filterselect-tiny [class*="input"], .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-filterselect-tiny [class*="input"] {
+	line-height: 28px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-tiny .v-icon + [class*="input"] {
+	padding-left: 28px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-tiny img.v-icon {
+	max-height: 28px;
+	margin-left: 5px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-tiny span.v-icon {
+	
+	width: 28px;
+	line-height: 1;
+	padding-top: 0.12em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-tiny [class$="button"] {
+	-webkit-tap-highlight-color: transparent;
+	-webkit-touch-callout: none;
+	cursor: pointer;
+	position: absolute;
+	width: 28px;
+	border-radius: 0 4px 4px 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-tiny [class$="button"]:before {
+	font-family: ThemeIcons;
+	content: "\f078";
+	-webkit-transition: color 140ms;
+	-moz-transition: color 140ms;
+	transition: color 140ms;
+	position: absolute;
+	width: 28px;
+	text-align: center;
+	top: 50%;
+	line-height: 1;
+	margin-top: -0.47em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-tiny [class$="button"]:active:after {
+	content: "";
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	border-radius: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-tiny.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-tiny.v-disabled [class$="button"] {
+	cursor: default;
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-tiny.v-disabled [class$="button"]:active:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-tiny.v-readonly [class*="input"] {
+	background: #fafafa;
+	color: #464646;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-tiny.v-readonly [class*="input"]:focus {
+	box-shadow: none;
+	border-color: #c5c5c5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-tiny.v-readonly [class$="button"] {
+	cursor: default;
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-tiny.v-readonly [class$="button"]:active:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-compact, .org_osbee_vaadin_addons_designer_overlay .v-filterselect-small {
+	height: 31px;
+	
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-compact [class*="input"], .org_osbee_vaadin_addons_designer_overlay .v-filterselect-small [class*="input"] {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 31px;
+	
+	padding: 3px 6px;
+	
+	
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+	width: 100% !important;
+	height: 100%;
+	padding-right: 32px;
+	border-radius: inherit;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-filterselect-compact [class*="input"], .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-filterselect-compact [class*="input"], .v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-filterselect-small [class*="input"], .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-filterselect-small [class*="input"] {
+	line-height: 31px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-compact .v-icon + [class*="input"], .org_osbee_vaadin_addons_designer_overlay .v-filterselect-small .v-icon + [class*="input"] {
+	padding-left: 31px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-compact img.v-icon, .org_osbee_vaadin_addons_designer_overlay .v-filterselect-small img.v-icon {
+	max-height: 31px;
+	margin-left: 6px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-compact span.v-icon, .org_osbee_vaadin_addons_designer_overlay .v-filterselect-small span.v-icon {
+	
+	width: 31px;
+	line-height: 1;
+	padding-top: 0.12em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-compact [class$="button"], .org_osbee_vaadin_addons_designer_overlay .v-filterselect-small [class$="button"] {
+	-webkit-tap-highlight-color: transparent;
+	-webkit-touch-callout: none;
+	cursor: pointer;
+	position: absolute;
+	width: 31px;
+	border-radius: 0 4px 4px 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-compact [class$="button"]:before, .org_osbee_vaadin_addons_designer_overlay .v-filterselect-small [class$="button"]:before {
+	font-family: ThemeIcons;
+	content: "\f078";
+	-webkit-transition: color 140ms;
+	-moz-transition: color 140ms;
+	transition: color 140ms;
+	position: absolute;
+	width: 31px;
+	text-align: center;
+	top: 50%;
+	line-height: 1;
+	margin-top: -0.47em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-compact [class$="button"]:active:after, .org_osbee_vaadin_addons_designer_overlay .v-filterselect-small [class$="button"]:active:after {
+	content: "";
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	border-radius: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-compact.v-disabled, .org_osbee_vaadin_addons_designer_overlay .v-filterselect-small.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-compact.v-disabled [class$="button"], .org_osbee_vaadin_addons_designer_overlay .v-filterselect-small.v-disabled [class$="button"] {
+	cursor: default;
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-compact.v-disabled [class$="button"]:active:after, .org_osbee_vaadin_addons_designer_overlay .v-filterselect-small.v-disabled [class$="button"]:active:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-compact.v-readonly [class*="input"], .org_osbee_vaadin_addons_designer_overlay .v-filterselect-small.v-readonly [class*="input"] {
+	background: #fafafa;
+	color: #464646;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-compact.v-readonly [class*="input"]:focus, .org_osbee_vaadin_addons_designer_overlay .v-filterselect-small.v-readonly [class*="input"]:focus {
+	box-shadow: none;
+	border-color: #c5c5c5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-compact.v-readonly [class$="button"], .org_osbee_vaadin_addons_designer_overlay .v-filterselect-small.v-readonly [class$="button"] {
+	cursor: default;
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-compact.v-readonly [class$="button"]:active:after, .org_osbee_vaadin_addons_designer_overlay .v-filterselect-small.v-readonly [class$="button"]:active:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-small {
+	font-size: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-large {
+	height: 44px;
+	
+	font-size: 20px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-large [class*="input"] {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 44px;
+	
+	padding: 5px 8px;
+	
+	
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+	width: 100% !important;
+	height: 100%;
+	padding-right: 45px;
+	border-radius: inherit;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-filterselect-large [class*="input"], .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-filterselect-large [class*="input"] {
+	line-height: 44px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-large .v-icon + [class*="input"] {
+	padding-left: 44px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-large img.v-icon {
+	max-height: 44px;
+	margin-left: 8px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-large span.v-icon {
+	
+	width: 44px;
+	line-height: 1;
+	padding-top: 0.12em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-large [class$="button"] {
+	-webkit-tap-highlight-color: transparent;
+	-webkit-touch-callout: none;
+	cursor: pointer;
+	position: absolute;
+	width: 44px;
+	border-radius: 0 4px 4px 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-large [class$="button"]:before {
+	font-family: ThemeIcons;
+	content: "\f078";
+	-webkit-transition: color 140ms;
+	-moz-transition: color 140ms;
+	transition: color 140ms;
+	position: absolute;
+	width: 44px;
+	text-align: center;
+	top: 50%;
+	line-height: 1;
+	margin-top: -0.47em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-large [class$="button"]:active:after {
+	content: "";
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	border-radius: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-large.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-large.v-disabled [class$="button"] {
+	cursor: default;
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-large.v-disabled [class$="button"]:active:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-large.v-readonly [class*="input"] {
+	background: #fafafa;
+	color: #464646;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-large.v-readonly [class*="input"]:focus {
+	box-shadow: none;
+	border-color: #c5c5c5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-large.v-readonly [class$="button"] {
+	cursor: default;
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-large.v-readonly [class$="button"]:active:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-huge {
+	height: 59px;
+	
+	font-size: 26px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-huge [class*="input"] {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 59px;
+	
+	padding: 7px 10px;
+	
+	
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+	width: 100% !important;
+	height: 100%;
+	padding-right: 60px;
+	border-radius: inherit;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-filterselect-huge [class*="input"], .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-filterselect-huge [class*="input"] {
+	line-height: 59px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-huge .v-icon + [class*="input"] {
+	padding-left: 59px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-huge img.v-icon {
+	max-height: 59px;
+	margin-left: 10px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-huge span.v-icon {
+	
+	width: 59px;
+	line-height: 1;
+	padding-top: 0.12em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-huge [class$="button"] {
+	-webkit-tap-highlight-color: transparent;
+	-webkit-touch-callout: none;
+	cursor: pointer;
+	position: absolute;
+	width: 59px;
+	border-radius: 0 4px 4px 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-huge [class$="button"]:before {
+	font-family: ThemeIcons;
+	content: "\f078";
+	-webkit-transition: color 140ms;
+	-moz-transition: color 140ms;
+	transition: color 140ms;
+	position: absolute;
+	width: 59px;
+	text-align: center;
+	top: 50%;
+	line-height: 1;
+	margin-top: -0.47em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-huge [class$="button"]:active:after {
+	content: "";
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	border-radius: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-huge.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-huge.v-disabled [class$="button"] {
+	cursor: default;
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-huge.v-disabled [class$="button"]:active:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-huge.v-readonly [class*="input"] {
+	background: #fafafa;
+	color: #464646;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-huge.v-readonly [class*="input"]:focus {
+	box-shadow: none;
+	border-color: #c5c5c5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-huge.v-readonly [class$="button"] {
+	cursor: default;
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-filterselect-huge.v-readonly [class$="button"]:active:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-csslayout-well {
+	background: #f5f5f5;
+	color: #454545;
+	-webkit-box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05);
+	border-radius: 4px;
+	border: 1px solid #c5c5c5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-csslayout-well  > div > [class*="-caption"] {
+	background: transparent;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-csslayout-well  > .v-margin-top {
+	padding-top: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-csslayout-well  > .v-margin-right {
+	padding-right: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-csslayout-well  > .v-margin-bottom {
+	padding-bottom: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-csslayout-well  > .v-margin-left {
+	padding-left: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-csslayout-card {
+	background: white;
+	color: #474747;
+	border-radius: 4px;
+	border: 1px solid #d5d5d5;
+	-webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-csslayout-card  > .v-margin-top {
+	padding-top: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-csslayout-card  > .v-margin-right {
+	padding-right: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-csslayout-card  > .v-margin-bottom {
+	padding-bottom: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-csslayout-card  > .v-margin-left {
+	padding-left: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-csslayout-v-component-group {
+	white-space: nowrap;
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-csslayout-v-component-group .v-widget ~ .v-widget:not(:last-child) {
+	border-radius: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-csslayout-v-component-group .v-widget:last-child {
+	border-top-left-radius: 0;
+	border-bottom-left-radius: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-csslayout-v-component-group .v-widget:first-child, .org_osbee_vaadin_addons_designer_overlay .v-csslayout-v-component-group .v-caption:first-child + .v-widget {
+	border-top-right-radius: 0;
+	border-bottom-right-radius: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-csslayout-v-component-group .v-widget ~ .v-widget.first.first {
+	border-radius: 4px 0 0 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-csslayout-v-component-group .v-widget ~ .v-widget.last.last {
+	border-radius: 0 4px 4px 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-csslayout-v-component-group .v-widget {
+	vertical-align: middle;
+	margin-left: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-csslayout-v-component-group .v-widget:first-child {
+	margin-left: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-csslayout-v-component-group .v-widget:focus, .org_osbee_vaadin_addons_designer_overlay .v-csslayout-v-component-group .v-widget[class*="focus"], .org_osbee_vaadin_addons_designer_overlay .v-csslayout-v-component-group .v-widget [class*="focus"] {
+	position: relative;
+	z-index: 5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-form fieldset {
+	border: none;
+	padding: 0;
+	margin: 0;
+	height: 100%;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-form-content {
+	height: 100%;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+.org_osbee_vaadin_addons_designer_overlay [class*="spacing"] > tbody > [class*="row"] > td {
+	padding-top: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay [class*="spacing"] > tbody > [class*="firstrow"] > td {
+	padding-top: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay [class*="margin-top"] > tbody > [class*="firstrow"] > td {
+	padding-top: 37px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay [class*="margin-bottom"] > tbody > [class*="lastrow"] > td {
+	padding-bottom: 37px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay [class*="margin-left"] > tbody > [class*="row"] > [class*="captioncell"] {
+	padding-left: 37px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"]  > .v-label-h2, .org_osbee_vaadin_addons_designer_overlay [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"]  > .v-label-h3, .org_osbee_vaadin_addons_designer_overlay [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"]  > .v-label-h4 {
+	left: 37px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] {
+	padding-right: 37px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"]  > .v-label-h2, .org_osbee_vaadin_addons_designer_overlay [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"]  > .v-label-h3, .org_osbee_vaadin_addons_designer_overlay [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"]  > .v-label-h4 {
+	right: 37px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout > table {
+	border-spacing: 0;
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout.v-has-width > table, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.v-has-width .v-formlayout-contentcell {
+	width: 100%;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout-error-indicator {
+	width: 19px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout-captioncell {
+	vertical-align: top;
+	line-height: 36px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout-captioncell .v-caption {
+	padding-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout-captioncell .v-caption-h2, .org_osbee_vaadin_addons_designer_overlay .v-formlayout-captioncell .v-caption-h3, .org_osbee_vaadin_addons_designer_overlay .v-formlayout-captioncell .v-caption-h4 {
+	height: 3em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout-contentcell .v-checkbox, .org_osbee_vaadin_addons_designer_overlay .v-formlayout-contentcell .v-radiobutton {
+	font-weight: 400;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout-contentcell  > .v-label-h2, .org_osbee_vaadin_addons_designer_overlay .v-formlayout-contentcell  > .v-label-h3, .org_osbee_vaadin_addons_designer_overlay .v-formlayout-contentcell  > .v-label-h4 {
+	position: absolute;
+	left: 0;
+	right: 0;
+	width: auto !important;
+	margin-top: -0.5em;
+	padding-bottom: 0.5em;
+	border-bottom: 1px solid #dfdfdf;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table {
+	padding: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > tr > td {
+	padding-top: 0;
+	height: 37px;
+	border-bottom: 1px solid #eaeaea;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="lastrow"] > td {
+	border-bottom: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > tr > [class*="captioncell"] {
+	color: #7d7d7d;
+	text-align: right;
+	padding-left: 13px;
+	line-height: 37px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"] {
+	padding-right: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-textfield, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-textarea, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-filterselect, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-datefield, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-filterselect-input, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-datefield-textfield {
+	width: 100%;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-textfield, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-textarea, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-filterselect input, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-datefield input, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-richtextarea {
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 37px;
+	border-radius: 0;
+	padding: 4px 7px;
+	
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+	background: transparent;
+	border: none;
+	color: inherit;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-textfield, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-textfield, .v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-textarea, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-textarea, .v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-filterselect input, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-filterselect input, .v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-datefield input, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-datefield input, .v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-richtextarea, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-richtextarea {
+	line-height: 37px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-textfield.v-disabled, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-textarea.v-disabled, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-filterselect input.v-disabled, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-datefield input.v-disabled, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-richtextarea.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-textfield:focus, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-textarea:focus, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-filterselect input:focus, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-datefield input:focus, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-richtextarea:focus {
+	outline: none;
+	-webkit-transition: none;
+	-moz-transition: none;
+	transition: none;
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), none;
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), none;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-textfield:focus, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-textarea:focus, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-filterselect input:focus, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-datefield input:focus, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-richtextarea:focus {
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-textfield-prompt, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-textarea-prompt, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-filterselect-prompt input, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-datefield-prompt input {
+	color: #a3a3a3;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-textarea, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-richtextarea {
+	height: auto;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-label-h2, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-label-h3, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-label-h4 {
+	border-bottom: none;
+	left: 0;
+	right: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-label-h3, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light  > table > tbody > [class*="row"] > [class*="contentcell"]  > .v-label-h4 {
+	margin-top: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout.light .v-richtextarea {
+	margin: 5px 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout.light .v-filterselect-button, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light .v-datefield-button {
+	border: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout.light .v-filterselect-button:active:after, .org_osbee_vaadin_addons_designer_overlay .v-formlayout.light .v-datefield-button:active:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout.light .v-datefield-button {
+	right: 0;
+	left: auto;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-formlayout.light .v-checkbox {
+	margin-left: 7px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid {
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-scroller {
+	position: absolute;
+	z-index: 1;
+	outline: none;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-scroller-horizontal {
+	left: 0;
+	right: 0;
+	bottom: 0;
+	overflow-y: hidden;
+	-ms-overflow-y: hidden;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-scroller-vertical {
+	right: 0;
+	top: 0;
+	bottom: 0;
+	overflow-x: hidden;
+	-ms-overflow-x: hidden;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-tablewrapper {
+	position: absolute;
+	overflow: hidden;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	z-index: 5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-tablewrapper > table {
+	border-spacing: 0;
+	table-layout: fixed;
+	width: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-header-deco, .org_osbee_vaadin_addons_designer_overlay .v-grid-footer-deco {
+	position: absolute;
+	right: 0;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-horizontal-scrollbar-deco {
+	position: absolute;
+	bottom: 0;
+	left: 0;
+	right: 0;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-header, .org_osbee_vaadin_addons_designer_overlay .v-grid-body, .org_osbee_vaadin_addons_designer_overlay .v-grid-footer {
+	position: absolute;
+	left: 0;
+	width: inherit;
+	z-index: 10;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-header, .org_osbee_vaadin_addons_designer_overlay .v-grid-header-deco {
+	top: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-footer, .org_osbee_vaadin_addons_designer_overlay .v-grid-footer-deco {
+	bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-body {
+	z-index: 0;
+	top: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-body .v-grid-row {
+	position: absolute;
+	top: 0;
+	left: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-row {
+	display: block;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-grid-row, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-grid-row {
+	float: left;
+	clear: left;
+	margin-top: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-row  > td, .org_osbee_vaadin_addons_designer_overlay .v-grid-row  > th {
+	background-color: white;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-row {
+	width: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-cell {
+	display: block;
+	float: left;
+	padding: 2px;
+	white-space: nowrap;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	overflow: hidden;
+	font-size: 16px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-cell.frozen {
+	position: relative;
+	z-index: 1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-spacer {
+	position: absolute;
+	display: block;
+	background-color: white;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-spacer  > td {
+	width: 100%;
+	height: 100%;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-grid-spacer, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-grid-spacer {
+	margin-top: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid {
+	outline: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-scroller-vertical, .org_osbee_vaadin_addons_designer_overlay .v-grid-scroller-horizontal {
+	border: 1px solid #d4d4d4;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-scroller-vertical {
+	border-left: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-scroller-horizontal {
+	border-top: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-tablewrapper {
+	border: 1px solid #d4d4d4;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid .header-drag-table {
+	border-spacing: 0;
+	position: relative;
+	table-layout: fixed;
+	width: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid .header-drag-table .v-grid-header {
+	position: absolute;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid .header-drag-table .v-grid-header  > .v-grid-cell {
+	border: 1px solid #d4d4d4;
+	margin-top: -10px;
+	opacity: 0.9;
+	filter: alpha(opacity=90);
+	z-index: 30000;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid .header-drag-table .v-grid-header  > .v-grid-drop-marker {
+	background-color: #197de1;
+	position: absolute;
+	width: 3px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-sidebar.v-contextmenu {
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	border-radius: 0;
+	position: absolute;
+	top: 0;
+	right: 0;
+	background-color: #fafafa;
+	border: 1px solid #d4d4d4;
+	padding: 0;
+	z-index: 5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-sidebar.v-contextmenu.v-grid-sidebar-popup {
+	right: auto;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-sidebar.v-contextmenu .v-grid-sidebar-button {
+	background: transparent;
+	border: none;
+	color: inherit;
+	cursor: pointer;
+	outline: none;
+	padding: 0 4px;
+	text-align: right;
+	line-height: 1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-sidebar.v-contextmenu .v-grid-sidebar-button[disabled] {
+	cursor: default;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-sidebar.v-contextmenu .v-grid-sidebar-button::-moz-focus-inner {
+	border: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-sidebar.v-contextmenu .v-grid-sidebar-button:after {
+	content: "\f0c9";
+	display: block;
+	font-family: ThemeIcons, sans-serif;
+	font-size: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-sidebar.v-contextmenu.closed {
+	border-radius: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-sidebar.v-contextmenu.open .v-grid-sidebar-button {
+	width: 100%;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-sidebar.v-contextmenu.open .v-grid-sidebar-button:after {
+	content: "\f0c9";
+	font-size: 14px;
+	line-height: 1;
+}
+
+.v-ie .org_osbee_vaadin_addons_designer_overlay .v-grid-sidebar.v-contextmenu.open .v-grid-sidebar-button {
+	vertical-align: middle;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-grid-sidebar.v-contextmenu.open .v-grid-sidebar-button:after {
+	vertical-align: middle;
+	text-align: center;
+	display: inline;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-sidebar.v-contextmenu .v-grid-sidebar-content {
+	padding: 4px 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-sidebar.v-contextmenu .v-grid-sidebar-content .gwt-MenuBar .gwt-MenuItem .column-hiding-toggle {
+	text-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-cell {
+	background-color: white;
+	padding: 0 18px;
+	line-height: 37px;
+	text-overflow: ellipsis;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-cell  > * {
+	line-height: 1.55;
+	vertical-align: middle;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-cell  > div {
+	display: inline-block;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-cell.frozen {
+	-webkit-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1);
+	box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1);
+	border-right: 1px solid #d4d4d4;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-cell.frozen  + th, .org_osbee_vaadin_addons_designer_overlay .v-grid-cell.frozen  + td {
+	border-left: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-row > td, .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div {
+	border-left: 1px solid #d4d4d4;
+	border-bottom: 1px solid #d4d4d4;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-row > td:first-child, .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div:first-child {
+	border-left: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells.frozen > div {
+	-webkit-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1);
+	box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1);
+	border-right: 1px solid #d4d4d4;
+	border-left: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-row-stripe > td {
+	background-color: #f5f5f5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-row-selected > td {
+	background: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-row-focused > td {
+	
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-header th {
+	position: relative;
+	background-color: #fafafa;
+	font-size: 14px;
+	font-weight: inherit;
+	border-left: 1px solid #d4d4d4;
+	border-bottom: 1px solid #d4d4d4;
+	
+	text-align: left;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-header th:first-child {
+	border-left: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-header .sort-asc, .org_osbee_vaadin_addons_designer_overlay .v-grid-header .sort-desc {
+	padding-right: 35px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-header .sort-asc:after, .org_osbee_vaadin_addons_designer_overlay .v-grid-header .sort-desc:after {
+	font-family: ThemeIcons, sans-serif;
+	content: "\f0de" " " attr(sort-order);
+	position: absolute;
+	right: 18px;
+	font-size: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-header .sort-desc:after {
+	content: "\f0dd" " " attr(sort-order);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-column-resize-handle {
+	position: absolute;
+	width: 36px;
+	right: -18px;
+	top: 0px;
+	bottom: 0px;
+	cursor: col-resize;
+	z-index: 10;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-footer td {
+	background-color: #fafafa;
+	font-size: 14px;
+	font-weight: inherit;
+	border-left: 1px solid #d4d4d4;
+	border-top: 1px solid #d4d4d4;
+	border-bottom: none;
+	
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-footer td:first-child {
+	border-left: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-header .v-grid-cell, .org_osbee_vaadin_addons_designer_overlay .v-grid-footer .v-grid-cell {
+	overflow: visible;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-column-header-content, .org_osbee_vaadin_addons_designer_overlay .v-grid-column-footer-content {
+	width: 100%;
+	overflow: hidden;
+	text-overflow: ellipsis;
+	line-height: 37px;
+	vertical-align: baseline;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-header-deco {
+	border-top: 1px solid #d4d4d4;
+	border-right: 1px solid #d4d4d4;
+	background-color: #fafafa;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-footer-deco {
+	border-bottom: 1px solid #d4d4d4;
+	border-right: 1px solid #d4d4d4;
+	background-color: #fafafa;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-horizontal-scrollbar-deco {
+	background-color: #fafafa;
+	border: 1px solid #d4d4d4;
+	border-top: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-cell-focused {
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-cell-focused:before {
+	content: "";
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	border: 2px solid #197de1;
+	display: none;
+	pointer-events: none;
+}
+
+.ie8 .org_osbee_vaadin_addons_designer_overlay .v-grid-cell-focused:before, .ie9 .org_osbee_vaadin_addons_designer_overlay .v-grid-cell-focused:before, .ie10 .org_osbee_vaadin_addons_designer_overlay .v-grid-cell-focused:before {
+	content: url(data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid:focus .v-grid-cell-focused:before {
+	display: block;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid.v-disabled:focus .v-grid-cell-focused:before {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor {
+	position: absolute;
+	z-index: 20;
+	overflow: hidden;
+	left: 0;
+	right: 0;
+	border: 1px solid #d4d4d4;
+	box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	margin-top: -1px;
+	-webkit-box-shadow: 0 0 9px rgba(0, 0, 0, 0.2);
+	box-shadow: 0 0 9px rgba(0, 0, 0, 0.2);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor.unbuffered .v-grid-editor-footer {
+	width: 100%;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells {
+	position: relative;
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells.frozen {
+	z-index: 2;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells  > div {
+	display: inline-block;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	vertical-align: middle;
+	background: white;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells  > div:first-child {
+	border-left: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells  > div  > * {
+	vertical-align: middle;
+	display: inline-block;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells  > div .v-filterselect {
+	padding-left: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells  > div input[type="text"], .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells  > div input[type="text"].v-filterselect-input, .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells  > div input[type="password"] {
+	padding-left: 18px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells  > div input[type="text"]:not(.v-filterselect-input), .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells  > div input[type="password"] {
+	padding-right: 9px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells  > div input[type="checkbox"] {
+	margin-left: 18px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells  > div .v-textfield, .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells  > div .v-datefield, .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells  > div .v-filterselect {
+	min-width: 100%;
+	max-width: 100%;
+	min-height: 100%;
+	max-height: 100%;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells  > div .v-datefield-button {
+	margin-left: -30px;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells  > div .v-filterselect-button {
+	margin-left: -27px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells  > div .v-select, .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells  > div .v-select-select {
+	min-width: 100%;
+	max-width: 100%;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells  > div.not-editable.v-grid-cell {
+	float: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells .error::before {
+	position: absolute;
+	display: block;
+	height: 0;
+	width: 0;
+	content: "";
+	border-top: 5px solid red;
+	border-right: 5px solid transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells .error, .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells .error > input {
+	background-color: #fee;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-footer {
+	display: table;
+	height: 37px;
+	border-top: 1px solid #d4d4d4;
+	margin-top: -1px;
+	background: white;
+	padding: 0 5px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-footer  + .v-grid-editor-cells > div {
+	border-bottom: none;
+	border-top: 1px solid #d4d4d4;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-footer:first-child {
+	border-top: none;
+	margin-top: 0;
+	border-bottom: 1px solid #d4d4d4;
+	margin-bottom: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-message, .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-buttons {
+	display: table-cell;
+	white-space: nowrap;
+	vertical-align: middle;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-message {
+	width: 100%;
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-message  > div {
+	position: absolute;
+	width: 100%;
+	overflow: hidden;
+	text-overflow: ellipsis;
+	line-height: 37px;
+	top: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-save {
+	margin-right: 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-spacer {
+	padding-left: 1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-spacer > td {
+	display: block;
+	padding: 0;
+	background-color: white;
+	border-top: 1px solid #eeeeee;
+	border-bottom: 1px solid #d4d4d4;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-spacer.stripe > td {
+	background-color: #f5f5f5;
+	border-top: 1px solid #e5e5e5;
+	border-bottom: 1px solid #d4d4d4;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-spacer-deco-container {
+	border-top: 1px solid transparent;
+	position: relative;
+	top: 0;
+	z-index: 5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-spacer-deco {
+	top: 0;
+	left: 0;
+	width: 2px;
+	background-color: #197de1;
+	position: absolute;
+	height: 100%;
+	pointer-events: none;
+}
+
+.ie8 .org_osbee_vaadin_addons_designer_overlay .v-grid-spacer-deco:before, .ie9 .org_osbee_vaadin_addons_designer_overlay .v-grid-spacer-deco:before, .ie10 .org_osbee_vaadin_addons_designer_overlay .v-grid-spacer-deco:before {
+	content: url(data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-cell > .v-progressbar {
+	width: 100%;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid {
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	background-color: #fafafa;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-header .v-grid-cell {
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-header .v-grid-cell.dragged {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+	-webkit-transition: opacity 0.3s ease-in-out;
+	-moz-transition: opacity 0.3s ease-in-out;
+	transition: opacity 0.3s ease-in-out;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-header .v-grid-cell.dragged-column-header {
+	margin-top: -19px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-footer .v-grid-cell {
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-header-deco {
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-footer-deco, .org_osbee_vaadin_addons_designer_overlay .v-grid-horizontal-scrollbar-deco {
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-row-selected  > .v-grid-cell {
+	background-color: #197de1;
+	background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%);
+	background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%);
+	color: #c8dbed;
+	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05);
+	border-color: #1d69b4;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-row-selected  > .v-grid-cell-focused:before {
+	border-color: #71b0ef;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor {
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	border-color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-footer {
+	font-size: 14px;
+	padding: 0 6px;
+	background: #fafafa;
+	-webkit-animation: valo-grid-editor-footer-animate-in 200ms 120ms backwards;
+	-moz-animation: valo-grid-editor-footer-animate-in 200ms 120ms backwards;
+	animation: valo-grid-editor-footer-animate-in 200ms 120ms backwards;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-footer:first-child {
+	-webkit-animation: valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards;
+	-moz-animation: valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards;
+	animation: valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells {
+	z-index: 1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div:before {
+	content: "";
+	display: inline-block;
+	height: 100%;
+	vertical-align: middle;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div.not-editable.v-grid-cell {
+	float: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div .error::before {
+	border-top: 9px solid #ed473b;
+	border-right: 9px solid transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div .error, .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div .error > input {
+	background-color: #fffbfb;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div .v-textfield, .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div .v-textfield-focus, .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div .v-datefield, .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div .v-datefield .v-textfield-focus, .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div .v-filterselect-input, .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div .v-filterselect-input:focus {
+	border: none;
+	border-radius: 0;
+	background: transparent;
+	-webkit-box-shadow: inset 0 1px 0 #f2f2f2;
+	box-shadow: inset 0 1px 0 #f2f2f2;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div input[type="text"].v-datefield-textfield {
+	padding-left: 44.4px;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div .v-datefield-button {
+	margin-left: 0px;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div .v-filterselect-button {
+	margin-left: 0px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div .v-textfield-focus, .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div .v-datefield .v-textfield-focus, .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div .v-filterselect-input:focus {
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div .v-select {
+	padding-left: 9px;
+	padding-right: 9px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div .v-checkbox {
+	margin: 0 9px 0 18px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div .v-checkbox  > input[type="checkbox"] {
+	margin-left: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cells > div .v-checkbox  > label {
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-message > div:before {
+	display: inline-block;
+	color: #ed473b;
+	font-weight: 600;
+	width: 19px;
+	text-align: center;
+	content: "!";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-save, .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cancel {
+	cursor: pointer;
+	color: #197de1;
+	text-decoration: underline;
+	font-weight: inherit;
+	-webkit-transition: color 140ms;
+	-moz-transition: color 140ms;
+	transition: color 140ms;
+	font-weight: 400;
+	text-decoration: none;
+	border: none;
+	background: transparent;
+	padding: 6px 6px;
+	margin: 0;
+	outline: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-save:hover, .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cancel:hover {
+	color: #4396ea;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-editor-save.v-disabled, .org_osbee_vaadin_addons_designer_overlay .v-grid-editor-cancel.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-spacer {
+	margin-top: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-sidebar.v-contextmenu.open .v-grid-sidebar-content {
+	margin: 0 0 2px;
+	padding: 4px 4px 2px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-sidebar.v-contextmenu.closed {
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-scroller::-webkit-scrollbar {
+	border: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-scroller::-webkit-scrollbar-thumb {
+	border-radius: 10px;
+	border: 4px solid transparent;
+	background: rgba(0, 0, 0, 0.3);
+	-webkit-background-clip: content-box;
+	background-clip: content-box;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-scroller-vertical::-webkit-scrollbar-thumb {
+	min-height: 30px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-grid-scroller-horizontal::-webkit-scrollbar-thumb {
+	min-width: 30px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield {
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 37px;
+	border-radius: 4px;
+	padding: 4px 9px;
+	border: 1px solid #c5c5c5;
+	background: white;
+	color: #474747;
+	-webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1);
+	box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1);
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+	width: 185px;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-textfield, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-textfield {
+	line-height: 37px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield:focus {
+	outline: none;
+	-webkit-transition: none;
+	-moz-transition: none;
+	transition: none;
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1);
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield[class*="prompt"] {
+	color: #a3a3a3;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield-readonly {
+	background: #fafafa;
+	color: #464646;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield-readonly:focus {
+	box-shadow: none;
+	border-color: #c5c5c5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield-error {
+	border-color: #ed473b !important;
+	background: #fffbfb;
+	color: #6c2621;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield-borderless {
+	border: none;
+	border-radius: 0;
+	background: transparent;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	color: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield-borderless:focus {
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield-borderless[class*="prompt"] {
+	color: inherit;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield-tiny {
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 28px;
+	border-radius: 4px;
+	padding: 3px 7px;
+	
+	
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+	font-size: 12px;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-textfield-tiny, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-textfield-tiny {
+	line-height: 28px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield-compact, .org_osbee_vaadin_addons_designer_overlay .v-textfield-small {
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 31px;
+	border-radius: 4px;
+	padding: 3px 8px;
+	
+	
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-textfield-compact, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-textfield-compact, .v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-textfield-small, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-textfield-small {
+	line-height: 31px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield-small {
+	font-size: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield-large {
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 44px;
+	border-radius: 4px;
+	padding: 5px 10px;
+	
+	
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+	font-size: 20px;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-textfield-large, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-textfield-large {
+	line-height: 44px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield-huge {
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 59px;
+	border-radius: 4px;
+	padding: 7px 12px;
+	
+	
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+	font-size: 26px;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-textfield-huge, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-textfield-huge {
+	line-height: 59px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slot-inline-icon {
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon {
+	padding: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon .v-captiontext {
+	font-size: 14px;
+	font-weight: 400;
+	padding-bottom: 0.3em;
+	padding-left: 1px;
+	margin: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon .v-icon {
+	position: absolute;
+	z-index: 10;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon span.v-icon {
+	left: 1px;
+	bottom: 1px;
+	width: 37px;
+	line-height: 35px;
+	text-align: center;
+	font-size: 16px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon img.v-icon {
+	left: 11px;
+	bottom: 11px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield-inline-icon  {
+	padding-left: 37px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slot-inline-icon.v-slot-tiny {
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-tiny {
+	padding: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-tiny .v-captiontext {
+	font-size: 14px;
+	font-weight: 400;
+	padding-bottom: 0.3em;
+	padding-left: 1px;
+	margin: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-tiny .v-icon {
+	position: absolute;
+	z-index: 10;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-tiny span.v-icon {
+	left: 1px;
+	bottom: 1px;
+	width: 28px;
+	line-height: 26px;
+	text-align: center;
+	font-size: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-tiny img.v-icon {
+	left: 6px;
+	bottom: 6px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield-inline-icon.v-textfield-tiny  {
+	padding-left: 28px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slot-inline-icon.v-slot-compact {
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-compact {
+	padding: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-compact .v-captiontext {
+	font-size: 14px;
+	font-weight: 400;
+	padding-bottom: 0.3em;
+	padding-left: 1px;
+	margin: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-compact .v-icon {
+	position: absolute;
+	z-index: 10;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-compact span.v-icon {
+	left: 1px;
+	bottom: 1px;
+	width: 31px;
+	line-height: 29px;
+	text-align: center;
+	font-size: 16px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-compact img.v-icon {
+	left: 8px;
+	bottom: 8px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield-inline-icon.v-textfield-compact  {
+	padding-left: 31px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slot-inline-icon.v-slot-small {
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-small {
+	padding: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-small .v-captiontext {
+	font-size: 14px;
+	font-weight: 400;
+	padding-bottom: 0.3em;
+	padding-left: 1px;
+	margin: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-small .v-icon {
+	position: absolute;
+	z-index: 10;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-small span.v-icon {
+	left: 1px;
+	bottom: 1px;
+	width: 31px;
+	line-height: 29px;
+	text-align: center;
+	font-size: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-small img.v-icon {
+	left: 8px;
+	bottom: 8px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield-inline-icon.v-textfield-small  {
+	padding-left: 31px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slot-inline-icon.v-slot-large {
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-large {
+	padding: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-large .v-captiontext {
+	font-size: 14px;
+	font-weight: 400;
+	padding-bottom: 0.3em;
+	padding-left: 1px;
+	margin: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-large .v-icon {
+	position: absolute;
+	z-index: 10;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-large span.v-icon {
+	left: 1px;
+	bottom: 1px;
+	width: 44px;
+	line-height: 42px;
+	text-align: center;
+	font-size: 20px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-large img.v-icon {
+	left: 14px;
+	bottom: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield-inline-icon.v-textfield-large  {
+	padding-left: 44px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slot-inline-icon.v-slot-huge {
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-huge {
+	padding: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-huge .v-captiontext {
+	font-size: 14px;
+	font-weight: 400;
+	padding-bottom: 0.3em;
+	padding-left: 1px;
+	margin: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-huge .v-icon {
+	position: absolute;
+	z-index: 10;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-huge span.v-icon {
+	left: 1px;
+	bottom: 1px;
+	width: 59px;
+	line-height: 57px;
+	text-align: center;
+	font-size: 26px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-caption-inline-icon.v-caption-huge img.v-icon {
+	left: 22px;
+	bottom: 22px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield-inline-icon.v-textfield-huge  {
+	padding-left: 59px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield-align-right {
+	text-align: right;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textfield-align-center {
+	text-align: center;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textarea {
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 37px;
+	border-radius: 4px;
+	padding: 6px;
+	border: 1px solid #c5c5c5;
+	background: white;
+	color: #474747;
+	-webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1);
+	box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1);
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+	height: auto;
+	resize: none;
+	white-space: pre-wrap;
+	width: 185px;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-textarea, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-textarea {
+	line-height: 37px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textarea.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textarea:focus {
+	outline: none;
+	-webkit-transition: none;
+	-moz-transition: none;
+	transition: none;
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1);
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textarea[class*="prompt"] {
+	color: #a3a3a3;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-textarea, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-textarea {
+	line-height: inherit;
+	padding-top: 4px;
+	padding-bottom: 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textarea-readonly {
+	background: #fafafa;
+	color: #464646;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textarea-readonly:focus {
+	box-shadow: none;
+	border-color: #c5c5c5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textarea-error {
+	border-color: #ed473b !important;
+	background: #fffbfb;
+	color: #6c2621;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textarea-borderless {
+	border: none;
+	border-radius: 0;
+	background: transparent;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	color: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textarea-borderless:focus {
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textarea-borderless[class*="prompt"] {
+	color: inherit;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textarea-tiny {
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 28px;
+	border-radius: 4px;
+	padding: 6px;
+	
+	
+	
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+	height: auto;
+	resize: none;
+	white-space: pre-wrap;
+	font-size: 12px;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-textarea-tiny, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-textarea-tiny {
+	line-height: 28px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-textarea-tiny, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-textarea-tiny {
+	line-height: inherit;
+	padding-top: 3px;
+	padding-bottom: 3px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textarea-small {
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 31px;
+	border-radius: 4px;
+	padding: 6px;
+	
+	
+	
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+	height: auto;
+	resize: none;
+	white-space: pre-wrap;
+	font-size: 14px;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-textarea-small, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-textarea-small {
+	line-height: 31px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-textarea-small, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-textarea-small {
+	line-height: inherit;
+	padding-top: 3px;
+	padding-bottom: 3px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textarea-large {
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 44px;
+	border-radius: 4px;
+	padding: 6px;
+	
+	
+	
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+	height: auto;
+	resize: none;
+	white-space: pre-wrap;
+	font-size: 20px;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-textarea-large, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-textarea-large {
+	line-height: 44px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-textarea-large, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-textarea-large {
+	line-height: inherit;
+	padding-top: 5px;
+	padding-bottom: 5px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textarea-huge {
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 59px;
+	border-radius: 4px;
+	padding: 6px;
+	
+	
+	
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+	height: auto;
+	resize: none;
+	white-space: pre-wrap;
+	font-size: 26px;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-textarea-huge, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-textarea-huge {
+	line-height: 59px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-textarea-huge, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-textarea-huge {
+	line-height: inherit;
+	padding-top: 7px;
+	padding-bottom: 7px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textarea-align-right {
+	text-align: right;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-textarea-align-center {
+	text-align: center;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield {
+	position: relative;
+	width: 185px;
+	height: 37px;
+	border-radius: 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield [class*="textfield"] {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 37px;
+	border-radius: 4px;
+	padding: 4px 9px;
+	border: 1px solid #c5c5c5;
+	background: white;
+	color: #474747;
+	-webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1);
+	box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1);
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+	padding-left: 44.4px;
+	width: 100%;
+	height: 100%;
+	border-radius: inherit;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-datefield [class*="textfield"], .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-datefield [class*="textfield"] {
+	line-height: 37px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield [class*="textfield"].v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield [class*="textfield"]:focus {
+	outline: none;
+	-webkit-transition: none;
+	-moz-transition: none;
+	transition: none;
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1);
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield [class*="textfield"][class*="prompt"] {
+	color: #a3a3a3;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield[class*="prompt"] > [class*="textfield"] {
+	color: #a3a3a3;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield [class*="button"] {
+	-webkit-tap-highlight-color: transparent;
+	-webkit-touch-callout: none;
+	cursor: pointer;
+	-webkit-appearance: none;
+	background: transparent;
+	padding: 0;
+	position: absolute;
+	z-index: 10;
+	width: 37px;
+	line-height: 35px;
+	text-align: center;
+	font: inherit;
+	outline: none;
+	margin: 0;
+	top: 1px;
+	bottom: 1px;
+	left: 1px;
+	border: none;
+	border-right: 1px solid #e4e4e4;
+	color: #a3a3a3;
+	border-radius: 3px 0 0 3px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield [class*="button"]:hover {
+	color: #474747;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield [class*="button"]:before {
+	font-family: ThemeIcons;
+	content: "\f073";
+	-webkit-transition: color 140ms;
+	-moz-transition: color 140ms;
+	transition: color 140ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield [class*="button"]:active:after {
+	content: "";
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	background-color: rgba(128, 128, 128, 0.2);
+	border-radius: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield.v-disabled [class*="button"] {
+	cursor: default;
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield.v-disabled [class*="button"]:active:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield.v-readonly [class*="textfield"] {
+	background: #fafafa;
+	color: #464646;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield.v-readonly [class*="textfield"]:focus {
+	box-shadow: none;
+	border-color: #c5c5c5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield.v-readonly [class*="button"] {
+	cursor: default;
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield.v-readonly [class*="button"]:active:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-error .v-datefield-textfield {
+	border-color: #ed473b !important;
+	background: #fffbfb;
+	color: #6c2621;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-error .v-datefield-button {
+	color: #ed473b;
+	border-color: #ed473b;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-full {
+	width: 240px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-day {
+	width: 185px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-month {
+	width: 120px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-year {
+	width: 104px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup {
+	padding: 4px 4px;
+	border-radius: 4px;
+	background-color: white;
+	color: #474747;
+	-webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098);
+	box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098);
+	-webkit-backface-visibility: hidden;
+	-moz-backface-visibility: hidden;
+	-ms-backface-visibility: hidden;
+	backface-visibility: hidden;
+	margin-top: 5px !important;
+	margin-bottom: 5px !important;
+	margin-right: 5px !important;
+	cursor: default;
+	width: auto;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup[class*="animate-in"] {
+	-webkit-animation: valo-overlay-animate-in 120ms;
+	-moz-animation: valo-overlay-animate-in 120ms;
+	animation: valo-overlay-animate-in 120ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup[class*="animate-out"] {
+	-webkit-animation: valo-animate-out-fade 120ms;
+	-moz-animation: valo-animate-out-fade 120ms;
+	animation: valo-animate-out-fade 120ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup table {
+	border-collapse: collapse;
+	border-spacing: 0;
+	margin: 0 auto;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup td {
+	padding: 2px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-datefield-calendarpanel {
+	font-size: 16px;
+	text-align: center;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-datefield-calendarpanel:focus {
+	outline: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-datefield-calendarpanel-day {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	width: 30px;
+	height: 26px;
+	border: 1px solid transparent;
+	line-height: 26px;
+	text-align: center;
+	font-size: 14px;
+	background: #fafafa;
+	border-radius: 2px;
+	-webkit-transition: color 200ms;
+	-moz-transition: color 200ms;
+	transition: color 200ms;
+	display: inline-block;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	cursor: pointer;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-datefield-calendarpanel-day:hover {
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-datefield-calendarpanel-day-offmonth {
+	color: #a0a0a0;
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-datefield-calendarpanel-day-today {
+	color: #191919;
+	font-weight: 600;
+	border-color: #afafaf;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-selected, .org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-selected:hover {
+	color: #c8dbed;
+	background-color: #197de1;
+	background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%);
+	background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%);
+	border: none;
+	font-weight: 600;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-focused {
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	position: relative;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-focused {
+	border-color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-outside-range, .org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-outside-range:hover {
+	color: #a0a0a0;
+	cursor: not-allowed;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-datefield-calendarpanel-weekdays {
+	height: 26px;
+	color: rgba(133, 133, 133, 0.85);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-datefield-calendarpanel-weekdays strong {
+	font: inherit;
+	font-size: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-datefield-calendarpanel-header {
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup td[class*="year"] button, .org_osbee_vaadin_addons_designer_overlay .v-datefield-popup td[class*="month"] button {
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	border: none;
+	background: transparent;
+	padding: 0;
+	margin: 0;
+	cursor: pointer;
+	color: transparent;
+	font-size: 0;
+	width: 19px;
+	height: 25px;
+	outline: none;
+	position: relative;
+	vertical-align: middle;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup td[class*="year"] button:before, .org_osbee_vaadin_addons_designer_overlay .v-datefield-popup td[class*="month"] button:before {
+	color: #a0a0a0;
+	font-size: 21px;
+	line-height: 24px;
+	-webkit-transition: color 200ms;
+	-moz-transition: color 200ms;
+	transition: color 200ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup td[class*="year"] button:hover:before, .org_osbee_vaadin_addons_designer_overlay .v-datefield-popup td[class*="month"] button:hover:before {
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup td[class*="year"] button.outside-range, .org_osbee_vaadin_addons_designer_overlay .v-datefield-popup td[class*="month"] button.outside-range {
+	cursor: default;
+	opacity: 0.3;
+	filter: alpha(opacity=30.0) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup td[class*="year"] button.outside-range:hover:before, .org_osbee_vaadin_addons_designer_overlay .v-datefield-popup td[class*="month"] button.outside-range:hover:before {
+	color: #a0a0a0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-button-prevyear:before {
+	font-family: ThemeIcons;
+	content: "\f100";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-button-prevmonth:before {
+	font-family: ThemeIcons;
+	content: "\f104";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-button-nextyear:before {
+	font-family: ThemeIcons;
+	content: "\f101";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-button-nextmonth:before {
+	font-family: ThemeIcons;
+	content: "\f105";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup td.v-datefield-calendarpanel-month {
+	width: 148px;
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-datefield-calendarpanel-year td.v-datefield-calendarpanel-month {
+	width: 74px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-datefield-calendarpanel-weeknumber, .org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-datefield-calendarpanel-weekdays.v-datefield-calendarpanel-weeknumbers td:first-child {
+	width: 30px;
+	color: rgba(133, 133, 133, 0.85);
+	font-size: 14px;
+	display: inline-block;
+	text-align: left;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-datefield-calendarpanel-weeknumber {
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup .v-datefield-calendarpanel-weeknumbers .v-first:before {
+	content: "";
+	position: absolute;
+	top: 38px;
+	bottom: 0;
+	left: 0;
+	width: 34px;
+	border-top: 1px solid #eaeaea;
+	border-right: 1px solid #eaeaea;
+	border-top-right-radius: 4px;
+	border-bottom-left-radius: 4px;
+	background: #fafafa;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup td.v-datefield-calendarpanel-time {
+	width: 100%;
+	font-size: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-popup td.v-datefield-calendarpanel-time .v-label {
+	display: inline;
+	margin: 0 0.1em;
+	font-weight: 400;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-calendarpanel {
+	font-size: 16px;
+	text-align: center;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-calendarpanel:focus {
+	outline: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-calendarpanel-day {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	width: 30px;
+	height: 26px;
+	border: 1px solid transparent;
+	line-height: 26px;
+	text-align: center;
+	font-size: 14px;
+	background: #fafafa;
+	border-radius: 2px;
+	-webkit-transition: color 200ms;
+	-moz-transition: color 200ms;
+	transition: color 200ms;
+	display: inline-block;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	cursor: pointer;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-calendarpanel-day:hover {
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-calendarpanel-day-offmonth {
+	color: #a0a0a0;
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-calendarpanel-day-today {
+	color: #191919;
+	font-weight: 600;
+	border-color: #afafaf;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-selected, .org_osbee_vaadin_addons_designer_overlay .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-selected:hover {
+	color: #c8dbed;
+	background-color: #197de1;
+	background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%);
+	background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%);
+	border: none;
+	font-weight: 600;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-focused {
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	position: relative;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-focused {
+	border-color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-outside-range, .org_osbee_vaadin_addons_designer_overlay .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-outside-range:hover {
+	color: #a0a0a0;
+	cursor: not-allowed;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-calendarpanel-weekdays {
+	height: 26px;
+	color: rgba(133, 133, 133, 0.85);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-calendarpanel-weekdays strong {
+	font: inherit;
+	font-size: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-calendarpanel-header {
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay td[class*="year"] button, .org_osbee_vaadin_addons_designer_overlay td[class*="month"] button {
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	border: none;
+	background: transparent;
+	padding: 0;
+	margin: 0;
+	cursor: pointer;
+	color: transparent;
+	font-size: 0;
+	width: 19px;
+	height: 25px;
+	outline: none;
+	position: relative;
+	vertical-align: middle;
+}
+
+.org_osbee_vaadin_addons_designer_overlay td[class*="year"] button:before, .org_osbee_vaadin_addons_designer_overlay td[class*="month"] button:before {
+	color: #a0a0a0;
+	font-size: 21px;
+	line-height: 24px;
+	-webkit-transition: color 200ms;
+	-moz-transition: color 200ms;
+	transition: color 200ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay td[class*="year"] button:hover:before, .org_osbee_vaadin_addons_designer_overlay td[class*="month"] button:hover:before {
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay td[class*="year"] button.outside-range, .org_osbee_vaadin_addons_designer_overlay td[class*="month"] button.outside-range {
+	cursor: default;
+	opacity: 0.3;
+	filter: alpha(opacity=30.0) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay td[class*="year"] button.outside-range:hover:before, .org_osbee_vaadin_addons_designer_overlay td[class*="month"] button.outside-range:hover:before {
+	color: #a0a0a0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-prevyear:before {
+	font-family: ThemeIcons;
+	content: "\f100";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-prevmonth:before {
+	font-family: ThemeIcons;
+	content: "\f104";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-nextyear:before {
+	font-family: ThemeIcons;
+	content: "\f101";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-nextmonth:before {
+	font-family: ThemeIcons;
+	content: "\f105";
+}
+
+.org_osbee_vaadin_addons_designer_overlay td.v-datefield-calendarpanel-month {
+	width: 148px;
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-calendarpanel-year td.v-datefield-calendarpanel-month {
+	width: 74px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-calendarpanel-weeknumber, .org_osbee_vaadin_addons_designer_overlay .v-datefield-calendarpanel-weekdays.v-datefield-calendarpanel-weeknumbers td:first-child {
+	width: 30px;
+	color: rgba(133, 133, 133, 0.85);
+	font-size: 14px;
+	display: inline-block;
+	text-align: left;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-calendarpanel-weeknumber {
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-calendarpanel-weeknumbers .v-first:before {
+	content: "";
+	position: absolute;
+	top: 38px;
+	bottom: 0;
+	left: 0;
+	width: 34px;
+	border-top: 1px solid #eaeaea;
+	border-right: 1px solid #eaeaea;
+	border-top-right-radius: 4px;
+	border-bottom-left-radius: 4px;
+	background: #fafafa;
+}
+
+.org_osbee_vaadin_addons_designer_overlay td.v-datefield-calendarpanel-time {
+	width: 100%;
+	font-size: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay td.v-datefield-calendarpanel-time .v-label {
+	display: inline;
+	margin: 0 0.1em;
+	font-weight: 400;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-borderless .v-datefield-textfield {
+	border: none;
+	border-radius: 0;
+	background: transparent;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	color: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-borderless .v-datefield-textfield:focus {
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-borderless .v-datefield-textfield[class*="prompt"] {
+	color: inherit;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-borderless .v-datefield-button {
+	border: none;
+	color: inherit;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-align-right input {
+	text-align: right;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-align-center input {
+	text-align: center;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-tiny {
+	height: 28px;
+	border-radius: 4px;
+	font-size: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-tiny [class*="textfield"] {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 28px;
+	border-radius: 4px;
+	padding: 3px 7px;
+	
+	
+	
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+	padding-left: 33.6px;
+	width: 100%;
+	height: 100%;
+	border-radius: inherit;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-datefield-tiny [class*="textfield"], .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-datefield-tiny [class*="textfield"] {
+	line-height: 28px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-tiny [class*="button"] {
+	-webkit-tap-highlight-color: transparent;
+	-webkit-touch-callout: none;
+	cursor: pointer;
+	-webkit-appearance: none;
+	background: transparent;
+	padding: 0;
+	position: absolute;
+	z-index: 10;
+	width: 28px;
+	line-height: 28px;
+	text-align: center;
+	font: inherit;
+	outline: none;
+	margin: 0;
+	border-radius: 4px 0 0 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-tiny [class*="button"]:before {
+	font-family: ThemeIcons;
+	content: "\f073";
+	-webkit-transition: color 140ms;
+	-moz-transition: color 140ms;
+	transition: color 140ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-tiny [class*="button"]:active:after {
+	content: "";
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	border-radius: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-tiny.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-tiny.v-disabled [class*="button"] {
+	cursor: default;
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-tiny.v-disabled [class*="button"]:active:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-tiny.v-readonly [class*="textfield"] {
+	background: #fafafa;
+	color: #464646;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-tiny.v-readonly [class*="textfield"]:focus {
+	box-shadow: none;
+	border-color: #c5c5c5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-tiny.v-readonly [class*="button"] {
+	cursor: default;
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-tiny.v-readonly [class*="button"]:active:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-compact, .org_osbee_vaadin_addons_designer_overlay .v-datefield-small {
+	height: 31px;
+	border-radius: 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-compact [class*="textfield"], .org_osbee_vaadin_addons_designer_overlay .v-datefield-small [class*="textfield"] {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 31px;
+	border-radius: 4px;
+	padding: 3px 8px;
+	
+	
+	
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+	padding-left: 37.2px;
+	width: 100%;
+	height: 100%;
+	border-radius: inherit;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-datefield-compact [class*="textfield"], .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-datefield-compact [class*="textfield"], .v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-datefield-small [class*="textfield"], .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-datefield-small [class*="textfield"] {
+	line-height: 31px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-compact [class*="button"], .org_osbee_vaadin_addons_designer_overlay .v-datefield-small [class*="button"] {
+	-webkit-tap-highlight-color: transparent;
+	-webkit-touch-callout: none;
+	cursor: pointer;
+	-webkit-appearance: none;
+	background: transparent;
+	padding: 0;
+	position: absolute;
+	z-index: 10;
+	width: 31px;
+	line-height: 31px;
+	text-align: center;
+	font: inherit;
+	outline: none;
+	margin: 0;
+	border-radius: 4px 0 0 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-compact [class*="button"]:before, .org_osbee_vaadin_addons_designer_overlay .v-datefield-small [class*="button"]:before {
+	font-family: ThemeIcons;
+	content: "\f073";
+	-webkit-transition: color 140ms;
+	-moz-transition: color 140ms;
+	transition: color 140ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-compact [class*="button"]:active:after, .org_osbee_vaadin_addons_designer_overlay .v-datefield-small [class*="button"]:active:after {
+	content: "";
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	border-radius: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-compact.v-disabled, .org_osbee_vaadin_addons_designer_overlay .v-datefield-small.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-compact.v-disabled [class*="button"], .org_osbee_vaadin_addons_designer_overlay .v-datefield-small.v-disabled [class*="button"] {
+	cursor: default;
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-compact.v-disabled [class*="button"]:active:after, .org_osbee_vaadin_addons_designer_overlay .v-datefield-small.v-disabled [class*="button"]:active:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-compact.v-readonly [class*="textfield"], .org_osbee_vaadin_addons_designer_overlay .v-datefield-small.v-readonly [class*="textfield"] {
+	background: #fafafa;
+	color: #464646;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-compact.v-readonly [class*="textfield"]:focus, .org_osbee_vaadin_addons_designer_overlay .v-datefield-small.v-readonly [class*="textfield"]:focus {
+	box-shadow: none;
+	border-color: #c5c5c5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-compact.v-readonly [class*="button"], .org_osbee_vaadin_addons_designer_overlay .v-datefield-small.v-readonly [class*="button"] {
+	cursor: default;
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-compact.v-readonly [class*="button"]:active:after, .org_osbee_vaadin_addons_designer_overlay .v-datefield-small.v-readonly [class*="button"]:active:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-small {
+	font-size: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-large {
+	height: 44px;
+	border-radius: 4px;
+	font-size: 20px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-large [class*="textfield"] {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 44px;
+	border-radius: 4px;
+	padding: 5px 10px;
+	
+	
+	
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+	padding-left: 52.8px;
+	width: 100%;
+	height: 100%;
+	border-radius: inherit;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-datefield-large [class*="textfield"], .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-datefield-large [class*="textfield"] {
+	line-height: 44px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-large [class*="button"] {
+	-webkit-tap-highlight-color: transparent;
+	-webkit-touch-callout: none;
+	cursor: pointer;
+	-webkit-appearance: none;
+	background: transparent;
+	padding: 0;
+	position: absolute;
+	z-index: 10;
+	width: 44px;
+	line-height: 44px;
+	text-align: center;
+	font: inherit;
+	outline: none;
+	margin: 0;
+	border-radius: 4px 0 0 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-large [class*="button"]:before {
+	font-family: ThemeIcons;
+	content: "\f073";
+	-webkit-transition: color 140ms;
+	-moz-transition: color 140ms;
+	transition: color 140ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-large [class*="button"]:active:after {
+	content: "";
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	border-radius: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-large.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-large.v-disabled [class*="button"] {
+	cursor: default;
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-large.v-disabled [class*="button"]:active:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-large.v-readonly [class*="textfield"] {
+	background: #fafafa;
+	color: #464646;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-large.v-readonly [class*="textfield"]:focus {
+	box-shadow: none;
+	border-color: #c5c5c5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-large.v-readonly [class*="button"] {
+	cursor: default;
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-large.v-readonly [class*="button"]:active:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-huge {
+	height: 59px;
+	border-radius: 4px;
+	font-size: 26px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-huge [class*="textfield"] {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 59px;
+	border-radius: 4px;
+	padding: 7px 12px;
+	
+	
+	
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+	padding-left: 70.8px;
+	width: 100%;
+	height: 100%;
+	border-radius: inherit;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-datefield-huge [class*="textfield"], .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-datefield-huge [class*="textfield"] {
+	line-height: 59px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-huge [class*="button"] {
+	-webkit-tap-highlight-color: transparent;
+	-webkit-touch-callout: none;
+	cursor: pointer;
+	-webkit-appearance: none;
+	background: transparent;
+	padding: 0;
+	position: absolute;
+	z-index: 10;
+	width: 59px;
+	line-height: 59px;
+	text-align: center;
+	font: inherit;
+	outline: none;
+	margin: 0;
+	border-radius: 4px 0 0 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-huge [class*="button"]:before {
+	font-family: ThemeIcons;
+	content: "\f073";
+	-webkit-transition: color 140ms;
+	-moz-transition: color 140ms;
+	transition: color 140ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-huge [class*="button"]:active:after {
+	content: "";
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	border-radius: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-huge.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-huge.v-disabled [class*="button"] {
+	cursor: default;
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-huge.v-disabled [class*="button"]:active:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-huge.v-readonly [class*="textfield"] {
+	background: #fafafa;
+	color: #464646;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-huge.v-readonly [class*="textfield"]:focus {
+	box-shadow: none;
+	border-color: #c5c5c5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-huge.v-readonly [class*="button"] {
+	cursor: default;
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-datefield-huge.v-readonly [class*="button"]:active:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-inline-datefield-calendarpanel {
+	font-size: 16px;
+	text-align: center;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-inline-datefield-calendarpanel:focus {
+	outline: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-inline-datefield-calendarpanel-day {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	width: 30px;
+	height: 26px;
+	border: 1px solid transparent;
+	line-height: 26px;
+	text-align: center;
+	font-size: 14px;
+	background: #fafafa;
+	border-radius: 2px;
+	-webkit-transition: color 200ms;
+	-moz-transition: color 200ms;
+	transition: color 200ms;
+	display: inline-block;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	cursor: pointer;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-inline-datefield-calendarpanel-day:hover {
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-inline-datefield-calendarpanel-day-offmonth {
+	color: #a0a0a0;
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-inline-datefield-calendarpanel-day-today {
+	color: #191919;
+	font-weight: 600;
+	border-color: #afafaf;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-selected, .org_osbee_vaadin_addons_designer_overlay .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-selected:hover {
+	color: #c8dbed;
+	background-color: #197de1;
+	background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%);
+	background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%);
+	border: none;
+	font-weight: 600;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-focused {
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	position: relative;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-focused {
+	border-color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-outside-range, .org_osbee_vaadin_addons_designer_overlay .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-outside-range:hover {
+	color: #a0a0a0;
+	cursor: not-allowed;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-inline-datefield-calendarpanel-weekdays {
+	height: 26px;
+	color: rgba(133, 133, 133, 0.85);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-inline-datefield-calendarpanel-weekdays strong {
+	font: inherit;
+	font-size: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-inline-datefield-calendarpanel-header {
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay td[class*="year"] button, .org_osbee_vaadin_addons_designer_overlay td[class*="month"] button {
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	border: none;
+	background: transparent;
+	padding: 0;
+	margin: 0;
+	cursor: pointer;
+	color: transparent;
+	font-size: 0;
+	width: 19px;
+	height: 25px;
+	outline: none;
+	position: relative;
+	vertical-align: middle;
+}
+
+.org_osbee_vaadin_addons_designer_overlay td[class*="year"] button:before, .org_osbee_vaadin_addons_designer_overlay td[class*="month"] button:before {
+	color: #a0a0a0;
+	font-size: 21px;
+	line-height: 24px;
+	-webkit-transition: color 200ms;
+	-moz-transition: color 200ms;
+	transition: color 200ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay td[class*="year"] button:hover:before, .org_osbee_vaadin_addons_designer_overlay td[class*="month"] button:hover:before {
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay td[class*="year"] button.outside-range, .org_osbee_vaadin_addons_designer_overlay td[class*="month"] button.outside-range {
+	cursor: default;
+	opacity: 0.3;
+	filter: alpha(opacity=30.0) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay td[class*="year"] button.outside-range:hover:before, .org_osbee_vaadin_addons_designer_overlay td[class*="month"] button.outside-range:hover:before {
+	color: #a0a0a0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-prevyear:before {
+	font-family: ThemeIcons;
+	content: "\f100";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-prevmonth:before {
+	font-family: ThemeIcons;
+	content: "\f104";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-nextyear:before {
+	font-family: ThemeIcons;
+	content: "\f101";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-button-nextmonth:before {
+	font-family: ThemeIcons;
+	content: "\f105";
+}
+
+.org_osbee_vaadin_addons_designer_overlay td.v-inline-datefield-calendarpanel-month {
+	width: 148px;
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-inline-datefield-calendarpanel-year td.v-inline-datefield-calendarpanel-month {
+	width: 74px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-inline-datefield-calendarpanel-weeknumber, .org_osbee_vaadin_addons_designer_overlay .v-inline-datefield-calendarpanel-weekdays.v-inline-datefield-calendarpanel-weeknumbers td:first-child {
+	width: 30px;
+	color: rgba(133, 133, 133, 0.85);
+	font-size: 14px;
+	display: inline-block;
+	text-align: left;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-inline-datefield-calendarpanel-weeknumber {
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-inline-datefield-calendarpanel-weeknumbers .v-first:before {
+	content: "";
+	position: absolute;
+	top: 38px;
+	bottom: 0;
+	left: 0;
+	width: 34px;
+	border-top: 1px solid #eaeaea;
+	border-right: 1px solid #eaeaea;
+	border-top-right-radius: 4px;
+	border-bottom-left-radius: 4px;
+	background: #fafafa;
+}
+
+.org_osbee_vaadin_addons_designer_overlay td.v-inline-datefield-calendarpanel-time {
+	width: 100%;
+	font-size: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay td.v-inline-datefield-calendarpanel-time .v-label {
+	display: inline;
+	margin: 0 0.1em;
+	font-weight: 400;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-inline-datefield-calendarpanel {
+	position: relative;
+	background: white;
+	padding: 6px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-gridlayout-margin-top {
+	padding-top: 37px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-gridlayout-margin-bottom {
+	padding-bottom: 37px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-gridlayout-margin-left {
+	padding-left: 37px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-gridlayout-margin-right {
+	padding-right: 37px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-gridlayout-spacing-on {
+	padding-left: 12px;
+	padding-top: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar {
+	position: relative;
+	text-align: center;
+	white-space: nowrap;
+	outline: none;
+	-webkit-tap-highlight-color: transparent;
+	-webkit-touch-callout: none;
+	cursor: pointer;
+	height: 37px;
+	padding: 0 16px;
+	color: #191919;
+	font-weight: 400;
+	
+	cursor: default;
+	border-radius: 4px;
+	border: 1px solid #c5c5c5;
+	border-top-color: #c5c5c5;
+	border-bottom-color: #bcbcbc;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	-webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+	padding: 0;
+	text-align: left;
+	line-height: 35px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar:after {
+	content: "";
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	border-radius: inherit;
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar:focus:after {
+	-webkit-transition: none;
+	-moz-transition: none;
+	transition: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar.v-disabled:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar:after {
+	border: inherit;
+	top: -1px;
+	right: -1px;
+	bottom: -1px;
+	left: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar:focus:after {
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar  > .v-menubar-menuitem {
+	padding: 0 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar  > .v-menubar-menuitem[class*="-icon-only"] {
+	width: 37px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar:active:after {
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar > .v-menubar-menuitem {
+	position: relative;
+	z-index: 1;
+	display: inline-block;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	height: 37px;
+	padding: 0 15px;
+	color: inherit;
+	font-weight: 400;
+	
+	cursor: pointer;
+	border-radius: 0;
+	border: 1px solid #c5c5c5;
+	border-top-color: #c5c5c5;
+	border-bottom-color: #bcbcbc;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	-webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7;
+	box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7;
+	background: transparent;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	border-width: 0 1px 0 0;
+	border-color: inherit;
+	height: 100%;
+	line-height: inherit;
+	vertical-align: top;
+	text-align: center;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar > .v-menubar-menuitem:first-child {
+	border-left-width: 0;
+	border-radius: 3px 0 0 3px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar > .v-menubar-menuitem:last-child {
+	border-radius: 0 3px 3px 0;
+	border-right-width: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar > .v-menubar-menuitem:first-child:last-child {
+	border-radius: 3px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar > .v-menubar-menuitem:before {
+	content: "";
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	border-radius: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar > .v-menubar-menuitem:hover {
+	zoom: 1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar > .v-menubar-menuitem:hover:before {
+	background-color: rgba(186, 186, 186, 0.1);
+	border: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar > .v-menubar-menuitem:active:before {
+	background-color: rgba(125, 125, 125, 0.2);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar > .v-menubar-menuitem .v-icon {
+	margin: 0 4px 0 -4px;
+	cursor: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar > .v-menubar-menuitem[class*="-icon-only"] {
+	width: 37px;
+	padding: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar > .v-menubar-menuitem[class*="-icon-only"] .v-icon {
+	margin: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar > .v-menubar-menuitem-checked {
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	background-color: #ededed;
+	background-image: -webkit-linear-gradient(bottom, #ededed 2%, #e9e9e9 98%);
+	background-image: linear-gradient(to top,#ededed 2%, #e9e9e9 98%);
+	color: #181818;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-disabled > .v-menubar-menuitem, .org_osbee_vaadin_addons_designer_overlay .v-menubar > .v-menubar-menuitem-disabled {
+	cursor: default;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-disabled > .v-menubar-menuitem:before, .org_osbee_vaadin_addons_designer_overlay .v-menubar > .v-menubar-menuitem-disabled:before {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-menuitem-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar > .v-menubar-menuitem-selected {
+	color: #ecf2f8;
+	
+	
+	
+	border-radius: 0;
+	border: 1px solid #1362b1;
+	border-top-color: #156ab3;
+	border-bottom-color: #1156a8;
+	background-color: #197de1;
+	background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%);
+	background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%);
+	-webkit-box-shadow: inset 0 1px 0 #4d98e6, inset 0 -1px 0 #166bca;
+	box-shadow: inset 0 1px 0 #4d98e6, inset 0 -1px 0 #166bca;
+	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05);
+	border-top-width: 0;
+	border-left-width: 0;
+	border-bottom-width: 0;
+	z-index: 2;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar > .v-menubar-menuitem-selected:hover:before {
+	background: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar .v-menubar-submenu-indicator {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar .v-menubar-submenu-indicator  + .v-menubar-menuitem-caption:after {
+	font-family: ThemeIcons;
+	content: "\f078";
+	font-size: 0.7em;
+	vertical-align: 0.15em;
+	margin: 0 -0.2em 0 0.5em;
+	opacity: 0.5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar .v-menubar-submenu-indicator  + .v-menubar-menuitem-caption:empty:after {
+	margin-left: -0.2em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-popup {
+	padding: 4px 4px;
+	border-radius: 4px;
+	background-color: white;
+	color: #474747;
+	-webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098);
+	box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098);
+	-webkit-backface-visibility: hidden;
+	-moz-backface-visibility: hidden;
+	-ms-backface-visibility: hidden;
+	backface-visibility: hidden;
+	padding: 4px 4px;
+	margin: 5px 0 0 1px !important;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-popup[class*="animate-in"] {
+	-webkit-animation: valo-overlay-animate-in 120ms;
+	-moz-animation: valo-overlay-animate-in 120ms;
+	animation: valo-overlay-animate-in 120ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-popup[class*="animate-out"] {
+	-webkit-animation: valo-animate-out-fade 120ms;
+	-moz-animation: valo-animate-out-fade 120ms;
+	animation: valo-animate-out-fade 120ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-popup .v-menubar-submenu {
+	outline: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-popup .v-menubar-menuitem {
+	display: block;
+	cursor: pointer;
+	line-height: 27px;
+	padding: 0 20px 0 10px;
+	border-radius: 3px;
+	font-weight: 400;
+	white-space: nowrap;
+	position: relative;
+	padding-left: 32px;
+	padding-right: 37px;
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-popup .v-menubar-menuitem:active:before {
+	content: "";
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	background: #0957a6;
+	opacity: 0.15;
+	filter: alpha(opacity=15.0) ;
+	pointer-events: none;
+	border-radius: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-popup .v-menubar-menuitem .v-icon {
+	max-height: 27px;
+	margin-right: 5px;
+	min-width: 1em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-popup .v-menubar-submenu-indicator {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-popup .v-menubar-submenu-indicator  + .v-menubar-menuitem-caption:after {
+	position: absolute;
+	right: 10px;
+	font-family: ThemeIcons;
+	content: "\f054";
+	line-height: 29px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-popup .v-menubar-menuitem-selected {
+	background-color: #197de1;
+	background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%);
+	background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%);
+	color: #ecf2f8;
+	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-popup .v-menubar-separator {
+	display: block;
+	margin: 4px 0;
+	height: 0;
+	overflow: hidden;
+	border-bottom: 1px solid #e4e4e4;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-popup [class*="checked"] .v-menubar-menuitem-caption:before {
+	content: "\f00c";
+	font-family: ThemeIcons;
+	position: absolute;
+	left: 10px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-popup [class*="unchecked"] .v-menubar-menuitem-caption:before {
+	content: "";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-popup [class*="disabled"] {
+	cursor: default;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-small {
+	height: 31px;
+	padding: 0 14px;
+	
+	font-weight: 400;
+	
+	cursor: default;
+	border-radius: 4px;
+	padding: 0;
+	text-align: left;
+	line-height: 29px;
+	font-size: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-small:after {
+	border: inherit;
+	top: -1px;
+	right: -1px;
+	bottom: -1px;
+	left: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-small  > .v-menubar-menuitem {
+	padding: 0 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-small  > .v-menubar-menuitem[class*="-icon-only"] {
+	width: 31px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-borderless {
+	border: none;
+	border-radius: 0;
+	padding: 1px;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	text-shadow: none;
+	background: transparent;
+	color: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-borderless:focus:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-borderless .v-menubar-menuitem {
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	border: none;
+	margin-right: 1px;
+	border-radius: 4px;
+	color: #197de1;
+	padding: 0 12px;
+	-webkit-transition: color 140ms;
+	-moz-transition: color 140ms;
+	transition: color 140ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-borderless .v-menubar-menuitem:first-child, .org_osbee_vaadin_addons_designer_overlay .v-menubar-borderless .v-menubar-menuitem:last-child, .org_osbee_vaadin_addons_designer_overlay .v-menubar-borderless .v-menubar-menuitem:first-child:last-child {
+	border-radius: 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-borderless .v-menubar-menuitem:before {
+	content: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-borderless .v-menubar-menuitem:hover {
+	color: #4396ea;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-borderless .v-menubar-menuitem:active {
+	color: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-borderless .v-menubar-menuitem-checked, .org_osbee_vaadin_addons_designer_overlay .v-menubar-borderless .v-menubar-menuitem-checked:first-child {
+	border: 1px solid #c5c5c5;
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-borderless .v-menubar-menuitem-checked .v-menubar-menuitem-caption, .org_osbee_vaadin_addons_designer_overlay .v-menubar-borderless .v-menubar-menuitem-checked:first-child .v-menubar-menuitem-caption {
+	position: relative;
+	top: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-borderless .v-menubar-menuitem-selected {
+	color: #ecf2f8;
+	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-borderless .v-menubar-menuitem-selected:hover {
+	color: #ecf2f8;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-borderless .v-menubar-menuitem-disabled, .org_osbee_vaadin_addons_designer_overlay .v-menubar-borderless .v-menubar-menuitem-disabled:hover {
+	color: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-radiobutton {
+	position: relative;
+	line-height: 19px;
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-radiobutton.v-has-width label {
+	white-space: normal;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-radiobutton {
+	padding-left: 25px;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-radiobutton label {
+	-webkit-tap-highlight-color: transparent;
+	-webkit-touch-callout: none;
+	cursor: pointer;
+	display: inline-block;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-radiobutton > input {
+	position: absolute;
+	clip: rect(0, 0, 0, 0);
+	left: 0.2em;
+	top: 0.2em;
+	z-index: 0;
+	margin: 0;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-radiobutton > input:focus ~ label:before {
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-radiobutton > input ~ label:before, :root .org_osbee_vaadin_addons_designer_overlay .v-radiobutton > input ~ label:after {
+	content: "";
+	display: inline-block;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	width: 19px;
+	height: 19px;
+	position: absolute;
+	top: 0;
+	left: 0;
+	border-radius: 4px;
+	font-size: 13px;
+	text-align: center;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-radiobutton > input ~ label:before {
+	height: 18.5px;
+	padding: 0 9px;
+	color: #191919;
+	font-weight: 400;
+	
+	
+	border-radius: 4px;
+	border: 1px solid #c5c5c5;
+	border-top-color: #c5c5c5;
+	border-bottom-color: #bcbcbc;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	-webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+	padding: 0;
+	height: 19px;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-radiobutton > input ~ label:after {
+	content: "\f00c";
+	font-family: ThemeIcons;
+	color: transparent;
+	-webkit-transition: color 100ms;
+	-moz-transition: color 100ms;
+	transition: color 100ms;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-radiobutton > input:active ~ label:after {
+	background-color: rgba(125, 125, 125, 0.2);
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-radiobutton > input:checked ~ label:after {
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-radiobutton > .v-icon, .org_osbee_vaadin_addons_designer_overlay .v-radiobutton > label .v-icon {
+	margin: 0 6px 0 3px;
+	min-width: 1em;
+	cursor: pointer;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-radiobutton.v-disabled  > label, .org_osbee_vaadin_addons_designer_overlay .v-radiobutton.v-disabled  > .v-icon {
+	cursor: default;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-radiobutton.v-disabled  > label > .v-icon {
+	cursor: default;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-radiobutton.v-disabled > input:active ~ label:after {
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-radiobutton.v-readonly  > label, .org_osbee_vaadin_addons_designer_overlay .v-radiobutton.v-readonly  > .v-icon {
+	cursor: default;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-radiobutton.v-readonly  > label > .v-icon {
+	cursor: default;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-radiobutton.v-readonly > input:active ~ label:after {
+	background: transparent;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-radiobutton.v-readonly > input ~ label:after {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-radiobutton > input:checked ~ label:after {
+	width: 7px;
+	height: 7px;
+	top: 6px;
+	left: 6px;
+	background: #197de1;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-radiobutton > input ~ label:before, :root .org_osbee_vaadin_addons_designer_overlay .v-radiobutton > input ~ label:after {
+	border-radius: 50%;
+	content: "";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup .v-radiobutton, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup .v-checkbox {
+	display: block;
+	margin: 9px 16px 0 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup .v-radiobutton:first-child, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup .v-checkbox:first-child {
+	margin-top: 6px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup .v-radiobutton:last-child, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup .v-checkbox:last-child {
+	margin-bottom: 6px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup.v-has-width label {
+	white-space: normal;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small {
+	font-size: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox {
+	position: relative;
+	line-height: 16px;
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox.v-has-width label {
+	white-space: normal;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox {
+	padding-left: 21px;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox label {
+	-webkit-tap-highlight-color: transparent;
+	-webkit-touch-callout: none;
+	cursor: pointer;
+	display: inline-block;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox > input {
+	position: absolute;
+	clip: rect(0, 0, 0, 0);
+	left: 0.2em;
+	top: 0.2em;
+	z-index: 0;
+	margin: 0;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox > input:focus ~ label:before {
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox > input ~ label:before, :root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox > input ~ label:after {
+	content: "";
+	display: inline-block;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	width: 16px;
+	height: 16px;
+	position: absolute;
+	top: 0;
+	left: 0;
+	border-radius: 4px;
+	font-size: 11px;
+	text-align: center;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox > input ~ label:before {
+	height: 15.5px;
+	padding: 0 7px;
+	color: #191919;
+	font-weight: 400;
+	
+	
+	border-radius: 4px;
+	border: 1px solid #c5c5c5;
+	border-top-color: #c5c5c5;
+	border-bottom-color: #bcbcbc;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	-webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+	padding: 0;
+	height: 16px;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox > input ~ label:after {
+	content: "\f00c";
+	font-family: ThemeIcons;
+	color: transparent;
+	-webkit-transition: color 100ms;
+	-moz-transition: color 100ms;
+	transition: color 100ms;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox > input:active ~ label:after {
+	background-color: rgba(125, 125, 125, 0.2);
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox > input:checked ~ label:after {
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox > .v-icon, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox > label .v-icon {
+	margin: 0 5px 0 3px;
+	min-width: 1em;
+	cursor: pointer;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox.v-disabled  > label, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox.v-disabled  > .v-icon {
+	cursor: default;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox.v-disabled  > label > .v-icon {
+	cursor: default;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox.v-disabled > input:active ~ label:after {
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox.v-readonly  > label, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox.v-readonly  > .v-icon {
+	cursor: default;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox.v-readonly  > label > .v-icon {
+	cursor: default;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox.v-readonly > input:active ~ label:after {
+	background: transparent;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox.v-readonly > input ~ label:after {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton {
+	position: relative;
+	line-height: 16px;
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton.v-has-width label {
+	white-space: normal;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton {
+	padding-left: 21px;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton label {
+	-webkit-tap-highlight-color: transparent;
+	-webkit-touch-callout: none;
+	cursor: pointer;
+	display: inline-block;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton > input {
+	position: absolute;
+	clip: rect(0, 0, 0, 0);
+	left: 0.2em;
+	top: 0.2em;
+	z-index: 0;
+	margin: 0;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton > input:focus ~ label:before {
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton > input ~ label:before, :root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton > input ~ label:after {
+	content: "";
+	display: inline-block;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	width: 16px;
+	height: 16px;
+	position: absolute;
+	top: 0;
+	left: 0;
+	border-radius: 4px;
+	font-size: 11px;
+	text-align: center;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton > input ~ label:before {
+	height: 15.5px;
+	padding: 0 7px;
+	color: #191919;
+	font-weight: 400;
+	
+	
+	border-radius: 4px;
+	border: 1px solid #c5c5c5;
+	border-top-color: #c5c5c5;
+	border-bottom-color: #bcbcbc;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	-webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+	padding: 0;
+	height: 16px;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton > input ~ label:after {
+	content: "\f00c";
+	font-family: ThemeIcons;
+	color: transparent;
+	-webkit-transition: color 100ms;
+	-moz-transition: color 100ms;
+	transition: color 100ms;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton > input:active ~ label:after {
+	background-color: rgba(125, 125, 125, 0.2);
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton > input:checked ~ label:after {
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton > .v-icon, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton > label .v-icon {
+	margin: 0 5px 0 3px;
+	min-width: 1em;
+	cursor: pointer;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton.v-disabled  > label, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton.v-disabled  > .v-icon {
+	cursor: default;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton.v-disabled  > label > .v-icon {
+	cursor: default;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton.v-disabled > input:active ~ label:after {
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton.v-readonly  > label, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton.v-readonly  > .v-icon {
+	cursor: default;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton.v-readonly  > label > .v-icon {
+	cursor: default;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton.v-readonly > input:active ~ label:after {
+	background: transparent;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton.v-readonly > input ~ label:after {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton > input:checked ~ label:after {
+	width: 6px;
+	height: 6px;
+	top: 5px;
+	left: 5px;
+	background: #197de1;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton > input ~ label:before, :root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton > input ~ label:after {
+	border-radius: 50%;
+	content: "";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox {
+	display: block;
+	margin: 8px 16px 0 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton:first-child, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox:first-child {
+	margin-top: 5px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-radiobutton:last-child, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small .v-checkbox:last-child {
+	margin-bottom: 5px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-small.v-has-width label {
+	white-space: normal;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large {
+	font-size: 20px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox {
+	position: relative;
+	line-height: 22px;
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox.v-has-width label {
+	white-space: normal;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox {
+	padding-left: 29px;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox label {
+	-webkit-tap-highlight-color: transparent;
+	-webkit-touch-callout: none;
+	cursor: pointer;
+	display: inline-block;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox > input {
+	position: absolute;
+	clip: rect(0, 0, 0, 0);
+	left: 0.2em;
+	top: 0.2em;
+	z-index: 0;
+	margin: 0;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox > input:focus ~ label:before {
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox > input ~ label:before, :root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox > input ~ label:after {
+	content: "";
+	display: inline-block;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	width: 22px;
+	height: 22px;
+	position: absolute;
+	top: 0;
+	left: 0;
+	border-radius: 4px;
+	font-size: 15px;
+	text-align: center;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox > input ~ label:before {
+	height: 22px;
+	padding: 0 10px;
+	color: #191919;
+	font-weight: 400;
+	
+	
+	border-radius: 4px;
+	border: 1px solid #c5c5c5;
+	border-top-color: #c5c5c5;
+	border-bottom-color: #bcbcbc;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	-webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+	padding: 0;
+	height: 22px;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox > input ~ label:after {
+	content: "\f00c";
+	font-family: ThemeIcons;
+	color: transparent;
+	-webkit-transition: color 100ms;
+	-moz-transition: color 100ms;
+	transition: color 100ms;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox > input:active ~ label:after {
+	background-color: rgba(125, 125, 125, 0.2);
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox > input:checked ~ label:after {
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox > .v-icon, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox > label .v-icon {
+	margin: 0 7px 0 4px;
+	min-width: 1em;
+	cursor: pointer;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox.v-disabled  > label, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox.v-disabled  > .v-icon {
+	cursor: default;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox.v-disabled  > label > .v-icon {
+	cursor: default;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox.v-disabled > input:active ~ label:after {
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox.v-readonly  > label, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox.v-readonly  > .v-icon {
+	cursor: default;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox.v-readonly  > label > .v-icon {
+	cursor: default;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox.v-readonly > input:active ~ label:after {
+	background: transparent;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox.v-readonly > input ~ label:after {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton {
+	position: relative;
+	line-height: 22px;
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton.v-has-width label {
+	white-space: normal;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton {
+	padding-left: 29px;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton label {
+	-webkit-tap-highlight-color: transparent;
+	-webkit-touch-callout: none;
+	cursor: pointer;
+	display: inline-block;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton > input {
+	position: absolute;
+	clip: rect(0, 0, 0, 0);
+	left: 0.2em;
+	top: 0.2em;
+	z-index: 0;
+	margin: 0;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton > input:focus ~ label:before {
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton > input ~ label:before, :root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton > input ~ label:after {
+	content: "";
+	display: inline-block;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	width: 22px;
+	height: 22px;
+	position: absolute;
+	top: 0;
+	left: 0;
+	border-radius: 4px;
+	font-size: 15px;
+	text-align: center;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton > input ~ label:before {
+	height: 22px;
+	padding: 0 10px;
+	color: #191919;
+	font-weight: 400;
+	
+	
+	border-radius: 4px;
+	border: 1px solid #c5c5c5;
+	border-top-color: #c5c5c5;
+	border-bottom-color: #bcbcbc;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	-webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+	padding: 0;
+	height: 22px;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton > input ~ label:after {
+	content: "\f00c";
+	font-family: ThemeIcons;
+	color: transparent;
+	-webkit-transition: color 100ms;
+	-moz-transition: color 100ms;
+	transition: color 100ms;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton > input:active ~ label:after {
+	background-color: rgba(125, 125, 125, 0.2);
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton > input:checked ~ label:after {
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton > .v-icon, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton > label .v-icon {
+	margin: 0 7px 0 4px;
+	min-width: 1em;
+	cursor: pointer;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton.v-disabled  > label, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton.v-disabled  > .v-icon {
+	cursor: default;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton.v-disabled  > label > .v-icon {
+	cursor: default;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton.v-disabled > input:active ~ label:after {
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton.v-readonly  > label, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton.v-readonly  > .v-icon {
+	cursor: default;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton.v-readonly  > label > .v-icon {
+	cursor: default;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton.v-readonly > input:active ~ label:after {
+	background: transparent;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton.v-readonly > input ~ label:after {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton > input:checked ~ label:after {
+	width: 8px;
+	height: 8px;
+	top: 7px;
+	left: 7px;
+	background: #197de1;
+}
+
+:root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton > input ~ label:before, :root .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton > input ~ label:after {
+	border-radius: 50%;
+	content: "";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox {
+	display: block;
+	margin: 11px 16px 0 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton:first-child, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox:first-child {
+	margin-top: 7px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-radiobutton:last-child, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large .v-checkbox:last-child {
+	margin-bottom: 7px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-large.v-has-width label {
+	white-space: normal;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-horizontal {
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-horizontal .v-radiobutton, .org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-horizontal .v-checkbox {
+	display: inline-block;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-horizontal.v-has-width {
+	white-space: normal;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-optiongroup-horizontal.v-has-width label {
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-link {
+	cursor: pointer;
+	color: #197de1;
+	text-decoration: underline;
+	font-weight: inherit;
+	-webkit-transition: color 140ms;
+	-moz-transition: color 140ms;
+	transition: color 140ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-link:hover {
+	color: #4396ea;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-link.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-link a {
+	cursor: inherit;
+	color: inherit;
+	text-decoration: inherit;
+	-webkit-transition: inherit;
+	-moz-transition: inherit;
+	transition: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-link .v-icon {
+	cursor: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-link-small {
+	font-size: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-link-large {
+	font-size: 20px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window {
+	padding: 4px 4px;
+	border-radius: 4px;
+	background-color: white;
+	color: #474747;
+	-webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098);
+	box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098);
+	-webkit-backface-visibility: hidden;
+	-moz-backface-visibility: hidden;
+	-ms-backface-visibility: hidden;
+	backface-visibility: hidden;
+	-webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1), 0 16px 80px -6px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(0, 0, 0, 0.09098);
+	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1), 0 16px 80px -6px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(0, 0, 0, 0.09098);
+	padding: 0;
+	min-width: 148px !important;
+	min-height: 37px !important;
+	white-space: nowrap;
+	overflow: hidden !important;
+	-webkit-transition: width 200ms, height 200ms, top 200ms, left 200ms;
+	-moz-transition: width 200ms, height 200ms, top 200ms, left 200ms;
+	transition: width 200ms, height 200ms, top 200ms, left 200ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window[class*="animate-in"] {
+	-webkit-animation: valo-animate-in-fade 140ms;
+	-moz-animation: valo-animate-in-fade 140ms;
+	animation: valo-animate-in-fade 140ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window[class*="animate-out"] {
+	-webkit-animation: valo-animate-out-scale-down-fade 100ms;
+	-moz-animation: valo-animate-out-scale-down-fade 100ms;
+	animation: valo-animate-out-scale-down-fade 100ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window.v-window-animate-in {
+	-webkit-transition: none;
+	-moz-transition: none;
+	transition: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-modalitycurtain {
+	position: fixed;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	background-color: #222;
+	background-image: -webkit-radial-gradient(50% 50%, circle, #222, #0e0e0e);
+	background-image: radial-gradient(  circle at 50% 50%, #222, #0e0e0e);
+	opacity: 0.72;
+	filter: alpha(opacity=72) ;
+	-webkit-animation: valo-animate-in-fade 400ms 100ms backwards;
+	-moz-animation: valo-animate-in-fade 400ms 100ms backwards;
+	animation: valo-animate-in-fade 400ms 100ms backwards;
+}
+
+.v-op12 .org_osbee_vaadin_addons_designer_overlay .v-window-modalitycurtain {
+	-webkit-animation: none;
+	-moz-animation: none;
+	animation: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-draggingCurtain {
+	position: fixed !important;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-resizingCurtain + .v-window, .org_osbee_vaadin_addons_designer_overlay .v-window-draggingCurtain + .v-window {
+	-webkit-transition: none;
+	-moz-transition: none;
+	transition: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-outerheader {
+	cursor: move;
+	position: absolute;
+	z-index: 2;
+	top: 0;
+	left: 0;
+	right: 0;
+	-webkit-transform: translatez(0);
+	-moz-transform: translatez(0);
+	-ms-transform: translatez(0);
+	-o-transform: translatez(0);
+	transform: translatez(0);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-outerheader:after {
+	content: "";
+	position: absolute;
+	bottom: -1px;
+	right: 0;
+	left: 0;
+	height: 0;
+	border-top: 1px solid #dfdfdf;
+	border-color: rgba(197, 197, 197, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-header {
+	line-height: 36px;
+	padding-left: 12px;
+	margin-right: 74px;
+	overflow: hidden;
+	text-overflow: ellipsis;
+	white-space: nowrap;
+	color: #7e7e7e;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-restorebox-disabled  ~ .v-window-closebox ~ .v-window-header, .org_osbee_vaadin_addons_designer_overlay .v-window-maximizebox-disabled  ~ .v-window-closebox ~ .v-window-header {
+	margin-right: 37px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-restorebox-disabled  ~ .v-window-closebox-disabled ~ .v-window-header, .org_osbee_vaadin_addons_designer_overlay .v-window-maximizebox-disabled  ~ .v-window-closebox-disabled ~ .v-window-header {
+	margin-right: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-closebox, .org_osbee_vaadin_addons_designer_overlay .v-window-maximizebox, .org_osbee_vaadin_addons_designer_overlay .v-window-restorebox {
+	position: absolute;
+	z-index: 3;
+	top: 0;
+	right: 0;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	width: 33px;
+	height: 36px;
+	background-color: white;
+	line-height: 34px;
+	text-align: center;
+	cursor: pointer;
+	font-size: 21px;
+	color: #999999;
+	-webkit-transition: color 140ms;
+	-moz-transition: color 140ms;
+	transition: color 140ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-closebox:focus, .org_osbee_vaadin_addons_designer_overlay .v-window-maximizebox:focus, .org_osbee_vaadin_addons_designer_overlay .v-window-restorebox:focus {
+	outline: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-closebox:hover, .org_osbee_vaadin_addons_designer_overlay .v-window-maximizebox:hover, .org_osbee_vaadin_addons_designer_overlay .v-window-restorebox:hover {
+	opacity: 1;
+	filter: none ;
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-closebox:active, .org_osbee_vaadin_addons_designer_overlay .v-window-maximizebox:active, .org_osbee_vaadin_addons_designer_overlay .v-window-restorebox:active {
+	color: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-closebox {
+	padding-right: 4px;
+	border-radius: 0 4px 0 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-closebox:before {
+	content: "\00d7";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-maximizebox, .org_osbee_vaadin_addons_designer_overlay .v-window-restorebox {
+	right: 33px;
+	padding-left: 4px;
+	border-radius: 0 0 0 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-maximizebox  + .v-window-closebox, .org_osbee_vaadin_addons_designer_overlay .v-window-restorebox  + .v-window-closebox {
+	border-bottom-left-radius: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-closebox-disabled, .org_osbee_vaadin_addons_designer_overlay .v-window-resizebox-disabled, .org_osbee_vaadin_addons_designer_overlay .v-window-restorebox-disabled, .org_osbee_vaadin_addons_designer_overlay .v-window-maximizebox-disabled {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-closebox-disabled  + .v-window-closebox, .org_osbee_vaadin_addons_designer_overlay .v-window-resizebox-disabled  + .v-window-closebox, .org_osbee_vaadin_addons_designer_overlay .v-window-restorebox-disabled  + .v-window-closebox, .org_osbee_vaadin_addons_designer_overlay .v-window-maximizebox-disabled  + .v-window-closebox {
+	width: 37px;
+	padding-right: 0;
+	border-bottom-left-radius: 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-maximizebox:before {
+	content: "+";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-restorebox:before {
+	content: "\2013";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window > .popupContent, .org_osbee_vaadin_addons_designer_overlay .v-window-wrap, .org_osbee_vaadin_addons_designer_overlay .v-window-contents, .org_osbee_vaadin_addons_designer_overlay .v-window-contents > .v-scrollable {
+	height: 100%;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-contents {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	border-radius: 4px;
+	margin-top: 0 !important;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-contents  > .v-scrollable {
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-contents  > .v-scrollable  > .v-margin-top {
+	padding-top: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-contents  > .v-scrollable  > .v-margin-right {
+	padding-right: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-contents  > .v-scrollable  > .v-margin-bottom {
+	padding-bottom: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-contents  > .v-scrollable  > .v-margin-left {
+	padding-left: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-contents  > .v-scrollable  > .v-formlayout [class*="margin-top"] > tbody > [class*="firstrow"] > td {
+	padding-top: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-contents  > .v-scrollable  > .v-formlayout [class*="margin-bottom"] > tbody > [class*="lastrow"] > td {
+	padding-bottom: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-contents  > .v-scrollable  > .v-formlayout [class*="margin-left"] > tbody > [class*="row"] > [class*="captioncell"] {
+	padding-left: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-contents  > .v-scrollable  > .v-formlayout [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"]  > .v-label-h2, .org_osbee_vaadin_addons_designer_overlay .v-window-contents  > .v-scrollable  > .v-formlayout [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"]  > .v-label-h3, .org_osbee_vaadin_addons_designer_overlay .v-window-contents  > .v-scrollable  > .v-formlayout [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"]  > .v-label-h4 {
+	left: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-contents  > .v-scrollable  > .v-formlayout [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] {
+	padding-right: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-contents  > .v-scrollable  > .v-formlayout [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"]  > .v-label-h2, .org_osbee_vaadin_addons_designer_overlay .v-window-contents  > .v-scrollable  > .v-formlayout [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"]  > .v-label-h3, .org_osbee_vaadin_addons_designer_overlay .v-window-contents  > .v-scrollable  > .v-formlayout [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"]  > .v-label-h4 {
+	right: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-contents  > .v-scrollable:focus {
+	outline: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-contents  > .v-scrollable:before {
+	content: "";
+	position: absolute;
+	z-index: 2;
+	top: 0;
+	height: 0;
+	border-top: 1px solid white;
+	left: 0;
+	right: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-contents  > .v-scrollable .v-panel-captionwrap:after {
+	border-color: #dfdfdf;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-contents  > .v-scrollable .v-panel-content:before {
+	border-color: white;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-footer {
+	height: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-resizebox {
+	position: absolute;
+	z-index: 1000;
+	right: 0;
+	bottom: 0;
+	width: 19px;
+	height: 19px;
+	cursor: nwse-resize;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-window-resizebox {
+	background: #000;
+	filter: alpha(opacity=0.1);
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-window-resizebox, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-window-resizebox {
+	cursor: se-resize;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-modalitycurtain:active  ~ .v-window {
+	-webkit-animation: none;
+	-moz-animation: none;
+	animation: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-top-toolbar  > .v-widget, .org_osbee_vaadin_addons_designer_overlay .v-window-bottom-toolbar  > .v-widget {
+	vertical-align: top;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-top-toolbar .v-label, .org_osbee_vaadin_addons_designer_overlay .v-window-bottom-toolbar .v-label {
+	line-height: 36px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-top-toolbar .v-spacing, .org_osbee_vaadin_addons_designer_overlay .v-window-bottom-toolbar .v-spacing {
+	width: 6px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-top-toolbar.v-layout {
+	padding: 7px 12px;
+	position: relative;
+	z-index: 2;
+	border-top: 1px solid #dfdfdf;
+	border-bottom: 1px solid #dfdfdf;
+	background-color: #fafafa;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-top-toolbar.v-menubar {
+	margin: 12px 12px 6px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-top-toolbar.v-menubar-borderless {
+	padding-left: 6px;
+	padding-right: 6px;
+	margin: 5px 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-window-bottom-toolbar.v-layout {
+	padding: 7px 12px;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #f0f0f0 0, #fafafa 4px);
+	background-image: linear-gradient(to bottom,#f0f0f0 0, #fafafa 4px);
+	border-top: 1px solid #dfdfdf;
+	border-radius: 0 0 4px 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-margin-left.v-margin-right.v-margin-top .v-window-top-toolbar.v-layout {
+	-webkit-box-sizing: content-box;
+	-moz-box-sizing: content-box;
+	box-sizing: content-box;
+	margin: -12px -12px 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-margin-left.v-margin-right.v-margin-top .v-window-top-toolbar.v-menubar {
+	margin: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-margin-left.v-margin-right.v-margin-top .v-window-top-toolbar.v-menubar-borderless {
+	margin: -6px -6px 0;
+	padding: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-margin-left.v-margin-right.v-margin-bottom .v-window-bottom-toolbar.v-layout {
+	-webkit-box-sizing: content-box;
+	-moz-box-sizing: content-box;
+	box-sizing: content-box;
+	margin: 0 -12px -12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tree {
+	position: relative;
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tree:focus {
+	outline: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tree-node:before {
+	content: "";
+	position: absolute;
+	display: inline-block;
+	z-index: 3;
+	width: 1.9em;
+	height: 28px;
+	cursor: pointer;
+	background: red;
+	opacity: 0;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-tree-node:before {
+	position: static;
+	margin-left: -1.9em;
+	vertical-align: top;
+	content: "\f0da";
+	font-family: ThemeIcons;
+	text-align: center;
+	background: transparent;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-tree-node {
+	padding-left: 1.9em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tree-node-caption {
+	height: 28px;
+	line-height: 27px;
+	overflow: hidden;
+	white-space: nowrap;
+	vertical-align: top;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tree-node-caption > div {
+	display: inline-block;
+	width: 100%;
+	position: relative;
+	z-index: 2;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tree-node-caption > div:before {
+	content: "\f0da";
+	font-family: ThemeIcons;
+	display: inline-block;
+	width: 0.5em;
+	text-align: center;
+	margin: 0 0.6em 0 0.8em;
+	-webkit-transition: all 100ms;
+	-moz-transition: all 100ms;
+	transition: all 100ms;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-tree-node-caption > div:before {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tree-node-caption span {
+	padding-right: 28px;
+	cursor: pointer;
+	display: inline-block;
+	width: 100%;
+}
+
+.v-ie .org_osbee_vaadin_addons_designer_overlay .v-tree-node-caption span {
+	width: auto;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tree-node-caption .v-icon {
+	padding-right: 0;
+	width: auto;
+	min-width: 1em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tree-node-caption:after {
+	content: "";
+	display: block;
+	vertical-align: top;
+	position: absolute;
+	z-index: 1;
+	left: 0;
+	margin-top: -28px;
+	width: 100%;
+	height: 28px;
+	border-radius: 4px;
+	opacity: 0;
+	-webkit-transition: opacity 120ms;
+	-moz-transition: opacity 120ms;
+	transition: opacity 120ms;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-tree-node-caption:after {
+	content: none;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-tree-node-caption {
+	display: inline-block;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tree-node-expanded > .v-tree-node-caption > div:before {
+	-webkit-transform: rotate(90deg);
+	-moz-transform: rotate(90deg);
+	-ms-transform: rotate(90deg);
+	-o-transform: rotate(90deg);
+	transform: rotate(90deg);
+	content: "\f0da";
+	font-family: ThemeIcons;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-tree-node-expanded:before {
+	content: "\f0d7";
+	font-family: ThemeIcons;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tree-node-leaf:before, .org_osbee_vaadin_addons_designer_overlay .v-tree-node-leaf > .v-tree-node-caption > div:before {
+	visibility: hidden;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tree-node-focused:after {
+	opacity: 1;
+	border: 1px solid #197de1;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-tree-node-focused {
+	outline: 1px dotted #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tree-node-selected {
+	color: #ecf2f8;
+	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tree-node-selected:after {
+	opacity: 1;
+	background-color: #197de1;
+	background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%);
+	background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%);
+	border: none;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-tree-node-selected {
+	background-color: #197de1;
+	background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%);
+	background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tree-node-children {
+	padding-left: 19px;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-tree-node-children {
+	padding-left: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tree-node-drag-top:before, .org_osbee_vaadin_addons_designer_overlay .v-tree-node-drag-bottom:after, .org_osbee_vaadin_addons_designer_overlay .v-tree-node-drag-bottom.v-tree-node-dragfolder.v-tree-node-expanded > .v-tree-node-children:before {
+	content: "\2022";
+	display: block;
+	position: absolute;
+	height: 2px;
+	width: 100%;
+	background: #197de1;
+	font-size: 32px;
+	line-height: 2px;
+	color: #197de1;
+	text-indent: -4px;
+	text-shadow: 0 0 1px #fafafa, 0 0 1px #fafafa;
+	opacity: 1;
+	visibility: visible;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tree-node-drag-bottom.v-tree-node-dragfolder.v-tree-node-expanded:after {
+	content: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tree-node-caption-drag-center {
+	-webkit-box-shadow: 0 0 0 2px #197de1;
+	box-shadow: 0 0 0 2px #197de1;
+	position: relative;
+	border-radius: 4px;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-tree-node-caption-drag-center {
+	outline: 2px solid #197de1;
+}
+
+.v-ff .org_osbee_vaadin_addons_designer_overlay .v-tree-node-drag-top:before, .v-ff .org_osbee_vaadin_addons_designer_overlay .v-tree-node-drag-bottom:after {
+	line-height: 1px;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-tree-node-drag-top:before, .v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-tree-node-drag-bottom:after {
+	line-height: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table {
+	position: relative;
+	background: #fafafa;
+	color: #464646;
+	overflow: hidden;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-header table, .org_osbee_vaadin_addons_designer_overlay .v-table-footer table, .org_osbee_vaadin_addons_designer_overlay .v-table-table {
+	-webkit-box-shadow: 0 0 0 1px #d4d4d4;
+	box-shadow: 0 0 0 1px #d4d4d4;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-table-header table, .v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-table-footer table, .v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-table-table {
+	outline: 1px solid #d4d4d4;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-header-wrap, .org_osbee_vaadin_addons_designer_overlay .v-table-footer-wrap, .org_osbee_vaadin_addons_designer_overlay .v-table-header-drag {
+	border: 1px solid #d4d4d4;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	white-space: nowrap;
+	font-size: 14px;
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-header-wrap {
+	position: relative;
+	border-bottom: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-footer-wrap {
+	border-top: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-footer td {
+	border-left: 1px solid #d4d4d4;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-footer-container, .org_osbee_vaadin_addons_designer_overlay .v-table-caption-container {
+	overflow: hidden;
+	line-height: 1;
+	min-height: 37px;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-table-footer-container, .v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-table-caption-container {
+	min-height: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-footer-container {
+	padding: 11px 12px 12px;
+	float: right;
+}
+
+.org_osbee_vaadin_addons_designer_overlay [class^="v-table-header-cell"] {
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-caption-container, .org_osbee_vaadin_addons_designer_overlay .v-table-header-drag {
+	padding: 12px 12px 11px;
+	border-left: 1px solid #d4d4d4;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-caption-container-align-right {
+	padding-right: 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-resizer {
+	height: 37px;
+	width: 8px;
+	cursor: e-resize;
+	cursor: col-resize;
+	position: relative;
+	right: -4px;
+	z-index: 1;
+	margin-left: -8px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-cell-content {
+	border-left: 1px solid #d4d4d4;
+	overflow: hidden;
+	height: 37px;
+	vertical-align: middle;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-cell-content:first-child {
+	border-left: none;
+	padding-left: 1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-header td:first-child .v-table-caption-container, .org_osbee_vaadin_addons_designer_overlay .v-table-footer td:first-child {
+	border-left-color: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-cell-wrapper {
+	line-height: 1;
+	padding: 0 12px;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	margin-right: 0 !important;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-cell-wrapper  > .v-widget {
+	margin: 3px -6px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-cell-wrapper  > .v-widget.v-label, .org_osbee_vaadin_addons_designer_overlay .v-table-cell-wrapper  > .v-widget.v-checkbox, .org_osbee_vaadin_addons_designer_overlay .v-table-cell-wrapper  > .v-widget.v-select-optiongroup {
+	margin: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-cell-wrapper  > .v-widget.v-progressbar {
+	margin-left: 0;
+	margin-right: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-body {
+	border: 1px solid #d4d4d4;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-table {
+	background-color: white;
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-table td {
+	border-top: 1px solid #d4d4d4;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-table tr:first-child > td {
+	border-top: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-row {
+	background-color: white;
+	cursor: pointer;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-row-odd {
+	background-color: #f5f5f5;
+	cursor: pointer;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-body-noselection .v-table-row, .org_osbee_vaadin_addons_designer_overlay .v-table-body-noselection .v-table-row-odd {
+	cursor: default;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table [class*="-row"].v-selected {
+	background-color: #197de1;
+	background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%);
+	background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%);
+	background-origin: border-box;
+	color: #ecf2f8;
+	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table [class*="-row"].v-selected  + .v-selected {
+	background: #166ed5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table [class*="-row"].v-selected  + .v-selected td {
+	border-top-color: #166ed5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table [class*="-row"].v-selected .v-table-cell-content {
+	border-color: transparent;
+	border-left-color: #1d69b4;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table [class*="-row"].v-selected .v-table-cell-content:first-child {
+	border-left-color: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-header-cell-asc .v-table-sort-indicator, .org_osbee_vaadin_addons_designer_overlay .v-table-header-cell-desc .v-table-sort-indicator {
+	background: transparent;
+	width: 19px;
+	height: 37px;
+	line-height: 37px;
+	margin-left: -19px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-header-cell-asc .v-table-sort-indicator:before, .org_osbee_vaadin_addons_designer_overlay .v-table-header-cell-desc .v-table-sort-indicator:before {
+	font-style: normal;
+	font-weight: normal;
+	display: inline-block;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-header-cell-asc .v-table-sort-indicator:before {
+	content: "\f0de";
+	font-family: ThemeIcons;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-header-cell-desc .v-table-sort-indicator:before {
+	content: "\f0dd";
+	font-family: ThemeIcons;
+}
+
+.org_osbee_vaadin_addons_designer_overlay [class*="rowheader"] span.v-icon {
+	min-width: 1em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-focus {
+	outline: 1px solid #197de1;
+	outline-offset: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-drag-element.v-table-focus, .org_osbee_vaadin_addons_designer_overlay .v-drag-element .v-table-focus {
+	outline: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-header-drag {
+	position: absolute;
+	opacity: 0.9;
+	filter: alpha(opacity=90) ;
+	margin-top: -19px;
+	z-index: 30000;
+	line-height: 1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-focus-slot-right {
+	border-right: 3px solid #197de1;
+	right: -2px;
+	margin-left: -11px !important;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-focus-slot-left {
+	float: left;
+	border-left: 3px solid #197de1;
+	left: -1px;
+	right: auto;
+	margin-left: 0 !important;
+	margin-right: -11px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-column-selector {
+	height: 37px;
+	padding: 0 16px;
+	color: #191919;
+	font-weight: 400;
+	
+	
+	border-radius: 4px;
+	border: 1px solid #c5c5c5;
+	border-top-color: #c5c5c5;
+	border-bottom-color: #bcbcbc;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	-webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7;
+	box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7;
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+	position: absolute;
+	z-index: 2;
+	top: 0;
+	right: 0;
+	width: 19px;
+	height: 19px;
+	line-height: 19px;
+	padding: 0;
+	border-top-width: 0;
+	border-right-width: 0;
+	border-radius: 0 0 0 4px;
+	cursor: pointer;
+	text-align: center;
+	opacity: 0;
+	filter: alpha(opacity=0) ;
+	-webkit-transition: opacity 200ms 2s;
+	-moz-transition: opacity 200ms 2s;
+	transition: opacity 200ms 2s;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-column-selector:after {
+	border: inherit;
+	top: -1px;
+	right: -1px;
+	bottom: -1px;
+	left: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-column-selector:hover:after {
+	background-color: rgba(186, 186, 186, 0.1);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-column-selector:focus:after {
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-column-selector:active:after {
+	background-color: rgba(125, 125, 125, 0.2);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-column-selector:after {
+	content: "";
+	position: absolute;
+	border: none;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-column-selector:active:after {
+	background-color: rgba(125, 125, 125, 0.2);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-column-selector:before {
+	font-family: ThemeIcons;
+	content: "\f013";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-header-wrap:hover .v-table-column-selector {
+	opacity: 1;
+	filter: none ;
+	-webkit-transition-delay: 200ms;
+	-moz-transition-delay: 200ms;
+	transition-delay: 200ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-on:before, .org_osbee_vaadin_addons_designer_overlay .v-off:before {
+	content: "\f00c";
+	font-family: ThemeIcons;
+	font-size: 0.9em;
+	margin-right: 6px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-on div, .org_osbee_vaadin_addons_designer_overlay .v-off div {
+	display: inline;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-off:before {
+	visibility: hidden;
+}
+
+.org_osbee_vaadin_addons_designer_overlay tbody.v-drag-element {
+	display: block;
+	overflow: visible;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	background: transparent;
+	opacity: 1;
+	filter: none ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay tbody.v-drag-element tr {
+	display: block;
+	
+	
+	-webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
+	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
+	border-radius: 4px;
+	overflow: hidden;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+	background: white;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-body {
+	position: relative;
+	z-index: 1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-scrollposition {
+	position: absolute;
+	top: 50%;
+	width: 100%;
+	height: 37px;
+	line-height: 37px;
+	margin: -19px 0 0 !important;
+	text-align: center;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-drag {
+	overflow: visible;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-drag .v-table-body {
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	border-color: #197de1;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-table-drag .v-table-body {
+	border-color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-drag .v-table-body .v-table-focus {
+	outline: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-row-drag-middle .v-table-cell-content {
+	background-color: #d1e5f9;
+	color: #214060;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-row-drag-bottom td.v-table-cell-content {
+	border-bottom: 2px solid #197de1;
+	height: 35px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-row-drag-bottom .v-table-cell-wrapper {
+	margin-bottom: -2px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-row-drag-top td.v-table-cell-content {
+	border-top: 2px solid #197de1;
+	height: 36px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-row-drag-top .v-table-cell-wrapper {
+	margin-top: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-no-stripes .v-table-row, .org_osbee_vaadin_addons_designer_overlay .v-table-no-stripes .v-table-row-odd {
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-no-vertical-lines .v-table-cell-content {
+	border-left: none;
+	padding-left: 1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-no-vertical-lines.v-treetable .v-table-cell-content {
+	padding-left: 13px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-no-horizontal-lines .v-table-cell-content {
+	border-top: none;
+	border-bottom: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-no-horizontal-lines .v-table-row-drag-top .v-table-cell-content, .org_osbee_vaadin_addons_designer_overlay .v-table-no-horizontal-lines .v-table-row-drag-bottom .v-table-cell-content {
+	height: 36px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-no-header .v-table-header-wrap {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-borderless .v-table-header-wrap, .org_osbee_vaadin_addons_designer_overlay .v-table-borderless .v-table-footer-wrap, .org_osbee_vaadin_addons_designer_overlay .v-table-borderless .v-table-header-drag, .org_osbee_vaadin_addons_designer_overlay .v-table-borderless .v-table-body {
+	border: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-borderless .v-table-header-wrap {
+	border-bottom: 1px solid #d9d9d9;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-borderless .v-table-footer-wrap {
+	border-top: 1px solid #d9d9d9;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-compact .v-table-header-wrap, .org_osbee_vaadin_addons_designer_overlay .v-table-compact .v-table-footer-wrap, .org_osbee_vaadin_addons_designer_overlay .v-table-compact .v-table-header-drag, .org_osbee_vaadin_addons_designer_overlay .v-table-small .v-table-header-wrap, .org_osbee_vaadin_addons_designer_overlay .v-table-small .v-table-footer-wrap, .org_osbee_vaadin_addons_designer_overlay .v-table-small .v-table-header-drag {
+	font-size: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-compact .v-table-footer-container, .org_osbee_vaadin_addons_designer_overlay .v-table-small .v-table-footer-container {
+	padding: 8px 7px 9px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-compact .v-table-caption-container, .org_osbee_vaadin_addons_designer_overlay .v-table-compact .v-table-header-drag, .org_osbee_vaadin_addons_designer_overlay .v-table-small .v-table-caption-container, .org_osbee_vaadin_addons_designer_overlay .v-table-small .v-table-header-drag {
+	padding-top: 9px;
+	padding-bottom: 8px;
+	padding-left: 6px;
+	padding-right: 6px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-compact .v-table-caption-container-align-right, .org_osbee_vaadin_addons_designer_overlay .v-table-small .v-table-caption-container-align-right {
+	padding-right: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-compact .v-table-resizer, .org_osbee_vaadin_addons_designer_overlay .v-table-small .v-table-resizer {
+	height: 31px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-compact .v-table-cell-content, .org_osbee_vaadin_addons_designer_overlay .v-table-small .v-table-cell-content {
+	height: 31px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-compact .v-table-cell-wrapper, .org_osbee_vaadin_addons_designer_overlay .v-table-small .v-table-cell-wrapper {
+	padding-left: 6px;
+	padding-right: 6px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-compact .v-table-cell-wrapper  > .v-widget, .org_osbee_vaadin_addons_designer_overlay .v-table-small .v-table-cell-wrapper  > .v-widget {
+	margin: 2px -3px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-compact .v-table-cell-wrapper  > .v-widget.v-label, .org_osbee_vaadin_addons_designer_overlay .v-table-compact .v-table-cell-wrapper  > .v-widget.v-checkbox, .org_osbee_vaadin_addons_designer_overlay .v-table-compact .v-table-cell-wrapper  > .v-widget.v-select-optiongroup, .org_osbee_vaadin_addons_designer_overlay .v-table-small .v-table-cell-wrapper  > .v-widget.v-label, .org_osbee_vaadin_addons_designer_overlay .v-table-small .v-table-cell-wrapper  > .v-widget.v-checkbox, .org_osbee_vaadin_addons_designer_overlay .v-table-small .v-table-cell-wrapper  > .v-widget.v-select-optiongroup {
+	margin: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-compact .v-table-cell-wrapper  > .v-widget.v-progressbar, .org_osbee_vaadin_addons_designer_overlay .v-table-small .v-table-cell-wrapper  > .v-widget.v-progressbar {
+	margin-left: 0;
+	margin-right: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-compact .v-table-header-cell-asc .v-table-sort-indicator, .org_osbee_vaadin_addons_designer_overlay .v-table-compact .v-table-header-cell-desc .v-table-sort-indicator, .org_osbee_vaadin_addons_designer_overlay .v-table-small .v-table-header-cell-asc .v-table-sort-indicator, .org_osbee_vaadin_addons_designer_overlay .v-table-small .v-table-header-cell-desc .v-table-sort-indicator {
+	height: 31px;
+	line-height: 31px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-compact .v-table-header-drag, .org_osbee_vaadin_addons_designer_overlay .v-table-small .v-table-header-drag {
+	margin-top: -16px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-compact.v-treetable .v-table-cell-wrapper, .org_osbee_vaadin_addons_designer_overlay .v-table-small.v-treetable .v-table-cell-wrapper {
+	padding-left: 0;
+	padding-right: 0;
+	min-height: 16px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-compact.v-treetable .v-table-cell-content, .org_osbee_vaadin_addons_designer_overlay .v-table-small.v-treetable .v-table-cell-content {
+	padding-left: 6px;
+	padding-right: 6px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-compact.v-treetable .v-table-cell-content:first-child, .org_osbee_vaadin_addons_designer_overlay .v-table-small.v-treetable .v-table-cell-content:first-child {
+	padding-left: 7px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-compact.v-treetable .v-table-footer-container, .org_osbee_vaadin_addons_designer_overlay .v-table-small.v-treetable .v-table-footer-container {
+	padding-left: 6px;
+	padding-right: 6px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-compact .v-table-row-drag-top .v-table-cell-content, .org_osbee_vaadin_addons_designer_overlay .v-table-compact .v-table-row-drag-bottom .v-table-cell-content, .org_osbee_vaadin_addons_designer_overlay .v-table-small .v-table-row-drag-top .v-table-cell-content, .org_osbee_vaadin_addons_designer_overlay .v-table-small .v-table-row-drag-bottom .v-table-cell-content {
+	height: 30px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-small {
+	font-size: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-table-small.v-treetable .v-table-cell-wrapper {
+	min-height: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-treetable [class*="caption-container"], .org_osbee_vaadin_addons_designer_overlay .v-treetable [class*="footer-container"], .org_osbee_vaadin_addons_designer_overlay .v-treetable [class*="cell-wrapper"] {
+	-webkit-box-sizing: content-box;
+	-moz-box-sizing: content-box;
+	box-sizing: content-box;
+	padding-left: 0;
+	padding-right: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-treetable [class*="caption-container"], .org_osbee_vaadin_addons_designer_overlay .v-treetable [class*="footer-container"] {
+	min-height: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-treetable [class*="cell-wrapper"] {
+	min-height: 16px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-treetable [class*="caption-container"] {
+	padding-left: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-treetable [class*="caption-container-align-right"] {
+	padding-left: 20px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-treetable [class*="footer-container"] {
+	padding-right: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-treetable [class*="cell-content"] {
+	padding-left: 12px;
+	padding-right: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-treetable [class*="cell-content"]:first-child {
+	padding-left: 13px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-treetable-treespacer {
+	display: inline-block;
+	position: absolute;
+	width: 19px !important;
+	margin-left: -25px;
+	text-align: center;
+	cursor: pointer;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-treetable-node-closed:before {
+	content: "\f0da";
+	font-family: ThemeIcons;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-treetable-node-open:before {
+	content: "\f0d7";
+	font-family: ThemeIcons;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-horizontal  > div > .v-splitpanel-hsplitter {
+	width: 1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-horizontal  > div > .v-splitpanel-hsplitter:after {
+	left: -6px;
+	right: -6px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-horizontal  > div > .v-splitpanel-hsplitter div:before {
+	height: 37px;
+	padding: 0 16px;
+	color: #191919;
+	font-weight: 400;
+	
+	
+	border-radius: 4px;
+	border: 1px solid #c5c5c5;
+	border-top-color: #c5c5c5;
+	border-bottom-color: #bcbcbc;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	-webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none;
+	box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none;
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+	height: auto;
+	padding: 0;
+	border-radius: 0;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(left, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to right,#fafafa 2%, #efefef 98%);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-horizontal  > div > .v-splitpanel-hsplitter div:before:after {
+	border: inherit;
+	top: -1px;
+	right: -1px;
+	bottom: -1px;
+	left: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-horizontal  > div > .v-splitpanel-hsplitter div:before:hover:after {
+	background-color: rgba(186, 186, 186, 0.1);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-horizontal  > div > .v-splitpanel-hsplitter div:before:focus:after {
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-horizontal  > div > .v-splitpanel-hsplitter div:before:active:after {
+	background-color: rgba(125, 125, 125, 0.2);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-horizontal  > div > .v-splitpanel-second-container {
+	margin-left: 1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-vertical  > div > .v-splitpanel-vsplitter {
+	height: 1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-vertical  > div > .v-splitpanel-vsplitter:after {
+	top: -6px;
+	bottom: -6px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-vertical  > div > .v-splitpanel-vsplitter div:before {
+	height: 37px;
+	padding: 0 16px;
+	color: #191919;
+	font-weight: 400;
+	
+	
+	border-radius: 4px;
+	border: 1px solid #c5c5c5;
+	border-top-color: #c5c5c5;
+	border-bottom-color: #bcbcbc;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	-webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none;
+	box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none;
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+	height: auto;
+	padding: 0;
+	border-radius: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-vertical  > div > .v-splitpanel-vsplitter div:before:after {
+	border: inherit;
+	top: -1px;
+	right: -1px;
+	bottom: -1px;
+	left: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-vertical  > div > .v-splitpanel-vsplitter div:before:hover:after {
+	background-color: rgba(186, 186, 186, 0.1);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-vertical  > div > .v-splitpanel-vsplitter div:before:focus:after {
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-vertical  > div > .v-splitpanel-vsplitter div:before:active:after {
+	background-color: rgba(125, 125, 125, 0.2);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-horizontal.large  > div > .v-splitpanel-hsplitter {
+	width: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-horizontal.large  > div > .v-splitpanel-hsplitter:after {
+	left: 0px;
+	right: 0px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-horizontal.large  > div > .v-splitpanel-hsplitter div:before {
+	height: 37px;
+	padding: 0 16px;
+	color: #191919;
+	font-weight: 400;
+	
+	
+	border-radius: 4px;
+	border: 1px solid #c5c5c5;
+	border-top-color: #c5c5c5;
+	border-bottom-color: #bcbcbc;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	-webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none;
+	box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none;
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+	height: auto;
+	padding: 0;
+	border-radius: 0;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(left, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to right,#fafafa 2%, #efefef 98%);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-horizontal.large  > div > .v-splitpanel-hsplitter div:before:after {
+	border: inherit;
+	top: -1px;
+	right: -1px;
+	bottom: -1px;
+	left: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-horizontal.large  > div > .v-splitpanel-hsplitter div:before:hover:after {
+	background-color: rgba(186, 186, 186, 0.1);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-horizontal.large  > div > .v-splitpanel-hsplitter div:before:focus:after {
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-horizontal.large  > div > .v-splitpanel-hsplitter div:before:active:after {
+	background-color: rgba(125, 125, 125, 0.2);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-horizontal.large  > div > .v-splitpanel-hsplitter div:after {
+	content: "";
+	border: 1px solid #dadada;
+	border-top-color: #bababa;
+	border-left-color: #bababa;
+	position: absolute;
+	top: 50%;
+	left: 50%;
+	width: 0;
+	height: 37px;
+	margin-left: -1px;
+	margin-top: -19px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-horizontal.large  > div > .v-splitpanel-second-container {
+	margin-left: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-vertical.large  > div > .v-splitpanel-vsplitter {
+	height: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-vertical.large  > div > .v-splitpanel-vsplitter:after {
+	top: 0px;
+	bottom: 0px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-vertical.large  > div > .v-splitpanel-vsplitter div:before {
+	height: 37px;
+	padding: 0 16px;
+	color: #191919;
+	font-weight: 400;
+	
+	
+	border-radius: 4px;
+	border: 1px solid #c5c5c5;
+	border-top-color: #c5c5c5;
+	border-bottom-color: #bcbcbc;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	-webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none;
+	box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none;
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+	height: auto;
+	padding: 0;
+	border-radius: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-vertical.large  > div > .v-splitpanel-vsplitter div:before:after {
+	border: inherit;
+	top: -1px;
+	right: -1px;
+	bottom: -1px;
+	left: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-vertical.large  > div > .v-splitpanel-vsplitter div:before:hover:after {
+	background-color: rgba(186, 186, 186, 0.1);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-vertical.large  > div > .v-splitpanel-vsplitter div:before:focus:after {
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-vertical.large  > div > .v-splitpanel-vsplitter div:before:active:after {
+	background-color: rgba(125, 125, 125, 0.2);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-splitpanel-vertical.large  > div > .v-splitpanel-vsplitter div:after {
+	content: "";
+	border: 1px solid #dadada;
+	border-top-color: #bababa;
+	border-left-color: #bababa;
+	position: absolute;
+	top: 50%;
+	left: 50%;
+	width: 37px;
+	height: 0;
+	margin-left: -19px;
+	margin-top: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-progressbar-wrapper {
+	border-radius: 4px;
+	height: 9px;
+	background-color: #d4d4d4;
+	background-image: -webkit-linear-gradient(bottom, #d7d7d7 2%, #c7c7c7 98%);
+	background-image: linear-gradient(to top,#d7d7d7 2%, #c7c7c7 98%);
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	min-width: 74px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-progressbar-indicator {
+	border-radius: 4px;
+	height: inherit;
+	background-color: #197de1;
+	background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%);
+	background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%);
+	
+	
+	border: 1px solid #1362b1;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	max-width: 100%;
+	min-width: 8px;
+	-webkit-transition: width 160ms;
+	-moz-transition: width 160ms;
+	transition: width 160ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-progressbar-point .v-progressbar-indicator {
+	background: transparent;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	border: none;
+	text-align: right;
+	overflow: hidden;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-progressbar-point .v-progressbar-indicator:before {
+	content: "";
+	display: inline-block;
+	border-radius: 4px;
+	height: inherit;
+	background-color: #197de1;
+	background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%);
+	background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%);
+	
+	
+	border: 1px solid #1362b1;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	max-width: 100%;
+	width: 9px;
+	vertical-align: top;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-progressbar-indeterminate {
+	height: 24px !important;
+	width: 24px !important;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	border: 2px solid rgba(25, 125, 225, 0.2);
+	border-top-color: #197de1;
+	border-right-color: #197de1;
+	border-radius: 100%;
+	-webkit-animation: v-rotate-360 500ms infinite linear;
+	-moz-animation: v-rotate-360 500ms infinite linear;
+	animation: v-rotate-360 500ms infinite linear;
+	pointer-events: none;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-progressbar-indeterminate, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-progressbar-indeterminate {
+	border: none;
+	border-radius: 4px;
+	background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50% 50%;
+	background-size: 80%;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-progressbar-indeterminate {
+	min-width: 30px;
+	min-height: 30px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-progressbar-indeterminate .v-progressbar-wrapper {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider {
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider:focus {
+	outline: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider:focus .v-slider-handle:after {
+	opacity: 1;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-slider:focus .v-slider-handle:after {
+	visibility: visible;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider-base {
+	border-radius: 4px;
+	height: 9px;
+	background-color: #d4d4d4;
+	background-image: -webkit-linear-gradient(bottom, #d7d7d7 2%, #c7c7c7 98%);
+	background-image: linear-gradient(to top,#d7d7d7 2%, #c7c7c7 98%);
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	min-width: 74px;
+	height: 6px;
+	margin: 16px 11px;
+	white-space: nowrap;
+	overflow: hidden;
+	
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider-base:before {
+	content: "";
+	position: absolute;
+	top: 16px;
+	bottom: 16px;
+	left: 11px;
+	width: 8px;
+	border-radius: 4px;
+	border-left: 1px solid #1362b1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider-base:after {
+	border-radius: 4px;
+	height: inherit;
+	background-color: #197de1;
+	background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%);
+	background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%);
+	
+	
+	border: 1px solid #1362b1;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	max-width: 100%;
+	content: "";
+	display: inline-block;
+	margin-left: -100%;
+	width: 100%;
+	vertical-align: top;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-slider-base:after {
+	position: relative;
+	left: -11px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-has-width > .v-slider-base {
+	min-width: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider-handle {
+	margin-top: -16px;
+	width: 0.1px;
+	display: inline-block;
+	vertical-align: top;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider-handle:before {
+	height: 37px;
+	padding: 0 16px;
+	color: #191919;
+	font-weight: 400;
+	
+	
+	border-radius: 4px;
+	border: 1px solid #c5c5c5;
+	border-top-color: #c5c5c5;
+	border-bottom-color: #bcbcbc;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	-webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05);
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider-handle:before:after {
+	border: inherit;
+	top: -1px;
+	right: -1px;
+	bottom: -1px;
+	left: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider-handle:before:hover:after {
+	background-color: rgba(186, 186, 186, 0.1);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider-handle:before:focus:after {
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider-handle:before:active:after {
+	background-color: rgba(125, 125, 125, 0.2);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider-handle:after {
+	border: 1px solid #c5c5c5;
+	border-color: #197de1;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	opacity: 0;
+	-webkit-transition: opacity 200ms;
+	-moz-transition: opacity 200ms;
+	transition: opacity 200ms;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-slider-handle:after {
+	visibility: hidden;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider-handle:before, .org_osbee_vaadin_addons_designer_overlay .v-slider-handle:after {
+	content: "";
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	padding: 0;
+	width: 22px;
+	height: 22px;
+	border-radius: 11px;
+	position: absolute;
+	z-index: 1;
+	margin-top: 8px;
+	margin-left: -11px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider-feedback {
+	background-color: #323232;
+	background-color: rgba(50, 50, 50, 0.9);
+	-webkit-box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
+	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
+	color: white;
+	padding: 5px 9px;
+	border-radius: 3px;
+	max-width: 35em;
+	overflow: hidden !important;
+	font-size: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider-vertical {
+	padding: 11px 0;
+	height: 96px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider-vertical .v-slider-base {
+	background-color: #d4d4d4;
+	background-image: -webkit-linear-gradient(right, #d7d7d7 2%, #c7c7c7 98%);
+	background-image: linear-gradient(to left,#d7d7d7 2%, #c7c7c7 98%);
+	width: 6px;
+	height: 100% !important;
+	min-width: 0;
+	margin: 0 16px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider-vertical .v-slider-base:before {
+	top: auto;
+	bottom: 11px;
+	left: 16px;
+	right: 16px;
+	width: auto;
+	height: 8px;
+	border-left: none;
+	border-bottom: 1px solid #1362b1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider-vertical .v-slider-base:after {
+	height: 101%;
+	margin-left: 0;
+	background-color: #197de1;
+	background-image: -webkit-linear-gradient(left, #1b87e3 2%, #166ed5 98%);
+	background-image: linear-gradient(to right,#1b87e3 2%, #166ed5 98%);
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-slider-vertical .v-slider-base:after {
+	top: 11px;
+	left: 0;
+	height: 130%;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider-vertical .v-slider-handle {
+	width: 0;
+	height: 0.1px;
+	width: 37px;
+	display: block;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider-vertical .v-slider-handle:before, .org_osbee_vaadin_addons_designer_overlay .v-slider-vertical .v-slider-handle:after {
+	width: 22px;
+	height: 22px;
+	margin-top: -11px;
+	margin-left: -8px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-slider-no-indicator .v-slider-base:before, .org_osbee_vaadin_addons_designer_overlay .v-slider-no-indicator .v-slider-base:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet:not(.v-has-width) {
+	width: auto !important;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-spacertd {
+	display: none !important;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-tabcontainer {
+	position: relative;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-tabcontainer:before {
+	content: "";
+	position: absolute;
+	height: 0;
+	border-top: 1px solid #dfdfdf;
+	bottom: 0;
+	left: 0;
+	right: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-tabcontainer .v-tabsheet-tabs {
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-tabitemcell {
+	vertical-align: bottom;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-tabitemcell .v-tabsheet-tabitem {
+	line-height: 0;
+	overflow: hidden;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-tabitemcell .v-caption {
+	margin-left: 19px;
+	padding: 0 4px;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	cursor: pointer;
+	text-align: center;
+	line-height: 37px;
+	font-size: 15px;
+	font-weight: 300;
+	color: #696969;
+	width: auto !important;
+	overflow: hidden;
+	text-overflow: ellipsis;
+	border-bottom: 2px solid transparent;
+	position: relative;
+	-webkit-transition: border-bottom 200ms, color 200ms;
+	-moz-transition: border-bottom 200ms, color 200ms;
+	transition: border-bottom 200ms, color 200ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-tabitemcell .v-caption .v-captiontext {
+	display: inline;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-tabitemcell .v-caption .v-icon + .v-captiontext {
+	margin-left: 9px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-tabitemcell .v-caption:hover {
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-tabitemcell .v-caption.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+	cursor: default;
+	color: inherit !important;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-tabitemcell:first-child .v-caption, .org_osbee_vaadin_addons_designer_overlay .v-tabsheet-tabitemcell[aria-hidden="true"] + td .v-caption {
+	margin-left: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-tabitemcell:focus {
+	outline: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-tabitemcell:focus .v-caption {
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-tabitemcell .v-tabsheet-tabitem-selected .v-caption.v-caption {
+	border-bottom-color: #197de1;
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-tabitemcell .v-caption-closable {
+	padding-right: 22px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-tabitemcell.icons-on-top .v-caption-closable {
+	padding-right: 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-tabitemcell .v-tabsheet-caption-close {
+	position: absolute;
+	right: 0;
+	top: 50%;
+	margin: -8px 0 0;
+	font-size: 18px;
+	line-height: 18px;
+	width: 18px;
+	text-align: center;
+	border-radius: 2px;
+	color: #969696;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-tabitemcell .v-tabsheet-caption-close:hover {
+	background: rgba(0, 0, 0, 0.03);
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-tabitemcell .v-tabsheet-caption-close:active {
+	background: #197de1;
+	color: #c8dbed;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-scroller {
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	padding-left: 19px;
+	background-color: transparent;
+	background-image: -webkit-linear-gradient(right, #fafafa 70%, rgba(250, 250, 250, 0) 100%);
+	background-image: linear-gradient(to left,#fafafa 70%, rgba(250, 250, 250, 0) 100%);
+	pointer-events: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-scroller:after {
+	content: "";
+	height: 1px;
+	position: absolute;
+	bottom: 0;
+	left: 0;
+	right: 0;
+	display: block;
+	background-color: transparent;
+	background-image: -webkit-linear-gradient(right, #dfdfdf 70%, rgba(223, 223, 223, 0) 100%);
+	background-image: linear-gradient(to left,#dfdfdf 70%, rgba(223, 223, 223, 0) 100%);
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-tabsheet-scroller, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-tabsheet-scroller {
+	background-color: #fafafa;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-tabsheet-scroller:after, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-tabsheet-scroller:after {
+	background-color: #dfdfdf;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-scroller button {
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	border: none;
+	background: transparent;
+	font: inherit;
+	color: inherit;
+	height: 100%;
+	margin: 0;
+	padding: 0 9px;
+	outline: none;
+	cursor: pointer;
+	pointer-events: auto;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-scroller button:hover {
+	opacity: 1;
+	filter: none ;
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-scroller button:active {
+	opacity: 0.7;
+	filter: alpha(opacity=70) ;
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-scroller button::-moz-focus-inner {
+	padding: 0;
+	border: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-scroller [class*="Next"] {
+	padding-left: 5px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-scroller [class*="Next"]:before {
+	font-family: ThemeIcons;
+	content: "\f054";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-scroller [class*="Prev"] {
+	padding-right: 5px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-scroller [class*="Prev"]:before {
+	font-family: ThemeIcons;
+	content: "\f053";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-scroller [class*="disabled"] {
+	cursor: default;
+	color: inherit !important;
+	opacity: 0.1 !important;
+	filter: alpha(opacity=10) !important;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-tabsheetpanel > .v-scrollable > .v-widget {
+	-webkit-animation: valo-animate-in-fade 300ms backwards;
+	-moz-animation: valo-animate-in-fade 300ms backwards;
+	animation: valo-animate-in-fade 300ms backwards;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-deco {
+	height: 20px !important;
+	width: 20px !important;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	border: 2px solid rgba(25, 125, 225, 0.2);
+	border-top-color: #197de1;
+	border-right-color: #197de1;
+	border-radius: 100%;
+	-webkit-animation: v-rotate-360 500ms infinite linear;
+	-moz-animation: v-rotate-360 500ms infinite linear;
+	animation: v-rotate-360 500ms infinite linear;
+	pointer-events: none;
+	display: none;
+	position: absolute;
+	z-index: 1;
+	bottom: 50%;
+	margin-bottom: -29px;
+	left: 50%;
+	margin-left: -10px;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-tabsheet-deco, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-tabsheet-deco {
+	border: none;
+	border-radius: 4px;
+	background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50% 50%;
+	background-size: 80%;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-tabsheet-deco {
+	min-width: 30px;
+	min-height: 30px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-loading .v-tabsheet-deco {
+	display: block;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-equal-width-tabs  > .v-tabsheet-tabcontainer table, .org_osbee_vaadin_addons_designer_overlay .v-tabsheet-equal-width-tabs  > .v-tabsheet-tabcontainer tbody, .org_osbee_vaadin_addons_designer_overlay .v-tabsheet-equal-width-tabs  > .v-tabsheet-tabcontainer tr {
+	width: 100%;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-equal-width-tabs  > .v-tabsheet-tabcontainer tr {
+	display: table;
+	table-layout: fixed;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-equal-width-tabs  > .v-tabsheet-tabcontainer td {
+	display: table-cell;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-equal-width-tabs  > .v-tabsheet-tabcontainer .v-caption {
+	margin: 0;
+	display: block;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-framed  > .v-tabsheet-tabcontainer .v-caption {
+	margin-left: 4px;
+	padding: 0 12px;
+	background-color: #fafafa;
+	border: 1px solid transparent;
+	line-height: 36px;
+	border-radius: 4px 4px 0 0;
+	font-weight: 400;
+	-webkit-transition: background-color 160ms;
+	-moz-transition: background-color 160ms;
+	transition: background-color 160ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-framed  > .v-tabsheet-tabcontainer .v-caption:hover {
+	background-color: #f2f2f2;
+	border-bottom-color: #dfdfdf;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-framed  > .v-tabsheet-tabcontainer .v-caption.v-disabled:hover {
+	background-color: #fafafa;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-framed  > .v-tabsheet-tabcontainer .v-caption-closable {
+	padding-right: 30px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-framed  > .v-tabsheet-tabcontainer .v-tabsheet-caption-close {
+	top: 4px;
+	right: 4px;
+	margin-top: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-framed  > .v-tabsheet-tabcontainer td:first-child .v-caption, .org_osbee_vaadin_addons_designer_overlay .v-tabsheet-framed  > .v-tabsheet-tabcontainer [aria-hidden="true"] + td .v-caption {
+	margin-left: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-framed  > .v-tabsheet-tabcontainer .v-tabsheet-tabitem .v-caption {
+	border-color: #dfdfdf;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-framed  > .v-tabsheet-tabcontainer .v-tabsheet-tabitem-selected .v-caption {
+	background: white;
+	border-color: #dfdfdf;
+	border-bottom: none;
+	padding-bottom: 1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-framed  > .v-tabsheet-content {
+	border: 1px solid #dfdfdf;
+	border-top: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-framed  > .v-tabsheet-content  > div {
+	background: white;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-framed.padded-tabbar  > .v-tabsheet-tabcontainer {
+	border: 1px solid #dfdfdf;
+	border-bottom: none;
+	background: #fafafa;
+	padding-top: 6px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-framed.icons-on-top  > .v-tabsheet-tabcontainer .v-tabsheet-tabitem-selected .v-caption {
+	padding-bottom: 7px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-centered-tabs  > .v-tabsheet-tabcontainer {
+	text-align: center;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-right-aligned-tabs  > .v-tabsheet-tabcontainer {
+	text-align: right;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-padded-tabbar  > .v-tabsheet-tabcontainer .v-tabsheet-tabs {
+	padding: 0 9px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-icons-on-top  > .v-tabsheet-tabcontainer .v-caption {
+	padding-top: 6px;
+	padding-bottom: 6px;
+	line-height: 1.2;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-icons-on-top  > .v-tabsheet-tabcontainer .v-icon {
+	display: block;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-icons-on-top  > .v-tabsheet-tabcontainer .v-icon  + .v-captiontext.v-captiontext {
+	margin-left: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-icons-on-top  > .v-tabsheet-tabcontainer .v-caption-closable {
+	padding-right: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-icons-on-top  > .v-tabsheet-tabcontainer .v-tabsheet-caption-close {
+	top: 4px;
+	margin-top: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-compact-tabbar  > .v-tabsheet-tabcontainer-compact-tabbar .v-caption {
+	line-height: 1.8;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-only-selected-closable  > .v-tabsheet-tabcontainer .v-tabsheet-caption-close {
+	visibility: hidden;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-tabsheet-only-selected-closable  > .v-tabsheet-tabcontainer .v-tabsheet-tabitem-selected .v-tabsheet-caption-close {
+	visibility: visible;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-popup.v-window {
+	min-width: 220px !important;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-popup .v-tabsheet-tabs {
+	padding: 0 9px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-popup [class$="sliders"] {
+	padding: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-popup [class$="sliders"] .v-widget {
+	width: 100% !important;
+	vertical-align: middle;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-popup [class$="sliders"] .v-has-caption {
+	white-space: nowrap;
+	padding-left: 48px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-popup [class$="sliders"] .v-caption {
+	display: inline-block;
+	margin-left: -48px;
+	width: 48px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-popup [class$="sliders"] .v-slot-hue-slider + .v-slot .v-has-caption {
+	padding-left: 80px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-popup [class$="sliders"] .v-slot-hue-slider + .v-slot .v-caption {
+	margin-left: -80px;
+	width: 80px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-popup .v-slider-red .v-slider-base:after {
+	background: red;
+	border: none;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-popup .v-slider-green .v-slider-base:after {
+	background: green;
+	border: none;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-popup .v-slider-blue .v-slider-base:after {
+	background: blue;
+	border: none;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-popup .v-margin-bottom {
+	padding-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-popup .resize-button {
+	width: 100% !important;
+	height: auto !important;
+	text-align: center;
+	outline: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-popup .resize-button:before {
+	font-family: ThemeIcons;
+	content: "\f141";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-popup .resize-button-caption {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-popup .v-horizontallayout {
+	height: auto !important;
+	padding: 9px 0;
+	background-color: #fafafa;
+	border-top: 1px solid #ededed;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-popup .v-horizontallayout .v-expand {
+	overflow: visible;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-popup .v-horizontallayout .v-button {
+	width: 80% !important;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-preview {
+	width: 100% !important;
+	height: auto !important;
+	padding: 9px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-preview-textfield {
+	height: auto !important;
+	text-align: center;
+	border: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker {
+	width: auto;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-button-color {
+	position: absolute;
+	top: 6px;
+	right: 6px;
+	bottom: 6px;
+	left: 6px;
+	border-radius: 3px;
+	border: 1px solid rgba(0, 0, 0, 0.5);
+	max-width: 23px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-colorpicker-button-color  + .v-button-caption:not(:empty) {
+	margin-left: 19px;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-colorpicker-button-color {
+	position: relative;
+	top: auto;
+	right: auto;
+	bottom: auto;
+	left: auto;
+	width: 16px;
+	height: 16px;
+	display: inline-block;
+	vertical-align: middle;
+	margin: 0 -8px;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-colorpicker-button-color  + .v-button-caption {
+	margin-left: 19px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-panel {
+	background: white;
+	color: #474747;
+	border-radius: 4px;
+	border: 1px solid #d5d5d5;
+	-webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05);
+	overflow: visible !important;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-panel-caption {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	padding: 0 12px;
+	line-height: 36px;
+	border-bottom: 1px solid #d5d5d5;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #f6f6f6 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #f6f6f6 98%);
+	color: #464646;
+	font-weight: 400;
+	font-size: 14px;
+	-webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #eeeeee;
+	box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #eeeeee;
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+	border-radius: 3px 3px 0 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-panel-content {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	width: 100%;
+	height: 100%;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-panel-content  > .v-margin-top {
+	padding-top: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-panel-content  > .v-margin-right {
+	padding-right: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-panel-content  > .v-margin-bottom {
+	padding-bottom: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-panel-content  > .v-margin-left {
+	padding-left: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-panel-borderless {
+	background: transparent;
+	color: inherit;
+	border: none;
+	border-radius: 0;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-panel-borderless  > div > [class*="-caption"] {
+	background: transparent;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	color: inherit;
+	padding: 0;
+	margin: 0 12px;
+	border-bottom: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-panel-well {
+	background: #f5f5f5;
+	color: #454545;
+	-webkit-box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05);
+	border-radius: 4px;
+	border: 1px solid #c5c5c5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-panel-well  > div > [class*="-caption"] {
+	background: transparent;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-panel-scroll-divider  > [class*="-captionwrap"] {
+	position: relative;
+	z-index: 2;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-panel-scroll-divider  > [class*="-captionwrap"]:after {
+	content: "";
+	position: absolute;
+	bottom: -1px;
+	right: 0;
+	left: 0;
+	height: 0;
+	border-top: 1px solid #dfdfdf;
+	border-color: rgba(197, 197, 197, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-panel-scroll-divider  > [class*="-content"]:before {
+	content: "";
+	position: absolute;
+	z-index: 2;
+	top: 0;
+	height: 0;
+	border-top: 1px solid #fafafa;
+	left: 0;
+	right: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-panel-caption.v-horizontallayout {
+	height: auto !important;
+	line-height: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-panel-caption.v-horizontallayout .v-slot {
+	vertical-align: middle;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-panel-caption.v-horizontallayout .v-label {
+	line-height: 37px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-accordion {
+	background: white;
+	color: #474747;
+	border-radius: 4px;
+	border: 1px solid #d5d5d5;
+	-webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05);
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #f4f4f4 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #f4f4f4 98%);
+	overflow: hidden;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-accordion-item {
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-accordion-item:first-child {
+	border-top-left-radius: 3px;
+	border-top-right-radius: 3px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-accordion-item:last-child {
+	border-bottom-left-radius: 3px;
+	border-bottom-right-radius: 3px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-accordion-item:last-child [class*="item-content"] {
+	border-radius: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-accordion-item[class*="item-open"]:last-child > div > .v-caption {
+	border-radius: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-accordion-item:not([class*="item-open"]):last-child > div > .v-caption {
+	border-bottom: none;
+	margin-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-accordion-item[class*="item-open"] + [class*="item"] {
+	border-top: 1px solid #d9d9d9;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-accordion-item-caption {
+	border-radius: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-accordion-item-caption  > .v-caption {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	padding: 0 12px;
+	line-height: 36px;
+	border-bottom: 1px solid #d5d5d5;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #f6f6f6 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #f6f6f6 98%);
+	color: #464646;
+	font-weight: 400;
+	font-size: 14px;
+	-webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #eeeeee;
+	box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #eeeeee;
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
+	display: block;
+	background: transparent;
+	border-bottom-color: #c9c9c9;
+	border-radius: inherit;
+	cursor: pointer;
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-accordion-item-caption  > .v-caption:hover:before, .org_osbee_vaadin_addons_designer_overlay .v-accordion-item-caption  > .v-caption:active:before {
+	content: "";
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	border-radius: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-accordion-item-caption  > .v-caption:hover:before {
+	background-color: rgba(186, 186, 186, 0.1);
+	border: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-accordion-item-caption  > .v-caption:active:before {
+	background-color: rgba(125, 125, 125, 0.2);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-accordion-item-content {
+	-webkit-box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.05);
+	background-color: white;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-accordion-item-content  > .v-margin-top {
+	padding-top: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-accordion-item-content  > .v-margin-right {
+	padding-right: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-accordion-item-content  > .v-margin-bottom {
+	padding-bottom: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-accordion-item-content  > .v-margin-left {
+	padding-left: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-accordion-borderless {
+	border: none;
+	border-radius: 0;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-accordion-borderless  > .v-accordion-item, .org_osbee_vaadin_addons_designer_overlay .v-accordion-borderless  > .v-accordion-item > div > .v-caption, .org_osbee_vaadin_addons_designer_overlay .v-accordion-borderless  > .v-accordion-item > .v-accordion-item-content {
+	border-radius: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-twincol {
+	white-space: normal;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-twincol select {
+	border: 1px solid #c5c5c5;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	color: #464646;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-twincol select:focus {
+	outline: none;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-twincol .v-textfield, .org_osbee_vaadin_addons_designer_overlay .v-select-twincol .v-nativebutton {
+	width: auto !important;
+	margin-top: 9px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-twincol .v-nativebutton {
+	margin-left: 9px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-twincol-caption-left, .org_osbee_vaadin_addons_designer_overlay .v-select-twincol-caption-right {
+	font-size: 14px;
+	font-weight: 400;
+	padding-bottom: 0.3em;
+	padding-left: 1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-twincol-buttons {
+	white-space: nowrap;
+	display: inline-block;
+	vertical-align: top;
+	position: relative;
+	min-width: 3.5em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-twincol-buttons .v-button {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	display: inline-block;
+	vertical-align: top;
+	text-align: left;
+	white-space: normal;
+	position: absolute;
+	left: 9px;
+	right: 9px;
+	top: 36px;
+	padding: 0;
+	text-align: center;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-twincol-buttons .v-button:first-child {
+	top: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-twincol-buttons .v-button-caption {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-twincol-buttons .v-button:focus {
+	z-index: 1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-twincol-buttons .v-button:first-child {
+	border-radius: 4px 4px 0 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-twincol-buttons .v-button:last-child {
+	border-radius: 0 0 4px 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-twincol-buttons .v-button-wrap:before {
+	font-family: ThemeIcons;
+	content: "\f053";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-twincol-buttons .v-button:first-child .v-button-wrap:before {
+	font-family: ThemeIcons;
+	content: "\f054";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select select {
+	border: 1px solid #c5c5c5;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	color: #464646;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select select:focus {
+	outline: none;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-select {
+	display: block;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-select  + .v-textfield {
+	width: auto !important;
+	margin-top: 9px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-select  + .v-textfield  + .v-nativebutton {
+	margin-top: 9px;
+	margin-left: 9px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-header-day {
+	font-weight: 400;
+	text-align: center;
+	padding: 7px 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-header-week .v-calendar-back, .org_osbee_vaadin_addons_designer_overlay .v-calendar-header-week .v-calendar-next {
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	background: transparent;
+	border: none;
+	padding: 0;
+	margin: 0;
+	cursor: pointer;
+	outline: none;
+	color: inherit;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-header-week .v-calendar-back:focus, .org_osbee_vaadin_addons_designer_overlay .v-calendar-header-week .v-calendar-next:focus {
+	outline: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-header-week .v-calendar-back:hover, .org_osbee_vaadin_addons_designer_overlay .v-calendar-header-week .v-calendar-next:hover {
+	opacity: 1;
+	filter: none ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-header-week .v-calendar-back:active, .org_osbee_vaadin_addons_designer_overlay .v-calendar-header-week .v-calendar-next:active {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-header-week .v-calendar-back:before {
+	font-family: ThemeIcons;
+	content: "\f053";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-header-week .v-calendar-next:before {
+	font-family: ThemeIcons;
+	content: "\f054";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-month {
+	outline: none;
+	overflow: hidden;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-month td {
+	vertical-align: top;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-week-number {
+	cursor: pointer;
+	width: 20px;
+	text-align: center;
+	font-size: 0.8em;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-week-number:hover {
+	opacity: 1;
+	filter: none ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-month-day {
+	outline: none;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	line-height: 1.2;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-bottom-spacer, .org_osbee_vaadin_addons_designer_overlay .v-calendar-spacer, .org_osbee_vaadin_addons_designer_overlay .v-calendar-bottom-spacer-empty {
+	height: 19px;
+	margin-bottom: 3px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-bottom-spacer {
+	font-size: 0.8em;
+	padding: 0 5px;
+	cursor: pointer;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-bottom-spacer:hover {
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-day-number {
+	line-height: 25px;
+	font-size: 16px;
+	text-align: right;
+	margin: 0 5px;
+	white-space: nowrap;
+	border-top: 1px solid #f2f2f2;
+	cursor: pointer;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-day-number:hover {
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-month-day-today {
+	background: #eef3f8;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-month-day-today .v-calendar-day-number {
+	font-weight: 400;
+	color: #197de1;
+	border-top: 2px solid #197de1;
+	line-height: 24px;
+	margin: 0;
+	padding: 0 5px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-month-day-selected {
+	background-color: #e3edf7;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-month-day-dragemphasis {
+	background-color: #a8a8a8;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-month-day-scrollable {
+	overflow-y: scroll;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-weekly-longevents {
+	margin-left: 50px;
+	border-bottom: 3px solid #e0e0e0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-weekly-longevents .v-calendar-event-all-day {
+	height: 22px;
+	line-height: 1.6;
+	margin-bottom: 3px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-header-week td {
+	vertical-align: middle !important;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-header-week .v-calendar-header-day {
+	cursor: pointer;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-times {
+	width: 50px;
+	font-size: 0.77em;
+	line-height: 1;
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-time {
+	text-align: right;
+	padding-right: 9px;
+	margin-top: -6px;
+	padding-bottom: 6px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-day-times, .org_osbee_vaadin_addons_designer_overlay .v-calendar-day-times-today {
+	outline: none;
+	border-right: 1px solid transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-day-times:focus, .org_osbee_vaadin_addons_designer_overlay .v-calendar-day-times-today:focus {
+	outline: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar .v-datecellslot, .org_osbee_vaadin_addons_designer_overlay .v-calendar .v-datecellslot-even {
+	border-top: 1px solid #dfdfdf;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar .v-datecellslot:first-child, .org_osbee_vaadin_addons_designer_overlay .v-calendar .v-datecellslot-even:first-child {
+	border-top-color: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar .v-datecellslot {
+	border-top-style: dotted;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar .v-datecellslot, .org_osbee_vaadin_addons_designer_overlay .v-calendar .v-datecellslot-even {
+	margin-right: 5px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-current-time {
+	background: #197de1;
+	line-height: 1px;
+	pointer-events: none;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-current-time:before {
+	content: "\2022";
+	color: #197de1;
+	font-size: 22px;
+	margin-left: -0.07em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar .v-daterange {
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar .v-daterange:before {
+	content: "";
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: -1px;
+	left: 0;
+	background: #197de1;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+	border-radius: 4px 4px 0 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar .v-daterange  + .v-daterange {
+	border-color: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar .v-daterange  + .v-daterange:before {
+	border-radius: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event {
+	font-size: 0.85em;
+	overflow: hidden;
+	cursor: pointer;
+	outline: none;
+	border-radius: 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event:focus {
+	outline: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event-month {
+	padding: 0 5px;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	margin-bottom: 3px;
+	white-space: nowrap;
+	text-overflow: ellipsis;
+	height: 19px;
+	line-height: 19px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event-month .v-calendar-event-time {
+	float: right;
+	font-size: 0.9em;
+	line-height: 19px;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event-month:before {
+	content: "\25cf";
+	margin-right: 0.2em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event-all-day {
+	padding: 0 5px;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	height: 19px;
+	line-height: 19px;
+	border-radius: 0;
+	margin-left: -1px;
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event-all-day:before {
+	content: "";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event-start {
+	overflow: visible;
+	margin-left: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event-start.v-calendar-event-continued-to, .org_osbee_vaadin_addons_designer_overlay .v-calendar-event-start.v-calendar-event-end {
+	overflow: hidden;
+	text-overflow: ellipsis;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event-start {
+	border-top-left-radius: 4px;
+	border-bottom-left-radius: 4px;
+	margin-left: 5px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event-end {
+	border-top-right-radius: 4px;
+	border-bottom-right-radius: 4px;
+	margin-right: 5px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event-caption {
+	font-weight: 500;
+	line-height: 1.2;
+	padding: 5px 0;
+	position: absolute;
+	overflow: hidden;
+	right: 9px;
+	left: 5px;
+	bottom: 0;
+	top: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event-caption span {
+	font-weight: 300;
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-week-wrapper .v-calendar-event {
+	overflow: visible;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-week-wrapper .v-calendar-event-content {
+	margin-top: -1px;
+	border-radius: 5px;
+	border: 1px solid #fafafa;
+	padding-top: 3px;
+	margin-right: 5px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event-month:before {
+	color: #00ace0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event-all-day {
+	background-color: #c8eaf4;
+	background-color: rgba(200, 234, 244, 0.8);
+	color: #00ace0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-week-wrapper .v-calendar-event {
+	color: #00ace0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-week-wrapper .v-calendar-event .v-calendar-event-content {
+	background-color: #c8eaf4;
+	background-color: rgba(200, 234, 244, 0.8);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event-month[class*="color2"]:before {
+	color: #2d9f19;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event-all-day[class*="color2"] {
+	background-color: #d1e7cd;
+	background-color: rgba(209, 231, 205, 0.8);
+	color: #2d9f19;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-week-wrapper .v-calendar-event[class*="color2"] {
+	color: #2d9f19;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-week-wrapper .v-calendar-event[class*="color2"] .v-calendar-event-content {
+	background-color: #d1e7cd;
+	background-color: rgba(209, 231, 205, 0.8);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event-month[class*="color3"]:before {
+	color: #d18100;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event-all-day[class*="color3"] {
+	background-color: #f1e1c8;
+	background-color: rgba(241, 225, 200, 0.8);
+	color: #d18100;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-week-wrapper .v-calendar-event[class*="color3"] {
+	color: #d18100;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-week-wrapper .v-calendar-event[class*="color3"] .v-calendar-event-content {
+	background-color: #f1e1c8;
+	background-color: rgba(241, 225, 200, 0.8);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event-month[class*="color4"]:before {
+	color: #ce3812;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event-all-day[class*="color4"] {
+	background-color: #f1d3cb;
+	background-color: rgba(241, 211, 203, 0.8);
+	color: #ce3812;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-week-wrapper .v-calendar-event[class*="color4"] {
+	color: #ce3812;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-week-wrapper .v-calendar-event[class*="color4"] .v-calendar-event-content {
+	background-color: #f1d3cb;
+	background-color: rgba(241, 211, 203, 0.8);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event-month[class*="color5"]:before {
+	color: #2d55cd;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-event-all-day[class*="color5"] {
+	background-color: #d1d9f1;
+	background-color: rgba(209, 217, 241, 0.8);
+	color: #2d55cd;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-week-wrapper .v-calendar-event[class*="color5"] {
+	color: #2d55cd;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar-week-wrapper .v-calendar-event[class*="color5"] .v-calendar-event-content {
+	background-color: #d1d9f1;
+	background-color: rgba(209, 217, 241, 0.8);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-calendar.v-disabled * {
+	cursor: default;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-label {
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-label-undef-w {
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay h1, .org_osbee_vaadin_addons_designer_overlay .v-label-h1, .org_osbee_vaadin_addons_designer_overlay h2, .org_osbee_vaadin_addons_designer_overlay .v-label-h2, .org_osbee_vaadin_addons_designer_overlay h3, .org_osbee_vaadin_addons_designer_overlay .v-label-h3 {
+	line-height: 1.1;
+	font-weight: 200;
+	color: #141414;
+}
+
+.org_osbee_vaadin_addons_designer_overlay h1, .org_osbee_vaadin_addons_designer_overlay .v-label-h1 {
+	font-size: 2.4em;
+	margin-top: 1.4em;
+	margin-bottom: 1em;
+	
+	letter-spacing: -0.03em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay h2, .org_osbee_vaadin_addons_designer_overlay .v-label-h2 {
+	font-size: 1.6em;
+	
+	margin-top: 1.6em;
+	margin-bottom: 0.77em;
+	letter-spacing: -0.02em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay h3, .org_osbee_vaadin_addons_designer_overlay .v-label-h3 {
+	font-size: 1.2em;
+	
+	margin-top: 1.8em;
+	margin-bottom: 0.77em;
+	letter-spacing: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay h4, .org_osbee_vaadin_addons_designer_overlay .v-label-h4 {
+	line-height: 1.1;
+	font-weight: 500;
+	font-size: 14px;
+	color: #414141;
+	text-transform: uppercase;
+	letter-spacing: 0;
+	margin-top: 2.4em;
+	margin-bottom: 0.8em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-csslayout  > h1:first-child, .org_osbee_vaadin_addons_designer_overlay .v-csslayout  > h2:first-child, .org_osbee_vaadin_addons_designer_overlay .v-csslayout  > h3:first-child, .org_osbee_vaadin_addons_designer_overlay .v-csslayout  > h4 > .v-label-h1:first-child, .org_osbee_vaadin_addons_designer_overlay .v-csslayout  > .v-label-h2:first-child, .org_osbee_vaadin_addons_designer_overlay .v-csslayout  > .v-label-h3:first-child, .org_osbee_vaadin_addons_designer_overlay .v-csslayout  > .v-label-h4:first-child {
+	margin-top: 16px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-verticallayout > .v-slot:first-child h1, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > .v-slot:first-child .v-label-h1, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > .v-slot:first-child h2, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > .v-slot:first-child .v-label-h2, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > .v-slot:first-child h3, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > .v-slot:first-child .v-label-h3, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > .v-slot:first-child h4, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > .v-slot:first-child .v-label-h4, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > div > .v-slot:first-child h1, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > div > .v-slot:first-child .v-label-h1, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > div > .v-slot:first-child h2, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > div > .v-slot:first-child .v-label-h2, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > div > .v-slot:first-child h3, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > div > .v-slot:first-child .v-label-h3, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > div > .v-slot:first-child h4, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > div > .v-slot:first-child .v-label-h4 {
+	margin-top: 16px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell h1, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell .v-label-h1, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell h2, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell .v-label-h2, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell h3, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell .v-label-h3, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell h4, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell .v-label-h4, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell h1, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell .v-label-h1, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell h2, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell .v-label-h2, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell h3, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell .v-label-h3, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell h4, .org_osbee_vaadin_addons_designer_overlay .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell .v-label-h4 {
+	margin-top: -0.5em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay h1.no-margin, .org_osbee_vaadin_addons_designer_overlay .v-label-h1.no-margin, .org_osbee_vaadin_addons_designer_overlay h2.no-margin, .org_osbee_vaadin_addons_designer_overlay .v-label-h2.no-margin, .org_osbee_vaadin_addons_designer_overlay h3.no-margin, .org_osbee_vaadin_addons_designer_overlay .v-label-h3.no-margin, .org_osbee_vaadin_addons_designer_overlay h4.no-margin, .org_osbee_vaadin_addons_designer_overlay .v-label-h4.no-margin {
+	margin: 0 !important;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-label-colored {
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-label-large {
+	font-size: 20px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-label-small {
+	font-size: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-label-tiny {
+	font-size: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-label-huge {
+	font-size: 26px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-label-bold {
+	font-weight: 500;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-label-light {
+	font-weight: 200;
+	color: #7d7d7d;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-label-align-right {
+	text-align: right;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-label-align-center {
+	text-align: center;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-label-spinner {
+	height: 24px !important;
+	width: 24px !important;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	border: 2px solid rgba(25, 125, 225, 0.2);
+	border-top-color: #197de1;
+	border-right-color: #197de1;
+	border-radius: 100%;
+	-webkit-animation: v-rotate-360 500ms infinite linear;
+	-moz-animation: v-rotate-360 500ms infinite linear;
+	animation: v-rotate-360 500ms infinite linear;
+	pointer-events: none;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-label-spinner, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-label-spinner {
+	border: none;
+	border-radius: 4px;
+	background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50% 50%;
+	background-size: 80%;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-label-spinner {
+	min-width: 30px;
+	min-height: 30px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-label-success, .org_osbee_vaadin_addons_designer_overlay .v-label-failure {
+	background: white;
+	color: #474747;
+	border: 2px solid #2c9720;
+	border-radius: 4px;
+	padding: 7px 19px 7px 37px;
+	font-weight: 400;
+	font-size: 15px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-label-success:before, .org_osbee_vaadin_addons_designer_overlay .v-label-failure:before {
+	font-family: ThemeIcons;
+	content: "\f00c";
+	margin-right: 0.5em;
+	margin-left: -19px;
+	color: #2c9720;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-label-failure {
+	border-color: #ed473b;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-label-failure:before {
+	content: "\f05e";
+	color: #ed473b;
+}
+
+.org_osbee_vaadin_addons_designer_overlay [draggable=true] {
+	-khtml-user-drag: element;
+	-webkit-user-drag: element;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-ddwrapper {
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-ddwrapper-over:before, .org_osbee_vaadin_addons_designer_overlay .v-ddwrapper-over:after {
+	content: "";
+	position: absolute;
+	z-index: 10;
+	top: -1px;
+	right: -1px;
+	bottom: -1px;
+	left: -1px;
+	border: 0 solid #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-ddwrapper-over-top:before {
+	border-top-width: 2px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-ddwrapper-over-right:before {
+	border-right-width: 2px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-ddwrapper-over-bottom:before {
+	border-bottom-width: 2px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-ddwrapper-over-left:before {
+	border-left-width: 2px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .no-vertical-drag-hints .v-ddwrapper-over-top:before, .org_osbee_vaadin_addons_designer_overlay .no-vertical-drag-hints.v-ddwrapper-over-top:before {
+	border-top-width: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .no-vertical-drag-hints .v-ddwrapper-over-top:after, .org_osbee_vaadin_addons_designer_overlay .no-vertical-drag-hints.v-ddwrapper-over-top:after {
+	border-width: 2px;
+	border-radius: 4px;
+	opacity: 0.3;
+	filter: alpha(opacity=30.0) ;
+	background: #8abef2;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .no-vertical-drag-hints .v-ddwrapper-over-bottom:before, .org_osbee_vaadin_addons_designer_overlay .no-vertical-drag-hints.v-ddwrapper-over-bottom:before {
+	border-bottom-width: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .no-vertical-drag-hints .v-ddwrapper-over-bottom:after, .org_osbee_vaadin_addons_designer_overlay .no-vertical-drag-hints.v-ddwrapper-over-bottom:after {
+	border-width: 2px;
+	border-radius: 4px;
+	opacity: 0.3;
+	filter: alpha(opacity=30.0) ;
+	background: #8abef2;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .no-horizontal-drag-hints.v-ddwrapper-over-left:before, .org_osbee_vaadin_addons_designer_overlay .no-horizontal-drag-hints .v-ddwrapper-over-left:before {
+	border-left-width: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .no-horizontal-drag-hints.v-ddwrapper-over-left:after, .org_osbee_vaadin_addons_designer_overlay .no-horizontal-drag-hints .v-ddwrapper-over-left:after {
+	border-width: 2px;
+	border-radius: 4px;
+	opacity: 0.3;
+	filter: alpha(opacity=30.0) ;
+	background: #8abef2;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .no-horizontal-drag-hints.v-ddwrapper-over-right:before, .org_osbee_vaadin_addons_designer_overlay .no-horizontal-drag-hints .v-ddwrapper-over-right:before {
+	border-right-width: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .no-horizontal-drag-hints.v-ddwrapper-over-right:after, .org_osbee_vaadin_addons_designer_overlay .no-horizontal-drag-hints .v-ddwrapper-over-right:after {
+	border-width: 2px;
+	border-radius: 4px;
+	opacity: 0.3;
+	filter: alpha(opacity=30.0) ;
+	background: #8abef2;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-ddwrapper-over-middle:after, .org_osbee_vaadin_addons_designer_overlay .v-ddwrapper-over-center:after {
+	border-width: 2px;
+	border-radius: 4px;
+	opacity: 0.3;
+	filter: alpha(opacity=30.0) ;
+	background: #8abef2;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .no-box-drag-hints.v-ddwrapper:after, .org_osbee_vaadin_addons_designer_overlay .no-box-drag-hints .v-ddwrapper:after {
+	display: none !important;
+	content: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-nativebutton {
+	-webkit-touch-callout: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select select {
+	border: 1px solid #c5c5c5;
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	color: #464646;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select select:focus {
+	outline: none;
+	-webkit-box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+	box-shadow: 0 0 0 2px rgba(25, 125, 225, 0.5);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-select {
+	display: block;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-select  + .v-textfield {
+	width: auto !important;
+	margin-top: 9px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-select-select  + .v-textfield  + .v-nativebutton {
+	margin-top: 9px;
+	margin-left: 9px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-popupview {
+	cursor: pointer;
+	color: #197de1;
+	text-decoration: underline;
+	font-weight: inherit;
+	-webkit-transition: color 140ms;
+	-moz-transition: color 140ms;
+	transition: color 140ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-popupview:hover {
+	color: #4396ea;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-popupview.v-disabled {
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-popupview-popup {
+	padding: 4px 4px;
+	border-radius: 4px;
+	background-color: white;
+	color: #474747;
+	-webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098);
+	box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098);
+	-webkit-backface-visibility: hidden;
+	-moz-backface-visibility: hidden;
+	-ms-backface-visibility: hidden;
+	backface-visibility: hidden;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-popupview-popup[class*="animate-in"] {
+	-webkit-animation: v-popupview-animate-in 120ms;
+	-moz-animation: v-popupview-animate-in 120ms;
+	animation: v-popupview-animate-in 120ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-popupview-popup[class*="animate-out"] {
+	-webkit-animation: valo-animate-out-fade 120ms;
+	-moz-animation: valo-animate-out-fade 120ms;
+	animation: valo-animate-out-fade 120ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-popupview-popup .popupContent  > .v-margin-top {
+	padding-top: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-popupview-popup .popupContent  > .v-margin-right {
+	padding-right: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-popupview-popup .popupContent  > .v-margin-bottom {
+	padding-bottom: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-popupview-popup .popupContent  > .v-margin-left {
+	padding-left: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-popupview-loading {
+	margin: 12px 12px;
+	height: 24px !important;
+	width: 24px !important;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	border: 2px solid rgba(25, 125, 225, 0.2);
+	border-top-color: #197de1;
+	border-right-color: #197de1;
+	border-radius: 100%;
+	-webkit-animation: v-rotate-360 500ms infinite linear;
+	-moz-animation: v-rotate-360 500ms infinite linear;
+	animation: v-rotate-360 500ms infinite linear;
+	pointer-events: none;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-popupview-loading, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-popupview-loading {
+	border: none;
+	border-radius: 4px;
+	background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50% 50%;
+	background-size: 80%;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-popupview-loading {
+	min-width: 30px;
+	min-height: 30px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea {
+	-webkit-appearance: none;
+	-moz-appearance: none;
+	-ms-appearance: none;
+	-o-appearance: none;
+	appearance: none;
+	-webkit-user-select: text;
+	-moz-user-select: text;
+	-ms-user-select: text;
+	user-select: text;
+	margin: 0;
+	font: inherit;
+	
+	font-weight: 400;
+	line-height: normal;
+	height: 37px;
+	border-radius: 4px;
+	padding: 0;
+	border: 1px solid #c5c5c5;
+	background: white;
+	color: #474747;
+	-webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1);
+	box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1);
+	-webkit-transition: box-shadow 180ms, border 180ms;
+	-moz-transition: box-shadow 180ms, border 180ms;
+	transition: box-shadow 180ms, border 180ms;
+	height: auto;
+	overflow: hidden;
+}
+
+.v-ie8 .org_osbee_vaadin_addons_designer_overlay .v-richtextarea, .v-ie9 .org_osbee_vaadin_addons_designer_overlay .v-richtextarea {
+	line-height: 37px;
+	padding-top: 0;
+	padding-bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea[class*="prompt"] {
+	color: #a3a3a3;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar {
+	background-color: #fafafa;
+	background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%);
+	background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%);
+	-webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7;
+	box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7;
+	border-bottom: 1px solid #c5c5c5;
+	color: #464646;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-ToggleButton, .org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-PushButton {
+	display: inline-block;
+	line-height: 37px;
+	width: 37px;
+	text-align: center;
+	outline: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-ToggleButton:hover, .org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-PushButton:hover {
+	color: black;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-ToggleButton-down, .org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-ToggleButton-down-hovering {
+	background-color: #e0e0e0;
+	background-image: -webkit-linear-gradient(bottom, #e0e0e0 2%, #dcdcdc 98%);
+	background-image: linear-gradient(to top,#e0e0e0 2%, #dcdcdc 98%);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-top img {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-top div:before {
+	font-family: ThemeIcons;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Bold"]:before {
+	content: "\f032";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Italic"]:before {
+	content: "\f033";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Underline"]:before {
+	content: "\f0cd";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Subscript"]:before {
+	content: "\f12c";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Superscript"]:before {
+	content: "\f12b";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-top div[title="Left Justify"]:before {
+	content: "\f036";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-top div[title="Center"]:before {
+	content: "\f037";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-top div[title="Right Justify"]:before {
+	content: "\f038";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Strikethrough"]:before {
+	content: "\f0cc";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-top div[title="Indent Right"]:before {
+	content: "\f03c";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-top div[title="Indent Left"]:before {
+	content: "\f03b";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-top div[title="Insert Horizontal Rule"]:before {
+	content: "\2014";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-top div[title="Insert Ordered List"]:before {
+	content: "\f0cb";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-top div[title="Insert Unordered List"]:before {
+	content: "\f0ca";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-top div[title="Insert Image"]:before {
+	content: "\f03e";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-top div[title="Create Link"]:before {
+	content: "\f0c1";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-top div[title="Remove Link"]:before {
+	content: "\f127";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-top div[title="Remove Formatting"]:before {
+	content: "\f12d";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-bottom {
+	font-size: 13px;
+	padding: 0 9px 9px 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextToolbar-bottom select {
+	margin: 9px 0 0 9px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea .gwt-RichTextArea {
+	background: #fff;
+	border: none;
+	display: block;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-richtextarea-readonly {
+	padding: 5px 7px;
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-upload .v-button {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	display: inline-block;
+	vertical-align: top;
+	text-align: left;
+	white-space: normal;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-upload-immediate .v-button {
+	width: 100%;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-upload-immediate input[type="file"] {
+	opacity: 0;
+	filter: alpha(opacity=0) ;
+	z-index: -1;
+	position: absolute;
+	right: 0;
+	height: 37px;
+	text-align: right;
+	border: none;
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.v-position-top {
+	top: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.v-position-right {
+	right: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.v-position-bottom {
+	bottom: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.v-position-left {
+	left: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.v-position-assistive {
+	top: -9999px;
+	left: -9999px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification-animate-in {
+	-webkit-animation: valo-animate-in-fade 180ms 10ms backwards;
+	-moz-animation: valo-animate-in-fade 180ms 10ms backwards;
+	animation: valo-animate-in-fade 180ms 10ms backwards;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification-animate-in.v-position-top {
+	-webkit-animation: valo-animate-in-slide-down 400ms 10ms backwards;
+	-moz-animation: valo-animate-in-slide-down 400ms 10ms backwards;
+	animation: valo-animate-in-slide-down 400ms 10ms backwards;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification-animate-in.v-position-bottom {
+	-webkit-animation: valo-animate-in-slide-up 400ms 10ms backwards;
+	-moz-animation: valo-animate-in-slide-up 400ms 10ms backwards;
+	animation: valo-animate-in-slide-up 400ms 10ms backwards;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification-animate-out {
+	-webkit-animation: valo-animate-out-fade 150ms;
+	-moz-animation: valo-animate-out-fade 150ms;
+	animation: valo-animate-out-fade 150ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification-animate-out.v-position-top, .org_osbee_vaadin_addons_designer_overlay .v-Notification-animate-out.v-position-bottom {
+	-webkit-animation: valo-animate-out-slide-down-fade 200ms;
+	-moz-animation: valo-animate-out-slide-down-fade 200ms;
+	animation: valo-animate-out-slide-down-fade 200ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification {
+	border-radius: 4px;
+	text-align: center;
+	position: fixed !important;
+	-webkit-backface-visibility: hidden;
+	-moz-backface-visibility: hidden;
+	-ms-backface-visibility: hidden;
+	backface-visibility: hidden;
+	background: white;
+	-webkit-box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.15);
+	box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.15);
+	padding: 19px 22px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification .v-Notification-caption {
+	color: #197de1;
+	font-size: 19px;
+	line-height: 1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification .v-Notification-description {
+	line-height: 1.4;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification-caption {
+	margin: 0;
+	display: inline-block;
+	text-align: left;
+	font-weight: inherit;
+	line-height: inherit;
+	white-space: nowrap;
+	letter-spacing: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification-description, .org_osbee_vaadin_addons_designer_overlay .v-Notification-details {
+	margin: 0;
+	display: inline-block;
+	vertical-align: middle;
+	max-width: 30em;
+	text-align: left;
+	max-height: 20em;
+	overflow: auto;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification-caption ~ .v-Notification-description, .org_osbee_vaadin_addons_designer_overlay .v-Notification-caption ~ .v-Notification-details {
+	margin-left: 24px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-icon + .v-Notification-caption {
+	margin-left: 16px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification-system {
+	left: 0 !important;
+	right: 0;
+	max-width: 100%;
+	margin: 0 !important;
+	border-radius: 0;
+	-webkit-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25);
+	box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25);
+	padding: 12px 15px;
+	background-color: #444;
+	background-color: rgba(68, 68, 68, 0.9);
+	font-weight: 400;
+	line-height: 22px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification-system .v-Notification-description, .org_osbee_vaadin_addons_designer_overlay .v-Notification-system .v-Notification-details {
+	max-width: 50em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification-system.v-position-top {
+	top: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification-system.v-position-top[class*="animate-in"] {
+	-webkit-animation: valo-animate-in-slide-down 300ms 10ms backwards;
+	-moz-animation: valo-animate-in-slide-down 300ms 10ms backwards;
+	animation: valo-animate-in-slide-down 300ms 10ms backwards;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification-system.v-position-top[class*="animate-out"] {
+	-webkit-animation: valo-animate-out-slide-up 200ms;
+	-moz-animation: valo-animate-out-slide-up 200ms;
+	animation: valo-animate-out-slide-up 200ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification-system.v-position-bottom {
+	bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification-system.v-position-bottom[class*="animate-in"] {
+	-webkit-animation: valo-animate-in-slide-up 300ms 10ms backwards;
+	-moz-animation: valo-animate-in-slide-up 300ms 10ms backwards;
+	animation: valo-animate-in-slide-up 300ms 10ms backwards;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification-system.v-position-bottom[class*="animate-out"] {
+	-webkit-animation: valo-animate-out-slide-down 200ms;
+	-moz-animation: valo-animate-out-slide-down 200ms;
+	animation: valo-animate-out-slide-down 200ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification-system .v-Notification-caption {
+	color: #fff;
+	vertical-align: middle;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification-system .v-Notification-description, .org_osbee_vaadin_addons_designer_overlay .v-Notification-system .v-Notification-details {
+	color: #e6e6e6;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification-system u {
+	text-decoration: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.tray {
+	text-align: left;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.tray .v-Notification-caption + .v-Notification-description {
+	display: block;
+	margin: 0.5em 0 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.warning {
+	background: #FFF3D2;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.warning .v-Notification-caption {
+	color: #AC7C00;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.warning .v-Notification-description {
+	color: #9D874D;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.error {
+	background: #ed473b;
+	font-weight: 400;
+	-webkit-box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.25);
+	box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.25);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.error .v-Notification-caption {
+	color: white;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.error .v-Notification-description {
+	color: #f4e0df;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.dark {
+	background-color: #444;
+	background-color: rgba(68, 68, 68, 0.9);
+	font-weight: 400;
+	line-height: 22px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.dark .v-Notification-caption {
+	color: #fff;
+	vertical-align: middle;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.dark .v-Notification-description, .org_osbee_vaadin_addons_designer_overlay .v-Notification.dark .v-Notification-details {
+	color: #e6e6e6;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.bar {
+	left: 0 !important;
+	right: 0;
+	max-width: 100%;
+	margin: 0 !important;
+	border-radius: 0;
+	-webkit-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25);
+	box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25);
+	padding: 12px 15px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.bar .v-Notification-description, .org_osbee_vaadin_addons_designer_overlay .v-Notification.bar .v-Notification-details {
+	max-width: 50em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.bar.v-position-top {
+	top: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.bar.v-position-top[class*="animate-in"] {
+	-webkit-animation: valo-animate-in-slide-down 300ms 10ms backwards;
+	-moz-animation: valo-animate-in-slide-down 300ms 10ms backwards;
+	animation: valo-animate-in-slide-down 300ms 10ms backwards;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.bar.v-position-top[class*="animate-out"] {
+	-webkit-animation: valo-animate-out-slide-up 200ms;
+	-moz-animation: valo-animate-out-slide-up 200ms;
+	animation: valo-animate-out-slide-up 200ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.bar.v-position-bottom {
+	bottom: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.bar.v-position-bottom[class*="animate-in"] {
+	-webkit-animation: valo-animate-in-slide-up 300ms 10ms backwards;
+	-moz-animation: valo-animate-in-slide-up 300ms 10ms backwards;
+	animation: valo-animate-in-slide-up 300ms 10ms backwards;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.bar.v-position-bottom[class*="animate-out"] {
+	-webkit-animation: valo-animate-out-slide-down 200ms;
+	-moz-animation: valo-animate-out-slide-down 200ms;
+	animation: valo-animate-out-slide-down 200ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.small {
+	padding: 11px 13px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.small .v-Notification-caption {
+	font-size: 16px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.small .v-Notification-description {
+	font-size: 14px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.closable {
+	padding-right: 59px;
+	overflow: hidden !important;
+	cursor: pointer;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.closable:after {
+	content: "\00d7";
+	font-size: 1.5em;
+	position: absolute;
+	top: 50%;
+	margin-top: -12px;
+	right: 12px;
+	width: 25px;
+	height: 25px;
+	line-height: 24px;
+	cursor: pointer;
+	color: #000;
+	opacity: 0.5;
+	filter: alpha(opacity=50) ;
+	text-align: center;
+	border: 1px solid #000;
+	border-color: rgba(0, 0, 0, 0.3);
+	border-radius: 50%;
+	-webkit-transition: opacity 200ms;
+	-moz-transition: opacity 200ms;
+	transition: opacity 200ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.closable:hover:after {
+	opacity: 1;
+	filter: none ;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.closable:active:after {
+	background-color: #000;
+	color: #fff;
+	opacity: 0.3;
+	filter: alpha(opacity=30.0) ;
+	-webkit-transition: none 200ms;
+	-moz-transition: none 200ms;
+	transition: none 200ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.closable.dark:after, .org_osbee_vaadin_addons_designer_overlay .v-Notification.closable.error:after, .org_osbee_vaadin_addons_designer_overlay .v-Notification.closable.system:after {
+	color: #fff;
+	border-color: #fff;
+	border-color: rgba(255, 255, 255, 0.3);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.closable.dark:active:after, .org_osbee_vaadin_addons_designer_overlay .v-Notification.closable.error:active:after, .org_osbee_vaadin_addons_designer_overlay .v-Notification.closable.system:active:after {
+	background-color: #fff;
+	color: #000;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.closable.tray:after {
+	top: 16px;
+	margin-top: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.success, .org_osbee_vaadin_addons_designer_overlay .v-Notification.failure {
+	background: #fff;
+	color: #555;
+	border: 2px solid #2c9720;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.success .v-Notification-caption, .org_osbee_vaadin_addons_designer_overlay .v-Notification.failure .v-Notification-caption {
+	color: #2c9720;
+	font-weight: 400;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.success .v-Notification-caption:before, .org_osbee_vaadin_addons_designer_overlay .v-Notification.failure .v-Notification-caption:before {
+	font-family: ThemeIcons;
+	content: "\f00c";
+	margin-right: 0.5em;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.success.bar, .org_osbee_vaadin_addons_designer_overlay .v-Notification.failure.bar {
+	margin: -2px !important;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.failure {
+	border-color: #ed473b;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.failure .v-Notification-caption {
+	color: #ed473b;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-Notification.failure .v-Notification-caption:before {
+	content: "\f05e";
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu {
+	height: 100%;
+	background-color: #4b4b4b;
+	background-image: -webkit-linear-gradient(right, #414141 0%, #4b4b4b 9px);
+	background-image: linear-gradient(to left,#414141 0%, #4b4b4b 9px);
+	color: #a5a5a5;
+	font-size: 14px;
+	line-height: 30px;
+	border-right: 1px solid #3b3b3b;
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-toggle {
+	display: none;
+	position: fixed;
+	z-index: 200;
+	top: 3px;
+	left: 3px;
+	min-width: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-part {
+	border-left: 1px solid #414141;
+	height: 100%;
+	padding-bottom: 37px;
+	overflow: auto;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-part:first-child {
+	border-left: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-title, .org_osbee_vaadin_addons_designer_overlay .valo-menu-subtitle, .org_osbee_vaadin_addons_designer_overlay .valo-menu-item {
+	display: block;
+	line-height: inherit;
+	white-space: nowrap;
+	position: relative;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-title .valo-menu-badge, .org_osbee_vaadin_addons_designer_overlay .valo-menu-subtitle .valo-menu-badge, .org_osbee_vaadin_addons_designer_overlay .valo-menu-item .valo-menu-badge {
+	position: absolute;
+	right: 19px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-title {
+	line-height: 1.2;
+	background-color: #197de1;
+	background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%);
+	background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%);
+	color: white;
+	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05);
+	padding: 12px 19px;
+	font-size: 14px;
+	border-bottom: 1px solid #1362b1;
+	-webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05);
+	text-align: center;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-title .v-menubar.v-menubar {
+	background: transparent;
+	border-color: #1362b1;
+	color: inherit;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	text-shadow: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-title .v-menubar-menuitem {
+	background: transparent;
+	-webkit-box-shadow: inset 0 1px 0 #4d98e6, inset 0 -1px 0 #166bca;
+	box-shadow: inset 0 1px 0 #4d98e6, inset 0 -1px 0 #166bca;
+	text-shadow: inherit;
+	font-size: 16px;
+	border-color: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-title h1, .org_osbee_vaadin_addons_designer_overlay .valo-menu-title .v-label-h1, .org_osbee_vaadin_addons_designer_overlay .valo-menu-title h2, .org_osbee_vaadin_addons_designer_overlay .valo-menu-title .v-label-h2, .org_osbee_vaadin_addons_designer_overlay .valo-menu-title h3, .org_osbee_vaadin_addons_designer_overlay .valo-menu-title .v-label-h3, .org_osbee_vaadin_addons_designer_overlay .valo-menu-title h4, .org_osbee_vaadin_addons_designer_overlay .valo-menu-title .v-label-h4 {
+	margin-top: 0;
+	margin-bottom: 0;
+	color: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-user-menu {
+	border: none;
+	border-radius: 0;
+	padding: 1px;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	text-shadow: none;
+	background: transparent;
+	color: inherit;
+	margin: 19px 7px;
+	display: block;
+	overflow: hidden;
+	text-align: center;
+	height: auto;
+	color: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-user-menu:focus:after {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-user-menu .v-menubar-menuitem {
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	border: none;
+	margin-right: 1px;
+	border-radius: 4px;
+	color: #197de1;
+	padding: 0 12px;
+	-webkit-transition: color 140ms;
+	-moz-transition: color 140ms;
+	transition: color 140ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-user-menu .v-menubar-menuitem:first-child, .org_osbee_vaadin_addons_designer_overlay .v-menubar-user-menu .v-menubar-menuitem:last-child, .org_osbee_vaadin_addons_designer_overlay .v-menubar-user-menu .v-menubar-menuitem:first-child:last-child {
+	border-radius: 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-user-menu .v-menubar-menuitem:before {
+	content: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-user-menu .v-menubar-menuitem:hover {
+	color: #4396ea;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-user-menu .v-menubar-menuitem:active {
+	color: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-user-menu .v-menubar-menuitem-checked, .org_osbee_vaadin_addons_designer_overlay .v-menubar-user-menu .v-menubar-menuitem-checked:first-child {
+	border: 1px solid #c5c5c5;
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-user-menu .v-menubar-menuitem-checked .v-menubar-menuitem-caption, .org_osbee_vaadin_addons_designer_overlay .v-menubar-user-menu .v-menubar-menuitem-checked:first-child .v-menubar-menuitem-caption {
+	position: relative;
+	top: -1px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-user-menu .v-menubar-menuitem-selected {
+	color: #ecf2f8;
+	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-user-menu .v-menubar-menuitem-selected:hover {
+	color: #ecf2f8;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-user-menu .v-menubar-menuitem-disabled, .org_osbee_vaadin_addons_designer_overlay .v-menubar-user-menu .v-menubar-menuitem-disabled:hover {
+	color: inherit;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-user-menu  > .v-menubar-menuitem {
+	color: inherit;
+	white-space: normal;
+	line-height: 1.4;
+	margin: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-user-menu  > .v-menubar-menuitem img.v-icon {
+	width: 56px;
+	height: 56px;
+	border-radius: 29px;
+	box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05);
+	display: block;
+	margin: 0 auto 0.3em;
+	border: 1px solid #c5c5c5;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-user-menu  > .v-menubar-menuitem:after {
+	top: 0;
+	right: 0;
+	bottom: 0;
+	left: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .v-menubar-user-menu .v-menubar-menuitem-selected {
+	background: transparent;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-subtitle {
+	color: #868686;
+	margin: 7px 0 7px 19px;
+	border-bottom: 1px solid #666666;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-subtitle [class*="badge"] {
+	color: #73a5d7;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menuitems {
+	display: block;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-item {
+	outline: none;
+	font-weight: 400;
+	padding: 0 37px 0 19px;
+	cursor: pointer;
+	position: relative;
+	overflow: hidden;
+	text-shadow: 0 2px 0 rgba(0, 0, 0, 0.05);
+	-webkit-transition: background-color 300ms, color 60ms;
+	-moz-transition: background-color 300ms, color 60ms;
+	transition: background-color 300ms, color 60ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-item [class*="caption"] {
+	vertical-align: middle;
+	display: inline-block;
+	width: 90%;
+	max-width: 15em;
+	padding-right: 19px;
+	text-overflow: ellipsis;
+	overflow: hidden;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-item [class*="badge"] {
+	color: #73a5d7;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-item.selected {
+	background: #434343;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-item.selected .v-icon {
+	color: #197de1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-item.selected [class*="badge"] {
+	background-color: #197de1;
+	background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%);
+	background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%);
+	color: #c8dbed;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-item:focus, .org_osbee_vaadin_addons_designer_overlay .valo-menu-item:hover, .org_osbee_vaadin_addons_designer_overlay .valo-menu-item.selected {
+	color: white;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-item span.v-icon {
+	min-width: 1em;
+	margin-right: 19px;
+	text-align: center;
+	vertical-align: middle;
+	-webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(black), to(rgba(0, 0, 0, 0.75)));
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-item span.v-icon  + span {
+	margin-left: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-item [class*="badge"] {
+	background-color: #585858;
+	-webkit-transition: background-color 300ms;
+	-moz-transition: background-color 300ms;
+	transition: background-color 300ms;
+	line-height: 1;
+	padding: 4px 6px;
+	min-width: 11px;
+	text-align: center;
+	top: 4px;
+	border-radius: 4px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-part.large-icons {
+	background-color: #4b4b4b;
+	min-width: 74px;
+	max-width: 111px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-part.large-icons .valo-menu-title {
+	font-size: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-part.large-icons .valo-menu-title .v-label-undef-w {
+	white-space: normal;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-part.large-icons .v-menubar-user-menu {
+	margin-left: 0;
+	margin-right: 0;
+	font-size: 11px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-part.large-icons .v-menubar-user-menu img.v-icon {
+	width: 28px;
+	height: 28px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-part.large-icons [class*="subtitle"] {
+	margin: 9px 0 0;
+	padding: 7px 25px 7px 9px;
+	line-height: 1;
+	border: none;
+	text-overflow: ellipsis;
+	overflow: hidden;
+	background: #3c3c3c;
+	font-size: 13px;
+	box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-part.large-icons [class*="subtitle"] [class*="badge"] {
+	right: 9px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-part.large-icons [class*="subtitle"]  + .valo-menu-item {
+	border-top: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-part.large-icons .valo-menu-item {
+	display: block;
+	font-size: 26px;
+	line-height: 1;
+	padding: 12px;
+	text-align: center;
+	border-top: 1px solid #555555;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-part.large-icons .valo-menu-item:first-child {
+	border-top: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-part.large-icons .valo-menu-item [class*="caption"] {
+	display: block;
+	width: auto;
+	margin: 0.3em 0 0;
+	padding: 0;
+	font-size: 11px;
+	line-height: 1.3;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-part.large-icons .valo-menu-item .v-icon {
+	margin: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-part.large-icons .valo-menu-item span.v-icon {
+	opacity: 0.8;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-part.large-icons .valo-menu-item.selected {
+	background: #434343;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-part.large-icons .valo-menu-item.selected .v-icon {
+	opacity: 1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-part.large-icons .valo-menu-item.selected [class*="badge"] {
+	border-color: #434343;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-part.large-icons .valo-menu-item [class*="badge"] {
+	padding-left: 4px;
+	padding-right: 4px;
+	top: 7px;
+	right: 7px;
+	border: 2px solid #4b4b4b;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-logo {
+	display: block;
+	overflow: hidden;
+	width: 44px !important;
+	height: 44px;
+	border-radius: 4px;
+	text-align: center;
+	background-color: #197de1;
+	background-image: -webkit-linear-gradient(top, #1b87e3 2%, #166ed5 98%);
+	background-image: linear-gradient(to bottom,#1b87e3 2%, #166ed5 98%);
+	color: white;
+	font-size: 25px;
+	line-height: 44px;
+	margin: 19px auto;
+	-webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05);
+	box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-logo:focus {
+	outline: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part {
+	background-color: #4b4b4b;
+	min-width: 74px;
+	max-width: 111px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-title {
+	font-size: 12px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-title .v-label-undef-w {
+	white-space: normal;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .v-menubar-user-menu {
+	margin-left: 0;
+	margin-right: 0;
+	font-size: 11px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .v-menubar-user-menu img.v-icon {
+	width: 28px;
+	height: 28px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part [class*="subtitle"] {
+	margin: 9px 0 0;
+	padding: 7px 25px 7px 9px;
+	line-height: 1;
+	border: none;
+	text-overflow: ellipsis;
+	overflow: hidden;
+	background: #3c3c3c;
+	font-size: 13px;
+	box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part [class*="subtitle"] [class*="badge"] {
+	right: 9px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part [class*="subtitle"]  + .valo-menu-item {
+	border-top: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item {
+	display: block;
+	font-size: 26px;
+	line-height: 1;
+	padding: 12px;
+	text-align: center;
+	border-top: 1px solid #555555;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item:first-child {
+	border-top: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item [class*="caption"] {
+	display: block;
+	width: auto;
+	margin: 0.3em 0 0;
+	padding: 0;
+	font-size: 11px;
+	line-height: 1.3;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item .v-icon {
+	margin: 0;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item span.v-icon {
+	opacity: 0.8;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item.selected {
+	background: #434343;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item.selected .v-icon {
+	opacity: 1;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item.selected [class*="badge"] {
+	border-color: #434343;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item [class*="badge"] {
+	padding-left: 4px;
+	padding-right: 4px;
+	top: 7px;
+	right: 7px;
+	border: 2px solid #4b4b4b;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="0-800px"] {
+	padding-top: 37px;
+	-webkit-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="0-800px"] .v-loading-indicator {
+	top: 37px;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="0-800px"]  > .v-widget {
+	position: relative !important;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="0-800px"] .valo-menu {
+	border-right: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="0-800px"] .valo-menu-part {
+	overflow: visible;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="0-800px"] .valo-menu-toggle {
+	display: inline-block;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="0-800px"] .valo-menu-title {
+	position: fixed;
+	z-index: 100;
+	top: 0;
+	left: 0;
+	right: 0;
+	height: 37px !important;
+	padding-top: 0;
+	padding-bottom: 0;
+	-webkit-backface-visibility: hidden;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="0-800px"] .valo-menu .v-menubar-user-menu {
+	position: fixed;
+	z-index: 100;
+	top: 0;
+	right: 0;
+	margin: 0;
+	padding: 0;
+	height: 37px;
+	color: #97bee5;
+	max-width: 30%;
+	-webkit-backface-visibility: hidden;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="0-800px"] .valo-menu .v-menubar-user-menu .v-menubar-menuitem {
+	line-height: 36px;
+	white-space: nowrap;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="0-800px"] .valo-menu .v-menubar-user-menu img.v-icon {
+	display: inline-block;
+	margin: 0 6px 0 0;
+	width: 19px;
+	height: 19px;
+	border-radius: 10px;
+	border: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="0-800px"] .valo-menuitems {
+	height: 100%;
+	background-color: #4b4b4b;
+	background-image: -webkit-linear-gradient(right, #414141 0%, #4b4b4b 9px);
+	background-image: linear-gradient(to left,#414141 0%, #4b4b4b 9px);
+	color: #a5a5a5;
+	font-size: 14px;
+	line-height: 30px;
+	border-right: 1px solid #3b3b3b;
+	white-space: nowrap;
+	position: fixed;
+	z-index: 9000;
+	top: 37px;
+	bottom: 0;
+	height: auto;
+	max-width: 100%;
+	overflow: auto;
+	padding: 19px 0;
+	-webkit-transform: translatex(-100%);
+	-moz-transform: translatex(-100%);
+	-ms-transform: translatex(-100%);
+	-o-transform: translatex(-100%);
+	transform: translatex(-100%);
+	-webkit-transition: all 300ms;
+	-moz-transition: all 300ms;
+	transition: all 300ms;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="0-800px"] .valo-menu-visible .valo-menuitems {
+	-webkit-transform: translatex(0%);
+	-moz-transform: translatex(0%);
+	-ms-transform: translatex(0%);
+	-o-transform: translatex(0%);
+	transform: translatex(0%);
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="0-500px"] .valo-menu-toggle .v-button-caption {
+	display: none;
+}
+
+.org_osbee_vaadin_addons_designer_overlay .valo-menu-responsive[width-range~="0-500px"] .valo-menu .v-menubar-user-menu .v-menubar-menuitem-caption {
+	display: inline-block;
+	width: 19px;
+	overflow: hidden;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/.project b/org.eclipse.osbp.vaadin.addons.designer.overlay/.project
new file mode 100644
index 0000000..bcf7e85
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/.project
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.vaadin.addons.designer.overlay</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.vaadin.integration.eclipse.widgetsetBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.vaadin.integration.eclipse.addonStylesBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>com.vaadin.integration.eclipse.widgetsetNature</nature>
+		<nature>org.apache.ivyde.eclipse.ivynature</nature>
+		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/LICENSE.txt b/org.eclipse.osbp.vaadin.addons.designer.overlay/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/LICENSE.txt
@@ -0,0 +1,161 @@
+Eclipse Public License -v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION
+OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.
+A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate
+modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of
+its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute
+and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code
+form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the
+combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not
+apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no
+assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity
+based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property
+rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the
+Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to
+grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including
+warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any
+other party; and
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it
+in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and
+the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes
+the Program in a commercial product offering should do so in a manner which does not create potential liability for
+other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions
+brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual
+property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the
+Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may
+ participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is
+then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone.
+Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to
+those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result,
+the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED 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. Each Recipient is solely responsible for
+determining the appropriateness of using and distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance
+with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
+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 OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such
+Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such
+noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution
+of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses
+ granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement
+is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish
+new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the
+right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including Contributions) may always be
+distributed subject to the version of the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the
+new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States
+of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause
+of action arose. Each party waives its rights to a jury trial in any resulting litigation.
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/META-INF/MANIFEST.MF b/org.eclipse.osbp.vaadin.addons.designer.overlay/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..f464b05
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/META-INF/MANIFEST.MF
@@ -0,0 +1,32 @@
+Manifest-Version: 1.0
+Bnd-LastModified: 1491902102912
+Build-Jdk: 1.8.0_91
+Built-By: mollik
+Bundle-ActivationPolicy: lazy
+Bundle-Description: A parent POM aimed to set up the build of general Ma
+ ven based projects.
+Bundle-DocURL: http://www.eclipse.org/osbp
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.vaadin.addons.designer.overlay
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-SymbolicName: org.eclipse.osbp.vaadin.addons.designer.overlay
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Created-By: Apache Maven Bundle Plugin
+Export-Package: org.eclipse.osbp.vaadin.addons.designer.overlay;version=
+ "0.9.0",org.eclipse.osbp.vaadin.addons.designer.overlay.client;version=
+ "0.9.0",org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets;
+ version="0.9.0",org.eclipse.osbp.vaadin.addons.designer.overlay.public.
+ designer_overlay;version="0.9.0"
+Import-Package: javax.servlet.annotation;resolution:=optional;version="[
+ 3.0,4)",com.vaadin.annotations;version="[7.7,8)",com.vaadin.client;vers
+ ion="[7.7,8)",com.vaadin.client.communication;version="[7.7,8)",com.vaa
+ din.server;version="[7.7,8)",com.vaadin.ui;version="[7.7,8)",org.eclips
+ e.osbp.vaadin.addons.designer.overlay.client;version="[0.9,1)",org.ecli
+ pse.osbp.vaadin.addons.designer.overlay.client.widgets;version="[0.9,1)
+ ",org.junit
+Require-Bundle: com.vaadin.server;bundle-version="[7.5.7,7.7.0)",com.vaa
+ din.client;bundle-version="[7.5.7,7.7.0)",com.vaadin.shared;bundle-vers
+ ion="[7.5.7,7.7.0)",org.jsoup;bundle-version="[1.8.3,1.8.4)"
+Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"
+Tool: Bnd-3.2.0.201605172007
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/META-INF/git.properties b/org.eclipse.osbp.vaadin.addons.designer.overlay/META-INF/git.properties
new file mode 100644
index 0000000..f8505c5
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/META-INF/git.properties
@@ -0,0 +1,14 @@
+#Generated by Git-Commit-Id-Plugin
+#Tue Apr 11 11:17:33 CEST 2017
+git.remote.origin.url=ssh\://compex@10.1.13.14/osbpgit/org.eclipse.osbp.vaadin.addons.git
+git.closest.tag.name=OSBP-initial-commit-2-Eclipse-4-luna-2017-03-31-17-10-39
+git.commit.id.describe-short=OSBP-initial-commit-2-Eclipse-4-luna-2017-03-31-17-10-39-dirty
+git.commit.time=02.02.2017 @ 18\:04\:55 MEZ
+git.commit.message.full=remove the feature from build
+git.commit.message.short=remove the feature from build
+git.commit.id.abbrev=90dd482
+git.branch=OSBP-initial-commit-2-Eclipse-4-luna
+git.closest.tag.commit.count=0
+git.commit.id.describe=OSBP-initial-commit-2-Eclipse-4-luna-2017-03-31-17-10-39-dirty
+git.commit.id=90dd482e5bc78cd1a404d12445cebc868ee417b0
+git.tags=OSBP-initial-commit-2-Eclipse-4-luna-2017-03-31-17-10-39
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/SuperDevMode code server for org.eclipse.osbp.vaadin.addons.designer.overlay.launch b/org.eclipse.osbp.vaadin.addons.designer.overlay/SuperDevMode code server for org.eclipse.osbp.vaadin.addons.designer.overlay.launch
new file mode 100644
index 0000000..c8dc517
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/SuperDevMode code server for org.eclipse.osbp.vaadin.addons.designer.overlay.launch
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
+<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#10;&lt;memento exportedEntriesOnly=&quot;false&quot; project=&quot;org.eclipse.osbp.vaadin.addons.designer.overlay&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.eclipse.osbp.vaadin.addons.designer.overlay/src&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.eclipse.osbp.vaadin.addons.designer.overlay/sample&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.eclipse.osbp.vaadin.addons.designer.overlay/test&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
+<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.codeserver.CodeServer"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value=" org.eclipse.osbp.vaadin.addons.designer.overlay.OverlayWidgetset"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.osbp.vaadin.addons.designer.overlay"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xss8M -Xmx512M -XX:MaxPermSize=512M"/>
+<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="/Users/florianpirchner/Work/dev/osbp_client/git/org.eclipse.osbp.vaadin.addons/org.eclipse.osbp.vaadin.addons.designer.overlay"/>
+</launchConfiguration>
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/epl-v10.html b/org.eclipse.osbp.vaadin.addons.designer.overlay/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/epl-v10.html
@@ -0,0 +1,259 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Public License - Version 1.0</title>
+<style type="text/css">
+  body {
+    size: 8.5in 11.0in;
+    margin: 0.25in 0.5in 0.25in 0.5in;
+    tab-interval: 0.5in;
+    }
+  p {  	
+    margin-left: auto;
+    margin-top:  0.5em;
+    margin-bottom: 0.5em;
+    }
+  p.list {
+  	margin-left: 0.5in;
+    margin-top:  0.05em;
+    margin-bottom: 0.05em;
+    }
+  </style>
+
+</head>
+
+<body lang="EN-US">
+
+<h2>Eclipse Public License - v 1.0</h2>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED 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. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), 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 OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/ivy.xml b/org.eclipse.osbp.vaadin.addons.designer.overlay/ivy.xml
new file mode 100644
index 0000000..7d808a5
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/ivy.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<!DOCTYPE ivy-module [
+	<!ENTITY vaadin.version "7.5.7">
+]>
+<ivy-module version="2.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
+	<info organisation="com.example" module="v7proj" />
+	<configurations>
+		<!-- The default configuration, which should be deployed to the server -->
+		<conf name="default" />
+		<!-- A configuration only needed when compiling the widget set. Should 
+			not be deployed to the server -->
+		<conf name="widgetset-compile" />
+		<!-- A configuration used in compilation of server side classes only.
+			Should be deployed to the server -->
+		<conf name="nodeploy" />
+	</configurations>
+	<dependencies defaultconf="default" defaultconfmapping="default->default">
+		<!-- The core server part of Vaadin -->
+		<dependency org="com.vaadin" name="vaadin-server" rev="&vaadin.version;" />
+
+		<!-- Vaadin themes -->
+		<dependency org="com.vaadin" name="vaadin-themes" rev="&vaadin.version;" />
+
+		<!-- Push support -->
+		<dependency org="com.vaadin" name="vaadin-push" rev="&vaadin.version;" />
+
+		<!-- Servlet 3.0 API -->
+		<dependency org="javax.servlet" name="javax.servlet-api" rev="3.0.1" conf="nodeploy->default" />
+
+		<!-- TestBench 4 -->
+		<dependency org="com.vaadin" name="vaadin-testbench-api" rev="latest.release" conf="nodeploy -> default" />
+
+		<!-- Precompiled DefaultWidgetSet -->
+		<dependency org="com.vaadin" name="vaadin-client-compiled"
+			rev="&vaadin.version;" />
+
+		<!-- Vaadin client side, needed for widget set compilation -->
+		<dependency org="com.vaadin" name="vaadin-client" rev="&vaadin.version;"
+			 conf="widgetset-compile->default" />
+
+		<!-- Compiler for custom widget sets. Should not be deployed -->
+		<dependency org="com.vaadin" name="vaadin-client-compiler"
+			rev="&vaadin.version;" conf="widgetset-compile->default" />
+	</dependencies>
+</ivy-module>
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/ivysettings.xml b/org.eclipse.osbp.vaadin.addons.designer.overlay/ivysettings.xml
new file mode 100644
index 0000000..9c0f653
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/ivysettings.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ivysettings>
+	<settings defaultResolver="default" />
+	<resolvers>
+		<chain name="default">
+			<!-- Public Maven repository -->
+			<ibiblio name="public" m2compatible="true" />
+
+			<!-- Vaadin Add-on repository -->
+			<ibiblio name="vaadin-addons" usepoms="true" m2compatible="true"
+				root="http://maven.vaadin.com/vaadin-addons" />
+
+			<!-- Vaadin snapshots repository -->
+			<ibiblio name="vaadin-snapshots" usepoms="true" m2compatible="true"
+				root="https://oss.sonatype.org/content/repositories/vaadin-snapshots" />
+			<!-- Repository used for Vaadin modified smartsprites library -->
+			<dual name="custom-smartsprites">
+				<filesystem name="smartsprites-ivy">
+					<ivy pattern="${basedir}/ivymodule/[module]-ivy-[revision].xml" />
+				</filesystem>
+				<url name="smartsprites-artifact">
+					<artifact
+						pattern="http://dev.vaadin.com/svn/versions/6.8/build/smartsprites/lib/[artifact](-[revision]).[ext]" />
+				</url>
+			</dual>
+		</chain>
+	</resolvers>
+	<modules>
+		<!-- Vaadin patched SmartSprites -->
+		<module organisation="com.carrotsearch" name="smartsprites"
+			revision="0.2.3-itmill" resolver="custom-smartsprites" />
+	</modules>
+
+
+</ivysettings>
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/license.html b/org.eclipse.osbp.vaadin.addons.designer.overlay/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/license.html
@@ -0,0 +1,164 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>February 1, 2011</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY "CONTENT").  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse
+ Foundation is provided to you under the terms and conditions of the 
+Eclipse Public License Version 1.0
+   ("EPL").  A copy of the EPL is provided with this Content and is also
+ available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, 
+documentation and other files maintained in the Eclipse Foundation 
+source code
+   repository ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to 
+facilitate delivering, extending, and upgrading the Content.  Typical 
+modules may include plug-ins ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or 
+Fragments and associated material.  Each Feature may be packaged as a 
+sub-directory in a directory named "features".  Within a Feature, files 
+named "feature.xml" may contain a list of the names and version numbers 
+of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features ("Included 
+Features"). Within a Feature, files named "feature.xml" may contain a 
+list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be 
+contained in files named "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  Abouts and Feature Licenses may be located in any
+ directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named "src" of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is 
+installed using the Provisioning Technology (as defined below), you must
+ agree to a license ("Feature Update License") during the
+installation process.  If the Feature contains Included Features, the 
+Feature Update License should either provide you with the terms and 
+conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be 
+found in the "license" property of files named "feature.properties" 
+found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the 
+terms and conditions (or references to such terms and conditions) that 
+govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER 
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.
+  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND 
+CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, 
+or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions 
+govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, 
+examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). This 
+capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about 
+packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   ("Specification").</p>
+
+<p>You may use Provisioning Technology to allow other parties to install
+ Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to
+ be presented to, and accepted by, the users of the Provisioning 
+Technology
+   in accordance with the Specification. By using Provisioning 
+Technology in such a manner and making it available in accordance with 
+the
+   Specification, you further acknowledge your agreement to, and the 
+acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") with the intent of installing, 
+extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology 
+may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user 
+the terms and conditions that govern the use of the Installable
+       Software ("Installable Software Agreement") and such Installable 
+Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable 
+Software Agreement must inform the user of the terms and conditions that
+ govern
+       the Installable Software and must solicit acceptance by the end 
+user in the manner prescribed in such Installable Software Agreement. 
+Upon such
+       indication of agreement by the user, the provisioning Technology 
+will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are
+ currently may have restrictions on the import, possession, and use, 
+and/or re-export to
+   another country, of encryption software. BEFORE using any encryption 
+software, please check the country's laws, regulations and policies 
+concerning the import,
+   possession, or use, and re-export of encryption software, to see if 
+this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/pom.xml b/org.eclipse.osbp.vaadin.addons.designer.overlay/pom.xml
new file mode 100644
index 0000000..cb11805
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/pom.xml
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.eclipse.osbp.releng.maven</groupId>
+		<artifactId>org.eclipse.osbp.releng.maven.parent.mbp</artifactId>
+		<version>0.9.0-SNAPSHOT</version>
+		<relativePath />
+	</parent>
+
+	<groupId>org.eclipse.osbp.vaadin.addons</groupId>
+	<artifactId>org.eclipse.osbp.vaadin.addons.designer.overlay</artifactId>
+	<packaging>bundle</packaging>
+
+	<dependencies>
+		<dependency>
+			<groupId>com.vaadin</groupId>
+			<artifactId>vaadin-server</artifactId>
+			<version>${vaadin.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>com.vaadin</groupId>
+			<artifactId>vaadin-client</artifactId>
+			<version>${vaadin.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>javax.servlet-api</artifactId>
+			<version>3.0.1</version>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<sourceDirectory>${basedir}/src</sourceDirectory>
+
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-resources-plugin</artifactId>
+				<configuration>
+					<encoding>UTF-8</encoding>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>3.0</version>
+				<configuration>
+					<encoding>UTF-8</encoding>
+					<source>1.8</source>
+					<target>1.8</target>
+				</configuration>
+			</plugin>
+
+			<!--<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> 
+				<version>2.3.1</version> <configuration> <archive> <index>true</index> <manifestEntries> 
+				<Bundle-SymbolicName>org.eclipse.osbp.vaadin.addons.absolutelayout</Bundle-SymbolicName> 
+				<Vaadin-Stylesheets>/VAADIN/addons/osbee/vaadin/addons/absolutelayout/styles.scss</Vaadin-Stylesheets> 
+				</manifestEntries> </archive> </configuration> </plugin> -->
+			<plugin>
+				<groupId>org.apache.felix</groupId>
+				<artifactId>maven-bundle-plugin</artifactId>
+				<extensions>true</extensions>
+				<configuration>
+					<instructions>
+						<Bundle-Name>OSBP Addon for Vaadin: Designer Overlay</Bundle-Name>
+						<Bundle-SymbolicName>org.eclipse.osbp.vaadin.addons.designer.overlay</Bundle-SymbolicName>
+                        <Bundle-Version>0.9.0.{osgi-version-qualifier}</Bundle-Version>
+						<Require-Bundle>com.vaadin.server;bundle-version="[7.5.7,7.7.0)",
+							com.vaadin.client;bundle-version="[7.5.7,7.7.0)",
+							com.vaadin.shared;bundle-version="[7.5.7,7.7.0)",
+							org.jsoup;bundle-version="[1.8.3,1.8.4)"
+						</Require-Bundle>
+						<Import-Package>
+                            javax.servlet.annotation;resolution:=optional,
+							*
+						</Import-Package>
+						<Export-Package>
+							!LICENSE,!LICENSE.txt,!THIRD-PARTY.txt,!NOTICE,!README.txt,!VERSION.txt,!build.properties,
+							!VAADIN.*,
+							org.eclipse.osbp.vaadin.addons.*;version="0.9.0"
+						</Export-Package>
+						<Include-Resource>{maven-resources},LICENSE.txt,epl-v10.html</Include-Resource>
+						<_nouses>true</_nouses>
+					</instructions>
+				</configuration>
+			</plugin>
+			<!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> 
+				<version>2.9</version> <executions> <execution> <id>attach-javadoc</id> <goals> 
+				<goal>jar</goal> </goals> </execution> </executions> </plugin> -->
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-source-plugin</artifactId>
+				<version>2.2.1</version>
+				<executions>
+					<execution>
+						<id>attach-sources</id>
+						<goals>
+							<goal>jar</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+		<pluginManagement>
+			<plugins>
+
+				<!--This plugin's configuration is used to store Eclipse m2e settings 
+					only. It has no influence on the Maven build itself. -->
+				<plugin>
+					<groupId>org.eclipse.m2e</groupId>
+					<artifactId>lifecycle-mapping</artifactId>
+					<version>1.0.0</version>
+					<configuration>
+						<lifecycleMappingMetadata>
+							<pluginExecutions>
+								<pluginExecution>
+									<pluginExecutionFilter>
+										<groupId>
+											org.apache.maven.plugins
+										</groupId>
+										<artifactId>
+											maven-dependency-plugin
+										</artifactId>
+										<versionRange>
+											[2.0.0,)
+										</versionRange>
+										<goals>
+											<goal>
+												copy-dependencies
+											</goal>
+										</goals>
+									</pluginExecutionFilter>
+									<action>
+										<ignore></ignore>
+									</action>
+								</pluginExecution>
+								<pluginExecution>
+									<pluginExecutionFilter>
+										<groupId>com.vaadin</groupId>
+										<artifactId>
+											vaadin-maven-plugin
+										</artifactId>
+										<versionRange>
+											[7.0-SNAPSHOT,)
+										</versionRange>
+										<goals>
+											<goal>compile</goal>
+										</goals>
+									</pluginExecutionFilter>
+									<action>
+										<ignore></ignore>
+									</action>
+								</pluginExecution>
+							</pluginExecutions>
+						</lifecycleMappingMetadata>
+					</configuration>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+		<!-- This is needed for the sources required by the client-side compiler 
+			to be included in the produced JARs -->
+		<resources>
+			<resource>
+				<directory>src</directory>
+			</resource>
+		</resources>
+
+	</build>
+
+</project>
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/sample/org/eclipse/osbp/vaadin/addons/designer/overlay/OverlayApplication.java b/org.eclipse.osbp.vaadin.addons.designer.overlay/sample/org/eclipse/osbp/vaadin/addons/designer/overlay/OverlayApplication.java
new file mode 100644
index 0000000..422fb70
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/sample/org/eclipse/osbp/vaadin/addons/designer/overlay/OverlayApplication.java
@@ -0,0 +1,485 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.designer.overlay;
+
+import javax.servlet.annotation.WebServlet;
+
+import org.eclipse.osbp.vaadin.addons.designer.overlay.DesignerOverlayExtension.AddChildEvent;
+import org.eclipse.osbp.vaadin.addons.designer.overlay.DesignerOverlayExtension.RemoveChildEvent;
+import org.eclipse.osbp.vaadin.addons.designer.overlay.DesignerOverlayExtension.ShowPropertiesEvent;
+import org.eclipse.osbp.vaadin.addons.designer.overlay.DesignerOverlayExtension.ShowPropertiesListener;
+import org.eclipse.osbp.vaadin.addons.designer.overlay.DesignerOverlayExtension.SwitchEditableEvent;
+import org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets.AlignmentInfo;
+
+import com.vaadin.annotations.Theme;
+import com.vaadin.annotations.VaadinServletConfiguration;
+import com.vaadin.server.ThemeResource;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.server.VaadinServlet;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.GridLayout;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Notification;
+import com.vaadin.ui.TabSheet;
+import com.vaadin.ui.TextField;
+import com.vaadin.ui.UI;
+import com.vaadin.ui.VerticalLayout;
+
+@SuppressWarnings("serial")
+@Theme("valo")
+public class OverlayApplication extends UI {
+
+	@WebServlet(value = "/*", asyncSupported = true)
+	@VaadinServletConfiguration(productionMode = false, ui = OverlayApplication.class, widgetset = "org.eclipse.osbp.vaadin.addons.designer.overlay.OverlayWidgetset")
+	public static class Servlet extends VaadinServlet {
+	}
+
+	@Override
+	protected void init(VaadinRequest request) {
+
+		TabSheet tabSheet = new TabSheet();
+		tabSheet.setSizeFull();
+		setContent(tabSheet);
+
+		addGridlayout(tabSheet);
+		addHorizontallayout(tabSheet);
+		addVerticallayout(tabSheet);
+		addLayoutInlayout(tabSheet);
+	}
+
+	/**
+	 * Add gridlayout to the tabsheet.
+	 * 
+	 * @param tabSheet
+	 */
+	private void addGridlayout(TabSheet tabSheet) {
+		final GridLayout gridLayout = new GridLayout(3, 3);
+		gridLayout.setSizeFull();
+		gridLayout.setMargin(true);
+		tabSheet.addTab(gridLayout, "GridLayout");
+
+		DesignerOverlayExtension layoutExt = DesignerOverlayExtension.create(gridLayout);
+		layoutExt.setSupportsAlignments(false);
+		layoutExt.setSupportsMargins(true);
+		layoutExt.setSupportsSpacing(true);
+		layoutExt.setSupportsPropertiesDialog(true);
+		layoutExt.setSupportsRemove(false);
+		layoutExt.setSupportsAdd(true);
+		layoutExt.setIcon(new ThemeResource("sample/sample.gif"));
+		layoutExt.addSwitchEditableListener(new DesignerOverlayExtension.SwitchEditableListener() {
+			@Override
+			public void switchEditable(DesignerOverlayExtension.SwitchEditableEvent event) {
+				gridLayout.setEnabled(!gridLayout.isReadOnly());
+			}
+		});
+
+		layoutExt.addSwitchMarginListener(new DesignerOverlayExtension.SwitchMarginListener() {
+			@Override
+			public void switchMargin(DesignerOverlayExtension.SwitchMarginEvent event) {
+				gridLayout.setMargin(gridLayout.getMargin().getBitMask() == 0);
+			}
+		});
+
+		layoutExt.addSwitchSpacingListener(new DesignerOverlayExtension.SwitchSpacingListener() {
+			@Override
+			public void switchSpacing(DesignerOverlayExtension.SwitchSpacingEvent event) {
+				gridLayout.setSpacing(!gridLayout.isSpacing());
+			}
+		});
+
+		layoutExt.addShowPropertiesListener(new ShowPropertiesListener() {
+			@Override
+			public void showProperties(ShowPropertiesEvent event) {
+				Notification.show("Requested properties dialog");
+			}
+		});
+		
+		layoutExt.addAddChildListener(new DesignerOverlayExtension.AddChildListener() {
+			@Override
+			public void addChild(DesignerOverlayExtension.AddChildEvent event) {
+				gridLayout.addComponent(new TextField("added"));
+			}
+		});
+		
+		addToGrid(gridLayout, 0, 0);
+		addToGrid(gridLayout, 0, 1);
+		addToGrid(gridLayout, 0, 2);
+		addToGrid(gridLayout, 1, 0);
+		addToGrid(gridLayout, 1, 1);
+		addToGrid(gridLayout, 1, 2);
+		addToGrid(gridLayout, 2, 0);
+		addToGrid(gridLayout, 2, 1);
+		addToGrid(gridLayout, 2, 2);
+	}
+
+	private void addToGrid(final GridLayout gridLayout, int col, int row) {
+		final Component text = new TextField("Text " + col + "/" + row);
+		text.setId("Text " + col + "/" + row);
+		gridLayout.addComponent(text, col, row);
+
+		DesignerOverlayExtension extension = DesignerOverlayExtension.create(text);
+		extension.setSupportsAlignments(true);
+		extension.setSupportsMargins(false);
+		extension.setSupportsSpacing(false);
+		extension.setSupportsPropertiesDialog(true);
+		extension.setSupportsRemove(true);
+		extension.setSupportsEditable(true);
+
+		extension.addAlignmentChangedListener(new DesignerOverlayExtension.AlignmentChangedListener() {
+			@Override
+			public void alignmentChanged(DesignerOverlayExtension.AlignmentChangedEvent event) {
+				AlignmentInfoUtil.apply(gridLayout, text, event.getAlignment());
+			}
+		});
+
+		extension.addRemoveChildListener(new DesignerOverlayExtension.RemoveChildListener() {
+			@Override
+			public void removeChild(RemoveChildEvent event) {
+				gridLayout.removeComponent(event.getComponent());
+			}
+		});
+
+		extension.addSwitchEditableListener(new DesignerOverlayExtension.SwitchEditableListener() {
+			@Override
+			public void switchEditable(SwitchEditableEvent event) {
+				text.setReadOnly(!text.isReadOnly());
+			}
+		});
+
+		extension.addShowPropertiesListener(new ShowPropertiesListener() {
+			@Override
+			public void showProperties(ShowPropertiesEvent event) {
+				Notification.show("Requested properties dialog");
+			}
+		});
+
+		extension.getState().alignment = AlignmentInfo.MIDDLE_CENTER;
+		AlignmentInfoUtil.apply(gridLayout, text, AlignmentInfo.MIDDLE_CENTER);
+	}
+
+	/**
+	 * Add verticallayout to the tabsheet.
+	 * 
+	 * @param tabSheet
+	 */
+	private void addVerticallayout(TabSheet tabSheet) {
+		final VerticalLayout verticalLayout = new VerticalLayout();
+		verticalLayout.setSizeFull();
+		verticalLayout.setMargin(true);
+		tabSheet.addTab(verticalLayout, "VerticalLayout");
+
+		DesignerOverlayExtension layoutExt = DesignerOverlayExtension.create(verticalLayout);
+		layoutExt.setSupportsAlignments(false);
+		layoutExt.setSupportsMargins(true);
+		layoutExt.setSupportsSpacing(true);
+		layoutExt.setSupportsPropertiesDialog(true);
+		layoutExt.setSupportsRemove(false);
+		layoutExt.setSupportsAdd(true);
+		layoutExt.addAllEventHanndler(new DesignerOverlayExtension.AllEventHanndler() {
+			@Override
+			public void switchEditable(DesignerOverlayExtension.SwitchEditableEvent event) {
+				verticalLayout.setReadOnly(!verticalLayout.isReadOnly());
+			}
+
+			@Override
+			public void switchMargin(DesignerOverlayExtension.SwitchMarginEvent event) {
+				verticalLayout.setMargin(verticalLayout.getMargin().getBitMask() == 0);
+			}
+
+			@Override
+			public void switchSpacing(DesignerOverlayExtension.SwitchSpacingEvent event) {
+				verticalLayout.setSpacing(!verticalLayout.isSpacing());
+			}
+
+			@Override
+			public void showProperties(ShowPropertiesEvent event) {
+				Notification.show("Requested properties dialog");
+			}
+			
+			@Override
+			public void addChild(AddChildEvent event) {
+				addToVerticalLayout(verticalLayout, 10);
+			}
+		});
+
+		addToVerticalLayout(verticalLayout, 0);
+		addToVerticalLayout(verticalLayout, 1);
+		addToVerticalLayout(verticalLayout, 2);
+		addToVerticalLayout(verticalLayout, 3);
+		addToVerticalLayout(verticalLayout, 4);
+		addToVerticalLayout(verticalLayout, 5);
+	}
+
+	private void addToVerticalLayout(final VerticalLayout verticalLayout, int index) {
+		final TextField text = new TextField("Mouse over " + index);
+		text.setId("Mouse over " + index);
+		verticalLayout.addComponent(text);
+
+		DesignerOverlayExtension extension = DesignerOverlayExtension.create(text);
+		extension.setSupportsAlignments(true);
+		extension.setSupportsMargins(false);
+		extension.setSupportsSpacing(false);
+		extension.setSupportsPropertiesDialog(true);
+		extension.setSupportsRemove(true);
+		extension.setSupportsEditable(true);
+
+		extension.addAllEventHanndler(new DesignerOverlayExtension.AllEventHanndler() {
+			@Override
+			public void alignmentChanged(DesignerOverlayExtension.AlignmentChangedEvent event) {
+				AlignmentInfoUtil.apply(verticalLayout, text, event.getAlignment());
+			}
+
+			@Override
+			public void removeChild(RemoveChildEvent event) {
+				verticalLayout.removeComponent(event.getComponent());
+			}
+
+			@Override
+			public void switchEditable(SwitchEditableEvent event) {
+				text.setReadOnly(!text.isReadOnly());
+			}
+
+			@Override
+			public void showProperties(ShowPropertiesEvent event) {
+				Notification.show("Requested properties dialog");
+			}
+		});
+
+		extension.getState().alignment = AlignmentInfo.TOP_CENTER;
+		AlignmentInfoUtil.apply(verticalLayout, text, AlignmentInfo.TOP_CENTER);
+	}
+
+	/**
+	 * Add horizontallayout to the tabsheet.
+	 * 
+	 * @param tabSheet
+	 */
+	private void addHorizontallayout(TabSheet tabSheet) {
+		final HorizontalLayout horizontalLayout = new HorizontalLayout();
+		horizontalLayout.setSizeFull();
+		horizontalLayout.setMargin(true);
+		tabSheet.addTab(horizontalLayout, "HorizontalLayout");
+
+		DesignerOverlayExtension layoutExt = DesignerOverlayExtension.create(horizontalLayout);
+		layoutExt.setSupportsAlignments(false);
+		layoutExt.setSupportsMargins(true);
+		layoutExt.setSupportsSpacing(true);
+		layoutExt.setSupportsPropertiesDialog(true);
+		layoutExt.setSupportsRemove(false);
+		layoutExt.setSupportsAdd(true);
+		layoutExt.addAllEventHanndler(new DesignerOverlayExtension.AllEventHanndler() {
+			@Override
+			public void switchEditable(DesignerOverlayExtension.SwitchEditableEvent event) {
+				horizontalLayout.setReadOnly(!horizontalLayout.isReadOnly());
+			}
+
+			public void switchMargin(DesignerOverlayExtension.SwitchMarginEvent event) {
+				horizontalLayout.setMargin(horizontalLayout.getMargin().getBitMask() == 0);
+			}
+
+			public void switchSpacing(DesignerOverlayExtension.SwitchSpacingEvent event) {
+				horizontalLayout.setSpacing(!horizontalLayout.isSpacing());
+			}
+
+			@Override
+			public void showProperties(ShowPropertiesEvent event) {
+				Notification.show("Requested properties dialog");
+			}
+
+			@Override
+			public void addChild(AddChildEvent event) {
+				addToHorizontalLayout(horizontalLayout, 10);
+			}
+		});
+
+		addToHorizontalLayout(horizontalLayout, 0);
+		addToHorizontalLayout(horizontalLayout, 1);
+		addToHorizontalLayout(horizontalLayout, 2);
+		addToHorizontalLayout(horizontalLayout, 3);
+	}
+
+	private void addToHorizontalLayout(final HorizontalLayout horizontalLayout, int index) {
+		final TextField text = new TextField("Mouse over " + index);
+		text.setId("Mouse over " + index);
+		horizontalLayout.addComponent(text);
+
+		DesignerOverlayExtension extension = DesignerOverlayExtension.create(text);
+		extension.setSupportsAlignments(true);
+		extension.setSupportsMargins(false);
+		extension.setSupportsSpacing(false);
+		extension.setSupportsPropertiesDialog(true);
+		extension.setSupportsRemove(true);
+		extension.setSupportsEditable(true);
+
+		extension.addAllEventHanndler(new DesignerOverlayExtension.AllEventHanndler() {
+			@Override
+			public void alignmentChanged(DesignerOverlayExtension.AlignmentChangedEvent event) {
+				AlignmentInfoUtil.apply(horizontalLayout, text, event.getAlignment());
+			}
+
+			@Override
+			public void removeChild(RemoveChildEvent event) {
+				horizontalLayout.removeComponent(event.getComponent());
+			}
+
+			@Override
+			public void switchEditable(SwitchEditableEvent event) {
+				text.setReadOnly(!text.isReadOnly());
+			}
+
+			@Override
+			public void showProperties(ShowPropertiesEvent event) {
+				Notification.show("Requested properties dialog");
+			}
+		});
+
+		extension.getState().alignment = AlignmentInfo.TOP_CENTER;
+		AlignmentInfoUtil.apply(horizontalLayout, text, AlignmentInfo.TOP_CENTER);
+	}
+
+	/**
+	 * Add texts in horizontal layouts in verticallayout to the tabsheet.
+	 * 
+	 * @param tabSheet
+	 */
+	private void addLayoutInlayout(TabSheet tabSheet) {
+		final VerticalLayout verticalLayout = new VerticalLayout();
+		verticalLayout.setSizeFull();
+		verticalLayout.setMargin(true);
+		tabSheet.addTab(verticalLayout, "Layout in Layout");
+
+		DesignerOverlayExtension layoutExt = DesignerOverlayExtension.create(verticalLayout);
+		layoutExt.setSupportsAlignments(false);
+		layoutExt.setSupportsMargins(true);
+		layoutExt.setSupportsSpacing(true);
+		layoutExt.setSupportsPropertiesDialog(true);
+		layoutExt.setSupportsRemove(false);
+
+		layoutExt.addAllEventHanndler(new DesignerOverlayExtension.AllEventHanndler() {
+
+			@Override
+			public void switchEditable(DesignerOverlayExtension.SwitchEditableEvent event) {
+				verticalLayout.setReadOnly(!verticalLayout.isReadOnly());
+			}
+
+			@Override
+			public void switchMargin(DesignerOverlayExtension.SwitchMarginEvent event) {
+				verticalLayout.setMargin(verticalLayout.getMargin().getBitMask() == 0);
+			}
+
+			@Override
+			public void switchSpacing(DesignerOverlayExtension.SwitchSpacingEvent event) {
+				verticalLayout.setSpacing(!verticalLayout.isSpacing());
+			}
+
+			@Override
+			public void showProperties(ShowPropertiesEvent event) {
+				Notification.show("Requested properties dialog");
+			}
+		});
+
+		addToLayoutInLayout(verticalLayout, 0);
+		addToLayoutInLayout(verticalLayout, 1);
+		addToLayoutInLayout(verticalLayout, 2);
+		addToLayoutInLayout(verticalLayout, 3);
+		addToLayoutInLayout(verticalLayout, 4);
+		addToLayoutInLayout(verticalLayout, 5);
+	}
+
+	private void addToLayoutInLayout(final VerticalLayout verticalLayout, int index) {
+		final HorizontalLayout hl = new HorizontalLayout();
+		verticalLayout.addComponent(hl);
+
+		DesignerOverlayExtension extension = DesignerOverlayExtension.create(hl);
+		extension.setSupportsAlignments(true);
+		extension.setSupportsMargins(true);
+		extension.setSupportsSpacing(true);
+		extension.setSupportsPropertiesDialog(true);
+		extension.setSupportsRemove(true);
+
+		extension.addAllEventHanndler(new DesignerOverlayExtension.AllEventHanndler() {
+			@Override
+			public void alignmentChanged(DesignerOverlayExtension.AlignmentChangedEvent event) {
+				AlignmentInfoUtil.apply(verticalLayout, hl, event.getAlignment());
+			}
+
+			@Override
+			public void removeChild(RemoveChildEvent event) {
+				verticalLayout.removeComponent(event.getComponent());
+			}
+			
+			@Override
+			public void switchMargin(DesignerOverlayExtension.SwitchMarginEvent event) {
+				hl.setMargin(hl.getMargin().getBitMask() == 0);
+			}
+
+			@Override
+			public void switchSpacing(DesignerOverlayExtension.SwitchSpacingEvent event) {
+				hl.setSpacing(!hl.isSpacing());
+			}
+
+			@Override
+			public void switchEditable(SwitchEditableEvent event) {
+				hl.setReadOnly(!hl.isReadOnly());
+			}
+
+			@Override
+			public void showProperties(ShowPropertiesEvent event) {
+				Notification.show("Requested properties dialog");
+			}
+		});
+
+		extension.getState().alignment = AlignmentInfo.TOP_CENTER;
+		AlignmentInfoUtil.apply(verticalLayout, hl, AlignmentInfo.TOP_CENTER);
+
+		addToHorizontalLayoutNoAlignment(hl, 0);
+		addToHorizontalLayoutNoAlignment(hl, 1);
+		addToHorizontalLayoutNoAlignment(hl, 2);
+		addToHorizontalLayoutNoAlignment(hl, 3);
+		addToHorizontalLayoutNoAlignment(hl, 4);
+		addToHorizontalLayoutNoAlignment(hl, 5);
+	}
+
+	private void addToHorizontalLayoutNoAlignment(final HorizontalLayout horizontalLayout, int index) {
+		final TextField text = new TextField("Mouse over " + index);
+		text.setId("Mouse over " + index);
+		text.setSizeFull();
+		horizontalLayout.addComponent(text);
+
+		DesignerOverlayExtension extension = DesignerOverlayExtension.create(text);
+		extension.setSupportsAlignments(false);
+		extension.addAllEventHanndler(new DesignerOverlayExtension.AllEventHanndler() {
+			@Override
+			public void alignmentChanged(DesignerOverlayExtension.AlignmentChangedEvent event) {
+				AlignmentInfoUtil.apply(horizontalLayout, text, event.getAlignment());
+			}
+
+			@Override
+			public void removeChild(RemoveChildEvent event) {
+				horizontalLayout.removeComponent(event.getComponent());
+			}
+
+			@Override
+			public void switchEditable(SwitchEditableEvent event) {
+				text.setReadOnly(!text.isReadOnly());
+			}
+
+			@Override
+			public void showProperties(ShowPropertiesEvent event) {
+				Notification.show("Requested properties dialog");
+			}
+		});
+
+		AlignmentInfoUtil.apply(horizontalLayout, text, AlignmentInfo.FILL_FILL);
+	}
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/AlignmentInfoUtil.java b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/AlignmentInfoUtil.java
new file mode 100644
index 0000000..b33da83
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/AlignmentInfoUtil.java
@@ -0,0 +1,175 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.designer.overlay;
+
+import org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets.AlignmentInfo;
+
+import com.vaadin.ui.Alignment;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.GridLayout;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.VerticalLayout;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Util to deal with {@link AlignmentInfo}.
+ */
+public class AlignmentInfoUtil {
+
+	/**
+	 * Returns the horizontal width for the given alignment.
+	 *
+	 * @param alignment the alignment
+	 * @return the horizonal width
+	 */
+	public static String getHorizonalWidth(AlignmentInfo alignment) {
+		if (alignment.isHorizontalFill()) {
+			return "100%";
+		} else {
+			return "-1px";
+		}
+	}
+
+	/**
+	 * Returns the vertical height for the given alignment.
+	 *
+	 * @param alignment the alignment
+	 * @return the vertical height
+	 */
+	public static String getVerticalHeight(AlignmentInfo alignment) {
+		if (alignment.isVerticalFill()) {
+			return "100%";
+		} else {
+			return "-1px";
+		}
+	}
+
+	/**
+	 * Converts alignment info to vaadin alignment.
+	 *
+	 * @param alignment the alignment
+	 * @return the alignment
+	 */
+	public static Alignment toVaadin(AlignmentInfo alignment) {
+		switch (alignment) {
+		case BOTTOM_CENTER:
+			return Alignment.BOTTOM_CENTER;
+		case BOTTOM_LEFT:
+			return Alignment.BOTTOM_LEFT;
+		case BOTTOM_RIGHT:
+			return Alignment.BOTTOM_RIGHT;
+		case MIDDLE_CENTER:
+			return Alignment.MIDDLE_CENTER;
+		case MIDDLE_LEFT:
+			return Alignment.MIDDLE_LEFT;
+		case MIDDLE_RIGHT:
+			return Alignment.MIDDLE_RIGHT;
+		case TOP_LEFT:
+			return Alignment.TOP_LEFT;
+		case TOP_RIGHT:
+			return Alignment.TOP_RIGHT;
+		case TOP_CENTER:
+			return Alignment.TOP_CENTER;
+		// fill here
+		case BOTTOM_FILL:
+			// fill the bottom line -> position at origin
+			return Alignment.BOTTOM_LEFT;
+		case MIDDLE_FILL:
+			// fill the middle line -> position at origin
+			return Alignment.MIDDLE_LEFT;
+		case TOP_FILL:
+			// fill the top line -> position at origin
+			return Alignment.TOP_LEFT;
+		case FILL_CENTER:
+			// fill the center row -> position at origin
+			return Alignment.TOP_CENTER;
+		case FILL_FILL:
+			// fill the all -> position at origin
+			return Alignment.TOP_LEFT;
+		case FILL_LEFT:
+			// fill the left row -> position at origin
+			return Alignment.TOP_LEFT;
+		case FILL_RIGHT:
+			// fill the right row -> position at origin
+			return Alignment.TOP_RIGHT;
+		}
+
+		return Alignment.TOP_LEFT;
+	}
+
+	/**
+	 * Applies the alignment to the given layout and child.
+	 *
+	 * @param layout the layout
+	 * @param child the child
+	 * @param alignment the alignment
+	 */
+	public static void apply(GridLayout layout, Component child, AlignmentInfo alignment) {
+		layout.setComponentAlignment(child, AlignmentInfoUtil.toVaadin(alignment));
+
+		child.setWidth(AlignmentInfoUtil.getHorizonalWidth(alignment));
+		child.setHeight(AlignmentInfoUtil.getVerticalHeight(alignment));
+
+		if (alignment.isHorizontalFill()) {
+			layout.setColumnExpandRatio(layout.getComponentArea(child).getColumn1(), 1.0f);
+		} else {
+			layout.setColumnExpandRatio(layout.getComponentArea(child).getColumn1(), 0f);
+		}
+
+		if (alignment.isVerticalFill()) {
+			layout.setRowExpandRatio(layout.getComponentArea(child).getRow1(), 1.0f);
+		} else {
+			layout.setRowExpandRatio(layout.getComponentArea(child).getRow1(), 0f);
+		}
+	}
+
+	/**
+	 * Applies the alignment to the given layout and child.
+	 *
+	 * @param layout the layout
+	 * @param child the child
+	 * @param alignment the alignment
+	 */
+	public static void apply(VerticalLayout layout, Component child, AlignmentInfo alignment) {
+		layout.setComponentAlignment(child, AlignmentInfoUtil.toVaadin(alignment));
+
+		child.setWidth(AlignmentInfoUtil.getHorizonalWidth(alignment));
+		child.setHeight(AlignmentInfoUtil.getVerticalHeight(alignment));
+
+		if (alignment.isVerticalFill()) {
+			layout.setExpandRatio(child, 1.0f);
+		} else {
+			layout.setExpandRatio(child, 0f);
+		}
+	}
+
+	/**
+	 * Applies the alignment to the given layout and child.
+	 *
+	 * @param layout the layout
+	 * @param child the child
+	 * @param alignment the alignment
+	 */
+	public static void apply(HorizontalLayout layout, Component child, AlignmentInfo alignment) {
+		layout.setComponentAlignment(child, AlignmentInfoUtil.toVaadin(alignment));
+
+		child.setWidth(AlignmentInfoUtil.getHorizonalWidth(alignment));
+		child.setHeight(AlignmentInfoUtil.getVerticalHeight(alignment));
+
+		if (alignment.isHorizontalFill()) {
+			layout.setExpandRatio(child, 1.0f);
+		} else {
+			layout.setExpandRatio(child, 0f);
+		}
+	}
+}
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/DesignerOverlayExtension.java b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/DesignerOverlayExtension.java
new file mode 100644
index 0000000..4bf2d40
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/DesignerOverlayExtension.java
@@ -0,0 +1,997 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.designer.overlay;
+
+import java.io.Serializable;
+import java.lang.reflect.Method;
+
+import org.eclipse.osbp.vaadin.addons.designer.overlay.client.DesignerExtensionServerRpc;
+import org.eclipse.osbp.vaadin.addons.designer.overlay.client.DesignerExtensionState;
+import org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets.AlignmentInfo;
+
+import com.vaadin.server.AbstractClientConnector;
+import com.vaadin.server.AbstractExtension;
+import com.vaadin.server.Resource;
+import com.vaadin.shared.ComponentConstants;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.Component.Event;
+import com.vaadin.util.ReflectTools;
+
+// TODO: Auto-generated Javadoc
+/**
+ * This extension adds an overlay to children of layouts. Listeners are being
+ * notified if events.
+ */
+@SuppressWarnings("serial")
+public class DesignerOverlayExtension extends AbstractExtension {
+
+	/** The owner. */
+	private Component owner;
+
+	/** The rpc. */
+	private DesignerExtensionServerRpc rpc = new DesignerExtensionServerRpc() {
+		@Override
+		public void alignmentChanged(AlignmentInfo alignment) {
+			fireEvent(new AlignmentChangedEvent(owner, alignment));
+		}
+
+		@Override
+		public void removeChild() {
+			fireEvent(new RemoveChildEvent(owner));
+		}
+
+		@Override
+		public void openProperties() {
+			fireEvent(new ShowPropertiesEvent(owner));
+		}
+
+		@Override
+		public void switchEditable() {
+			fireEvent(new SwitchEditableEvent(owner));
+		}
+
+		@Override
+		public void switchMargin() {
+			fireEvent(new SwitchMarginEvent(owner));
+		}
+
+		@Override
+		public void switchSpacing() {
+			fireEvent(new SwitchSpacingEvent(owner));
+		}
+
+		@Override
+		public void addChild() {
+			fireEvent(new AddChildEvent(owner));
+		}
+	};
+
+	/**
+	 * Creates the.
+	 *
+	 * @param target
+	 *            the target
+	 * @return the designer overlay extension
+	 */
+	public static DesignerOverlayExtension create(Component target) {
+		DesignerOverlayExtension extension = new DesignerOverlayExtension();
+		extension.owner = target;
+		extension.extend((AbstractClientConnector) target);
+		return extension;
+	}
+
+	/**
+	 * Instantiates a new designer overlay extension.
+	 */
+	private DesignerOverlayExtension() {
+		registerRpc(rpc);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.vaadin.server.AbstractClientConnector#getState()
+	 */
+	@Override
+	protected DesignerExtensionState getState() {
+		return (DesignerExtensionState) super.getState();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.vaadin.server.AbstractClientConnector#getState(boolean)
+	 */
+	@Override
+	protected DesignerExtensionState getState(boolean markDirty) {
+		return (DesignerExtensionState) super.getState(markDirty);
+	}
+
+	/**
+	 * Sets the icon to be shown at the overlay.
+	 *
+	 * @param source
+	 *            the new icon
+	 */
+	public void setIcon(Resource source) {
+		setResource(ComponentConstants.ICON_RESOURCE, source);
+	}
+
+	/**
+	 * Returns the icon which is shown at the overlay.
+	 *
+	 * @return the icon
+	 */
+	public Resource getIcon() {
+		return getResource(ComponentConstants.ICON_RESOURCE);
+	}
+
+	/**
+	 * Checks if is supports remove.
+	 *
+	 * @return true, if is supports remove
+	 */
+	public boolean isSupportsRemove() {
+		return getState(false).supportsRemove;
+	}
+
+	/**
+	 * Sets the supports remove.
+	 *
+	 * @param supportsRemove
+	 *            the new supports remove
+	 */
+	public void setSupportsRemove(boolean supportsRemove) {
+		if (isSupportsRemove() != supportsRemove) {
+			getState(true).supportsRemove = supportsRemove;
+		}
+	}
+
+	/**
+	 * Checks if is supports add.
+	 *
+	 * @return true, if is supports add
+	 */
+	public boolean isSupportsAdd() {
+		return getState(false).supportsAdd;
+	}
+
+	/**
+	 * Sets the supports add.
+	 *
+	 * @param supportsAdd
+	 *            the new supports add
+	 */
+	public void setSupportsAdd(boolean supportsAdd) {
+		if (isSupportsAdd() != supportsAdd) {
+			getState(true).supportsAdd = supportsAdd;
+		}
+	}
+
+	/**
+	 * Checks if is supports editable.
+	 *
+	 * @return true, if is supports editable
+	 */
+	public boolean isSupportsEditable() {
+		return getState(false).supportsEditable;
+	}
+
+	/**
+	 * Sets the supports editable.
+	 *
+	 * @param supportsEditable
+	 *            the new supports editable
+	 */
+	public void setSupportsEditable(boolean supportsEditable) {
+		if (isSupportsEditable() != supportsEditable) {
+			getState(true).supportsEditable = supportsEditable;
+		}
+	}
+
+	/**
+	 * Checks if is supports properties dialog.
+	 *
+	 * @return true, if is supports properties dialog
+	 */
+	public boolean isSupportsPropertiesDialog() {
+		return getState(false).supportsPropertiesDialog;
+	}
+
+	/**
+	 * Sets the supports properties dialog.
+	 *
+	 * @param supportsPropertiesDialog
+	 *            the new supports properties dialog
+	 */
+	public void setSupportsPropertiesDialog(boolean supportsPropertiesDialog) {
+		if (isSupportsPropertiesDialog() != supportsPropertiesDialog) {
+			getState(true).supportsPropertiesDialog = supportsPropertiesDialog;
+		}
+	}
+
+	/**
+	 * Checks if is supports margins.
+	 *
+	 * @return true, if is supports margins
+	 */
+	public boolean isSupportsMargins() {
+		return getState(false).supportsMargins;
+	}
+
+	/**
+	 * Sets the supports margins.
+	 *
+	 * @param supportsMargins
+	 *            the new supports margins
+	 */
+	public void setSupportsMargins(boolean supportsMargins) {
+		if (isSupportsMargins() != supportsMargins) {
+			getState(true).supportsMargins = supportsMargins;
+		}
+	}
+
+	/**
+	 * Checks if is supports spacing.
+	 *
+	 * @return true, if is supports spacing
+	 */
+	public boolean isSupportsSpacing() {
+		return getState(false).supportsSpacing;
+	}
+
+	/**
+	 * Sets the supports spacing.
+	 *
+	 * @param supportsSpacing
+	 *            the new supports spacing
+	 */
+	public void setSupportsSpacing(boolean supportsSpacing) {
+		if (isSupportsSpacing() != supportsSpacing) {
+			getState(true).supportsSpacing = supportsSpacing;
+		}
+	}
+
+	/**
+	 * Checks if is supports alignments.
+	 *
+	 * @return true, if is supports alignments
+	 */
+	public boolean isSupportsAlignments() {
+		return getState(false).supportsAlignments;
+	}
+
+	/**
+	 * Sets the supports alignments.
+	 *
+	 * @param supportsAlignments
+	 *            the new supports alignments
+	 */
+	public void setSupportsAlignments(boolean supportsAlignments) {
+		if (isSupportsAlignments() != supportsAlignments) {
+			getState(true).supportsAlignments = supportsAlignments;
+		}
+	}
+
+	/**
+	 * Gets the description remove.
+	 *
+	 * @return the descriptionRemove
+	 */
+	public String getDescriptionRemove() {
+		return getState(false).descriptionRemove;
+	}
+
+	/**
+	 * Sets the description remove.
+	 *
+	 * @param descriptionRemove
+	 *            the descriptionRemove to set
+	 */
+	public void setDescriptionRemove(String descriptionRemove) {
+		getState(true).descriptionRemove = descriptionRemove;
+	}
+
+	/**
+	 * Gets the description editable.
+	 *
+	 * @return the descriptionEditable
+	 */
+	public String getDescriptionEditable() {
+		return getState(false).descriptionEditable;
+	}
+
+	/**
+	 * Sets the description editable.
+	 *
+	 * @param descriptionEditable
+	 *            the descriptionEditable to set
+	 */
+	public void setDescriptionEditable(String descriptionEditable) {
+		getState(true).descriptionEditable = descriptionEditable;
+	}
+
+	/**
+	 * Gets the description properties dialog.
+	 *
+	 * @return the descriptionPropertiesDialog
+	 */
+	public String getDescriptionPropertiesDialog() {
+		return getState(false).descriptionPropertiesDialog;
+	}
+
+	/**
+	 * Sets the description properties dialog.
+	 *
+	 * @param descriptionPropertiesDialog
+	 *            the descriptionPropertiesDialog to set
+	 */
+	public void setDescriptionPropertiesDialog(String descriptionPropertiesDialog) {
+		getState(true).descriptionPropertiesDialog = descriptionPropertiesDialog;
+	}
+
+	/**
+	 * Gets the description margins.
+	 *
+	 * @return the descriptionMargins
+	 */
+	public String getDescriptionMargins() {
+		return getState(false).descriptionMargins;
+	}
+
+	/**
+	 * Sets the description margins.
+	 *
+	 * @param descriptionMargins
+	 *            the descriptionMargins to set
+	 */
+	public void setDescriptionMargins(String descriptionMargins) {
+		getState(true).descriptionMargins = descriptionMargins;
+	}
+
+	/**
+	 * Gets the description spacing.
+	 *
+	 * @return the descriptionSpacing
+	 */
+	public String getDescriptionSpacing() {
+		return getState(false).descriptionSpacing;
+	}
+
+	/**
+	 * Sets the description spacing.
+	 *
+	 * @param descriptionSpacing
+	 *            the descriptionSpacing to set
+	 */
+	public void setDescriptionSpacing(String descriptionSpacing) {
+		getState(true).descriptionSpacing = descriptionSpacing;
+	}
+
+	/**
+	 * Gets the description alignments.
+	 *
+	 * @return the descriptionAlignments
+	 */
+	public String getDescriptionAlignments() {
+		return getState(false).descriptionAlignments;
+	}
+
+	/**
+	 * Sets the description alignments.
+	 *
+	 * @param descriptionAlignments
+	 *            the descriptionAlignments to set
+	 */
+	public void setDescriptionAlignments(String descriptionAlignments) {
+		getState(true).descriptionAlignments = descriptionAlignments;
+	}
+
+	/**
+	 * Gets the description add.
+	 *
+	 * @return the descriptionAdd
+	 */
+	public String getDescriptionAdd() {
+		return getState(false).descriptionAdd;
+	}
+
+	/**
+	 * Sets the description add.
+	 *
+	 * @param descriptionAdd
+	 *            the descriptionAdd to set
+	 */
+	public void setDescriptionAdd(String descriptionAdd) {
+		getState(true).descriptionAdd = descriptionAdd;
+	}
+
+	/**
+	 * Adds the all event hanndler.
+	 *
+	 * @param handler
+	 *            the handler
+	 */
+	public void addAllEventHanndler(AllEventHanndler handler) {
+		addSwitchEditableListener(handler);
+		addAlignmentChangedListener(handler);
+		addRemoveChildListener(handler);
+		addShowPropertiesListener(handler);
+		addSwitchMarginListener(handler);
+		addSwitchSpacingListener(handler);
+		addAddChildListener(handler);
+	}
+
+	/**
+	 * Removes the all event hanndler.
+	 *
+	 * @param handler
+	 *            the handler
+	 */
+	public void removeAllEventHanndler(AllEventHanndler handler) {
+		removeSwitchEditableListener(handler);
+		removeAlignmentChangedListener(handler);
+		removeRemoveChildListener(handler);
+		removeShowPropertiesListener(handler);
+		removeSwitchMarginListener(handler);
+		removeSwitchSpacingListener(handler);
+		removeAddChildListener(handler);
+	}
+
+	/**
+	 * Add listener which is being notified if the alignment changes.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	public void addAlignmentChangedListener(AlignmentChangedListener listener) {
+		addListener(AlignmentChangedEvent.class, listener, AlignmentChangedListener.ALIGNMENT_CHANGED_METHOD);
+	}
+
+	/**
+	 * Removes listener which is being notified if the alignment changes.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	public void removeAlignmentChangedListener(AlignmentChangedListener listener) {
+		removeListener(AlignmentChangedEvent.class, listener);
+	}
+
+	/**
+	 * Add listener which is being notified if a child should be removed.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	public void addRemoveChildListener(RemoveChildListener listener) {
+		addListener(RemoveChildEvent.class, listener, RemoveChildListener.REMOVE_CHILD_METHOD);
+	}
+
+	/**
+	 * Removes listener which is being notified if a child should be removed.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	public void removeRemoveChildListener(RemoveChildListener listener) {
+		removeListener(RemoveChildEvent.class, listener);
+	}
+
+	/**
+	 * Add listener which is being notified if a child should be added.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	public void addAddChildListener(AddChildListener listener) {
+		addListener(AddChildEvent.class, listener, AddChildListener.ADD_CHILD_METHOD);
+	}
+
+	/**
+	 * Removes listener which is being notified if a child should be added.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	public void removeAddChildListener(AddChildListener listener) {
+		removeListener(AddChildEvent.class, listener);
+	}
+
+	/**
+	 * Add listener which is being notified if the editable state should be
+	 * switched.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	public void addSwitchEditableListener(SwitchEditableListener listener) {
+		addListener(SwitchEditableEvent.class, listener, SwitchEditableListener.SWITCH_EDITABLE_METHOD);
+	}
+
+	/**
+	 * Removes listener which is being notified if the editable state should be
+	 * switched.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	public void removeSwitchEditableListener(SwitchEditableListener listener) {
+		removeListener(SwitchEditableEvent.class, listener);
+	}
+
+	/**
+	 * Add listener which is being notified if a properties dialog should be
+	 * shown.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	public void addShowPropertiesListener(ShowPropertiesListener listener) {
+		addListener(ShowPropertiesEvent.class, listener, ShowPropertiesListener.SHOW_PROPERTIES_METHOD);
+	}
+
+	/**
+	 * Removes listener which is being notified if a properties dialog should be
+	 * shown.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	public void removeShowPropertiesListener(ShowPropertiesListener listener) {
+		removeListener(ShowPropertiesEvent.class, listener);
+	}
+
+	/**
+	 * Add listener which is being notified if the spacing state should be
+	 * switched.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	public void addSwitchSpacingListener(SwitchSpacingListener listener) {
+		addListener(SwitchSpacingEvent.class, listener, SwitchSpacingListener.SWITCH_SPACING_METHOD);
+	}
+
+	/**
+	 * Remove listener which is being notified if the spacing state should be
+	 * switched.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	public void removeSwitchSpacingListener(SwitchSpacingListener listener) {
+		removeListener(SwitchSpacingEvent.class, listener);
+	}
+
+	/**
+	 * Add listener which is being notified if the margin state should be
+	 * switched.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	public void addSwitchMarginListener(SwitchMarginListener listener) {
+		addListener(SwitchMarginEvent.class, listener, SwitchMarginListener.SWITCH_MARGIN_METHOD);
+	}
+
+	/**
+	 * Remove listener which is being notified if the margin state should be
+	 * switched.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	public void removeSwitchMarginListener(SwitchMarginListener listener) {
+		removeListener(SwitchMarginEvent.class, listener);
+	}
+
+	/**
+	 * The Class AlignmentChangedEvent.
+	 */
+	public static class AlignmentChangedEvent extends Event {
+
+		/** The alignment. */
+		private final AlignmentInfo alignment;
+
+		/**
+		 * Instantiates a new alignment changed event.
+		 *
+		 * @param source
+		 *            the source
+		 * @param alignment
+		 *            the alignment
+		 */
+		public AlignmentChangedEvent(Component source, AlignmentInfo alignment) {
+			super(source);
+			this.alignment = alignment;
+		}
+
+		/**
+		 * Gets the alignment.
+		 *
+		 * @return the alignment
+		 */
+		public AlignmentInfo getAlignment() {
+			return alignment;
+		}
+
+	}
+
+	/**
+	 * The listener interface for receiving alignmentChanged events. The class
+	 * that is interested in processing a alignmentChanged event implements this
+	 * interface, and the object created with that class is registered with a
+	 * component using the component's <code>addAlignmentChangedListener</code>
+	 * method. When the alignmentChanged event occurs, that object's appropriate
+	 * method is invoked.
+	 *
+	 * @see AlignmentChangedEvent
+	 */
+	public interface AlignmentChangedListener extends Serializable {
+
+		/** The Constant ALIGNMENT_CHANGED_METHOD. */
+		public static final Method ALIGNMENT_CHANGED_METHOD = ReflectTools.findMethod(AlignmentChangedListener.class,
+				"alignmentChanged", AlignmentChangedEvent.class);
+
+		/**
+		 * Alignment changed.
+		 *
+		 * @param event
+		 *            the event
+		 */
+		void alignmentChanged(AlignmentChangedEvent event);
+
+	}
+
+	/**
+	 * This event is fired, if a properties dialog should be shown.
+	 */
+	public class ShowPropertiesEvent extends Event {
+
+		/**
+		 * Instantiates a new show properties event.
+		 *
+		 * @param source
+		 *            the source
+		 */
+		public ShowPropertiesEvent(Component source) {
+			super(source);
+		}
+	}
+
+	/**
+	 * Listens for ShowPropertiesEvent.
+	 *
+	 * @see ShowPropertiesEvent
+	 */
+	public interface ShowPropertiesListener {
+
+		/** The Constant SHOW_PROPERTIES_METHOD. */
+		public static final Method SHOW_PROPERTIES_METHOD = ReflectTools.findMethod(ShowPropertiesListener.class,
+				"showProperties", ShowPropertiesEvent.class);
+
+		/**
+		 * Show properties.
+		 *
+		 * @param event
+		 *            the event
+		 */
+		void showProperties(ShowPropertiesEvent event);
+
+	}
+
+	/**
+	 * The Class RemoveChildEvent.
+	 */
+	public static class RemoveChildEvent extends Event {
+
+		/**
+		 * Instantiates a new removes the child event.
+		 *
+		 * @param source
+		 *            the source
+		 */
+		public RemoveChildEvent(Component source) {
+			super(source);
+		}
+	}
+
+	/**
+	 * The listener interface for receiving removeChild events. The class that
+	 * is interested in processing a removeChild event implements this
+	 * interface, and the object created with that class is registered with a
+	 * component using the component's <code>addRemoveChildListener</code>
+	 * method. When the removeChild event occurs, that object's appropriate
+	 * method is invoked.
+	 *
+	 * @see RemoveChildEvent
+	 */
+	public interface RemoveChildListener extends Serializable {
+
+		/** The Constant REMOVE_CHILD_METHOD. */
+		public static final Method REMOVE_CHILD_METHOD = ReflectTools.findMethod(RemoveChildListener.class,
+				"removeChild", RemoveChildEvent.class);
+
+		/**
+		 * Removes the child.
+		 *
+		 * @param event
+		 *            the event
+		 */
+		void removeChild(RemoveChildEvent event);
+	}
+
+	/**
+	 * The Class AddChildEvent.
+	 */
+	public static class AddChildEvent extends Event {
+
+		/**
+		 * Instantiates a new adds the child event.
+		 *
+		 * @param source
+		 *            the source
+		 */
+		public AddChildEvent(Component source) {
+			super(source);
+		}
+	}
+
+	/**
+	 * The listener interface for receiving addChild events. The class that is
+	 * interested in processing a addChild event implements this interface, and
+	 * the object created with that class is registered with a component using
+	 * the component's <code>addAddChildListener</code> method. When the
+	 * addChild event occurs, that object's appropriate method is invoked.
+	 *
+	 * @see AddChildEvent
+	 */
+	public interface AddChildListener extends Serializable {
+
+		/** The Constant ADD_CHILD_METHOD. */
+		public static final Method ADD_CHILD_METHOD = ReflectTools.findMethod(AddChildListener.class, "addChild",
+				AddChildEvent.class);
+
+		/**
+		 * Adds the child.
+		 *
+		 * @param event
+		 *            the event
+		 */
+		void addChild(AddChildEvent event);
+	}
+
+	/**
+	 * The Class SwitchEditableEvent.
+	 */
+	public static class SwitchEditableEvent extends Event {
+
+		/**
+		 * Instantiates a new switch editable event.
+		 *
+		 * @param source
+		 *            the source
+		 */
+		public SwitchEditableEvent(Component source) {
+			super(source);
+		}
+	}
+
+	/**
+	 * The listener interface for receiving switchEditable events. The class
+	 * that is interested in processing a switchEditable event implements this
+	 * interface, and the object created with that class is registered with a
+	 * component using the component's <code>addSwitchEditableListener</code>
+	 * method. When the switchEditable event occurs, that object's appropriate
+	 * method is invoked.
+	 *
+	 * @see SwitchEditableEvent
+	 */
+	public interface SwitchEditableListener extends Serializable {
+
+		/** The Constant SWITCH_EDITABLE_METHOD. */
+		public static final Method SWITCH_EDITABLE_METHOD = ReflectTools.findMethod(SwitchEditableListener.class,
+				"switchEditable", SwitchEditableEvent.class);
+
+		/**
+		 * Switch editable.
+		 *
+		 * @param event
+		 *            the event
+		 */
+		void switchEditable(SwitchEditableEvent event);
+	}
+
+	/**
+	 * The Class AllEventHanndler.
+	 */
+	public static abstract class AllEventHanndler
+			implements AlignmentChangedListener, RemoveChildListener, SwitchEditableListener, ShowPropertiesListener,
+			SwitchMarginListener, SwitchSpacingListener, AddChildListener {
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.osbp.vaadin.addons.designer.overlay.
+		 * DesignerOverlayExtension.SwitchEditableListener#switchEditable(org.
+		 * eclipse.osbp.vaadin.addons.designer.overlay.DesignerOverlayExtension.
+		 * SwitchEditableEvent)
+		 */
+		@Override
+		public void switchEditable(SwitchEditableEvent event) {
+
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.osbp.vaadin.addons.designer.overlay.
+		 * DesignerOverlayExtension.RemoveChildListener#removeChild(org.eclipse.
+		 * osbp.vaadin.addons.designer.overlay.DesignerOverlayExtension.
+		 * RemoveChildEvent)
+		 */
+		@Override
+		public void removeChild(RemoveChildEvent event) {
+
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.osbp.vaadin.addons.designer.overlay.
+		 * DesignerOverlayExtension.AddChildListener#addChild(org.eclipse.osbp.
+		 * vaadin.addons.designer.overlay.DesignerOverlayExtension.
+		 * AddChildEvent)
+		 */
+		@Override
+		public void addChild(AddChildEvent event) {
+
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.osbp.vaadin.addons.designer.overlay.
+		 * DesignerOverlayExtension.AlignmentChangedListener#alignmentChanged(
+		 * org.eclipse.osbp.vaadin.addons.designer.overlay.
+		 * DesignerOverlayExtension.AlignmentChangedEvent)
+		 */
+		@Override
+		public void alignmentChanged(AlignmentChangedEvent event) {
+
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.osbp.vaadin.addons.designer.overlay.
+		 * DesignerOverlayExtension.ShowPropertiesListener#showProperties(org.
+		 * eclipse.osbp.vaadin.addons.designer.overlay.DesignerOverlayExtension.
+		 * ShowPropertiesEvent)
+		 */
+		@Override
+		public void showProperties(ShowPropertiesEvent event) {
+
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.osbp.vaadin.addons.designer.overlay.
+		 * DesignerOverlayExtension.SwitchSpacingListener#switchSpacing(org.
+		 * eclipse.osbp.vaadin.addons.designer.overlay.DesignerOverlayExtension.
+		 * SwitchSpacingEvent)
+		 */
+		@Override
+		public void switchSpacing(SwitchSpacingEvent event) {
+
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.osbp.vaadin.addons.designer.overlay.
+		 * DesignerOverlayExtension.SwitchMarginListener#switchMargin(org.
+		 * eclipse.osbp.vaadin.addons.designer.overlay.DesignerOverlayExtension.
+		 * SwitchMarginEvent)
+		 */
+		@Override
+		public void switchMargin(SwitchMarginEvent event) {
+
+		}
+
+	}
+
+	/**
+	 * The Class SwitchMarginEvent.
+	 */
+	public static class SwitchMarginEvent extends Event {
+
+		/**
+		 * Instantiates a new switch margin event.
+		 *
+		 * @param source
+		 *            the source
+		 */
+		public SwitchMarginEvent(Component source) {
+			super(source);
+		}
+	}
+
+	/**
+	 * The listener interface for receiving switchMargin events. The class that
+	 * is interested in processing a switchMargin event implements this
+	 * interface, and the object created with that class is registered with a
+	 * component using the component's <code>addSwitchMarginListener</code>
+	 * method. When the switchMargin event occurs, that object's appropriate
+	 * method is invoked.
+	 *
+	 * @see SwitchMarginEvent
+	 */
+	public interface SwitchMarginListener extends Serializable {
+
+		/** The Constant SWITCH_MARGIN_METHOD. */
+		public static final Method SWITCH_MARGIN_METHOD = ReflectTools.findMethod(SwitchMarginListener.class,
+				"switchMargin", SwitchMarginEvent.class);
+
+		/**
+		 * Switch margin.
+		 *
+		 * @param event
+		 *            the event
+		 */
+		void switchMargin(SwitchMarginEvent event);
+	}
+
+	/**
+	 * The Class SwitchSpacingEvent.
+	 */
+	public static class SwitchSpacingEvent extends Event {
+
+		/**
+		 * Instantiates a new switch spacing event.
+		 *
+		 * @param source
+		 *            the source
+		 */
+		public SwitchSpacingEvent(Component source) {
+			super(source);
+		}
+	}
+
+	/**
+	 * The listener interface for receiving switchSpacing events. The class that
+	 * is interested in processing a switchSpacing event implements this
+	 * interface, and the object created with that class is registered with a
+	 * component using the component's <code>addSwitchSpacingListener</code>
+	 * method. When the switchSpacing event occurs, that object's appropriate
+	 * method is invoked.
+	 *
+	 * @see SwitchSpacingEvent
+	 */
+	public interface SwitchSpacingListener extends Serializable {
+
+		/** The Constant SWITCH_SPACING_METHOD. */
+		public static final Method SWITCH_SPACING_METHOD = ReflectTools.findMethod(SwitchSpacingListener.class,
+				"switchSpacing", SwitchSpacingEvent.class);
+
+		/**
+		 * Switch spacing.
+		 *
+		 * @param event
+		 *            the event
+		 */
+		void switchSpacing(SwitchSpacingEvent event);
+	}
+}
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/OverlayWidgetset.gwt.xml b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/OverlayWidgetset.gwt.xml
new file mode 100644
index 0000000..80e78b1
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/OverlayWidgetset.gwt.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.5.1//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.5.1/distro-source/core/src/gwt-module.dtd">
+<module>
+	<inherits name="com.vaadin.DefaultWidgetSet" />
+
+	<!-- Uncomment the following to compile the widgetset for one browser only. 
+		Multiple browsers can be specified as a comma separated list. The supported 
+		user agents at the moment of writing were: ie8,ie9,gecko1_8,safari,opera 
+		The value gecko1_8 is used for Firefox and safari is used for webkit based 
+		browsers including Google Chrome. -->
+
+ 	<!-- To enable SuperDevMode, uncomment this line. See https://vaadin.com/wiki/-/wiki/Main/Using%20SuperDevMode 
+ 		for more information and instructions. --> 
+ 	<!-- <set-configuration-property name="devModeRedirectEnabled" value="true" /> --> 
+	
+<!-- 	<add-linker name="xsiframe" /> -->
+<!-- 	<set-configuration-property name="devModeRedirectEnabled" -->
+<!-- 		value="true" /> -->
+<!-- 	<set-property name="user.agent" value="safari" /> -->
+
+	<stylesheet src="designer_overlay/styles.css" />
+</module>
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/DesignerExtensionClientRpc.java b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/DesignerExtensionClientRpc.java
new file mode 100644
index 0000000..c51a89a
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/DesignerExtensionClientRpc.java
@@ -0,0 +1,22 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.designer.overlay.client;
+
+import com.vaadin.shared.communication.ClientRpc;
+
+/**
+ * The Interface DesignerExtensionClientRpc.
+ */
+public interface DesignerExtensionClientRpc extends ClientRpc {
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/DesignerExtensionConnector.java b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/DesignerExtensionConnector.java
new file mode 100644
index 0000000..52a3a96
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/DesignerExtensionConnector.java
@@ -0,0 +1,232 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.designer.overlay.client;
+
+import org.eclipse.osbp.vaadin.addons.designer.overlay.DesignerOverlayExtension;
+import org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets.OAlignmentChangedEvent;
+import org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets.OAlignmentChangedHandler;
+import org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets.OButtonClickEvent;
+import org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets.OButtonClickHandler;
+import org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets.OOverlayController;
+
+import com.google.gwt.core.shared.GWT;
+import com.google.gwt.dom.client.Element;
+import com.google.gwt.event.dom.client.KeyCodes;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.user.client.Event;
+import com.google.gwt.user.client.Event.NativePreviewEvent;
+import com.google.gwt.user.client.ui.RootPanel;
+import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.client.ComponentConnector;
+import com.vaadin.client.ServerConnector;
+import com.vaadin.client.communication.RpcProxy;
+import com.vaadin.client.communication.StateChangeEvent;
+import com.vaadin.client.extensions.AbstractExtensionConnector;
+import com.vaadin.shared.ui.Connect;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class DesignerExtensionConnector.
+ */
+@Connect(DesignerOverlayExtension.class)
+public class DesignerExtensionConnector extends AbstractExtensionConnector implements OAlignmentChangedHandler,
+		OButtonClickHandler, com.google.gwt.user.client.Event.NativePreviewHandler {
+
+	/** The Constant serialVersionUID. */
+	private static final long serialVersionUID = -3501965859455838012L;
+
+	/** The rpc. */
+	private DesignerExtensionServerRpc rpc = RpcProxy.create(DesignerExtensionServerRpc.class, this);
+
+	/** The hreg. */
+	private HandlerRegistration hreg;
+
+	/** The overlay. */
+	private ODesignerOverlay overlay;
+
+	private Widget widget;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * com.vaadin.client.extensions.AbstractExtensionConnector#extend(com.vaadin
+	 * .client.ServerConnector)
+	 */
+	@Override
+	protected void extend(ServerConnector target) {
+		widget = ((ComponentConnector) target).getWidget();
+
+		overlay = GWT.create(ODesignerOverlay.class);
+		overlay.setConnector(DesignerExtensionConnector.this);
+		overlay.setOwner(widget);
+
+		OOverlayController.getInstance().register(widget.getElement(), overlay);
+
+		hreg = Event.addNativePreviewHandler(this);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * com.google.gwt.user.client.ui.PopupPanel#onPreviewNativeEvent(com.google.
+	 * gwt.user.client.Event.NativePreviewEvent)
+	 */
+	public void onPreviewNativeEvent(final NativePreviewEvent event) {
+		Element target = Element.as(event.getNativeEvent().getEventTarget());
+		int type = event.getTypeInt();
+
+		if (type == Event.ONCLICK) {
+			if (!event.getNativeEvent().getAltKey()) {
+				return;
+			}
+			if (event.isCanceled()) {
+				return;
+			}
+			if (!isEventOnTarget(target)) {
+				return;
+			}
+
+			if (!overlay.isShowing()) {
+				int top = widget.getAbsoluteTop() + widget.getOffsetHeight();
+				int windowHeight = RootPanel.get().getOffsetHeight();
+				if (windowHeight - top < 30) {
+					// place the popup above
+					top = widget.getAbsoluteTop();
+				}
+
+				OOverlayController.getInstance().show(overlay, event.getNativeEvent().getClientX(),
+						event.getNativeEvent().getClientY());
+				event.cancel();
+			}
+			overlay.setAlignmentInfo(getState().alignment);
+
+		} else if (type == Event.ONKEYUP) {
+			if (event.isCanceled()) {
+				return;
+			}
+			if (!isEventOnTarget(target)) {
+				return;
+			}
+			int keyCode = event.getNativeEvent().getKeyCode();
+			if (KeyCodes.KEY_UP == keyCode && event.getNativeEvent().getAltKey()) {
+				OOverlayController.getInstance().navigateUp();
+				event.cancel();
+			} else if (KeyCodes.KEY_DOWN == keyCode && event.getNativeEvent().getAltKey()) {
+				OOverlayController.getInstance().navigateDown();
+				event.cancel();
+			} else if (KeyCodes.KEY_ESCAPE == keyCode) {
+				OOverlayController.getInstance().close();
+				event.cancel();
+			}
+		}
+	}
+
+	/**
+	 * Checks if is mouse on target.
+	 *
+	 * @param target
+	 *            the target
+	 * @return true, if is mouse on target
+	 */
+	protected boolean isEventOnTarget(Element target) {
+		// is owner the target?
+		boolean eventTargetsThis = widget.getElement().isOrHasChild(target);
+		return eventTargetsThis;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.vaadin.client.ui.AbstractConnector#getState()
+	 */
+	@Override
+	public DesignerExtensionState getState() {
+		return (DesignerExtensionState) super.getState();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * com.vaadin.client.ui.AbstractConnector#onStateChanged(com.vaadin.client.
+	 * communication.StateChangeEvent)
+	 */
+	@Override
+	public void onStateChanged(StateChangeEvent stateChangeEvent) {
+		super.onStateChanged(stateChangeEvent);
+
+		if (overlay != null) {
+			overlay.setAlignmentInfo(getState().alignment);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.vaadin.client.ui.AbstractConnector#onUnregister()
+	 */
+	@Override
+	public void onUnregister() {
+
+		OOverlayController.getInstance().unregister(widget.getElement());
+
+		hreg.removeHandler();
+		hreg = null;
+
+		if (overlay != null) {
+			overlay.destroy();
+			overlay = null;
+		}
+
+		super.onUnregister();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets.
+	 * OAlignmentChangedHandler#onAlignmentChanged(org.eclipse.osbp.vaadin.
+	 * addons.designer.overlay.client.widgets.OAlignmentChangedEvent)
+	 */
+	@Override
+	public void onAlignmentChanged(OAlignmentChangedEvent event) {
+		getState().alignment = event.getAlignment();
+		rpc.alignmentChanged(event.getAlignment());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets.
+	 * OButtonClickHandler#clicked(org.eclipse.osbp.vaadin.addons.designer.
+	 * overlay.client.widgets.OButtonClickEvent)
+	 */
+	@Override
+	public void clicked(OButtonClickEvent event) {
+		if (event.getCustomEventType().equals(OIConstants.EVENT_TYPE__REMOVE_CHILD)) {
+			rpc.removeChild();
+		} else if (event.getCustomEventType().equals(OIConstants.EVENT_TYPE__ADD_CHILD)) {
+			rpc.addChild();
+		} else if (event.getCustomEventType().equals(OIConstants.EVENT_TYPE__SWITCH_EDITABLE)) {
+			rpc.switchEditable();
+		} else if (event.getCustomEventType().equals(OIConstants.EVENT_TYPE__OPEN_PROPERTIES)) {
+			rpc.openProperties();
+		} else if (event.getCustomEventType().equals(OIConstants.EVENT_TYPE__SWITCH_MARGIN)) {
+			rpc.switchMargin();
+		} else if (event.getCustomEventType().equals(OIConstants.EVENT_TYPE__SWITCH_SPACING)) {
+			rpc.switchSpacing();
+		}
+	}
+}
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/DesignerExtensionServerRpc.java b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/DesignerExtensionServerRpc.java
new file mode 100644
index 0000000..299d917
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/DesignerExtensionServerRpc.java
@@ -0,0 +1,62 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.designer.overlay.client;
+
+import org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets.AlignmentInfo;
+
+import com.vaadin.shared.communication.ServerRpc;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Interface DesignerExtensionServerRpc.
+ */
+public interface DesignerExtensionServerRpc extends ServerRpc {
+
+	/**
+	 * Is called to change the alignment of the child.
+	 *
+	 * @param alignment the alignment
+	 */
+	void alignmentChanged(AlignmentInfo alignment);
+
+	/**
+	 * Is called to remove the child from its layout.
+	 */
+	void removeChild();
+
+	/**
+	 * Is called to add a child to its layout.
+	 */
+	void addChild();
+
+	/**
+	 * Is called to open the properties dialog.
+	 */
+	void openProperties();
+
+	/**
+	 * Switches the editable state.
+	 */
+	void switchEditable();
+
+	/**
+	 * Switches the margin state.
+	 */
+	void switchMargin();
+
+	/**
+	 * Switchs the spacing state.
+	 */
+	void switchSpacing();
+
+}
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/DesignerExtensionState.java b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/DesignerExtensionState.java
new file mode 100644
index 0000000..3510c3f
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/DesignerExtensionState.java
@@ -0,0 +1,58 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.designer.overlay.client;
+
+import org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets.AlignmentInfo;
+import com.vaadin.shared.communication.SharedState;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class DesignerExtensionState.
+ */
+public class DesignerExtensionState extends SharedState {
+
+	/** The Constant serialVersionUID. */
+	private static final long serialVersionUID = -138381612142479069L;
+
+	/** The alignment. */
+	public AlignmentInfo alignment;
+	
+	/** The supports remove. */
+	public boolean supportsRemove = false;
+	
+	/** The supports editable. */
+	public boolean supportsEditable = true;
+	
+	/** The supports properties dialog. */
+	public boolean supportsPropertiesDialog = true;
+	
+	/** The supports margins. */
+	public boolean supportsMargins = false;
+	
+	/** The supports spacing. */
+	public boolean supportsSpacing = false;
+	
+	/** The supports alignments. */
+	public boolean supportsAlignments = true;
+	
+	/** The supports add. */
+	public boolean supportsAdd = false;
+	
+	public String descriptionRemove = "remove";
+	public String descriptionEditable = "editable";
+	public String descriptionPropertiesDialog = "properties";
+	public String descriptionMargins = "margins";
+	public String descriptionSpacing = "spacing";
+	public String descriptionAlignments = "alignments";
+	public String descriptionAdd = "add";
+}
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/OAbstractOverlay.java b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/OAbstractOverlay.java
new file mode 100644
index 0000000..89133a4
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/OAbstractOverlay.java
@@ -0,0 +1,79 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.designer.overlay.client;
+
+import java.util.logging.Logger;
+
+import com.google.gwt.dom.client.Element;
+import com.google.gwt.user.client.DOM;
+import com.vaadin.client.ui.VOverlay;
+
+/**
+ * The Class OAbstractOverlay.
+ */
+@SuppressWarnings("deprecation")
+public class OAbstractOverlay extends VOverlay {
+
+	/** The Constant CSS_DESIGNER_OVERLAYED. */
+	private static final String CSS_DESIGNER_OVERLAYED = "o-designer-overlayed";
+
+	private final Logger logger = Logger.getLogger("DesignerOverlay");
+
+	/**
+	 * Instantiates a new o abstract overlay.
+	 */
+	public OAbstractOverlay() {
+		super(true, false);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.vaadin.client.ui.VOverlay#show()
+	 */
+	@Override
+	public void show() {
+		super.show();
+
+		getOwner().addStyleName(CSS_DESIGNER_OVERLAYED);
+
+		logger.info("Showing overlay for " + getOwner().getElement().getId());
+		logger.info("Added marker css style for " + getOwner().getElement().getId());
+	}
+
+	public void hide(final boolean autoClosed, final boolean animateIn, final boolean animateOut) {
+		super.hide(autoClosed, animateIn, animateOut);
+
+		logger.info("Hiding overlay for " + getOwner().getElement().getId());
+
+		getOwner().removeStyleName(CSS_DESIGNER_OVERLAYED);
+		logger.info("Removed marker css style for " + getOwner().getElement().getId());
+	}
+
+	/**
+	 * Checks if is mouse on target.
+	 *
+	 * @param target
+	 *            the target
+	 * @return true, if is mouse on target
+	 */
+	protected boolean isMouseOnTarget(Element target) {
+		// is owner the target?
+		boolean eventTargetsThis = DOM.isOrHasChild(getOwner().getElement(), target);
+		if (!eventTargetsThis) {
+			eventTargetsThis = DOM.isOrHasChild(getElement(), target);
+		}
+		return eventTargetsThis;
+	}
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/ODesignerOverlay.java b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/ODesignerOverlay.java
new file mode 100644
index 0000000..d404d6b
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/ODesignerOverlay.java
@@ -0,0 +1,186 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.designer.overlay.client;
+
+import org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets.AlignmentInfo;
+import org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets.OAlignmentWidget;
+import org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets.OButtonWidget;
+
+import com.google.gwt.user.client.ui.FlowPanel;
+import com.vaadin.client.ui.VImage;
+import com.vaadin.shared.ComponentConstants;
+
+/**
+ * Overlay for designer stuff.
+ */
+public class ODesignerOverlay extends OAbstractOverlay {
+
+	/** The Constant CLASSNAME. */
+	private static final String CLASSNAME = "o-designer-overlay";
+
+	/** The alignment widget. */
+	private OAlignmentWidget alignmentWidget;
+
+	/** The remove button. */
+	private OButtonWidget removeButton;
+
+	/** The root. */
+	private FlowPanel root;
+
+	/** The editable button. */
+	private OButtonWidget editableButton;
+
+	/** The open properties button. */
+	private OButtonWidget openPropertiesButton;
+
+	/** The margin button. */
+	private OButtonWidget marginButton;
+
+	/** The spacing button. */
+	private OButtonWidget spacingButton;
+
+	/** The add button. */
+	private OButtonWidget addButton;
+
+	/**
+	 * Shows alignment lines for drag and resize operations.
+	 */
+	public ODesignerOverlay() {
+
+		getElement().setClassName(CLASSNAME);
+	}
+
+	/**
+	 * Initialize.
+	 *
+	 * @param connector the connector
+	 */
+	private void initialize(DesignerExtensionConnector connector) {
+		root = new FlowPanel();
+		add(root);
+
+		if (connector.getResourceUrl(ComponentConstants.ICON_RESOURCE) != null) {
+			VImage image = new VImage();
+			root.add(image);
+			String iconUrl = connector.getResourceUrl(ComponentConstants.ICON_RESOURCE);
+			image.setUrl(iconUrl);
+		}
+
+		if (connector.getState().supportsAlignments) {
+			alignmentWidget = new OAlignmentWidget();
+			alignmentWidget.setTitle(connector.getState().descriptionAlignments);
+			root.add(alignmentWidget);
+			alignmentWidget.setAlignmentChangedHandler(connector);
+		}
+
+		if (connector.getState().supportsMargins) {
+			marginButton = new OButtonWidget();
+			marginButton.addStyleName(OIConstants.EVENT_TYPE__SWITCH_MARGIN);
+			marginButton.setCustomEventType(OIConstants.EVENT_TYPE__SWITCH_MARGIN);
+			marginButton.setTitle(connector.getState().descriptionMargins);
+			root.add(marginButton);
+			marginButton.setClickHandler(connector);
+		}
+		if (connector.getState().supportsSpacing) {
+			spacingButton = new OButtonWidget();
+			spacingButton.addStyleName(OIConstants.EVENT_TYPE__SWITCH_SPACING);
+			spacingButton.setCustomEventType(OIConstants.EVENT_TYPE__SWITCH_SPACING);
+			spacingButton.setTitle(connector.getState().descriptionSpacing);
+			root.add(spacingButton);
+			spacingButton.setClickHandler(connector);
+		}
+
+		if (connector.getState().supportsEditable) {
+			editableButton = new OButtonWidget();
+			editableButton.addStyleName(OIConstants.EVENT_TYPE__SWITCH_EDITABLE);
+			editableButton.setCustomEventType(OIConstants.EVENT_TYPE__SWITCH_EDITABLE);
+			editableButton.setTitle(connector.getState().descriptionEditable);
+			root.add(editableButton);
+			editableButton.setClickHandler(connector);
+		}
+
+		if (connector.getState().supportsRemove) {
+			removeButton = new OButtonWidget();
+			removeButton.addStyleName(OIConstants.EVENT_TYPE__REMOVE_CHILD);
+			removeButton.setCustomEventType(OIConstants.EVENT_TYPE__REMOVE_CHILD);
+			removeButton.setTitle(connector.getState().descriptionRemove);
+			root.add(removeButton);
+			removeButton.setClickHandler(connector);
+		}
+
+		if (connector.getState().supportsAdd) {
+			addButton = new OButtonWidget();
+			addButton.addStyleName(OIConstants.EVENT_TYPE__ADD_CHILD);
+			addButton.setCustomEventType(OIConstants.EVENT_TYPE__ADD_CHILD);
+			addButton.setTitle(connector.getState().descriptionAdd);
+			root.add(addButton);
+			addButton.setClickHandler(connector);
+		}
+
+		if (connector.getState().supportsPropertiesDialog) {
+			openPropertiesButton = new OButtonWidget();
+			openPropertiesButton.addStyleName(OIConstants.EVENT_TYPE__OPEN_PROPERTIES);
+			openPropertiesButton.setCustomEventType(OIConstants.EVENT_TYPE__OPEN_PROPERTIES);
+			openPropertiesButton.setTitle(connector.getState().descriptionPropertiesDialog);
+			root.add(openPropertiesButton);
+			openPropertiesButton.setClickHandler(connector);
+		}
+	}
+
+	/**
+	 * Sets the connector.
+	 *
+	 * @param connector the new connector
+	 */
+	public void setConnector(DesignerExtensionConnector connector) {
+		initialize(connector);
+	}
+
+	/**
+	 * Sets the alignment info.
+	 *
+	 * @param alignment the new alignment info
+	 */
+	public void setAlignmentInfo(AlignmentInfo alignment) {
+		if(alignmentWidget != null) {
+			alignmentWidget.setAlignmentInfo(alignment);
+		}
+	}
+
+	/**
+	 * Destroy.
+	 */
+	public void destroy() {
+		if (alignmentWidget != null) {
+			alignmentWidget.destroy();
+		}
+		if (editableButton != null) {
+			editableButton.destroy();
+		}
+		if (removeButton != null) {
+			removeButton.destroy();
+		}
+		if (addButton != null) {
+			addButton.destroy();
+		}
+		if (openPropertiesButton != null) {
+			openPropertiesButton.destroy();
+		}
+		if (spacingButton != null) {
+			spacingButton.destroy();
+		}
+		if (marginButton != null) {
+			marginButton.destroy();
+		}
+	}
+}
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/OIConstants.java b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/OIConstants.java
new file mode 100644
index 0000000..be52a95
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/OIConstants.java
@@ -0,0 +1,41 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.designer.overlay.client;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Interface OIConstants.
+ */
+public interface OIConstants {
+
+	/** The Constant EVENT_TYPE__REMOVE_CHILD. */
+	// layout child properties
+	public static final String EVENT_TYPE__REMOVE_CHILD = "removeChild";
+	
+	/** The Constant EVENT_TYPE__ADD_CHILD. */
+	public static final String EVENT_TYPE__ADD_CHILD = "addChild";
+	
+	/** The Constant EVENT_TYPE__SWITCH_EDITABLE. */
+	public static final String EVENT_TYPE__SWITCH_EDITABLE = "switchEditable";
+	
+	/** The Constant EVENT_TYPE__OPEN_PROPERTIES. */
+	public static final String EVENT_TYPE__OPEN_PROPERTIES = "openProperties";
+
+	/** The Constant EVENT_TYPE__SWITCH_MARGIN. */
+	// layout properties
+	public static final String EVENT_TYPE__SWITCH_MARGIN = "switchMargin";
+	
+	/** The Constant EVENT_TYPE__SWITCH_SPACING. */
+	public static final String EVENT_TYPE__SWITCH_SPACING = "switchSpacing";
+
+}
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/AlignmentInfo.java b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/AlignmentInfo.java
new file mode 100644
index 0000000..f0ea1da
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/AlignmentInfo.java
@@ -0,0 +1,125 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Alignment enum with FILL literals.
+ */
+public enum AlignmentInfo {
+	
+	/** The bottom left. */
+	BOTTOM_LEFT, 
+ /** The bottom center. */
+ BOTTOM_CENTER, 
+ /** The bottom right. */
+ BOTTOM_RIGHT, 
+ /** The bottom fill. */
+ BOTTOM_FILL, 
+ /** The middle left. */
+ MIDDLE_LEFT, 
+ /** The middle center. */
+ MIDDLE_CENTER, 
+ /** The middle right. */
+ MIDDLE_RIGHT, 
+ /** The middle fill. */
+ MIDDLE_FILL, 
+ /** The top left. */
+ TOP_LEFT, 
+ /** The top center. */
+ TOP_CENTER, 
+ /** The top right. */
+ TOP_RIGHT, 
+ /** The top fill. */
+ TOP_FILL, 
+ /** The fill fill. */
+ FILL_FILL, 
+ /** The fill left. */
+ FILL_LEFT, 
+ /** The fill center. */
+ FILL_CENTER, 
+ /** The fill right. */
+ FILL_RIGHT;
+
+	/**
+	 * Checks if is top.
+	 *
+	 * @return true, if is top
+	 */
+	public boolean isTop() {
+		return this == TOP_LEFT || this == TOP_CENTER || this == TOP_RIGHT || this == TOP_FILL;
+	}
+
+	/**
+	 * Checks if is middle.
+	 *
+	 * @return true, if is middle
+	 */
+	public boolean isMiddle() {
+		return this == MIDDLE_LEFT || this == MIDDLE_CENTER || this == MIDDLE_RIGHT || this == MIDDLE_FILL;
+	}
+
+	/**
+	 * Checks if is bottom.
+	 *
+	 * @return true, if is bottom
+	 */
+	public boolean isBottom() {
+		return this == BOTTOM_LEFT || this == BOTTOM_CENTER || this == BOTTOM_RIGHT || this == BOTTOM_FILL;
+	}
+
+	/**
+	 * Checks if is left.
+	 *
+	 * @return true, if is left
+	 */
+	public boolean isLeft() {
+		return this == TOP_LEFT || this == MIDDLE_LEFT || this == BOTTOM_LEFT || this == FILL_LEFT;
+	}
+
+	/**
+	 * Checks if is center.
+	 *
+	 * @return true, if is center
+	 */
+	public boolean isCenter() {
+		return this == TOP_CENTER || this == MIDDLE_CENTER || this == BOTTOM_CENTER || this == FILL_CENTER;
+	}
+
+	/**
+	 * Checks if is right.
+	 *
+	 * @return true, if is right
+	 */
+	public boolean isRight() {
+		return this == TOP_RIGHT || this == MIDDLE_RIGHT || this == BOTTOM_RIGHT || this == FILL_RIGHT;
+	}
+
+	/**
+	 * Checks if is horizontal fill.
+	 *
+	 * @return true, if is horizontal fill
+	 */
+	public boolean isHorizontalFill() {
+		return this == TOP_FILL || this == MIDDLE_FILL || this == BOTTOM_FILL || this == FILL_FILL;
+	}
+
+	/**
+	 * Checks if is vertical fill.
+	 *
+	 * @return true, if is vertical fill
+	 */
+	public boolean isVerticalFill() {
+		return this == FILL_LEFT || this == FILL_CENTER || this == FILL_RIGHT || this == FILL_FILL;
+	}
+}
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/OAlignmentChangedEvent.java b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/OAlignmentChangedEvent.java
new file mode 100644
index 0000000..607aab7
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/OAlignmentChangedEvent.java
@@ -0,0 +1,73 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class OAlignmentChangedEvent.
+ */
+public class OAlignmentChangedEvent extends GwtEvent<OAlignmentChangedHandler> {
+
+	/**
+	 * Event type for alignment change events.
+	 */
+	private static final Type<OAlignmentChangedHandler> TYPE = new Type<OAlignmentChangedHandler>();
+
+	/** The alignment. */
+	private final AlignmentInfo alignment;
+
+	/**
+	 * Instantiates a new o alignment changed event.
+	 *
+	 * @param alignment the alignment
+	 */
+	public OAlignmentChangedEvent(AlignmentInfo alignment) {
+		this.alignment = alignment;
+	}
+
+	/**
+	 * Gets the alignment.
+	 *
+	 * @return the alignment
+	 */
+	public AlignmentInfo getAlignment() {
+		return alignment;
+	}
+
+	/**
+	 * Gets the type.
+	 *
+	 * @return the type
+	 */
+	public static Type<OAlignmentChangedHandler> getType() {
+		return TYPE;
+	}
+
+	/* (non-Javadoc)
+	 * @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
+	 */
+	@Override
+	public final Type<OAlignmentChangedHandler> getAssociatedType() {
+		return TYPE;
+	}
+
+	/* (non-Javadoc)
+	 * @see com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.EventHandler)
+	 */
+	@Override
+	protected void dispatch(OAlignmentChangedHandler handler) {
+		handler.onAlignmentChanged(this);
+	}
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/OAlignmentChangedHandler.java b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/OAlignmentChangedHandler.java
new file mode 100644
index 0000000..2415fb7
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/OAlignmentChangedHandler.java
@@ -0,0 +1,30 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets;
+
+import com.google.gwt.event.shared.EventHandler;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Gets informed about the event.
+ */
+public interface OAlignmentChangedHandler extends EventHandler {
+
+	/**
+	 * Is called if the alignment changes.
+	 *
+	 * @param event the event
+	 */
+	void onAlignmentChanged(OAlignmentChangedEvent event);
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/OAlignmentWidget.java b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/OAlignmentWidget.java
new file mode 100644
index 0000000..1cf651f
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/OAlignmentWidget.java
@@ -0,0 +1,433 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets;
+
+import com.google.gwt.dom.client.Element;
+import com.google.gwt.dom.client.EventTarget;
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.Event;
+import com.google.gwt.user.client.EventListener;
+import com.google.gwt.user.client.ui.SimplePanel;
+
+// TODO: Auto-generated Javadoc
+/**
+ * A widget which shows alignment of components.
+ */
+public class OAlignmentWidget extends SimplePanel {
+
+	/** The Constant O_SELECTED. */
+	private static final String O_SELECTED = "o-selected";
+
+	/** The Constant CLASSNAME. */
+	private static final String CLASSNAME = "o-alignment-widget";
+
+	/** The alignment div. */
+	// contains the single alignment buttons and also the fill buttons
+	private Element alignmentDiv = DOM.createDiv();
+	
+	/** The alignment single div. */
+	// contains the single alignment button without fill buttons
+	private Element alignmentSingleDiv = DOM.createDiv();
+	
+	/** The al_top_left_ div. */
+	private Element al_top_left_Div = DOM.createDiv();
+	
+	/** The al_top_center_ div. */
+	private Element al_top_center_Div = DOM.createDiv();
+	
+	/** The al_top_right_ div. */
+	private Element al_top_right_Div = DOM.createDiv();
+	
+	/** The al_middle_left_ div. */
+	private Element al_middle_left_Div = DOM.createDiv();
+	
+	/** The al_middle_center_ div. */
+	private Element al_middle_center_Div = DOM.createDiv();
+	
+	/** The al_middle_right_ div. */
+	private Element al_middle_right_Div = DOM.createDiv();
+	
+	/** The al_bottom_left_ div. */
+	private Element al_bottom_left_Div = DOM.createDiv();
+	
+	/** The al_bottom_center_ div. */
+	private Element al_bottom_center_Div = DOM.createDiv();
+	
+	/** The al_bottom_right_ div. */
+	private Element al_bottom_right_Div = DOM.createDiv();
+
+	/** The selected single div. */
+	private Element selectedSingleDiv;
+
+	/** The handler. */
+	private OAlignmentChangedHandler handler;
+
+	/** The al_v_fill_ div. */
+	// fill divs
+	private Element al_v_fill_Div = DOM.createDiv();
+	
+	/** The al_h_fill_ div. */
+	private Element al_h_fill_Div = DOM.createDiv();
+
+	/**
+	 * Instantiates a new o alignment widget.
+	 */
+	public OAlignmentWidget() {
+		getElement().setClassName(CLASSNAME);
+		initDOM();
+	}
+
+	/**
+	 * Inits the dom.
+	 */
+	private void initDOM() {
+		initializeAlignmentDivs();
+	}
+
+	/**
+	 * Initialize alignment divs.
+	 */
+	private void initializeAlignmentDivs() {
+
+		getElement().appendChild(alignmentDiv);
+
+		alignmentDiv.appendChild(alignmentSingleDiv);
+		alignmentSingleDiv.appendChild(al_top_left_Div);
+		alignmentSingleDiv.appendChild(al_top_center_Div);
+		alignmentSingleDiv.appendChild(al_top_right_Div);
+		alignmentSingleDiv.appendChild(al_middle_left_Div);
+		alignmentSingleDiv.appendChild(al_middle_center_Div);
+		alignmentSingleDiv.appendChild(al_middle_right_Div);
+		alignmentSingleDiv.appendChild(al_bottom_left_Div);
+		alignmentSingleDiv.appendChild(al_bottom_center_Div);
+		alignmentSingleDiv.appendChild(al_bottom_right_Div);
+
+		alignmentDiv.appendChild(al_h_fill_Div);
+		alignmentDiv.appendChild(al_v_fill_Div);
+
+		alignmentDiv.setClassName("alignment");
+		alignmentSingleDiv.setClassName("singles");
+
+		al_top_left_Div.setClassName("topleft");
+		al_top_center_Div.setClassName("topcenter");
+		al_top_right_Div.setClassName("topright");
+		al_middle_left_Div.setClassName("middleleft");
+		al_middle_center_Div.setClassName("middlecenter");
+		al_middle_right_Div.setClassName("middleright");
+		al_bottom_left_Div.setClassName("bottomleft");
+		al_bottom_center_Div.setClassName("bottomcenter");
+		al_bottom_right_Div.setClassName("bottomright");
+
+		al_h_fill_Div.setClassName("hfill");
+		al_v_fill_Div.setClassName("vfill");
+
+		Event.sinkEvents(al_top_left_Div, Event.ONCLICK);
+		Event.sinkEvents(al_top_center_Div, Event.ONCLICK);
+		Event.sinkEvents(al_top_right_Div, Event.ONCLICK);
+		Event.sinkEvents(al_middle_left_Div, Event.ONCLICK);
+		Event.sinkEvents(al_middle_center_Div, Event.ONCLICK);
+		Event.sinkEvents(al_middle_right_Div, Event.ONCLICK);
+		Event.sinkEvents(al_bottom_left_Div, Event.ONCLICK);
+		Event.sinkEvents(al_bottom_center_Div, Event.ONCLICK);
+		Event.sinkEvents(al_bottom_right_Div, Event.ONCLICK);
+
+		Event.sinkEvents(al_h_fill_Div, Event.ONCLICK);
+		Event.sinkEvents(al_v_fill_Div, Event.ONCLICK);
+
+		/*
+		 * Listener to get information about clicked divs.
+		 */
+		EventListener alignmentEvents = new EventListener() {
+			@Override
+			public void onBrowserEvent(Event event) {
+				EventTarget target = event.getCurrentEventTarget();
+				Element element = Element.as(target);
+
+				if (element == al_h_fill_Div || element == al_v_fill_Div) {
+					if (element.hasClassName(O_SELECTED)) {
+						element.removeClassName(O_SELECTED);
+					} else {
+						element.addClassName(O_SELECTED);
+					}
+				} else {
+					selectedSingleDiv = element;
+				}
+
+				AlignmentInfo newAlignment = calcAlignmentInfoFromSelection();
+				setAlignmentInfo(newAlignment);
+
+				if (handler != null) {
+					handler.onAlignmentChanged(new OAlignmentChangedEvent(newAlignment));
+				}
+			}
+		};
+
+		Event.setEventListener(al_top_left_Div, alignmentEvents);
+		Event.setEventListener(al_top_center_Div, alignmentEvents);
+		Event.setEventListener(al_top_right_Div, alignmentEvents);
+		Event.setEventListener(al_middle_left_Div, alignmentEvents);
+		Event.setEventListener(al_middle_center_Div, alignmentEvents);
+		Event.setEventListener(al_middle_right_Div, alignmentEvents);
+		Event.setEventListener(al_bottom_left_Div, alignmentEvents);
+		Event.setEventListener(al_bottom_center_Div, alignmentEvents);
+		Event.setEventListener(al_bottom_right_Div, alignmentEvents);
+
+		Event.setEventListener(al_h_fill_Div, alignmentEvents);
+		Event.setEventListener(al_v_fill_Div, alignmentEvents);
+
+		setAlignmentInfo(AlignmentInfo.TOP_LEFT);
+	}
+
+	/**
+	 * Calculates the {@link AlignmentInfo} for ui selections.
+	 *
+	 * @return the alignment info
+	 */
+	protected AlignmentInfo calcAlignmentInfoFromSelection() {
+		boolean isFillHorizontal = isFillHorizontalSelected();
+		boolean isFillVertical = isFillVerticalSelected();
+
+		if (isFillHorizontal && isFillVertical) {
+			return AlignmentInfo.FILL_FILL;
+		}
+
+		AlignmentInfo singleInfo = getSingleDivAlignment();
+		if (singleInfo == null) {
+			singleInfo = AlignmentInfo.TOP_LEFT;
+		}
+		if (!isFillHorizontal && !isFillVertical) {
+			return singleInfo;
+		}
+
+		if (isFillHorizontal) {
+			if (singleInfo.isTop()) {
+				return AlignmentInfo.TOP_FILL;
+			} else if (singleInfo.isMiddle()) {
+				return AlignmentInfo.MIDDLE_FILL;
+			} else if (singleInfo.isBottom()) {
+				return AlignmentInfo.BOTTOM_FILL;
+			}
+		} else if (isFillVertical) {
+			if (singleInfo.isLeft()) {
+				return AlignmentInfo.FILL_LEFT;
+			} else if (singleInfo.isCenter()) {
+				return AlignmentInfo.FILL_CENTER;
+			} else if (singleInfo.isRight()) {
+				return AlignmentInfo.FILL_RIGHT;
+			}
+		}
+
+		return AlignmentInfo.TOP_FILL;
+	}
+
+	/**
+	 * Resets all alignment infos.
+	 */
+	private void clearAll() {
+		clearSingleElements();
+		al_h_fill_Div.removeClassName(O_SELECTED);
+		al_v_fill_Div.removeClassName(O_SELECTED);
+	}
+
+	/**
+	 * Resets all alignment infos except h_fill and v_fill.
+	 */
+	private void clearSingleElements() {
+		al_top_left_Div.removeClassName(O_SELECTED);
+		al_top_center_Div.removeClassName(O_SELECTED);
+		al_top_right_Div.removeClassName(O_SELECTED);
+		al_middle_left_Div.removeClassName(O_SELECTED);
+		al_middle_center_Div.removeClassName(O_SELECTED);
+		al_middle_right_Div.removeClassName(O_SELECTED);
+		al_bottom_left_Div.removeClassName(O_SELECTED);
+		al_bottom_center_Div.removeClassName(O_SELECTED);
+		al_bottom_right_Div.removeClassName(O_SELECTED);
+	}
+
+	/**
+	 * Sets the alignment info.
+	 *
+	 * @param alignmentInfo the new alignment info
+	 */
+	public void setAlignmentInfo(AlignmentInfo alignmentInfo) {
+
+		if (alignmentInfo == null) {
+			alignmentInfo = AlignmentInfo.TOP_LEFT;
+		}
+
+		clearAll();
+
+		switch (alignmentInfo) {
+		case BOTTOM_CENTER:
+			al_bottom_center_Div.addClassName(O_SELECTED);
+			break;
+		case BOTTOM_FILL:
+			al_h_fill_Div.addClassName(O_SELECTED);
+			al_bottom_left_Div.addClassName(O_SELECTED);
+			al_bottom_center_Div.addClassName(O_SELECTED);
+			al_bottom_right_Div.addClassName(O_SELECTED);
+			break;
+		case BOTTOM_LEFT:
+			al_bottom_left_Div.addClassName(O_SELECTED);
+			break;
+		case BOTTOM_RIGHT:
+			al_bottom_right_Div.addClassName(O_SELECTED);
+			break;
+		case FILL_CENTER:
+			al_v_fill_Div.addClassName(O_SELECTED);
+			al_top_center_Div.addClassName(O_SELECTED);
+			al_middle_center_Div.addClassName(O_SELECTED);
+			al_bottom_center_Div.addClassName(O_SELECTED);
+			break;
+		case FILL_FILL:
+			al_v_fill_Div.addClassName(O_SELECTED);
+			al_h_fill_Div.addClassName(O_SELECTED);
+			al_top_left_Div.addClassName(O_SELECTED);
+			al_top_center_Div.addClassName(O_SELECTED);
+			al_top_right_Div.addClassName(O_SELECTED);
+			al_middle_left_Div.addClassName(O_SELECTED);
+			al_middle_center_Div.addClassName(O_SELECTED);
+			al_middle_right_Div.addClassName(O_SELECTED);
+			al_bottom_left_Div.addClassName(O_SELECTED);
+			al_bottom_center_Div.addClassName(O_SELECTED);
+			al_bottom_right_Div.addClassName(O_SELECTED);
+			break;
+		case FILL_LEFT:
+			al_v_fill_Div.addClassName(O_SELECTED);
+			al_top_left_Div.addClassName(O_SELECTED);
+			al_middle_left_Div.addClassName(O_SELECTED);
+			al_bottom_left_Div.addClassName(O_SELECTED);
+			break;
+		case FILL_RIGHT:
+			al_v_fill_Div.addClassName(O_SELECTED);
+			al_top_right_Div.addClassName(O_SELECTED);
+			al_middle_right_Div.addClassName(O_SELECTED);
+			al_bottom_right_Div.addClassName(O_SELECTED);
+			break;
+		case MIDDLE_CENTER:
+			al_middle_center_Div.addClassName(O_SELECTED);
+			break;
+		case MIDDLE_FILL:
+			al_h_fill_Div.addClassName(O_SELECTED);
+			al_middle_left_Div.addClassName(O_SELECTED);
+			al_middle_center_Div.addClassName(O_SELECTED);
+			al_middle_right_Div.addClassName(O_SELECTED);
+			break;
+		case MIDDLE_LEFT:
+			al_middle_left_Div.addClassName(O_SELECTED);
+			break;
+		case MIDDLE_RIGHT:
+			al_middle_right_Div.addClassName(O_SELECTED);
+			break;
+		case TOP_CENTER:
+			al_top_center_Div.addClassName(O_SELECTED);
+			break;
+		case TOP_FILL:
+			al_h_fill_Div.addClassName(O_SELECTED);
+			al_top_left_Div.addClassName(O_SELECTED);
+			al_top_center_Div.addClassName(O_SELECTED);
+			al_top_right_Div.addClassName(O_SELECTED);
+			break;
+		case TOP_LEFT:
+			al_top_left_Div.addClassName(O_SELECTED);
+			break;
+		case TOP_RIGHT:
+			al_top_right_Div.addClassName(O_SELECTED);
+			break;
+		}
+	}
+
+	/**
+	 * Gets the single div alignment.
+	 *
+	 * @return the single div alignment
+	 */
+	protected AlignmentInfo getSingleDivAlignment() {
+		if (selectedSingleDiv == null) {
+			return null;
+		}
+
+		if (selectedSingleDiv == al_top_left_Div) {
+			return AlignmentInfo.TOP_LEFT;
+		} else if (selectedSingleDiv == al_top_center_Div) {
+			return AlignmentInfo.TOP_CENTER;
+		} else if (selectedSingleDiv == al_top_right_Div) {
+			return AlignmentInfo.TOP_RIGHT;
+		} else if (selectedSingleDiv == al_middle_left_Div) {
+			return AlignmentInfo.MIDDLE_LEFT;
+		} else if (selectedSingleDiv == al_middle_center_Div) {
+			return AlignmentInfo.MIDDLE_CENTER;
+		} else if (selectedSingleDiv == al_middle_right_Div) {
+			return AlignmentInfo.MIDDLE_RIGHT;
+		} else if (selectedSingleDiv == al_bottom_left_Div) {
+			return AlignmentInfo.BOTTOM_LEFT;
+		} else if (selectedSingleDiv == al_bottom_center_Div) {
+			return AlignmentInfo.BOTTOM_CENTER;
+		} else if (selectedSingleDiv == al_bottom_right_Div) {
+			return AlignmentInfo.BOTTOM_RIGHT;
+		}
+		return null;
+	}
+
+	/**
+	 * Checks if is fill horizontal selected.
+	 *
+	 * @return true, if is fill horizontal selected
+	 */
+	protected boolean isFillHorizontalSelected() {
+		return al_h_fill_Div.hasClassName(O_SELECTED);
+	}
+
+	/**
+	 * Checks if is fill vertical selected.
+	 *
+	 * @return true, if is fill vertical selected
+	 */
+	protected boolean isFillVerticalSelected() {
+		return al_v_fill_Div.hasClassName(O_SELECTED);
+	}
+
+	/**
+	 * Gets the alignment changed handler.
+	 *
+	 * @return the alignment changed handler
+	 */
+	public OAlignmentChangedHandler getAlignmentChangedHandler() {
+		return handler;
+	}
+
+	/**
+	 * Sets the alignment changed handler.
+	 *
+	 * @param handler the new alignment changed handler
+	 */
+	public void setAlignmentChangedHandler(OAlignmentChangedHandler handler) {
+		this.handler = handler;
+	}
+
+	/**
+	 * Destroy.
+	 */
+	public void destroy() {
+		Event.setEventListener(al_top_left_Div, null);
+		Event.setEventListener(al_top_center_Div, null);
+		Event.setEventListener(al_top_right_Div, null);
+		Event.setEventListener(al_middle_left_Div, null);
+		Event.setEventListener(al_middle_center_Div, null);
+		Event.setEventListener(al_middle_right_Div, null);
+		Event.setEventListener(al_bottom_left_Div, null);
+		Event.setEventListener(al_bottom_center_Div, null);
+		Event.setEventListener(al_bottom_right_Div, null);
+	}
+
+}
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/OButtonClickEvent.java b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/OButtonClickEvent.java
new file mode 100644
index 0000000..2bc06a0
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/OButtonClickEvent.java
@@ -0,0 +1,87 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class OButtonClickEvent.
+ */
+public class OButtonClickEvent extends GwtEvent<OButtonClickHandler> {
+
+	/**
+	 * Event type for resize end events.
+	 */
+	private static final Type<OButtonClickHandler> TYPE = new Type<OButtonClickHandler>();
+	
+	/** The widget. */
+	private final OButtonWidget widget;
+	
+	/** The custom event type. */
+	private final String customEventType;
+
+	/**
+	 * Instantiates a new o button click event.
+	 *
+	 * @param widget the widget
+	 * @param customEventType the custom event type
+	 */
+	public OButtonClickEvent(OButtonWidget widget, String customEventType) {
+		this.widget = widget;
+		this.customEventType = customEventType;
+	}
+
+	/**
+	 * Gets the widget.
+	 *
+	 * @return the widget
+	 */
+	public OButtonWidget getWidget() {
+		return widget;
+	}
+
+	/**
+	 * Gets the custom event type.
+	 *
+	 * @return the custom event type
+	 */
+	public String getCustomEventType() {
+		return customEventType;
+	}
+
+	/**
+	 * Gets the event type associated with resize end events.
+	 *
+	 * @return the handler type
+	 */
+	public static Type<OButtonClickHandler> getType() {
+		return TYPE;
+	}
+
+	/* (non-Javadoc)
+	 * @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
+	 */
+	@Override
+	public final Type<OButtonClickHandler> getAssociatedType() {
+		return TYPE;
+	}
+
+	/* (non-Javadoc)
+	 * @see com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.EventHandler)
+	 */
+	@Override
+	protected void dispatch(OButtonClickHandler handler) {
+		handler.clicked(this);
+	}
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/OButtonClickHandler.java b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/OButtonClickHandler.java
new file mode 100644
index 0000000..2ed584e
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/OButtonClickHandler.java
@@ -0,0 +1,30 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets;
+
+import com.google.gwt.event.shared.EventHandler;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Interface OButtonClickHandler.
+ */
+public interface OButtonClickHandler extends EventHandler {
+
+	/**
+	 * Clicked.
+	 *
+	 * @param event the event
+	 */
+	void clicked(OButtonClickEvent event);
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/OButtonWidget.java b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/OButtonWidget.java
new file mode 100644
index 0000000..c5f5e84
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/OButtonWidget.java
@@ -0,0 +1,125 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets;
+
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.Event;
+import com.google.gwt.user.client.ui.Button;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class OButtonWidget.
+ */
+public class OButtonWidget extends Button implements ClickHandler {
+
+	/** The Constant CLASSNAME. */
+	private static final String CLASSNAME = "o-button-widget";
+
+	/** The handler. */
+	private OButtonClickHandler handler;
+
+	/** The click pending. */
+	private boolean clickPending;
+
+	/** The custom event type. */
+	private String customEventType;
+	
+	/**
+	 * Instantiates a new o button widget.
+	 */
+	public OButtonWidget() {
+		getElement().setClassName(CLASSNAME);
+		initDOM();
+	}
+
+	/**
+	 * Inits the dom.
+	 */
+	private void initDOM() {
+		addClickHandler(this);
+		sinkEvents(Event.ONMOUSEDOWN | Event.ONLOAD | Event.ONMOUSEMOVE);
+	}
+
+	/**
+	 * Gets the click handler.
+	 *
+	 * @return the click handler
+	 */
+	public OButtonClickHandler getClickHandler() {
+		return handler;
+	}
+
+	/**
+	 * Sets the click handler.
+	 *
+	 * @param handler the new click handler
+	 */
+	public void setClickHandler(OButtonClickHandler handler) {
+		this.handler = handler;
+	}
+	
+	/**
+	 * Gets the custom event type.
+	 *
+	 * @return the custom event type
+	 */
+	public String getCustomEventType() {
+		return customEventType;
+	}
+
+	/**
+	 * Sets the custom event type.
+	 *
+	 * @param customEventType the new custom event type
+	 */
+	public void setCustomEventType(String customEventType) {
+		this.customEventType = customEventType;
+	}
+
+	/**
+	 * Destroy.
+	 */
+	public void destroy() {
+	}
+
+	/* (non-Javadoc)
+	 * @see com.google.gwt.event.dom.client.ClickHandler#onClick(com.google.gwt.event.dom.client.ClickEvent)
+	 */
+	@Override
+	public void onClick(ClickEvent event) {
+		if (clickPending) {
+			handler.clicked(new OButtonClickEvent(this, customEventType));
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see com.google.gwt.user.client.ui.Widget#onBrowserEvent(com.google.gwt.user.client.Event)
+	 */
+	@Override
+	public void onBrowserEvent(Event event) {
+		super.onBrowserEvent(event);
+
+		if (DOM.eventGetType(event) == Event.ONMOUSEDOWN && event.getButton() == Event.BUTTON_LEFT) {
+			clickPending = true;
+		} else if (DOM.eventGetType(event) == Event.ONMOUSEMOVE) {
+			clickPending = false;
+		} else if (DOM.eventGetType(event) == Event.ONMOUSEOUT) {
+			if (clickPending) {
+				click();
+			}
+			clickPending = false;
+		}
+	}
+}
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/OOverlayController.java b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/OOverlayController.java
new file mode 100644
index 0000000..a5a25d1
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/client/widgets/OOverlayController.java
@@ -0,0 +1,174 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.designer.overlay.client.widgets;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Stack;
+
+import org.eclipse.osbp.vaadin.addons.designer.overlay.client.OAbstractOverlay;
+
+import com.google.gwt.dom.client.Element;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * Controls, that only one overlay is opened at a time. The delay for closing
+ * the overlay is too long to avoid multiple overlays.
+ */
+public class OOverlayController {
+
+	/** The Constant instance. */
+	private static final OOverlayController instance = new OOverlayController();
+
+	/**
+	 * Gets the single instance of OOverlayController.
+	 *
+	 * @return single instance of OOverlayController
+	 */
+	public static OOverlayController getInstance() {
+		return instance;
+	}
+
+	/** The show timer. */
+	// private Timer showTimer;
+
+	/** The current opened. */
+	private OAbstractOverlay currentOpened;
+
+	private Map<Element, OAbstractOverlay> map = new HashMap<>();
+	private Stack<Element> navigationStack = new Stack<>();
+
+	/**
+	 * Instantiates a new o overlay controller.
+	 */
+	private OOverlayController() {
+
+	}
+
+	/**
+	 * Registers the element with the overlay. This is required to use arrow UP
+	 * to navigate to the next higher overlay in the element hierarchy.
+	 * 
+	 * @param element
+	 * @param overlay
+	 */
+	public void register(Element element, OAbstractOverlay overlay) {
+		map.put(element, overlay);
+	}
+
+	/**
+	 * Unregisters the element with its overlay.
+	 * 
+	 * @param element
+	 */
+	public void unregister(Element element) {
+		map.remove(element);
+	}
+
+	/**
+	 * Uses the current opened overlay and navigates up the element hierarchy
+	 * until an element associated with an overlay could be found. This overlay
+	 * will be shown.
+	 */
+	public void navigateUp() {
+		if (currentOpened == null) {
+			navigationStack.clear();
+			return;
+		}
+
+		Element element = currentOpened.getOwner().getElement();
+		OAbstractOverlay nextHigher = findOverlayInParent(element);
+		if (nextHigher != null) {
+			navigationStack.push(element);
+			Widget widget = nextHigher.getOwner();
+			show(nextHigher, widget.getElement().getAbsoluteLeft(), widget.getElement().getAbsoluteTop(), false);
+		}
+	}
+
+	/**
+	 * Uses the current opened overlay and navigates down the last opened
+	 * overlays.
+	 */
+	public void navigateDown() {
+		if (currentOpened == null || navigationStack.isEmpty()) {
+			navigationStack.clear();
+			return;
+		}
+
+		Element lastElement = navigationStack.pop();
+		if (lastElement != null) {
+			show(map.get(lastElement), lastElement.getAbsoluteLeft(), lastElement.getAbsoluteTop(), false);
+		}
+	}
+
+	private OAbstractOverlay findOverlayInParent(Element element) {
+		Element parent = element.getParentElement();
+		if (parent == null) {
+			return null;
+		}
+		if (map.containsKey(parent)) {
+			return map.get(parent);
+		}
+
+		return findOverlayInParent(parent);
+	}
+
+	/**
+	 * Notifies the controller, that a new overlay is about to show. The
+	 * controller will ensure, that a currently opened overlay will be closed
+	 * Immediately.
+	 *
+	 * @param overlay
+	 *            the overlay
+	 * @param left
+	 *            the left
+	 * @param top
+	 *            the top
+	 */
+	public void show(OAbstractOverlay overlay, int left, int top) {
+		show(overlay, left, top, true);
+	}
+
+	private void show(OAbstractOverlay overlay, int left, int top, boolean clearStack) {
+		if (clearStack) {
+			navigationStack.clear();
+		}
+
+		if (currentOpened == overlay && currentOpened.isShowing()) {
+			return;
+		}
+
+		if (currentOpened != null) {
+			currentOpened.hide();
+		}
+
+		overlay.setPopupPosition(left, top);
+		currentOpened = overlay;
+
+		if (currentOpened != null) {
+			currentOpened.show();
+		}
+	}
+
+	/**
+	 * Closes the currently opened overlay.
+	 */
+	public void close() {
+		navigationStack.clear();
+		if (currentOpened != null) {
+			currentOpened.hide();
+			currentOpened = null;
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/public/designer_overlay/add.png b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/public/designer_overlay/add.png
new file mode 100644
index 0000000..64c8a86
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/public/designer_overlay/add.png
Binary files differ
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/public/designer_overlay/delete.gif b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/public/designer_overlay/delete.gif
new file mode 100644
index 0000000..2ff6678
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/public/designer_overlay/delete.gif
Binary files differ
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/public/designer_overlay/edit_properties.gif b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/public/designer_overlay/edit_properties.gif
new file mode 100644
index 0000000..94eedf6
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/public/designer_overlay/edit_properties.gif
Binary files differ
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/public/designer_overlay/margin.gif b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/public/designer_overlay/margin.gif
new file mode 100644
index 0000000..9be7aa5
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/public/designer_overlay/margin.gif
Binary files differ
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/public/designer_overlay/openProperties.gif b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/public/designer_overlay/openProperties.gif
new file mode 100644
index 0000000..1dc19a3
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/public/designer_overlay/openProperties.gif
Binary files differ
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/public/designer_overlay/spacing.gif b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/public/designer_overlay/spacing.gif
new file mode 100644
index 0000000..8eb28e6
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/public/designer_overlay/spacing.gif
Binary files differ
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/public/designer_overlay/styles.css b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/public/designer_overlay/styles.css
new file mode 100644
index 0000000..3c34f1c
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/src/org/eclipse/osbp/vaadin/addons/designer/overlay/public/designer_overlay/styles.css
@@ -0,0 +1,193 @@
+.o-designer-overlay .popupContent {
+	height: 32px;
+	width: 100%;
+	display: block;
+	background-color: black;
+	/* 	border-radius: 3px; */
+	/* 	border: 2px solid black; */
+	padding: 3px;
+}
+
+.o-designer-overlayed {
+	border-radius: 3px !important;
+	border: 2px solid blue !important;
+}
+
+.o-designer-overlay .o-alignment-widget {
+	position: relative;
+	width: 32px;
+	height: 32px;
+	background-color: #efeef1;
+	float: left;
+	margin-left: 3px;
+}
+
+.o-alignment-widget .alignment {
+	top: 0px;
+	left: 0px;
+	display: block;
+	border: 1px solid white;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	height: 32px;
+	width: 32px;
+	position: absolute;
+	z-index: 10;
+}
+
+.o-alignment-widget .alignment .singles {
+	position: absolute;
+	top: 0px;
+	left: 0px;
+	bottom: 0px;
+	height: 22px;
+	width: 22px;
+	overflow: hidden;
+}
+
+.o-alignment-widget .singles .topleft, .o-alignment-widget .singles .topcenter,
+	.o-alignment-widget .singles .topright, .o-alignment-widget .singles .middleleft,
+	.o-alignment-widget .singles .middlecenter, .o-alignment-widget .singles .middleright,
+	.o-alignment-widget .singles .bottomleft, .o-alignment-widget .singles .bottomcenter,
+	.o-alignment-widget .singles .bottomright {
+	background-color: #a2a3a5;
+	height: 6px;
+	width: 6px;
+	display: block;
+	overflow: visible;
+	position: absolute;
+	z-index: 30;
+}
+
+.o-alignment-widget .singles .o-selected {
+	background-color: black;
+}
+
+.o-alignment-widget .singles .topleft {
+	top: 0px;
+	left: 0px;
+}
+
+.o-alignment-widget .singles .topcenter {
+	top: 0px;
+	left: 0px;
+	margin-left: 8px;
+}
+
+.o-alignment-widget .singles .topright {
+	top: 0px;
+	right: 0px;
+}
+
+.o-alignment-widget .singles .middleleft {
+	top: 0px;
+	left: 0px;
+	margin-top: 8px;
+}
+
+.o-alignment-widget .singles .middlecenter {
+	top: 0px;
+	margin-top: 8px;
+	left: 0px;
+	margin-left: 8px;
+}
+
+.o-alignment-widget .singles .middleright {
+	top: 0px;
+	margin-top: 8px;
+	right: 0px;
+}
+
+.o-alignment-widget .singles .bottomleft {
+	bottom: 0px;
+	left: 0px;
+}
+
+.o-alignment-widget .singles .bottomcenter {
+	bottom: 0px;
+	margin-left: 8px;
+	left: 0px;
+}
+
+.o-alignment-widget .singles .bottomright {
+	bottom: 0px;
+	right: 0px;
+}
+
+.o-alignment-widget .alignment .hfill {
+	position: absolute;
+	bottom: 0px;
+	left: 0px;
+	width: 22px;
+	height: 6px;
+	background-color: #a2a3a5;
+}
+
+.o-alignment-widget .alignment .vfill {
+	position: absolute;
+	top: 0px;
+	left: 24px;
+	width: 6px;
+	height: 22px;
+	background-color: #a2a3a5;
+}
+
+.o-alignment-widget .alignment .vfill .o-selected, .o-alignment-widget .alignment .hfill .o-selected
+	{
+	background-color: white !important;
+}
+
+.o-designer-overlay .o-button-widget {
+	position: relative;
+	overflow: hidden;
+	background-color: #efeef1;
+	background-repeat: no-repeat;
+	background-position: center;
+	border-radius: 2px;
+	border: 0px;
+	width: 20px;
+	height: 20px;
+	float: left;
+	margin-left: 3px;
+	margin-top: 6px;
+}
+
+.o-designer-overlay .v-image {
+	position: relative;
+	overflow: hidden;
+	background-color: #efeef1;
+	
+	border-style: solid;
+	border-color: silver;
+	border-width: 4px;
+	width: 30px;
+	height: 30px;
+	float: left;
+	margin-left: -3px;
+	margin-top: -3px;
+	margin-right: 8px;
+}
+
+.o-designer-overlay .switchEditable {
+	background-image: url("edit_properties.gif");
+}
+
+.o-designer-overlay .removeChild {
+	background-image: url("delete.gif");
+}
+
+.o-designer-overlay .addChild {
+	background-image: url("add.png");
+}
+
+.o-designer-overlay .openProperties {
+	background-image: url("openProperties.gif");
+}
+
+.o-designer-overlay .switchMargin {
+	background-image: url("margin.gif");
+}
+
+.o-designer-overlay .switchSpacing {
+	background-image: url("spacing.gif");
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/test/org/eclipse/osbp/vaadin/addons/designer/overlay/OverlayApplicationTest.java b/org.eclipse.osbp.vaadin.addons.designer.overlay/test/org/eclipse/osbp/vaadin/addons/designer/overlay/OverlayApplicationTest.java
new file mode 100644
index 0000000..6151586
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/test/org/eclipse/osbp/vaadin/addons/designer/overlay/OverlayApplicationTest.java
@@ -0,0 +1,96 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.designer.overlay;
+
+import com.vaadin.testbench.ScreenshotOnFailureRule;
+import com.vaadin.testbench.TestBenchTestCase;
+import com.vaadin.testbench.elements.ButtonElement;
+import com.vaadin.testbench.elements.LabelElement;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.openqa.selenium.firefox.FirefoxDriver;
+import java.util.List;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+/**
+ * This class contains JUnit tests, which are run using Vaadin TestBench 4.
+ *
+ * To run this, first get an evaluation license from
+ * https://vaadin.com/addon/vaadin-testbench and follow the instructions at
+ * https://vaadin.com/directory/help/installing-cval-license to install it.
+ *
+ * Once the license is installed, you can run this class as a JUnit test.
+ */
+public class OverlayApplicationTest extends TestBenchTestCase {
+    @Rule
+    public ScreenshotOnFailureRule screenshotOnFailureRule =
+            new ScreenshotOnFailureRule(this, true);
+
+    @Before
+    public void setUp() throws Exception {
+        setDriver(new FirefoxDriver()); // Firefox
+
+        // To use Chrome, first install chromedriver.exe from
+        // http://chromedriver.storage.googleapis.com/index.html
+        // on your system path (e.g. C:\Windows\System32\)
+        //   setDriver(new ChromeDriver()); // Chrome
+
+        // To use Internet Explorer, first install iedriverserver.exe from
+        // http://selenium-release.storage.googleapis.com/index.html?path=2.43/
+        // on your system path (e.g. C:\Windows\System32\)
+        //   setDriver(new InternetExplorerDriver()); // IE
+
+        // To test headlessly (without a browser), first install phantomjs.exe
+        // from http://phantomjs.org/download.html on your system path
+        // (e.g. C:\Windows\System32\)
+        //   setDriver(new PhantomJSDriver()); // PhantomJS headless browser
+    }
+
+    /**
+     * Opens the URL where the application is deployed.
+     */
+    private void openTestUrl() {
+        getDriver().get("http://localhost:8080/org.eclipse.osbp.vaadin.addons.designer.overlay");
+    }
+
+    @Test
+    public void testClickButton() throws Exception {
+        openTestUrl();
+
+        // At first there should be no labels
+        assertFalse($(LabelElement.class).exists());
+
+        // Click the button
+        ButtonElement clickMeButton = $(ButtonElement.class).
+                caption("Click Me").first();
+        clickMeButton.click();
+
+        // There should now be one label
+        assertEquals(1, $(LabelElement.class).all().size());
+        // ... with the specified text
+        assertEquals("Thank you for clicking",
+                $(LabelElement.class).first().getText());
+
+        // Click the button again
+        clickMeButton.click();
+
+        // There should now be two labels
+        List<LabelElement> allLabels = $(LabelElement.class).all();
+        assertEquals(2, allLabels.size());
+        // ... and the last label should have the correct text
+        LabelElement lastLabel = allLabels.get(1);
+        assertEquals("Thank you for clicking", lastLabel.getText());
+    }
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.feature/.project b/org.eclipse.osbp.vaadin.addons.feature/.project
new file mode 100644
index 0000000..22b88ac
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.vaadin.addons.feature</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.vaadin.addons.feature/LICENSE.txt b/org.eclipse.osbp.vaadin.addons.feature/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.feature/LICENSE.txt
@@ -0,0 +1,161 @@
+Eclipse Public License -v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION
+OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.
+A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate
+modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of
+its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute
+and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code
+form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the
+combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not
+apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no
+assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity
+based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property
+rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the
+Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to
+grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including
+warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any
+other party; and
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it
+in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and
+the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes
+the Program in a commercial product offering should do so in a manner which does not create potential liability for
+other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions
+brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual
+property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the
+Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may
+ participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is
+then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone.
+Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to
+those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result,
+the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED 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. Each Recipient is solely responsible for
+determining the appropriateness of using and distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance
+with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
+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 OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such
+Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such
+noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution
+of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses
+ granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement
+is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish
+new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the
+right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including Contributions) may always be
+distributed subject to the version of the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the
+new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States
+of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause
+of action arose. Each party waives its rights to a jury trial in any resulting litigation.
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.feature/build.properties b/org.eclipse.osbp.vaadin.addons.feature/build.properties
new file mode 100644
index 0000000..2c61631
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.feature/build.properties
@@ -0,0 +1,3 @@
+bin.includes = LICENSE.txt, \
+			   feature.xml,\
+               feature.properties
diff --git a/org.eclipse.osbp.vaadin.addons.feature/feature.properties b/org.eclipse.osbp.vaadin.addons.feature/feature.properties
new file mode 100644
index 0000000..40efed4
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.feature/feature.properties
@@ -0,0 +1,168 @@
+##############################################################################                                                                            
+# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+#                                                                            
+# All rights reserved. This program and the accompanying materials           
+# are made available under the terms of the Eclipse Public License v1.0       
+# which accompanies this distribution, and is available at                  
+# http://www.eclipse.org/legal/epl-v10.html                                 
+#                                                                            
+# Contributors:   
+# Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+##############################################################################
+# feature.properties
+# contains externalized strings for feature.xml
+# "%foo" in feature.xml corresponds to the key "foo" in this file
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file should be translated.
+
+# "featureName" property - name of the feature
+featureName =OSBP Addons for Vaadin 
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse OSBP
+
+# "description" property - description of the feature
+description=This feature provides the Vaadin addon bundles used by OSBP.
+
+# "updateSiteName" property - label for the update site
+updateSiteName=
+
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2011-2016 Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+################ end of copyright property ####################################
+
+
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+Eclipse Foundation Software User Agreement\n\
+February 1, 2011\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the\n\
+Eclipse Foundation is provided to you under the terms and conditions of\n\
+the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
+provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse Foundation source code\n\
+repository ("Repository") in software modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+       - Content may be structured and packaged into modules to facilitate delivering,\n\
+         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+         plug-in fragments ("Fragments"), and features ("Features").\n\
+       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
+         in a directory named "plugins".\n\
+       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+       - The top-level (root) directory\n\
+       - Plug-in and Fragment directories\n\
+       - Inside Plug-ins and Fragments packaged as JARs\n\
+       - Sub-directories of the directory named "src" of certain Plug-ins\n\
+       - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
+Update License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties" found within a Feature.\n\
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
+terms and conditions (or references to such terms and conditions) that\n\
+govern your use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+       - Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)\n\
+       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+\n\Use of Provisioning Technology\n\
+\n\
+The Eclipse Foundation makes available provisioning software, examples of which include,\n\
+but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
+the purpose of allowing users to install software, documentation, information and/or\n\
+other materials (collectively "Installable Software"). This capability is provided with\n\
+the intent of allowing such users to install, extend and update Eclipse-based products.\n\
+Information about packaging Installable Software is available at\n\
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
+\n\
+You may use Provisioning Technology to allow other parties to install Installable Software.\n\
+You shall be responsible for enabling the applicable license agreements relating to the\n\
+Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
+in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
+making it available in accordance with the Specification, you further acknowledge your\n\
+agreement to, and the acquisition of all necessary rights to permit the following:\n\
+\n\
+       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
+          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
+          extending or updating the functionality of an Eclipse-based product.\n\
+       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
+          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
+       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
+          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
+          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
+          with the Specification. Such Installable Software Agreement must inform the user of the\n\
+          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
+          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
+          indication of agreement by the user, the provisioning Technology will complete installation\n\
+          of the Installable Software.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use, and\n\
+re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/org.eclipse.osbp.vaadin.addons.feature/feature.xml b/org.eclipse.osbp.vaadin.addons.feature/feature.xml
new file mode 100644
index 0000000..853d580
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.feature/feature.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+-->
+<feature
+      id="org.eclipse.osbp.vaadin.addons.feature"
+      label="%featureName"
+      version="0.9.0.qualifier"
+      provider-name="%providerName">
+
+   <description>
+      %description
+   </description>
+
+   <copyright>
+      %copyright
+   </copyright>
+
+   <license url="%licenseURL">
+      %license
+   </license>
+
+   <plugin
+         id="org.eclipse.osbp.vaadin.addons.absolutelayout"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.osbp.vaadin.addons.designer.overlay"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.osbp.vaadin.addons.suggesttext"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>
diff --git a/org.eclipse.osbp.vaadin.addons.feature/pom.xml b/org.eclipse.osbp.vaadin.addons.feature/pom.xml
new file mode 100644
index 0000000..b4005dd
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.feature/pom.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.eclipse.osbp.vaadin.addons</groupId>
+		<artifactId>org.eclipse.osbp.vaadin.addons.aggregator</artifactId>
+		<version>0.9.0-SNAPSHOT</version>
+		<relativePath>..</relativePath>
+	</parent>
+
+	<artifactId>org.eclipse.osbp.vaadin.addons.feature</artifactId>
+	<packaging>eclipse-feature</packaging>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.eclipse.osbp.vaadin.addons</groupId>
+			<artifactId>org.eclipse.osbp.vaadin.addons.absolutelayout</artifactId>
+			<version>${project.version}</version>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.eclipse.osbp.vaadin.addons</groupId>
+			<artifactId>org.eclipse.osbp.vaadin.addons.designer.overlay</artifactId>
+			<version>${project.version}</version>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.eclipse.osbp.vaadin.addons</groupId>
+			<artifactId>org.eclipse.osbp.vaadin.addons.suggesttext</artifactId>
+			<version>${project.version}</version>
+			<scope>compile</scope>
+		</dependency>
+
+	</dependencies>
+
+	<build>
+		<plugins>
+			<plugin>
+				<!-- workaround while bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=398250 
+					is not fixed -->
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-p2-plugin</artifactId>
+				<version>${tycho-version}</version>
+				<executions>
+					<execution>
+						<id>attached-p2-metadata</id>
+						<phase>package</phase>
+						<goals>
+							<goal>p2-metadata</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<artifactId>maven-javadoc-plugin</artifactId>
+				<configuration>
+					<skip>true</skip>
+				</configuration>
+<!-- 				<executions> -->
+<!-- 					<execution> -->
+<!-- 						<id>javadoc-jar</id> -->
+<!-- 						<phase>package</phase> -->
+<!-- 						<goals> -->
+<!-- 							<goal>jar</goal> -->
+<!-- 						</goals> -->
+<!-- 					</execution> -->
+<!-- 				</executions> -->
+			</plugin>
+		</plugins>
+	</build>
+
+</project>
diff --git a/org.eclipse.osbp.vaadin.addons.feature/src/main/javadoc/README.txt b/org.eclipse.osbp.vaadin.addons.feature/src/main/javadoc/README.txt
new file mode 100644
index 0000000..831da7e
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.feature/src/main/javadoc/README.txt
@@ -0,0 +1 @@
+Resource folder for javadoc resources.
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.feature/src/overview.html b/org.eclipse.osbp.vaadin.addons.feature/src/overview.html
new file mode 100644
index 0000000..f4a68d1
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.feature/src/overview.html
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+	<title>OSBP Technologystack Target Platform Feature Overview</title>
+</head>
+<body>
+<p>The <b>OSBP&nbsp; Vaadin Addons </b>collects all Vaadin Addons provided by OSBP.</p>
+</body>
+</html>
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/.project b/org.eclipse.osbp.vaadin.addons.suggesttext/.project
new file mode 100644
index 0000000..0b595d2
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/.project
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.vaadin.addons.suggesttext</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.vaadin.integration.eclipse.widgetsetBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
+		<nature>com.vaadin.integration.eclipse.widgetsetNature</nature>
+		<nature>org.apache.ivyde.eclipse.ivynature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/LICENSE.txt b/org.eclipse.osbp.vaadin.addons.suggesttext/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/LICENSE.txt
@@ -0,0 +1,161 @@
+Eclipse Public License -v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION
+OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.
+A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate
+modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of
+its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute
+and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code
+form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the
+combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not
+apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no
+assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity
+based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property
+rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the
+Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to
+grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including
+warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any
+other party; and
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it
+in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and
+the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes
+the Program in a commercial product offering should do so in a manner which does not create potential liability for
+other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions
+brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual
+property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the
+Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may
+ participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is
+then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone.
+Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to
+those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result,
+the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED 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. Each Recipient is solely responsible for
+determining the appropriateness of using and distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance
+with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
+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 OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such
+Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such
+noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution
+of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses
+ granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement
+is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish
+new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the
+right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including Contributions) may always be
+distributed subject to the version of the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the
+new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States
+of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause
+of action arose. Each party waives its rights to a jury trial in any resulting litigation.
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/META-INF/MANIFEST.MF b/org.eclipse.osbp.vaadin.addons.suggesttext/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..ff4015e
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/META-INF/MANIFEST.MF
@@ -0,0 +1,32 @@
+Manifest-Version: 1.0
+Bnd-LastModified: 1491902111724
+Build-Jdk: 1.8.0_91
+Built-By: mollik
+Bundle-ActivationPolicy: lazy
+Bundle-Description: A parent POM aimed to set up the build of general Ma
+ ven based projects.
+Bundle-DocURL: http://www.eclipse.org/osbp
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.vaadin.addons.suggesttext
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-SymbolicName: org.eclipse.osbp.vaadin.addons.suggesttext
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Created-By: Apache Maven Bundle Plugin
+Export-Package: org.eclipse.osbp.vaadin.addons.customcombo;version="0.9.
+ 0",org.eclipse.osbp.vaadin.addons.suggesttext;version="0.9.0",org.eclip
+ se.osbp.vaadin.addons.suggesttext.client;version="0.9.0",org.eclipse.os
+ bp.vaadin.addons.suggesttext.public.suggesttext;version="0.9.0",org.ecl
+ ipse.osbp.vaadin.addons.suggesttext.sample;version="0.9.0"
+Import-Package: com.vaadin.annotations;version="[7.7,8)",com.vaadin.clie
+ nt;version="[7.7,8)",com.vaadin.client.communication;version="[7.7,8)",
+ com.vaadin.data;version="[7.7,8)",com.vaadin.external.org.slf4j;version
+ ="[1.6,2)",com.vaadin.server;version="[7.7,8)",com.vaadin.ui;version="[
+ 7.7,8)",javax.servlet.annotation;resolution:=optional;version="[3.0,4)"
+ ,org.eclipse.osbp.vaadin.addons.suggesttext.client;version="[0.9,1)",or
+ g.junit
+Require-Bundle: com.vaadin.server;bundle-version="[7.5.7,7.7.0)",com.vaa
+ din.client;bundle-version="[7.5.7,7.7.0)",com.vaadin.shared;bundle-vers
+ ion="[7.5.7,7.7.0)",org.jsoup;bundle-version="[1.8.3,1.8.4)"
+Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"
+Tool: Bnd-3.2.0.201605172007
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/META-INF/git.properties b/org.eclipse.osbp.vaadin.addons.suggesttext/META-INF/git.properties
new file mode 100644
index 0000000..c99b885
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/META-INF/git.properties
@@ -0,0 +1,14 @@
+#Generated by Git-Commit-Id-Plugin
+#Tue Apr 11 11:17:34 CEST 2017
+git.remote.origin.url=ssh\://compex@10.1.13.14/osbpgit/org.eclipse.osbp.vaadin.addons.git
+git.closest.tag.name=OSBP-initial-commit-2-Eclipse-4-luna-2017-03-31-17-10-39
+git.commit.id.describe-short=OSBP-initial-commit-2-Eclipse-4-luna-2017-03-31-17-10-39-dirty
+git.commit.time=02.02.2017 @ 18\:04\:55 MEZ
+git.commit.message.full=remove the feature from build
+git.commit.message.short=remove the feature from build
+git.commit.id.abbrev=90dd482
+git.branch=OSBP-initial-commit-2-Eclipse-4-luna
+git.closest.tag.commit.count=0
+git.commit.id.describe=OSBP-initial-commit-2-Eclipse-4-luna-2017-03-31-17-10-39-dirty
+git.commit.id=90dd482e5bc78cd1a404d12445cebc868ee417b0
+git.tags=OSBP-initial-commit-2-Eclipse-4-luna-2017-03-31-17-10-39
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/Sample/org/eclipse/osbp/vaadin/addons/suggesttext/sample/Person.java b/org.eclipse.osbp.vaadin.addons.suggesttext/Sample/org/eclipse/osbp/vaadin/addons/suggesttext/sample/Person.java
new file mode 100644
index 0000000..010f373
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/Sample/org/eclipse/osbp/vaadin/addons/suggesttext/sample/Person.java
@@ -0,0 +1,55 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.suggesttext.sample;
+
+import java.util.UUID;
+
+public class Person {
+
+	private String uuid = UUID.randomUUID().toString();
+
+	private String firstname;
+
+	private String lastname;
+
+	public Person(String firstname, String lastname) {
+		super();
+		this.firstname = firstname;
+		this.lastname = lastname;
+	}
+
+	public String getUuid() {
+		return uuid;
+	}
+
+	public void setUuid(String uuid) {
+		this.uuid = uuid;
+	}
+
+	public String getFirstname() {
+		return firstname;
+	}
+
+	public void setFirstname(String firstname) {
+		this.firstname = firstname;
+	}
+
+	public String getLastname() {
+		return lastname;
+	}
+
+	public void setLastname(String lastname) {
+		this.lastname = lastname;
+	}
+
+}
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/Sample/org/eclipse/osbp/vaadin/addons/suggesttext/sample/PersonForUUIDMapping.java b/org.eclipse.osbp.vaadin.addons.suggesttext/Sample/org/eclipse/osbp/vaadin/addons/suggesttext/sample/PersonForUUIDMapping.java
new file mode 100644
index 0000000..3bfe66c
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/Sample/org/eclipse/osbp/vaadin/addons/suggesttext/sample/PersonForUUIDMapping.java
@@ -0,0 +1,55 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.suggesttext.sample;
+
+import java.util.Date;
+
+public class PersonForUUIDMapping {
+
+	private long uuid = new Date().getTime();
+
+	private String firstname;
+
+	private String lastname;
+
+	public PersonForUUIDMapping(String firstname, String lastname) {
+		super();
+		this.firstname = firstname;
+		this.lastname = lastname;
+	}
+
+	public long getUuid() {
+		return uuid;
+	}
+
+	public void setUuid(long uuid) {
+		this.uuid = uuid;
+	}
+
+	public String getFirstname() {
+		return firstname;
+	}
+
+	public void setFirstname(String firstname) {
+		this.firstname = firstname;
+	}
+
+	public String getLastname() {
+		return lastname;
+	}
+
+	public void setLastname(String lastname) {
+		this.lastname = lastname;
+	}
+
+}
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/Sample/org/eclipse/osbp/vaadin/addons/suggesttext/sample/SuggestTextUI.java b/org.eclipse.osbp.vaadin.addons.suggesttext/Sample/org/eclipse/osbp/vaadin/addons/suggesttext/sample/SuggestTextUI.java
new file mode 100644
index 0000000..bcdc820
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/Sample/org/eclipse/osbp/vaadin/addons/suggesttext/sample/SuggestTextUI.java
@@ -0,0 +1,259 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.suggesttext.sample;
+
+import javax.servlet.annotation.WebServlet;
+
+import org.eclipse.osbp.vaadin.addons.suggesttext.SuggestTextField;
+
+import com.vaadin.annotations.Theme;
+import com.vaadin.annotations.VaadinServletConfiguration;
+import com.vaadin.data.Property;
+import com.vaadin.data.Property.ValueChangeEvent;
+import com.vaadin.data.util.BeanItemContainer;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.server.VaadinServlet;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.CheckBox;
+import com.vaadin.ui.GridLayout;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Slider;
+import com.vaadin.ui.UI;
+import com.vaadin.ui.VerticalLayout;
+
+@SuppressWarnings("serial")
+@Theme("valo")
+public class SuggestTextUI extends UI {
+
+	@WebServlet(value = "/*", asyncSupported = true)
+	@VaadinServletConfiguration(productionMode = false, ui = SuggestTextUI.class, widgetset = "org.eclipse.osbp.vaadin.addons.suggesttext.SuggestTextWidgetset")
+	public static class Servlet extends VaadinServlet {
+	}
+
+	private GridLayout touchLayout;
+
+	@Override
+	protected void init(VaadinRequest request) {
+
+		final HorizontalLayout mainLayout = new HorizontalLayout();
+		setContent(mainLayout);
+
+		addForPerson(mainLayout);
+		addForPersonForUUIDMapping(mainLayout);
+	}
+
+	private void addForPerson(final HorizontalLayout mainLayout) {
+		final VerticalLayout layout = new VerticalLayout();
+		layout.setMargin(true);
+		mainLayout.addComponent(layout);
+
+		// create SuggestTextField
+		final SuggestTextField suggestionBox = new SuggestTextField();
+		suggestionBox.setId("suggestField1");
+		suggestionBox.getTextField().setId("suggestField1_textField");
+
+		// setup text field
+		final Slider popupdelay = new Slider("Popup delay");
+		popupdelay.setId("delay1");
+		popupdelay.setMin(10);
+		popupdelay.setMax(1000);
+		popupdelay.setValue(500d);
+		popupdelay.setResolution(0);
+		layout.addComponent(popupdelay);
+
+		popupdelay.addValueChangeListener(new Property.ValueChangeListener() {
+			@Override
+			public void valueChange(Property.ValueChangeEvent event) {
+				suggestionBox.setPopupDelay(popupdelay.getValue().intValue());
+			}
+		});
+
+		// setup text field
+		final Slider limit = new Slider("Suggestion Limit");
+		limit.setId("limit1");
+		limit.setMin(2);
+		limit.setMax(30);
+		limit.setValue(10d);
+		limit.setResolution(0);
+		layout.addComponent(limit);
+
+		limit.addValueChangeListener(new Property.ValueChangeListener() {
+			@Override
+			public void valueChange(Property.ValueChangeEvent event) {
+				suggestionBox.setLimit(limit.getValue().intValue());
+			}
+		});
+
+		final CheckBox suggestionEnabled = new CheckBox("suggestion enabled");
+		suggestionEnabled.setId("suggestionEnabled1");
+		suggestionEnabled.setValue(true);
+		layout.addComponent(suggestionEnabled);
+		suggestionEnabled.addValueChangeListener(new Property.ValueChangeListener() {
+			@Override
+			public void valueChange(Property.ValueChangeEvent event) {
+				suggestionBox.setSuggestionEnabled(suggestionEnabled.getValue());
+			}
+		});
+
+		final CheckBox autoHide = new CheckBox("auto hide popup");
+		autoHide.setId("autoHide1");
+		autoHide.setValue(true);
+		layout.addComponent(autoHide);
+		autoHide.addValueChangeListener(new Property.ValueChangeListener() {
+			@Override
+			public void valueChange(Property.ValueChangeEvent event) {
+				suggestionBox.setAutoHide(autoHide.getValue());
+				
+				touchLayout.setEnabled(!autoHide.getValue());
+			}
+		});
+
+		touchLayout = new GridLayout(2, 2);
+		touchLayout.setEnabled(false);
+		touchLayout.setDescription("Set auto hide popup to false");
+		layout.addComponent(touchLayout);
+
+		Button openSuggestList = new Button("open list", e -> {
+			suggestionBox.openPopup();
+		});
+		openSuggestList.setWidth("100%");
+		touchLayout.addComponent(openSuggestList);
+
+		Button closeSuggestList = new Button("close list", e -> {
+			suggestionBox.closePopup();
+		});
+		closeSuggestList.setWidth("100%");
+		touchLayout.addComponent(closeSuggestList);
+
+		Button navUpSuggestList = new Button("nav up", e -> {
+			suggestionBox.navigateToPrevious();
+		});
+		navUpSuggestList.setWidth("100%");
+		touchLayout.addComponent(navUpSuggestList);
+
+		Button navDownSuggestList = new Button("nav down", e -> {
+			suggestionBox.navigateToNext();
+		});
+		navDownSuggestList.setWidth("100%");
+		touchLayout.addComponent(navDownSuggestList);
+		
+		Button selectCurrent = new Button("select", e -> {
+			suggestionBox.selectCurrent();
+		});
+		selectCurrent.setWidth("100%");
+		touchLayout.addComponent(selectCurrent);
+
+		// configure and add suggestion box
+		suggestionBox.setCaption("Select");
+		suggestionBox.getTextField().addValueChangeListener(new Property.ValueChangeListener() {
+			@Override
+			public void valueChange(ValueChangeEvent event) {
+				System.out.println("Foo");
+			}
+		});
+		suggestionBox.setSuggestionEnabled(true);
+		suggestionBox.setLimit(10);
+		suggestionBox.setPopupDelay(500);
+		suggestionBox.addStyleName("os-cash");
+		layout.addComponent(suggestionBox);
+		BeanItemContainer<Person> container = new BeanItemContainer<>(Person.class);
+
+		for (int i = 0; i < 100; i++) {
+			container.addBean(new Person("Florian" + i, "Pirchner" + i));
+			container.addBean(new Person("Klemens" + i, "Edler" + i));
+			container.addBean(new Person("Berni" + i, "Edler" + i));
+		}
+		container.addBean(new Person("Sabrina", "Hopf"));
+
+		suggestionBox.setContainerDataSource(container);
+		suggestionBox.setCaptionPropertyId("lastname");
+		suggestionBox.setFilterPropertyId("lastname");
+		suggestionBox.setUniqueIdPropertyId("uuid");
+
+	}
+
+	private void addForPersonForUUIDMapping(final HorizontalLayout mainLayout) {
+		final VerticalLayout layout = new VerticalLayout();
+		layout.setMargin(true);
+		mainLayout.addComponent(layout);
+
+		// create SuggestTextField
+		final SuggestTextField suggestionBox = new SuggestTextField();
+
+		// setup text field
+		final Slider popupdelay = new Slider("Popup delay");
+		popupdelay.setMin(10);
+		popupdelay.setMax(1000);
+		popupdelay.setValue(500d);
+		popupdelay.setResolution(0);
+		layout.addComponent(popupdelay);
+
+		popupdelay.addValueChangeListener(new Property.ValueChangeListener() {
+			@Override
+			public void valueChange(Property.ValueChangeEvent event) {
+				suggestionBox.setPopupDelay(popupdelay.getValue().intValue());
+			}
+		});
+
+		// setup text field
+		final Slider limit = new Slider("Suggestion Limit");
+		limit.setMin(2);
+		limit.setMax(30);
+		limit.setValue(10d);
+		limit.setResolution(0);
+		layout.addComponent(limit);
+
+		limit.addValueChangeListener(new Property.ValueChangeListener() {
+			@Override
+			public void valueChange(Property.ValueChangeEvent event) {
+				suggestionBox.setLimit(limit.getValue().intValue());
+			}
+		});
+
+		final CheckBox suggestionEnabled = new CheckBox("suggestion enabled");
+		suggestionEnabled.setValue(true);
+		layout.addComponent(suggestionEnabled);
+		suggestionEnabled.addValueChangeListener(new Property.ValueChangeListener() {
+			@Override
+			public void valueChange(Property.ValueChangeEvent event) {
+				suggestionBox.setSuggestionEnabled(suggestionEnabled.getValue());
+			}
+		});
+
+		// configure and add SuggestTextField
+		suggestionBox.setCaption("Select with uuid mapping");
+		suggestionBox.getTextField().addValueChangeListener(new Property.ValueChangeListener() {
+			@Override
+			public void valueChange(ValueChangeEvent event) {
+				System.out.println("Foo");
+			}
+		});
+		suggestionBox.setSuggestionEnabled(true);
+		suggestionBox.setLimit(10);
+		suggestionBox.setPopupDelay(500);
+		layout.addComponent(suggestionBox);
+		BeanItemContainer<PersonForUUIDMapping> container = new BeanItemContainer<>(PersonForUUIDMapping.class);
+
+		for (int i = 0; i < 100; i++) {
+			container.addBean(new PersonForUUIDMapping("Florian" + i, "Pirchner" + i));
+			container.addBean(new PersonForUUIDMapping("Klemens" + i, "Edler" + i));
+			container.addBean(new PersonForUUIDMapping("Berni" + i, "Edler" + i));
+		}
+		container.addBean(new PersonForUUIDMapping("Sabrina", "Hopf"));
+
+		suggestionBox.setContainerDataSource(container);
+		suggestionBox.setCaptionPropertyId("lastname");
+		suggestionBox.setFilterPropertyId("lastname");
+		suggestionBox.setUniqueIdPropertyId("uuid");
+	}
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/SuperDevMode code server for org.eclipse.osbp.vaadin.addons.suggesttext.launch b/org.eclipse.osbp.vaadin.addons.suggesttext/SuperDevMode code server for org.eclipse.osbp.vaadin.addons.suggesttext.launch
new file mode 100644
index 0000000..802e6c0
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/SuperDevMode code server for org.eclipse.osbp.vaadin.addons.suggesttext.launch
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.osbp.vaadin.addons.suggesttext"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
+<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#10;&lt;memento exportedEntriesOnly=&quot;false&quot; project=&quot;org.eclipse.osbp.vaadin.addons.suggesttext&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.eclipse.osbp.vaadin.addons.suggesttext/src&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.eclipse.osbp.vaadin.addons.suggesttext/Sample&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.eclipse.osbp.vaadin.addons.suggesttext/test&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
+<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.codeserver.CodeServer"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="org.eclipse.osbp.vaadin.addons.suggesttext.SuggestTextWidgetset"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.osbp.vaadin.addons.suggesttext"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xss8M -Xmx512M -XX:MaxPermSize=512M"/>
+<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="/Users/florianpirchner/git/org.osbee.vaadin.addons/org.eclipse.osbp.vaadin.addons.suggestbox"/>
+</launchConfiguration>
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/build.properties b/org.eclipse.osbp.vaadin.addons.suggesttext/build.properties
new file mode 100644
index 0000000..a172fdb
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/build.properties
@@ -0,0 +1,5 @@
+output.. = target/classes/
+bin.includes = META-INF/,\
+               .,\
+               build.properties
+source.. = src/
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/epl-v10.html b/org.eclipse.osbp.vaadin.addons.suggesttext/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/epl-v10.html
@@ -0,0 +1,259 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Public License - Version 1.0</title>
+<style type="text/css">
+  body {
+    size: 8.5in 11.0in;
+    margin: 0.25in 0.5in 0.25in 0.5in;
+    tab-interval: 0.5in;
+    }
+  p {  	
+    margin-left: auto;
+    margin-top:  0.5em;
+    margin-bottom: 0.5em;
+    }
+  p.list {
+  	margin-left: 0.5in;
+    margin-top:  0.05em;
+    margin-bottom: 0.05em;
+    }
+  </style>
+
+</head>
+
+<body lang="EN-US">
+
+<h2>Eclipse Public License - v 1.0</h2>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED 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. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), 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 OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/ivy.xml b/org.eclipse.osbp.vaadin.addons.suggesttext/ivy.xml
new file mode 100644
index 0000000..070ca06
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/ivy.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<!DOCTYPE ivy-module [
+	<!ENTITY vaadin.version "7.6.5">
+]>
+<ivy-module version="2.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
+	<info organisation="com.example" module="v7proj" />
+	<configurations>
+		<!-- The default configuration, which should be deployed to the server -->
+		<conf name="default" />
+		<!-- A configuration only needed when compiling the widget set. Should 
+			not be deployed to the server -->
+		<conf name="widgetset-compile" />
+		<!-- A configuration used in compilation of server side classes only.
+			Should be deployed to the server -->
+		<conf name="nodeploy" />
+	</configurations>
+	<dependencies defaultconf="default" defaultconfmapping="default->default">
+		<!-- The core server part of Vaadin -->
+		<dependency org="com.vaadin" name="vaadin-server" rev="&vaadin.version;" />
+
+		<!-- Vaadin themes -->
+		<dependency org="com.vaadin" name="vaadin-themes" rev="&vaadin.version;" />
+
+		<!-- Push support -->
+		<dependency org="com.vaadin" name="vaadin-push" rev="&vaadin.version;" />
+
+		<!-- Servlet 3.0 API -->
+		<dependency org="javax.servlet" name="javax.servlet-api" rev="3.0.1" conf="nodeploy->default" />
+
+		<!-- TestBench 4 -->
+		<dependency org="com.vaadin" name="vaadin-testbench-api" rev="latest.release" conf="nodeploy -> default" />
+
+		<!-- Precompiled DefaultWidgetSet -->
+		<dependency org="com.vaadin" name="vaadin-client-compiled"
+			rev="&vaadin.version;" />
+
+		<!-- Vaadin client side, needed for widget set compilation -->
+		<dependency org="com.vaadin" name="vaadin-client" rev="&vaadin.version;"
+			 conf="widgetset-compile->default" />
+
+		<!-- Compiler for custom widget sets. Should not be deployed -->
+		<dependency org="com.vaadin" name="vaadin-client-compiler"
+			rev="&vaadin.version;" conf="widgetset-compile->default" />
+	</dependencies>
+</ivy-module>
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/ivysettings.xml b/org.eclipse.osbp.vaadin.addons.suggesttext/ivysettings.xml
new file mode 100644
index 0000000..9c0f653
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/ivysettings.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ivysettings>
+	<settings defaultResolver="default" />
+	<resolvers>
+		<chain name="default">
+			<!-- Public Maven repository -->
+			<ibiblio name="public" m2compatible="true" />
+
+			<!-- Vaadin Add-on repository -->
+			<ibiblio name="vaadin-addons" usepoms="true" m2compatible="true"
+				root="http://maven.vaadin.com/vaadin-addons" />
+
+			<!-- Vaadin snapshots repository -->
+			<ibiblio name="vaadin-snapshots" usepoms="true" m2compatible="true"
+				root="https://oss.sonatype.org/content/repositories/vaadin-snapshots" />
+			<!-- Repository used for Vaadin modified smartsprites library -->
+			<dual name="custom-smartsprites">
+				<filesystem name="smartsprites-ivy">
+					<ivy pattern="${basedir}/ivymodule/[module]-ivy-[revision].xml" />
+				</filesystem>
+				<url name="smartsprites-artifact">
+					<artifact
+						pattern="http://dev.vaadin.com/svn/versions/6.8/build/smartsprites/lib/[artifact](-[revision]).[ext]" />
+				</url>
+			</dual>
+		</chain>
+	</resolvers>
+	<modules>
+		<!-- Vaadin patched SmartSprites -->
+		<module organisation="com.carrotsearch" name="smartsprites"
+			revision="0.2.3-itmill" resolver="custom-smartsprites" />
+	</modules>
+
+
+</ivysettings>
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/license.html b/org.eclipse.osbp.vaadin.addons.suggesttext/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/license.html
@@ -0,0 +1,164 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>February 1, 2011</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY "CONTENT").  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse
+ Foundation is provided to you under the terms and conditions of the 
+Eclipse Public License Version 1.0
+   ("EPL").  A copy of the EPL is provided with this Content and is also
+ available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, 
+documentation and other files maintained in the Eclipse Foundation 
+source code
+   repository ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to 
+facilitate delivering, extending, and upgrading the Content.  Typical 
+modules may include plug-ins ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or 
+Fragments and associated material.  Each Feature may be packaged as a 
+sub-directory in a directory named "features".  Within a Feature, files 
+named "feature.xml" may contain a list of the names and version numbers 
+of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features ("Included 
+Features"). Within a Feature, files named "feature.xml" may contain a 
+list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be 
+contained in files named "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  Abouts and Feature Licenses may be located in any
+ directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named "src" of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is 
+installed using the Provisioning Technology (as defined below), you must
+ agree to a license ("Feature Update License") during the
+installation process.  If the Feature contains Included Features, the 
+Feature Update License should either provide you with the terms and 
+conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be 
+found in the "license" property of files named "feature.properties" 
+found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the 
+terms and conditions (or references to such terms and conditions) that 
+govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER 
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.
+  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND 
+CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, 
+or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions 
+govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, 
+examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). This 
+capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about 
+packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   ("Specification").</p>
+
+<p>You may use Provisioning Technology to allow other parties to install
+ Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to
+ be presented to, and accepted by, the users of the Provisioning 
+Technology
+   in accordance with the Specification. By using Provisioning 
+Technology in such a manner and making it available in accordance with 
+the
+   Specification, you further acknowledge your agreement to, and the 
+acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") with the intent of installing, 
+extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology 
+may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user 
+the terms and conditions that govern the use of the Installable
+       Software ("Installable Software Agreement") and such Installable 
+Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable 
+Software Agreement must inform the user of the terms and conditions that
+ govern
+       the Installable Software and must solicit acceptance by the end 
+user in the manner prescribed in such Installable Software Agreement. 
+Upon such
+       indication of agreement by the user, the provisioning Technology 
+will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are
+ currently may have restrictions on the import, possession, and use, 
+and/or re-export to
+   another country, of encryption software. BEFORE using any encryption 
+software, please check the country's laws, regulations and policies 
+concerning the import,
+   possession, or use, and re-export of encryption software, to see if 
+this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/pom.xml b/org.eclipse.osbp.vaadin.addons.suggesttext/pom.xml
new file mode 100644
index 0000000..c0aa482
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/pom.xml
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.eclipse.osbp.releng.maven</groupId>
+		<artifactId>org.eclipse.osbp.releng.maven.parent.mbp</artifactId>
+		<version>0.9.0-SNAPSHOT</version>
+		<relativePath />
+	</parent>
+
+	<groupId>org.eclipse.osbp.vaadin.addons</groupId>
+	<artifactId>org.eclipse.osbp.vaadin.addons.suggesttext</artifactId>
+	<packaging>bundle</packaging>
+
+	<dependencies>
+		<dependency>
+			<groupId>com.vaadin</groupId>
+			<artifactId>vaadin-server</artifactId>
+			<version>${vaadin.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>com.vaadin</groupId>
+			<artifactId>vaadin-client</artifactId>
+			<version>${vaadin.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>com.vaadin.external.slf4j</groupId>
+			<artifactId>vaadin-slf4j-jdk14</artifactId>
+			<version>1.6.1</version>
+		</dependency>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>javax.servlet-api</artifactId>
+			<version>3.0.1</version>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<sourceDirectory>${basedir}/src</sourceDirectory>
+
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-resources-plugin</artifactId>
+				<configuration>
+					<encoding>UTF-8</encoding>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>3.0</version>
+				<configuration>
+					<encoding>UTF-8</encoding>
+					<source>1.8</source>
+					<target>1.8</target>
+				</configuration>
+			</plugin>
+
+			<plugin>
+				<groupId>org.apache.felix</groupId>
+				<artifactId>maven-bundle-plugin</artifactId>
+				<extensions>true</extensions>
+				<configuration>
+					<instructions>
+						<Bundle-Name>OS.bee Addon for Vaadin: Suggesttext</Bundle-Name>
+						<Bundle-SymbolicName>org.eclipse.osbp.vaadin.addons.suggesttext</Bundle-SymbolicName>
+                        <Bundle-Version>0.9.0.{osgi-version-qualifier}</Bundle-Version>
+						<Require-Bundle>com.vaadin.server;bundle-version="[7.5.7,7.7.0)",
+							com.vaadin.client;bundle-version="[7.5.7,7.7.0)",
+							com.vaadin.shared;bundle-version="[7.5.7,7.7.0)",
+							org.jsoup;bundle-version="[1.8.3,1.8.4)"
+						</Require-Bundle>
+						<Import-Package>
+							com.vaadin.*,
+							!fi.jasoft.*,
+							javax.servlet.annotation;resolution:=optional,
+							*
+						</Import-Package>
+						<Export-Package>
+							!LICENSE,!LICENSE.txt,!THIRD-PARTY.txt,!NOTICE,!README.txt,!VERSION.txt,!build.properties,
+							!VAADIN.*,
+							org.eclipse.osbp.vaadin.addons.*;version="0.9.0"
+						</Export-Package>
+						<Include-Resource>{maven-resources},LICENSE.txt,epl-v10.html</Include-Resource>
+						<_nouses>true</_nouses>
+					</instructions>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-source-plugin</artifactId>
+				<version>2.2.1</version>
+				<executions>
+					<execution>
+						<id>attach-sources</id>
+						<goals>
+							<goal>jar</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+		<pluginManagement>
+			<plugins>
+
+				<!--This plugin's configuration is used to store Eclipse m2e settings 
+					only. It has no influence on the Maven build itself. -->
+				<plugin>
+					<groupId>org.eclipse.m2e</groupId>
+					<artifactId>lifecycle-mapping</artifactId>
+					<version>1.0.0</version>
+					<configuration>
+						<lifecycleMappingMetadata>
+							<pluginExecutions>
+								<pluginExecution>
+									<pluginExecutionFilter>
+										<groupId>
+											org.apache.maven.plugins
+										</groupId>
+										<artifactId>
+											maven-dependency-plugin
+										</artifactId>
+										<versionRange>
+											[2.0.0,)
+										</versionRange>
+										<goals>
+											<goal>
+												copy-dependencies
+											</goal>
+										</goals>
+									</pluginExecutionFilter>
+									<action>
+										<ignore></ignore>
+									</action>
+								</pluginExecution>
+								<pluginExecution>
+									<pluginExecutionFilter>
+										<groupId>com.vaadin</groupId>
+										<artifactId>
+											vaadin-maven-plugin
+										</artifactId>
+										<versionRange>
+											[7.0-SNAPSHOT,)
+										</versionRange>
+										<goals>
+											<goal>compile</goal>
+										</goals>
+									</pluginExecutionFilter>
+									<action>
+										<ignore></ignore>
+									</action>
+								</pluginExecution>
+							</pluginExecutions>
+						</lifecycleMappingMetadata>
+					</configuration>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+		<!-- This is needed for the sources required by the client-side compiler 
+			to be included in the produced JARs -->
+		<resources>
+			<resource>
+				<directory>src</directory>
+			</resource>
+		</resources>
+
+	</build>
+
+</project>
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/SuggestTextField.java b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/SuggestTextField.java
new file mode 100644
index 0000000..b46c4be
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/SuggestTextField.java
@@ -0,0 +1,640 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.suggesttext;
+
+import java.io.Serializable;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.osbp.vaadin.addons.suggesttext.client.OQueryDelegate.SuggestionResult;
+import org.eclipse.osbp.vaadin.addons.suggesttext.client.SuggestTextFieldClientRpc;
+import org.eclipse.osbp.vaadin.addons.suggesttext.client.SuggestTextFieldServerRpc;
+import org.eclipse.osbp.vaadin.addons.suggesttext.client.SuggestTextFieldState;
+
+import com.vaadin.data.Container;
+import com.vaadin.data.Container.Filterable;
+import com.vaadin.data.Item;
+import com.vaadin.data.util.filter.Compare;
+import com.vaadin.data.util.filter.SimpleStringFilter;
+import com.vaadin.event.ShortcutAction;
+import com.vaadin.external.org.slf4j.Logger;
+import com.vaadin.external.org.slf4j.LoggerFactory;
+import com.vaadin.ui.AbstractSingleComponentContainer;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.TextField;
+import com.vaadin.util.ReflectTools;
+
+/**
+ * A field, which behaves like a textfield and offers suggestion functionality.
+ * <p>
+ * To get access to the underlying textfield, use {@link #getTextField()}. All
+ * functions available of {@link TextField} are also supported by this field.
+ * <p>
+ * To configure the suggestion functions, use the methods
+ * {@link #setSuggestionEnabled(boolean)}, {@link #setLimit(int)} and
+ * {@link #setPopupDelay(int)}.
+ * <p>
+ * To provide this field with queryable items, set a container using
+ * {@link #setContainerDataSource(Container) }(Filterable). It will use the
+ * given {@link #getFilterPropertyId() filterPropertyId} to query the container
+ * for suggestions.<br>
+ * The {@link #getCaptionPropertyId() captionPropertyId} is used to show results
+ * in the UI.<br>
+ * The {@link #getUniqueIdPropertyId()} is used to map the selected item
+ * clientside to the proper item in the container.
+ * <p>
+ * This field fires {@link SelectionChangedEvent} if a suggestion was selected
+ * at the clientside.
+ * <p>
+ * Additionally this field offers the functionality, that a suggestion is
+ * selected automatically, if only 1 record was returned by the query.
+ * <p>
+ * By default the popup can be opened pressing "ALT+KEY_DOWN". This can be
+ * adjusted by setters below.
+ */
+@SuppressWarnings("serial")
+public class SuggestTextField extends AbstractSingleComponentContainer {
+
+	/** The Constant LOGGER. */
+	private static final Logger LOGGER = LoggerFactory.getLogger(SuggestTextField.class);
+
+	/** The lock. */
+	private Object lock = new Object();
+
+	/** The caption property id. */
+	private Object captionPropertyId;
+
+	/** The unique id property id. */
+	private Object uniqueIdPropertyId;
+
+	/** The filter property id. */
+	private Object filterPropertyId;
+
+	/** The rpc. */
+	private SuggestTextFieldServerRpc rpc = new SuggestTextFieldServerRpc() {
+		@Override
+		public void requestSuggestions(final String handleId, final String filter, final int limit) {
+			if (needsUUIDMapping) {
+				uuidmapping.clear();
+			}
+			query(handleId, filter, limit);
+		}
+
+		@Override
+		public void selectionChanged(String id) {
+			Object itemId = getItemById(id);
+			if (itemId != null) {
+				fireSelectionChanged(itemId);
+			}
+		}
+	};
+
+	/** The container. */
+	private Container container;
+
+	/** The text field. */
+	private TextField textField;
+
+	/** The needs uuid mapping. */
+	private boolean needsUUIDMapping;
+
+	/** The uuidmapping. */
+	private Map<String, Object> uuidmapping = new HashMap<>();
+
+	/**
+	 * Instantiates a new suggest text field.
+	 */
+	public SuggestTextField() {
+		registerRpc(rpc);
+
+		textField = new TextField();
+		textField.setSizeFull();
+		setContent(textField);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.vaadin.ui.AbstractComponent#getState()
+	 */
+	@Override
+	protected SuggestTextFieldState getState() {
+		return (SuggestTextFieldState) super.getState();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.vaadin.ui.AbstractComponent#getState(boolean)
+	 */
+	@Override
+	protected SuggestTextFieldState getState(boolean markAsDirty) {
+		return (SuggestTextFieldState) super.getState(markAsDirty);
+	}
+
+	/**
+	 * Gets the text field.
+	 *
+	 * @return the text field
+	 */
+	public TextField getTextField() {
+		return textField;
+	}
+
+	/**
+	 * Sets the value into the text field.
+	 * 
+	 * @param value
+	 */
+	public void setValue(String value) {
+		textField.setValue(value);
+	}
+
+	/**
+	 * Returns the value from the text field.
+	 * 
+	 * @return
+	 */
+	public String getValue() {
+		return textField.getValue();
+	}
+
+	/**
+	 * Opens the popup if not already opened and shows the suggested values.
+	 */
+	public void openPopup() {
+		getRpcProxy(SuggestTextFieldClientRpc.class).openPopup();
+	}
+
+	/**
+	 * Closes the popup if open. Else it has no effect.
+	 */
+	public void closePopup() {
+		getRpcProxy(SuggestTextFieldClientRpc.class).closePopup();
+	}
+
+	/**
+	 * Navigates the selected suggestion to the next one available.
+	 */
+	public void navigateToNext() {
+		getRpcProxy(SuggestTextFieldClientRpc.class).navigateToNext();
+	}
+
+	/**
+	 * Navigates the selected suggestion to the previous one available.
+	 */
+	public void navigateToPrevious() {
+		getRpcProxy(SuggestTextFieldClientRpc.class).navigateToPrevious();
+	}
+
+	/**
+	 * Selects the current selected suggestion and accepts it.
+	 */
+	public void selectCurrent() {
+		getRpcProxy(SuggestTextFieldClientRpc.class).selectCurrent();
+	}
+
+	/**
+	 * Returns the delay in ms.<br>
+	 * The delay defines how many ms no keypress is done, before showing the
+	 * popup.
+	 *
+	 * @return the popup delay
+	 */
+	public int getPopupDelay() {
+		return getState(false).popupDelay;
+	}
+
+	/**
+	 * Sets the delay in ms. <br>
+	 * The delay defines how many ms no keypress is done, before showing the
+	 * popup.
+	 *
+	 * @param delay
+	 *            the new popup delay
+	 */
+	public void setPopupDelay(int delay) {
+		if (getState(false).popupDelay != delay) {
+			getState(true).popupDelay = delay;
+		}
+	}
+
+	/**
+	 * True, if suggestions should be enabled. False otherwise.
+	 *
+	 * @param suggestionEnabled
+	 *            the new suggestion enabled
+	 */
+	public void setSuggestionEnabled(boolean suggestionEnabled) {
+		if (getState(false).suggestionEnabled != suggestionEnabled) {
+			getState(true).suggestionEnabled = suggestionEnabled;
+		}
+
+		if (!suggestionEnabled && needsUUIDMapping) {
+			uuidmapping.clear();
+		}
+	}
+
+	/**
+	 * Sets the number of items to be shown at clientside suggestions.
+	 *
+	 * @param limit
+	 *            the new limit
+	 */
+	public void setLimit(int limit) {
+		if (getState(false).limit != limit) {
+			getState(true).limit = limit;
+		}
+	}
+
+	/**
+	 * See {@link #setSuggestionEnabled(boolean)}.
+	 *
+	 * @return true, if is suggestion enabled
+	 */
+	public boolean isSuggestionEnabled() {
+		return getState(false).suggestionEnabled;
+	}
+
+	/**
+	 * See {@link #setLimit(int)}.
+	 *
+	 * @return the limit
+	 */
+	public int getLimit() {
+		return getState(false).limit;
+	}
+
+	/**
+	 * See {@link #setAutoHide(boolean)}.
+	 *
+	 * @return the limit
+	 */
+	public boolean isAutoHide() {
+		return getState(false).autoHide;
+	}
+
+	/**
+	 * If true, then the popup hides if the user clicks outside the popup.
+	 *
+	 * @param limit
+	 *            the new limit
+	 */
+	public void setAutoHide(boolean autoHide) {
+		if (getState(false).autoHide != autoHide) {
+			getState(true).autoHide = autoHide;
+		}
+	}
+
+	/**
+	 * Sets the key which need to be pressed to open the popup.<br>
+	 * See {@link ShortcutAction.KeyCode}
+	 *
+	 * @param key
+	 *            the new key
+	 */
+	public void setOpenPopupKey(int key) {
+		if (getState(false).openPopup_key != key) {
+			getState(true).openPopup_key = key;
+		}
+	}
+
+	/**
+	 * Sets the key modifier which need to be pressed to open the popup.<br>
+	 * See {@link ShortcutAction.ModifierKey}
+	 *
+	 * @param modifier
+	 *            the new modifier
+	 */
+	public void setOpenPopupKeyModifier(int modifier) {
+		if (modifier != ShortcutAction.ModifierKey.ALT && modifier != ShortcutAction.ModifierKey.CTRL) {
+			throw new IllegalArgumentException("Only ALT and CTRL are allowed as modifiers.");
+		}
+
+		if (getState(false).openPopup_modifier != modifier) {
+			getState(true).openPopup_modifier = modifier;
+		}
+	}
+
+	/**
+	 * Returns the key which need to be pressed to open the popup.<br>
+	 * See {@link ShortcutAction.KeyCode}
+	 *
+	 * @param key
+	 *            the new key
+	 */
+	public int getOpenPopupKey() {
+		return getState(false).openPopup_key;
+	}
+
+	/**
+	 * Returns the key modifier which need to be pressed to open the popup.<br>
+	 * See {@link ShortcutAction.ModifierKey}
+	 *
+	 * @param modifier
+	 *            the new modifier
+	 */
+	public int getOpenPopupKeyModifier(int modifier) {
+		return getState(false).openPopup_modifier;
+	}
+
+	/**
+	 * Respond.
+	 *
+	 * @param handle
+	 *            the handle
+	 * @param result
+	 *            the result
+	 */
+	protected void respond(String handle, List<SuggestionResult> result) {
+		getRpcProxy(SuggestTextFieldClientRpc.class).respond(handle, result);
+	}
+
+	/**
+	 * See {@link #setFilterPropertyId(Object)}.
+	 *
+	 * @return the filter property id
+	 */
+	public Object getFilterPropertyId() {
+		return filterPropertyId;
+	}
+
+	/**
+	 * Sets the filterPropertyId. This id is used to query the container for
+	 * matching results.
+	 *
+	 * @param filterPropertyId
+	 *            the new filter property id
+	 */
+	public void setFilterPropertyId(Object filterPropertyId) {
+		this.filterPropertyId = filterPropertyId;
+
+		if (!container.getContainerPropertyIds().contains(filterPropertyId)) {
+			throw new IllegalArgumentException(filterPropertyId + " is not a valid container property.");
+		}
+	}
+
+	/**
+	 * See {@link #setCaptionPropertyId(Object)}.
+	 *
+	 * @return the caption property id
+	 */
+	public Object getCaptionPropertyId() {
+		return captionPropertyId;
+	}
+
+	/**
+	 * This propertyId is used, to show results in the user interface.
+	 *
+	 * @param captionPropertyId
+	 *            the new caption property id
+	 */
+	public void setCaptionPropertyId(Object captionPropertyId) {
+		this.captionPropertyId = captionPropertyId;
+
+		if (!container.getContainerPropertyIds().contains(captionPropertyId)) {
+			throw new IllegalArgumentException(captionPropertyId + " is not a valid container property.");
+		}
+	}
+
+	/**
+	 * See {@link #setUniqueIdPropertyId(Object)}.
+	 *
+	 * @return the unique id property id
+	 */
+	public Object getUniqueIdPropertyId() {
+		return uniqueIdPropertyId;
+	}
+
+	/**
+	 * This property is used to map the selected record at clientside to the
+	 * matching item from the container. Each record in the container needs to
+	 * have a unique id.
+	 *
+	 * @param uniqueIdPropertyId
+	 *            the new unique id property id
+	 */
+	public void setUniqueIdPropertyId(Object uniqueIdPropertyId) {
+		this.uniqueIdPropertyId = uniqueIdPropertyId;
+
+		if (!container.getContainerPropertyIds().contains(uniqueIdPropertyId)) {
+			throw new IllegalArgumentException(uniqueIdPropertyId + " is not a valid container property.");
+		}
+
+		Class<?> type = container.getType(uniqueIdPropertyId);
+		needsUUIDMapping = type == String.class ? false : true;
+	}
+
+	/**
+	 * Sets the container datasource used to query suggestions.<br>
+	 * <b>Attention:</b> The container must implement
+	 * {@link Container.Filterable} and {@link Container.Indexed}.
+	 *
+	 * @param container
+	 *            the new container data source
+	 */
+	public void setContainerDataSource(Container container) {
+		if (!(container instanceof Container.Filterable) || !(container instanceof Container.Indexed)) {
+			throw new IllegalArgumentException(
+					"The container must implement Container.Filterable and Container.Indexed");
+		}
+		this.container = container;
+	}
+
+	/**
+	 * Returns the container datasource.
+	 *
+	 * @return the container data source
+	 */
+	public Container getContainerDataSource() {
+		return container;
+	}
+
+	/**
+	 * Query.
+	 *
+	 * @param handleId
+	 *            the handle id
+	 * @param filter
+	 *            the filter
+	 * @param limit
+	 *            the limit
+	 */
+	protected void query(String handleId, String filter, int limit) {
+
+		if (filterPropertyId == null) {
+			throw new IllegalArgumentException("filterPropertyId must be set for query.");
+		}
+
+		if (captionPropertyId == null) {
+			throw new IllegalArgumentException("captionPropertyId must be set for query.");
+		}
+
+		if (uniqueIdPropertyId == null) {
+			throw new IllegalArgumentException("uniqueIdPropertyId must be set for query.");
+		}
+
+		LOGGER.debug("Query - filter:" + filter + " limit:" + limit + " handleId:" + handleId);
+
+		List<SuggestionResult> result = new ArrayList<>();
+		synchronized (lock) {
+			Container.Filterable filterable = (Filterable) container;
+			filterable.removeAllContainerFilters();
+			filterable.addContainerFilter(new SimpleStringFilter(filterPropertyId, filter, true, false));
+
+			int count = 0;
+			for (Object itemId : ((Container.Indexed) container).getItemIds(0, Math.max(limit, 3))) {
+				Item item = container.getItem(itemId);
+				String caption = (String) item.getItemProperty(captionPropertyId).getValue();
+				Object id = item.getItemProperty(uniqueIdPropertyId).getValue();
+
+				if (needsUUIDMapping) {
+					uuidmapping.put(id.toString(), id);
+				}
+				result.add(new SuggestionResult(id.toString(), caption));
+
+				count++;
+				if (count >= limit) {
+					break;
+				}
+			}
+		}
+
+		respond(handleId, result);
+	}
+
+	/**
+	 * Gets the item by id.
+	 *
+	 * @param id
+	 *            the id
+	 * @return the item by id
+	 */
+	protected Object getItemById(String id) {
+		if (uniqueIdPropertyId == null) {
+			throw new IllegalArgumentException("uniqueIdPropertyId must be set for query.");
+		}
+
+		Object uuid = id;
+		if (needsUUIDMapping) {
+			uuid = uuidmapping.get(id);
+			uuidmapping.clear();
+		}
+
+		if (uuid == null) {
+			LOGGER.error("Can not access uuid==null. Given id was " + id);
+			return null;
+		}
+
+		synchronized (lock) {
+			Container.Filterable filterable = (Container.Filterable) container;
+			filterable.removeAllContainerFilters();
+			filterable.addContainerFilter(new Compare.Equal(uniqueIdPropertyId, uuid));
+
+			Container.Indexed indexed = (Container.Indexed) container;
+			return indexed.firstItemId();
+		}
+	}
+
+	/**
+	 * Fire selection changed.
+	 *
+	 * @param itemId
+	 *            the item id
+	 */
+	protected void fireSelectionChanged(Object itemId) {
+		LOGGER.debug("Selection changed event fired: " + itemId);
+		fireEvent(new SelectionChangedEvent(this, itemId));
+	}
+
+	/**
+	 * Add listener which is being notified if the selection changes.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	public void addSelectionChangedListener(SelectionChangedListener listener) {
+		addListener(SelectionChangedEvent.class, listener, SelectionChangedListener.SELECTION_CHANGED_METHOD);
+	}
+
+	/**
+	 * Removes listener which is being notified if the selection changes.
+	 *
+	 * @param listener
+	 *            the listener
+	 */
+	public void removeSelectionChangedListener(SelectionChangedListener listener) {
+		removeListener(SelectionChangedEvent.class, listener);
+	}
+
+	/**
+	 * Is fired, if the selection of a suggestion clientside finished.
+	 */
+	public static class SelectionChangedEvent extends Event {
+
+		/** The item id. */
+		private final Object itemId;
+
+		/**
+		 * Instantiates a new selection changed event.
+		 *
+		 * @param source
+		 *            the source
+		 * @param itemId
+		 *            the item id
+		 */
+		public SelectionChangedEvent(Component source, Object itemId) {
+			super(source);
+			this.itemId = itemId;
+		}
+
+		/**
+		 * Gets the item id.
+		 *
+		 * @return the item id
+		 */
+		public Object getItemId() {
+			return itemId;
+		}
+
+	}
+
+	/**
+	 * The listener interface for receiving selectionChanged events. The class
+	 * that is interested in processing a selectionChanged event implements this
+	 * interface, and the object created with that class is registered with a
+	 * component using the component's <code>addSelectionChangedListener</code>
+	 * method. When the selectionChanged event occurs, that object's appropriate
+	 * method is invoked.
+	 *
+	 * @see SelectionChangedEvent
+	 */
+	public interface SelectionChangedListener extends Serializable {
+
+		/** The Constant SELECTION_CHANGED_METHOD. */
+		public static final Method SELECTION_CHANGED_METHOD = ReflectTools.findMethod(SelectionChangedListener.class,
+				"selectionChanged", SelectionChangedEvent.class);
+
+		/**
+		 * Selection changed.
+		 *
+		 * @param event
+		 *            the event
+		 */
+		void selectionChanged(SelectionChangedEvent event);
+
+	}
+}
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/SuggestTextWidgetset.gwt.xml b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/SuggestTextWidgetset.gwt.xml
new file mode 100644
index 0000000..d58fd0d
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/SuggestTextWidgetset.gwt.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.5.1//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.5.1/distro-source/core/src/gwt-module.dtd">
+<module>
+	<inherits name="com.vaadin.DefaultWidgetSet" />
+	
+   <!-- Uncomment the following to compile the widgetset for one browser only. 
+		Multiple browsers can be specified as a comma separated list. The supported 
+		user agents at the moment of writing were: ie8,ie9,gecko1_8,safari,opera 
+		The value gecko1_8 is used for Firefox and safari is used for webkit based 
+		browsers including Google Chrome. -->
+
+ 	<!-- To enable SuperDevMode, uncomment this line. See https://vaadin.com/wiki/-/wiki/Main/Using%20SuperDevMode 
+ 		for more information and instructions. --> 
+ 	<!-- <set-configuration-property name="devModeRedirectEnabled" value="true" /> -->
+
+<!-- 	<add-linker name="xsiframe" /> -->
+<!-- 	<set-configuration-property name="devModeRedirectEnabled" value="true" /> -->
+<!-- 	<set-property name="user.agent" value="safari" /> -->
+
+	<stylesheet src="suggesttext/styles.css" />
+
+</module>
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/ODelegatingOracle.java b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/ODelegatingOracle.java
new file mode 100644
index 0000000..0ad5543
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/ODelegatingOracle.java
@@ -0,0 +1,169 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.suggesttext.client;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.osbp.vaadin.addons.suggesttext.client.OQueryDelegate.FutureCallback;
+import org.eclipse.osbp.vaadin.addons.suggesttext.client.OQueryDelegate.SuggestionResult;
+
+import com.google.gwt.user.client.Timer;
+import com.google.gwt.user.client.ui.SuggestOracle;
+
+// TODO: Auto-generated Javadoc
+/**
+ * An oracle that delegates to a serverside RPC.
+ */
+public class ODelegatingOracle extends SuggestOracle {
+
+	/** The delegate. */
+	private final OQueryDelegate delegate;
+	
+	/** The delay timer. */
+	private CustomTimer delayTimer;
+	
+	/** The popup delay. */
+	private int popupDelay;
+	
+	/** The o suggest box. */
+	private OSuggestBox oSuggestBox;
+	
+	/** The suggestion enabled. */
+	private boolean suggestionEnabled;
+	
+	/**
+	 * Instantiates a new o delegating oracle.
+	 *
+	 * @param delegate the delegate
+	 */
+	public ODelegatingOracle(OQueryDelegate delegate) {
+		this.delegate = delegate;
+	}
+
+	/* (non-Javadoc)
+	 * @see com.google.gwt.user.client.ui.SuggestOracle#requestSuggestions(com.google.gwt.user.client.ui.SuggestOracle.Request, com.google.gwt.user.client.ui.SuggestOracle.Callback)
+	 */
+	@Override
+	public void requestSuggestions(final Request request, final Callback callback) {
+		if (request.getQuery() == null || request.equals("") || !suggestionEnabled) {
+			return;
+		}
+
+		if (delayTimer == null) {
+			delayTimer = new CustomTimer();
+		} else {
+			delayTimer.cancel();
+		}
+		delayTimer.setRequest(request);
+		delayTimer.setCallback(callback);
+		delayTimer.schedule(popupDelay);
+	}
+
+	/* (non-Javadoc)
+	 * @see com.google.gwt.user.client.ui.SuggestOracle#requestDefaultSuggestions(com.google.gwt.user.client.ui.SuggestOracle.Request, com.google.gwt.user.client.ui.SuggestOracle.Callback)
+	 */
+	public void requestDefaultSuggestions(Request request, Callback callback) {
+		if (delayTimer != null) {
+			delayTimer.cancel();
+			delayTimer = null;
+		}
+
+		super.requestDefaultSuggestions(request, callback);
+	}
+
+	/**
+	 * Sets the delay until the popup occurs.
+	 *
+	 * @param popupDelay the new popup delay
+	 */
+	public void setPopupDelay(int popupDelay) {
+		this.popupDelay = popupDelay;
+	}
+
+	/**
+	 * Timer to implement the popupDelay.
+	 */
+	private class CustomTimer extends Timer {
+		
+		/** The request. */
+		private Request request;
+		
+		/** The callback. */
+		private Callback callback;
+
+		/**
+		 * Sets the request.
+		 *
+		 * @param request the new request
+		 */
+		public void setRequest(Request request) {
+			this.request = request;
+		}
+
+		/**
+		 * Sets the callback.
+		 *
+		 * @param callback the new callback
+		 */
+		public void setCallback(Callback callback) {
+			this.callback = callback;
+		}
+
+		/* (non-Javadoc)
+		 * @see com.google.gwt.user.client.Timer#run()
+		 */
+		@Override
+		public void run() {
+			// make an rpc call
+			delegate.requestSuggestions(request, new FutureCallback() {
+				@Override
+				public void respondSuggestions(List<SuggestionResult> suggestions) {
+
+					if (suggestions.size() == 1) {
+						oSuggestBox.setSingleSuggestionAndClosePopup(new OSuggestion(suggestions.get(0)));
+					} else {
+						List<OSuggestion> temp = new ArrayList<>();
+						for (SuggestionResult r : suggestions) {
+							temp.add(new OSuggestion(r));
+						}
+
+						Response response = new Response();
+						response.setMoreSuggestions(false);
+						response.setSuggestions(temp);
+
+						callback.onSuggestionsReady(request, response);
+					}
+				}
+			});
+		}
+	}
+
+	/**
+	 * Sets the suggest box.
+	 *
+	 * @param oSuggestBox the new suggest box
+	 */
+	protected void setSuggestBox(OSuggestBox oSuggestBox) {
+		this.oSuggestBox = oSuggestBox;
+	}
+
+	/**
+	 * True, if the suggestion box should be used.
+	 *
+	 * @param suggestionEnabled the new suggestion enabled
+	 */
+	public void setSuggestionEnabled(boolean suggestionEnabled) {
+		this.suggestionEnabled = suggestionEnabled;
+	}
+}
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/OQueryDelegate.java b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/OQueryDelegate.java
new file mode 100644
index 0000000..50c9a0f
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/OQueryDelegate.java
@@ -0,0 +1,115 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.suggesttext.client;
+
+import java.util.Date;
+import java.util.List;
+
+import com.google.gwt.user.client.ui.SuggestOracle.Request;
+
+// TODO: Auto-generated Javadoc
+/**
+ * This class is responsible to delegate the query for suggestions to the serverside rpc. 
+ */
+public class OQueryDelegate {
+
+	/** The server rpc. */
+	// instance
+	private final SuggestTextFieldServerRpc serverRpc;
+
+	/** The current handle. */
+	private String currentHandle;
+	
+	/** The current callback. */
+	private FutureCallback currentCallback;
+
+	/**
+	 * Instantiates a new o query delegate.
+	 *
+	 * @param serverRpc the server rpc
+	 */
+	public OQueryDelegate(SuggestTextFieldServerRpc serverRpc) {
+		this.serverRpc = serverRpc;
+	}
+
+	/**
+	 * Request suggestions.
+	 *
+	 * @param request the request
+	 * @param callback the callback
+	 */
+	protected void requestSuggestions(Request request, FutureCallback callback) {
+		// dismiss older callbacks
+		currentHandle = Long.toHexString(new Date().getTime());
+		currentCallback = callback;
+
+		serverRpc.requestSuggestions(currentHandle, request.getQuery(), request.getLimit());
+	}
+
+	/**
+	 * Respond.
+	 *
+	 * @param handle the handle
+	 * @param response the response
+	 */
+	public void respond(String handle, List<SuggestionResult> response) {
+		if (currentHandle.equals(handle)) {
+			currentCallback.respondSuggestions(response);
+		}
+	}
+	
+	/**
+	 * A future to wait for responds from serverside. 
+	 */
+	public interface FutureCallback {
+		
+		/**
+		 * Respond suggestions.
+		 *
+		 * @param suggestions the suggestions
+		 */
+		void respondSuggestions(List<SuggestionResult> suggestions);
+	}
+
+	/**
+	 * The Class SuggestionResult.
+	 */
+	public static class SuggestionResult {
+		
+		/** The uuid. */
+		public String uuid;
+		
+		/** The display text. */
+		public String displayText;
+
+		/**
+		 * Instantiates a new suggestion result.
+		 */
+		public SuggestionResult() {
+
+		}
+
+		/**
+		 * Instantiates a new suggestion result.
+		 *
+		 * @param uuid the uuid
+		 * @param displayText the display text
+		 */
+		public SuggestionResult(String uuid, String displayText) {
+			super();
+			this.uuid = uuid;
+			this.displayText = displayText;
+		}
+
+	}
+}
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/OSuggestBox.java b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/OSuggestBox.java
new file mode 100644
index 0000000..50dc26d
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/OSuggestBox.java
@@ -0,0 +1,1365 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.suggesttext.client;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import com.google.gwt.core.client.Scheduler.ScheduledCommand;
+import com.google.gwt.dom.client.Element;
+import com.google.gwt.editor.client.IsEditor;
+import com.google.gwt.editor.client.LeafValueEditor;
+import com.google.gwt.editor.client.adapters.TakesValueEditor;
+import com.google.gwt.event.dom.client.HasAllKeyHandlers;
+import com.google.gwt.event.dom.client.KeyCodes;
+import com.google.gwt.event.dom.client.KeyDownEvent;
+import com.google.gwt.event.dom.client.KeyDownHandler;
+import com.google.gwt.event.dom.client.KeyPressEvent;
+import com.google.gwt.event.dom.client.KeyPressHandler;
+import com.google.gwt.event.dom.client.KeyUpEvent;
+import com.google.gwt.event.dom.client.KeyUpHandler;
+import com.google.gwt.event.logical.shared.HasSelectionHandlers;
+import com.google.gwt.event.logical.shared.SelectionEvent;
+import com.google.gwt.event.logical.shared.SelectionHandler;
+import com.google.gwt.event.logical.shared.ValueChangeEvent;
+import com.google.gwt.event.logical.shared.ValueChangeHandler;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.ui.DecoratedPopupPanel;
+import com.google.gwt.user.client.ui.Focusable;
+import com.google.gwt.user.client.ui.HasAnimation;
+import com.google.gwt.user.client.ui.HasEnabled;
+import com.google.gwt.user.client.ui.HasText;
+import com.google.gwt.user.client.ui.HasValue;
+import com.google.gwt.user.client.ui.MenuBar;
+import com.google.gwt.user.client.ui.MenuItem;
+import com.google.gwt.user.client.ui.PopupPanel;
+import com.google.gwt.user.client.ui.PopupPanel.AnimationType;
+import com.google.gwt.user.client.ui.RootPanel;
+import com.google.gwt.user.client.ui.SimplePanel;
+import com.google.gwt.user.client.ui.SuggestBox;
+import com.google.gwt.user.client.ui.SuggestOracle;
+import com.google.gwt.user.client.ui.SuggestOracle.Callback;
+import com.google.gwt.user.client.ui.SuggestOracle.Request;
+import com.google.gwt.user.client.ui.SuggestOracle.Response;
+import com.google.gwt.user.client.ui.SuggestOracle.Suggestion;
+import com.google.gwt.user.client.ui.UIObject;
+import com.google.gwt.user.client.ui.ValueBoxBase;
+import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.client.ApplicationConnection;
+import com.vaadin.client.ComponentConnector;
+import com.vaadin.client.Util;
+import com.vaadin.client.ui.VOverlay;
+import com.vaadin.event.ShortcutAction;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Copy from {@link SuggestBox} but {@link #box} can be initialized after new
+ * instance was created. Copy was needed since {@link #box} is final in
+ * {@link com.google.gwt.user.client.ui.SuggestBox}.
+ */
+public class OSuggestBox extends SimplePanel implements HasText, Focusable, HasEnabled, HasAllKeyHandlers,
+		HasValue<String>, HasSelectionHandlers<Suggestion>, IsEditor<LeafValueEditor<String>> {
+
+	/**
+	 * The callback used when a user selects a {@link Suggestion}.
+	 */
+	public static interface SuggestionCallback {
+
+		/**
+		 * On suggestion selected.
+		 *
+		 * @param suggestion
+		 *            the suggestion
+		 */
+		void onSuggestionSelected(Suggestion suggestion);
+	}
+
+	/**
+	 * Used to display suggestions to the user.
+	 */
+	public abstract static class SuggestionDisplay {
+
+		/**
+		 * Get the currently selected {@link Suggestion} in the display.
+		 *
+		 * @return the current suggestion, or null if none selected
+		 */
+		protected abstract Suggestion getCurrentSelection();
+
+		/**
+		 * Hide the list of suggestions from view.
+		 */
+		protected abstract void hideSuggestions();
+
+		/**
+		 * Returns true, if the popup is showing.
+		 * 
+		 * @return
+		 */
+		protected abstract boolean isShowing();
+
+		/**
+		 * Highlight the suggestion directly below the current selection in the
+		 * list.
+		 */
+		protected abstract void moveSelectionDown();
+
+		/**
+		 * Highlight the suggestion directly above the current selection in the
+		 * list.
+		 */
+		protected abstract void moveSelectionUp();
+
+		/**
+		 * Set the debug id of widgets used in the SuggestionDisplay.
+		 *
+		 * @param suggestBoxBaseID
+		 *            the baseID of the {@link OSuggestBox}
+		 * @see UIObject#onEnsureDebugId(String)
+		 */
+		protected void onEnsureDebugId(String suggestBoxBaseID) {
+		}
+
+		/**
+		 * Accepts information about whether there were more suggestions
+		 * matching than were provided to {@link #showSuggestions}.
+		 *
+		 * @param hasMoreSuggestions
+		 *            true if more matches were available
+		 * @param numMoreSuggestions
+		 *            number of more matches available. If the specific number
+		 *            is unknown, 0 will be passed.
+		 */
+		protected void setMoreSuggestions(boolean hasMoreSuggestions, int numMoreSuggestions) {
+			// Subclasses may optionally implement.
+		}
+
+		/**
+		 * Update the list of visible suggestions.
+		 *
+		 * Use care when using isDisplayStringHtml; it is an easy way to expose
+		 * script-based security problems.
+		 *
+		 * @param suggestBox
+		 *            the suggest box where the suggestions originated
+		 * @param suggestions
+		 *            the suggestions to show
+		 * @param isDisplayStringHTML
+		 *            should the suggestions be displayed as HTML
+		 * @param isAutoSelectEnabled
+		 *            if true, the first item should be selected automatically
+		 * @param callback
+		 *            the callback used when the user makes a suggestion
+		 */
+		protected abstract void showSuggestions(OSuggestBox suggestBox, Collection<? extends Suggestion> suggestions,
+				boolean isDisplayStringHTML, boolean isAutoSelectEnabled, SuggestionCallback callback);
+
+		/**
+		 * If true, then the popup will hide when the user clicks outside the
+		 * popup.
+		 * 
+		 * @param autoHide
+		 */
+		protected abstract void setAutoHide(boolean autoHide);
+
+		/**
+		 * The owner of the popup.
+		 * 
+		 * @param oSuggestBox
+		 */
+		protected abstract void setOwner(OSuggestBox oSuggestBox);
+
+	}
+
+	/**
+	 * <p>
+	 * The default implementation of {@link SuggestionDisplay} displays
+	 * suggestions in a {@link PopupPanel} beneath the {@link OSuggestBox}.
+	 * 
+	 *
+	 * <h3>CSS Style Rules</h3>
+	 * <dl>
+	 * <dt>.o-SuggestBoxPopup</dt>
+	 * <dd>the suggestion popup</dd>
+	 * <dt>.o-SuggestBoxPopup .item</dt>
+	 * <dd>an unselected suggestion</dd>
+	 * <dt>.o-SuggestBoxPopup .item-selected</dt>
+	 * <dd>a selected suggestion</dd>
+	 * <dt>.o-SuggestBoxPopup .suggestPopupTopLeft</dt>
+	 * <dd>the top left cell</dd>
+	 * <dt>.o-SuggestBoxPopup .suggestPopupTopLeftInner</dt>
+	 * <dd>the inner element of the cell</dd>
+	 * <dt>.o-SuggestBoxPopup .suggestPopupTopCenter</dt>
+	 * <dd>the top center cell</dd>
+	 * <dt>.o-SuggestBoxPopup .suggestPopupTopCenterInner</dt>
+	 * <dd>the inner element of the cell</dd>
+	 * <dt>.o-SuggestBoxPopup .suggestPopupTopRight</dt>
+	 * <dd>the top right cell</dd>
+	 * <dt>.o-SuggestBoxPopup .suggestPopupTopRightInner</dt>
+	 * <dd>the inner element of the cell</dd>
+	 * <dt>.o-SuggestBoxPopup .suggestPopupMiddleLeft</dt>
+	 * <dd>the middle left cell</dd>
+	 * <dt>.o-SuggestBoxPopup .suggestPopupMiddleLeftInner</dt>
+	 * <dd>the inner element of the cell</dd>
+	 * <dt>.o-SuggestBoxPopup .suggestPopupMiddleCenter</dt>
+	 * <dd>the middle center cell</dd>
+	 * <dt>.o-SuggestBoxPopup .suggestPopupMiddleCenterInner</dt>
+	 * <dd>the inner element of the cell</dd>
+	 * <dt>.o-SuggestBoxPopup .suggestPopupMiddleRight</dt>
+	 * <dd>the middle right cell</dd>
+	 * <dt>.o-SuggestBoxPopup .suggestPopupMiddleRightInner</dt>
+	 * <dd>the inner element of the cell</dd>
+	 * <dt>.o-SuggestBoxPopup .suggestPopupBottomLeft</dt>
+	 * <dd>the bottom left cell</dd>
+	 * <dt>.o-SuggestBoxPopup .suggestPopupBottomLeftInner</dt>
+	 * <dd>the inner element of the cell</dd>
+	 * <dt>.o-SuggestBoxPopup .suggestPopupBottomCenter</dt>
+	 * <dd>the bottom center cell</dd>
+	 * <dt>.o-SuggestBoxPopup .suggestPopupBottomCenterInner</dt>
+	 * <dd>the inner element of the cell</dd>
+	 * <dt>.o-SuggestBoxPopup .suggestPopupBottomRight</dt>
+	 * <dd>the bottom right cell</dd>
+	 * <dt>.o-SuggestBoxPopup .suggestPopupBottomRightInner</dt>
+	 * <dd>the inner element of the cell</dd>
+	 * </dl>
+	 */
+	public static class DefaultSuggestionDisplay extends SuggestionDisplay implements HasAnimation {
+
+		/** The suggestion menu. */
+		private final SuggestionMenu suggestionMenu;
+
+		/** The suggestion popup. */
+		private final PopupPanel suggestionPopup;
+
+		/**
+		 * The suggest box this display was prepared for. Is used to determine
+		 * the {@link ApplicationConnection} and the v-overlay-container.
+		 */
+		private OSuggestBox oSuggestBox;
+
+		/**
+		 * We need to keep track of the last {@link OSuggestBox} because it acts
+		 * as an autoHide partner for the {@link PopupPanel}. If we use the same
+		 * display for multiple {@link OSuggestBox}, we need to switch the
+		 * autoHide partner.
+		 */
+		private OSuggestBox lastSuggestBox = null;
+
+		/**
+		 * Sub-classes making use of {@link decorateSuggestionList} to add
+		 * elements to the suggestion popup _may_ want those elements to show
+		 * even when there are 0 suggestions. An example would be showing a "No
+		 * matches" message.
+		 */
+		private boolean hideWhenEmpty = true;
+
+		/**
+		 * Object to position the suggestion display next to, instead of the
+		 * associated suggest box.
+		 */
+		private UIObject positionRelativeTo;
+
+		/**
+		 * Construct a new {@link DefaultSuggestionDisplay}.
+		 */
+		public DefaultSuggestionDisplay() {
+			suggestionMenu = new SuggestionMenu(true);
+			suggestionPopup = createPopup();
+			suggestionPopup.setWidget(decorateSuggestionList(suggestionMenu));
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.osbp.vaadin.addons.suggesttext.client.OSuggestBox.
+		 * SuggestionDisplay#hideSuggestions()
+		 */
+		@Override
+		public void hideSuggestions() {
+			suggestionPopup.hide();
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see com.google.gwt.user.client.ui.HasAnimation#isAnimationEnabled()
+		 */
+		public boolean isAnimationEnabled() {
+			return suggestionPopup.isAnimationEnabled();
+		}
+
+		/**
+		 * Check whether or not the suggestion list is hidden when there are no
+		 * suggestions to display.
+		 *
+		 * @return true if hidden when empty, false if not
+		 */
+		public boolean isSuggestionListHiddenWhenEmpty() {
+			return hideWhenEmpty;
+		}
+
+		/**
+		 * Check whether or not the list of suggestions is being shown.
+		 *
+		 * @return true if the suggestions are visible, false if not
+		 */
+		public boolean isSuggestionListShowing() {
+			return suggestionPopup.isShowing();
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see com.google.gwt.user.client.ui.HasAnimation#setAnimationEnabled(
+		 * boolean)
+		 */
+		public void setAnimationEnabled(boolean enable) {
+			suggestionPopup.setAnimationEnabled(enable);
+		}
+
+		/**
+		 * Sets the style name of the suggestion popup.
+		 *
+		 * @param style
+		 *            the new primary style name
+		 * @see UIObject#setStyleName(String)
+		 */
+		public void setPopupStyleName(String style) {
+			suggestionPopup.setStyleName(style);
+		}
+
+		/**
+		 * Sets the UI object where the suggestion display should appear next
+		 * to.
+		 *
+		 * @param uiObject
+		 *            the uiObject used for positioning, or null to position
+		 *            relative to the suggest box
+		 */
+		public void setPositionRelativeTo(UIObject uiObject) {
+			positionRelativeTo = uiObject;
+		}
+
+		/**
+		 * Set whether or not the suggestion list should be hidden when there
+		 * are no suggestions to display. Defaults to true.
+		 *
+		 * @param hideWhenEmpty
+		 *            true to hide when empty, false not to
+		 */
+		public void setSuggestionListHiddenWhenEmpty(boolean hideWhenEmpty) {
+			this.hideWhenEmpty = hideWhenEmpty;
+		}
+
+		/**
+		 * Create the PopupPanel that will hold the list of suggestions.
+		 *
+		 * @return the popup panel
+		 */
+		protected PopupPanel createPopup() {
+			PopupPanel p = new DecoratedPopupPanel(true, false) {
+				@Override
+				protected void onAttach() {
+					// Move the overlay to the appropriate overlay container
+					getOverlayContainer().appendChild(getElement());
+
+					addStyleName(oSuggestBox.getStyleName());
+
+					super.onAttach();
+				}
+			};
+			p.setStyleName("o-SuggestBoxPopup");
+			p.setPreviewingAllNativeEvents(true);
+			p.setAnimationType(AnimationType.ROLL_DOWN);
+			p.setAutoHideEnabled(true);
+			return p;
+		}
+
+		/**
+		 * Wrap the list of suggestions before adding it to the popup. You can
+		 * override this method if you want to wrap the suggestion list in a
+		 * decorator.
+		 *
+		 * @param suggestionList
+		 *            the widget that contains the list of suggestions
+		 * @return the suggestList, optionally inside of a wrapper
+		 */
+		protected Widget decorateSuggestionList(Widget suggestionList) {
+			return suggestionList;
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.osbp.vaadin.addons.suggesttext.client.OSuggestBox.
+		 * SuggestionDisplay#getCurrentSelection()
+		 */
+		@Override
+		protected Suggestion getCurrentSelection() {
+			if (!isSuggestionListShowing()) {
+				return null;
+			}
+			MenuItem item = suggestionMenu.getSelectedItem();
+			return item == null ? null : ((SuggestionMenuItem) item).getSuggestion();
+		}
+
+		/**
+		 * Get the {@link PopupPanel} used to display suggestions.
+		 *
+		 * @return the popup panel
+		 */
+		protected PopupPanel getPopupPanel() {
+			return suggestionPopup;
+		}
+
+		/**
+		 * Get the {@link MenuBar} used to display suggestions.
+		 *
+		 * @return the suggestions menu
+		 */
+		protected MenuBar getSuggestionMenu() {
+			return suggestionMenu;
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.osbp.vaadin.addons.suggesttext.client.OSuggestBox.
+		 * SuggestionDisplay#moveSelectionDown()
+		 */
+		@Override
+		protected void moveSelectionDown() {
+			// Make sure that the menu is actually showing. These keystrokes
+			// are only relevant when choosing a suggestion.
+			if (isSuggestionListShowing()) {
+				// If nothing is selected, getSelectedItemIndex will return -1
+				// and we
+				// will select index 0 (the first item) by default.
+				suggestionMenu.selectItem(suggestionMenu.getSelectedItemIndex() + 1);
+			}
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.osbp.vaadin.addons.suggesttext.client.OSuggestBox.
+		 * SuggestionDisplay#moveSelectionUp()
+		 */
+		@Override
+		protected void moveSelectionUp() {
+			// Make sure that the menu is actually showing. These keystrokes
+			// are only relevant when choosing a suggestion.
+			if (isSuggestionListShowing()) {
+				// if nothing is selected, then we should select the last
+				// suggestion by
+				// default. This is because, in some cases, the suggestions menu
+				// will
+				// appear above the text box rather than below it (for example,
+				// if the
+				// text box is at the bottom of the window and the suggestions
+				// will not
+				// fit below the text box). In this case, users would expect to
+				// be able
+				// to use the up arrow to navigate to the suggestions.
+				if (suggestionMenu.getSelectedItemIndex() == -1) {
+					suggestionMenu.selectItem(suggestionMenu.getNumItems() - 1);
+				} else {
+					suggestionMenu.selectItem(suggestionMenu.getSelectedItemIndex() - 1);
+				}
+			}
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.osbp.vaadin.addons.suggesttext.client.OSuggestBox.
+		 * SuggestionDisplay#showSuggestions(org.eclipse.osbp.vaadin.addons.
+		 * suggesttext.client.OSuggestBox, java.util.Collection, boolean,
+		 * boolean,
+		 * org.eclipse.osbp.vaadin.addons.suggesttext.client.OSuggestBox.
+		 * SuggestionCallback)
+		 */
+		@Override
+		protected void showSuggestions(final OSuggestBox suggestBox, Collection<? extends Suggestion> suggestions,
+				boolean isDisplayStringHTML, boolean isAutoSelectEnabled, final SuggestionCallback callback) {
+			// Hide the popup if there are no suggestions to display.
+			boolean anySuggestions = (suggestions != null && suggestions.size() > 0);
+			if (!anySuggestions && hideWhenEmpty) {
+				hideSuggestions();
+				return;
+			}
+
+			// Hide the popup before we manipulate the menu within it. If we do
+			// not
+			// do this, some browsers will redraw the popup as items are removed
+			// and added to the menu.
+			if (suggestionPopup.isAttached()) {
+				suggestionPopup.hide();
+			}
+
+			suggestionMenu.clearItems();
+
+			for (final Suggestion curSuggestion : suggestions) {
+				final SuggestionMenuItem menuItem = new SuggestionMenuItem(curSuggestion);
+				menuItem.setScheduledCommand(new ScheduledCommand() {
+					public void execute() {
+						callback.onSuggestionSelected(curSuggestion);
+					}
+				});
+
+				suggestionMenu.addItem(menuItem);
+			}
+
+			if (isAutoSelectEnabled && anySuggestions) {
+				// Select the first item in the suggestion menu.
+				suggestionMenu.selectItem(0);
+			}
+
+			// Link the popup autoHide to the TextBox.
+			if (lastSuggestBox != suggestBox) {
+				// If the suggest box has changed, free the old one first.
+				if (lastSuggestBox != null) {
+					suggestionPopup.removeAutoHidePartner(lastSuggestBox.getElement());
+				}
+				lastSuggestBox = suggestBox;
+				suggestionPopup.addAutoHidePartner(suggestBox.getElement());
+			}
+
+			// Show the popup under the TextBox.
+			suggestionPopup.showRelativeTo(positionRelativeTo != null ? positionRelativeTo : suggestBox);
+		}
+
+		@Override
+		protected void setAutoHide(boolean autoHide) {
+			suggestionPopup.setAutoHideEnabled(autoHide);
+		}
+
+		@Override
+		protected void setOwner(OSuggestBox oSuggestBox) {
+			this.oSuggestBox = oSuggestBox;
+		}
+
+		/**
+		 * Gets the 'overlay container' element. Tries to find the current
+		 * {@link ApplicationConnection} using
+		 * {@link #getApplicationConnection()}.
+		 * 
+		 * @return the overlay container element for the current
+		 *         {@link ApplicationConnection} or another element if the
+		 *         current {@link ApplicationConnection} cannot be determined.
+		 */
+		public Element getOverlayContainer() {
+			ApplicationConnection ac = getApplicationConnection();
+			if (ac == null) {
+				// could not figure out which one we belong to, styling will
+				// probably fail
+				Logger.getLogger(getClass().getSimpleName()).log(Level.WARNING,
+						"Could not determine ApplicationConnection for Overlay. Overlay will be attached directly to the root panel");
+				return RootPanel.get().getElement();
+			} else {
+				return getOverlayContainer(ac);
+			}
+		}
+
+		/**
+		 * Get the {@link ApplicationConnection} that this overlay belongs to.
+		 * 
+		 * @return
+		 */
+		protected ApplicationConnection getApplicationConnection() {
+			ComponentConnector c = Util.findConnectorFor(oSuggestBox);
+			if (c != null) {
+				return c.getConnection();
+			}
+			return null;
+		}
+
+		/**
+		 * Gets the 'overlay container' element pertaining to the given
+		 * {@link ApplicationConnection}. Each overlay should be created in a
+		 * overlay container element, so that the correct theme and styles can
+		 * be applied.
+		 * 
+		 * @param ac
+		 *            A reference to {@link ApplicationConnection}
+		 * @return The overlay container
+		 */
+		@SuppressWarnings("deprecation")
+		public Element getOverlayContainer(ApplicationConnection ac) {
+			String id = ac.getConfiguration().getRootPanelId();
+			id = id += "-overlays";
+			Element container = DOM.getElementById(id);
+			if (container == null) {
+				container = DOM.createDiv();
+				container.setId(id);
+				String styles = ac.getUIConnector().getWidget().getParent().getStyleName();
+				if (styles != null && !styles.equals("")) {
+					container.addClassName(styles);
+				}
+				container.addClassName(VOverlay.CLASSNAME_CONTAINER);
+				RootPanel.get().getElement().appendChild(container);
+			}
+			return DOM.asOld(container);
+		}
+
+		@Override
+		protected boolean isShowing() {
+			return suggestionPopup.isShowing();
+		}
+	}
+
+	/**
+	 * The SuggestionMenu class is used for the display and selection of
+	 * suggestions in the XSuggestBox widget. SuggestionMenu differs from
+	 * MenuBar in that it always has a vertical orientation, and it has no
+	 * submenus. It also allows for programmatic selection of items in the menu,
+	 * and programmatically performing the action associated with the selected
+	 * item. In the MenuBar class, items cannot be selected programatically -
+	 * they can only be selected when the user places the mouse over a particlar
+	 * item. Additional methods in SuggestionMenu provide information about the
+	 * number of items in the menu, and the index of the currently selected
+	 * item.
+	 */
+	private static class SuggestionMenu extends MenuBar {
+
+		/**
+		 * Instantiates a new suggestion menu.
+		 *
+		 * @param vertical
+		 *            the vertical
+		 */
+		public SuggestionMenu(boolean vertical) {
+			super(vertical);
+			// Make sure that CSS styles specified for the default Menu classes
+			// do not affect this menu
+			setStyleName("");
+			setFocusOnHoverEnabled(false);
+		}
+
+		/**
+		 * Gets the num items.
+		 *
+		 * @return the num items
+		 */
+		public int getNumItems() {
+			return getItems().size();
+		}
+
+		/**
+		 * Returns the index of the menu item that is currently selected.
+		 *
+		 * @return returns the selected item
+		 */
+		public int getSelectedItemIndex() {
+			// The index of the currently selected item can only be
+			// obtained if the menu is showing.
+			MenuItem selectedItem = getSelectedItem();
+			if (selectedItem != null) {
+				return getItems().indexOf(selectedItem);
+			}
+			return -1;
+		}
+
+		/**
+		 * Selects the item at the specified index in the menu. Selecting the
+		 * item does not perform the item's associated action; it only changes
+		 * the style of the item and updates the value of
+		 * SuggestionMenu.selectedItem.
+		 *
+		 * @param index
+		 *            index
+		 */
+		public void selectItem(int index) {
+			List<MenuItem> items = getItems();
+			if (index > -1 && index < items.size()) {
+				selectItem(items.get(index));
+			}
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see com.google.gwt.user.client.ui.MenuBar#getSelectedItem()
+		 */
+		@Override
+		protected MenuItem getSelectedItem() {
+			return super.getSelectedItem();
+		}
+	}
+
+	/**
+	 * Class for menu items in a SuggestionMenu. A SuggestionMenuItem differs
+	 * from a MenuItem in that each item is backed by a Suggestion object. The
+	 * text of each menu item is derived from the display string of a Suggestion
+	 * object, and each item stores a reference to its Suggestion object.
+	 */
+	private static class SuggestionMenuItem extends MenuItem {
+
+		/** The Constant STYLENAME_DEFAULT. */
+		private static final String STYLENAME_DEFAULT = "item";
+
+		/** The suggestion. */
+		private Suggestion suggestion;
+
+		/**
+		 * Instantiates a new suggestion menu item.
+		 *
+		 * @param suggestion
+		 *            the suggestion
+		 */
+		public SuggestionMenuItem(Suggestion suggestion) {
+			super(suggestion.getDisplayString(), (SuggestionMenu) null);
+			// Each suggestion should be placed in a single row in the
+			// suggestion
+			// menu. If the window is resized and the suggestion cannot fit on a
+			// single row, it should be clipped (instead of wrapping around and
+			// taking up a second row).
+			getElement().getStyle().setProperty("whiteSpace", "nowrap");
+			setStyleName(STYLENAME_DEFAULT);
+			setSuggestion(suggestion);
+		}
+
+		/**
+		 * Gets the suggestion.
+		 *
+		 * @return the suggestion
+		 */
+		public Suggestion getSuggestion() {
+			return suggestion;
+		}
+
+		/**
+		 * Sets the suggestion.
+		 *
+		 * @param suggestion
+		 *            the new suggestion
+		 */
+		public void setSuggestion(Suggestion suggestion) {
+			this.suggestion = suggestion;
+		}
+	}
+
+	/** The Constant STYLENAME_DEFAULT. */
+	private static final String STYLENAME_DEFAULT = "o-XSuggestBox";
+
+	/** The limit. */
+	private int limit = 20;
+
+	/** The selects first item. */
+	private boolean selectsFirstItem = true;
+
+	/** The oracle. */
+	private SuggestOracle oracle;
+
+	/** The current text. */
+	private String currentText;
+
+	/** The editor. */
+	private LeafValueEditor<String> editor;
+
+	/** The display. */
+	private final SuggestionDisplay display;
+
+	/** The box. */
+	private ValueBoxBase<String> box;
+
+	/** The callback. */
+	private final Callback callback = new Callback() {
+		public void onSuggestionsReady(Request request, Response response) {
+			// If disabled while request was in-flight, drop it
+			if (!isEnabled()) {
+				return;
+			}
+			display.setMoreSuggestions(response.hasMoreSuggestions(), response.getMoreSuggestionsCount());
+			display.showSuggestions(OSuggestBox.this, response.getSuggestions(), oracle.isDisplayStringHTML(),
+					isAutoSelectEnabled(), suggestionCallback);
+		}
+	};
+
+	/** The suggestion callback. */
+	private final SuggestionCallback suggestionCallback = new SuggestionCallback() {
+		public void onSuggestionSelected(Suggestion suggestion) {
+			box.setFocus(true);
+			setNewSelection(suggestion);
+		}
+	};
+
+	private int openPopupKey;
+
+	private int openPopupModifier;
+
+	/**
+	 * Constructor for {@link OSuggestBox}. The text box will be removed from
+	 * it's current location and wrapped by the {@link OSuggestBox}.
+	 *
+	 * @param oracle
+	 *            supplies suggestions based upon the current contents of the
+	 *            text widget
+	 */
+	public OSuggestBox(SuggestOracle oracle) {
+		this(oracle, new DefaultSuggestionDisplay());
+	}
+
+	/**
+	 * Constructor for {@link OSuggestBox}. The text box will be removed from
+	 * it's current location and wrapped by the {@link OSuggestBox}.
+	 *
+	 * @param oracle
+	 *            supplies suggestions based upon the current contents of the
+	 *            text widget
+	 * @param suggestDisplay
+	 *            the class used to display suggestions
+	 */
+	public OSuggestBox(SuggestOracle oracle, SuggestionDisplay suggestDisplay) {
+		this.display = suggestDisplay;
+		this.display.setOwner(this);
+
+		setOracle(oracle);
+
+		((ODelegatingOracle) getSuggestOracle()).setSuggestBox(this);
+	}
+
+	/**
+	 * Sets the popup delay.
+	 *
+	 * @param popupDelay
+	 *            the new popup delay
+	 */
+	public void setPopupDelay(int popupDelay) {
+		((ODelegatingOracle) getSuggestOracle()).setPopupDelay(popupDelay);
+	}
+
+	/**
+	 * Sets the single suggestion and close popup.
+	 *
+	 * @param selectedSuggestion
+	 *            the new single suggestion and close popup
+	 */
+	public void setSingleSuggestionAndClosePopup(Suggestion selectedSuggestion) {
+		assert selectedSuggestion != null : "suggestion cannot be null";
+		String currentText = selectedSuggestion.getReplacementString();
+		setText(currentText);
+		((DefaultSuggestionDisplay) getSuggestionDisplay()).hideSuggestions();
+		SelectionEvent.fire(this, selectedSuggestion);
+	}
+
+	/**
+	 * Initialize.
+	 *
+	 * @param box
+	 *            the box
+	 */
+	public void initialize(ValueBoxBase<String> box) {
+		assert this.box == null : "box must not be set twice";
+		this.box = box;
+
+		setWidget(box);
+		addEventsToTextBox();
+
+		setStyleName(STYLENAME_DEFAULT);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * com.google.gwt.event.dom.client.HasKeyDownHandlers#addKeyDownHandler(com.
+	 * google.gwt.event.dom.client.KeyDownHandler)
+	 */
+	public HandlerRegistration addKeyDownHandler(KeyDownHandler handler) {
+		return addDomHandler(handler, KeyDownEvent.getType());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * com.google.gwt.event.dom.client.HasKeyPressHandlers#addKeyPressHandler(
+	 * com.google.gwt.event.dom.client.KeyPressHandler)
+	 */
+	public HandlerRegistration addKeyPressHandler(KeyPressHandler handler) {
+		return addDomHandler(handler, KeyPressEvent.getType());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * com.google.gwt.event.dom.client.HasKeyUpHandlers#addKeyUpHandler(com.
+	 * google.gwt.event.dom.client.KeyUpHandler)
+	 */
+	public HandlerRegistration addKeyUpHandler(KeyUpHandler handler) {
+		return addDomHandler(handler, KeyUpEvent.getType());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.google.gwt.event.logical.shared.HasSelectionHandlers#
+	 * addSelectionHandler(com.google.gwt.event.logical.shared.SelectionHandler)
+	 */
+	public HandlerRegistration addSelectionHandler(SelectionHandler<Suggestion> handler) {
+		return addHandler(handler, SelectionEvent.getType());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.google.gwt.event.logical.shared.HasValueChangeHandlers#
+	 * addValueChangeHandler(com.google.gwt.event.logical.shared.
+	 * ValueChangeHandler)
+	 */
+	public HandlerRegistration addValueChangeHandler(ValueChangeHandler<String> handler) {
+		return addHandler(handler, ValueChangeEvent.getType());
+	}
+
+	/**
+	 * Returns a {@link TakesValueEditor} backed by the XSuggestBox.
+	 *
+	 * @return the leaf value editor
+	 */
+	public LeafValueEditor<String> asEditor() {
+		if (editor == null) {
+			editor = TakesValueEditor.of(this);
+		}
+		return editor;
+	}
+
+	/**
+	 * Gets the limit for the number of suggestions that should be displayed for
+	 * this box. It is up to the current {@link SuggestOracle} to enforce this
+	 * limit.
+	 *
+	 * @return the limit for the number of suggestions
+	 */
+	public int getLimit() {
+		return limit;
+	}
+
+	/**
+	 * Get the {@link SuggestionDisplay} used to display suggestions.
+	 *
+	 * @return the {@link SuggestionDisplay}
+	 */
+	public SuggestionDisplay getSuggestionDisplay() {
+		return display;
+	}
+
+	/**
+	 * Gets the suggest box's
+	 * {@link com.google.gwt.user.client.ui.SuggestOracle}.
+	 *
+	 * @return the {@link SuggestOracle}
+	 */
+	public SuggestOracle getSuggestOracle() {
+		return oracle;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.google.gwt.user.client.ui.Focusable#getTabIndex()
+	 */
+	public int getTabIndex() {
+		return box.getTabIndex();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.google.gwt.user.client.ui.HasText#getText()
+	 */
+	public String getText() {
+		return box.getText();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.google.gwt.user.client.ui.HasValue#getValue()
+	 */
+	public String getValue() {
+		return box.getValue();
+	}
+
+	/**
+	 * Get the ValueBoxBase associated with this suggest box.
+	 *
+	 * @return this suggest box's value box
+	 */
+	public ValueBoxBase<String> getValueBox() {
+		return box;
+	}
+
+	/**
+	 * Returns whether or not the first suggestion will be automatically
+	 * selected. This behavior is on by default.
+	 *
+	 * @return true if the first suggestion will be automatically selected
+	 */
+	public boolean isAutoSelectEnabled() {
+		return selectsFirstItem;
+	}
+
+	/**
+	 * Gets whether this widget is enabled.
+	 *
+	 * @return <code>true</code> if the widget is enabled
+	 */
+	public boolean isEnabled() {
+		return box.isEnabled();
+	}
+
+	/**
+	 * Refreshes the current list of suggestions.
+	 */
+	public void refreshSuggestionList() {
+		if (isAttached()) {
+			refreshSuggestions();
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.google.gwt.user.client.ui.Focusable#setAccessKey(char)
+	 */
+	public void setAccessKey(char key) {
+		box.setAccessKey(key);
+	}
+
+	/**
+	 * Turns on or off the behavior that automatically selects the first
+	 * suggested item. This behavior is on by default.
+	 *
+	 * @param selectsFirstItem
+	 *            Whether or not to automatically select the first suggestion
+	 */
+	public void setAutoSelectEnabled(boolean selectsFirstItem) {
+		this.selectsFirstItem = selectsFirstItem;
+	}
+
+	/**
+	 * Opens the popup and shows the suggestions.
+	 */
+	public void openPopup() {
+		showSuggestionList();
+	}
+
+	/**
+	 * Closes the popup.
+	 */
+	public void closePopup() {
+		display.hideSuggestions();
+	}
+
+	/**
+	 * Navigates the selected suggestion to the next one available.
+	 */
+	public void navigateToNext() {
+		display.moveSelectionDown();
+	}
+
+	/**
+	 * Navigates the selected suggestion to the previous one available.
+	 */
+	public void navigateToPrevious() {
+		display.moveSelectionUp();
+	}
+
+	public void selectCurrent() {
+		acceptSuggestion();
+	}
+
+	/**
+	 * If true, then the popup hides if the user clicks outside the popup.
+	 * 
+	 * @param autoHide
+	 */
+	public void setAutoHide(boolean autoHide) {
+		display.setAutoHide(autoHide);
+	}
+
+	/**
+	 * Sets whether this widget is enabled.
+	 *
+	 * @param enabled
+	 *            <code>true</code> to enable the widget, <code>false</code> to
+	 *            disable it
+	 */
+	public void setEnabled(boolean enabled) {
+		box.setEnabled(enabled);
+		if (!enabled) {
+			display.hideSuggestions();
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.google.gwt.user.client.ui.Focusable#setFocus(boolean)
+	 */
+	public void setFocus(boolean focused) {
+		box.setFocus(focused);
+	}
+
+	/**
+	 * Sets the limit to the number of suggestions the oracle should provide. It
+	 * is up to the oracle to enforce this limit.
+	 *
+	 * @param limit
+	 *            the limit to the number of suggestions provided
+	 */
+	public void setLimit(int limit) {
+		this.limit = limit;
+	}
+
+	/**
+	 * Sets the key which need to be pressed to open the popup.<br>
+	 * See {@link ShortcutAction.KeyCode}
+	 *
+	 * @param key
+	 *            the new key
+	 */
+	public void setOpenPopupKey(int key) {
+		openPopupKey = key;
+	}
+
+	/**
+	 * Sets the key modifier which need to be pressed to open the popup.<br>
+	 * See {@link ShortcutAction.ModifierKey}
+	 *
+	 * @param modifier
+	 *            the new modifier
+	 */
+	public void setOpenPopupKeyModifier(int modifier) {
+		openPopupModifier = modifier;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.google.gwt.user.client.ui.Focusable#setTabIndex(int)
+	 */
+	public void setTabIndex(int index) {
+		box.setTabIndex(index);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.google.gwt.user.client.ui.HasText#setText(java.lang.String)
+	 */
+	public void setText(String text) {
+		box.setText(text);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.google.gwt.user.client.ui.HasValue#setValue(java.lang.Object)
+	 */
+	public void setValue(String newValue) {
+		box.setValue(newValue);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.google.gwt.user.client.ui.HasValue#setValue(java.lang.Object,
+	 * boolean)
+	 */
+	public void setValue(String value, boolean fireEvents) {
+		box.setValue(value, fireEvents);
+	}
+
+	/**
+	 * Show the current list of suggestions.
+	 */
+	public void showSuggestionList() {
+		if (isAttached()) {
+			currentText = null;
+			refreshSuggestions();
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * com.google.gwt.user.client.ui.UIObject#onEnsureDebugId(java.lang.String)
+	 */
+	@Override
+	protected void onEnsureDebugId(String baseID) {
+		super.onEnsureDebugId(baseID);
+		display.onEnsureDebugId(baseID);
+	}
+
+	/**
+	 * Show suggestions.
+	 *
+	 * @param query
+	 *            the query
+	 */
+	void showSuggestions(String query) {
+		if (query.length() == 0) {
+			oracle.requestDefaultSuggestions(new Request(null, limit), callback);
+		} else {
+			oracle.requestSuggestions(new Request(query, limit), callback);
+		}
+	}
+
+	protected void acceptSuggestion() {
+		Suggestion suggestion = display.getCurrentSelection();
+		if (suggestion == null) {
+			display.hideSuggestions();
+		} else {
+			setNewSelection(suggestion);
+		}
+	}
+
+	/**
+	 * Adds the events to text box.
+	 */
+	private void addEventsToTextBox() {
+		class TextBoxEvents implements KeyDownHandler, KeyUpHandler, ValueChangeHandler<String> {
+
+			public void onKeyDown(KeyDownEvent event) {
+				if (event.isAnyModifierKeyDown()) {
+					if (isOpenPopupKey(event) && isOpenPopupModifier(event)) {
+						if (!display.isShowing()) {
+							showSuggestionList();
+						}
+					}
+				} else {
+					switch (event.getNativeKeyCode()) {
+					case KeyCodes.KEY_DOWN:
+						if (display.isShowing()) {
+							display.moveSelectionDown();
+						}
+						break;
+					case KeyCodes.KEY_UP:
+						if (display.isShowing()) {
+							display.moveSelectionUp();
+						}
+						break;
+					case KeyCodes.KEY_ESCAPE:
+						if (display.isShowing()) {
+							display.hideSuggestions();
+						}
+						break;
+					case KeyCodes.KEY_ENTER:
+					case KeyCodes.KEY_TAB:
+						if (display.isShowing()) {
+							acceptSuggestion();
+						}
+						break;
+					}
+				}
+			}
+
+			public void onKeyUp(KeyUpEvent event) {
+				if (!event.isAnyModifierKeyDown()) {
+					// After every user key input, refresh the popup's
+					// suggestions.
+					refreshSuggestions();
+				}
+			}
+
+			public void onValueChange(ValueChangeEvent<String> event) {
+				delegateEvent(OSuggestBox.this, event);
+			}
+		}
+
+		TextBoxEvents events = new TextBoxEvents();
+		box.addKeyDownHandler(events);
+		box.addKeyUpHandler(events);
+		box.addValueChangeHandler(events);
+	}
+
+	public boolean isOpenPopupKey(KeyDownEvent event) {
+		return event.getNativeEvent().getKeyCode() == openPopupKey;
+	}
+
+	public boolean isOpenPopupModifier(KeyDownEvent event) {
+		switch (openPopupModifier) {
+		case KeyCodes.KEY_ALT:
+			return event.isAltKeyDown();
+		case KeyCodes.KEY_CTRL:
+			return event.isControlKeyDown();
+		}
+		return false;
+	}
+
+	/**
+	 * Fire suggestion event.
+	 *
+	 * @param selectedSuggestion
+	 *            the selected suggestion
+	 */
+	private void fireSuggestionEvent(Suggestion selectedSuggestion) {
+		SelectionEvent.fire(this, selectedSuggestion);
+	}
+
+	/**
+	 * Refresh suggestions.
+	 */
+	private void refreshSuggestions() {
+		// Get the raw text.
+		String text = getText();
+		if (text.equals(currentText)) {
+			return;
+		} else {
+			currentText = text;
+		}
+		showSuggestions(text);
+	}
+
+	/**
+	 * Set the new suggestion in the text box.
+	 *
+	 * @param curSuggestion
+	 *            the new suggestion
+	 */
+	private void setNewSelection(Suggestion curSuggestion) {
+		assert curSuggestion != null : "suggestion cannot be null";
+		currentText = curSuggestion.getReplacementString();
+		setText(currentText);
+		display.hideSuggestions();
+		fireSuggestionEvent(curSuggestion);
+	}
+
+	/**
+	 * Sets the suggestion oracle used to create suggestions.
+	 *
+	 * @param oracle
+	 *            the oracle
+	 */
+	private void setOracle(SuggestOracle oracle) {
+		this.oracle = oracle;
+	}
+
+	/**
+	 * Sets the suggestion enabled.
+	 *
+	 * @param suggestionEnabled
+	 *            the new suggestion enabled
+	 */
+	public void setSuggestionEnabled(boolean suggestionEnabled) {
+		((ODelegatingOracle) oracle).setSuggestionEnabled(suggestionEnabled);
+	}
+
+}
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/OSuggestion.java b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/OSuggestion.java
new file mode 100644
index 0000000..b289dc2
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/OSuggestion.java
@@ -0,0 +1,77 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.suggesttext.client;
+
+import org.eclipse.osbp.vaadin.addons.suggesttext.client.OQueryDelegate.SuggestionResult;
+
+import com.google.gwt.user.client.ui.SuggestOracle.Suggestion;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Suggestion returned from the server.
+ */
+public class OSuggestion implements Suggestion {
+
+	/** The uuid. */
+	private final String uuid;
+	
+	/** The display string. */
+	private final String displayString;
+
+	/**
+	 * Instantiates a new o suggestion.
+	 *
+	 * @param result the result
+	 */
+	public OSuggestion(SuggestionResult result) {
+		this(result.uuid, result.displayText);
+	}
+
+	/**
+	 * Instantiates a new o suggestion.
+	 *
+	 * @param uuid the uuid
+	 * @param displayString the display string
+	 */
+	public OSuggestion(String uuid, String displayString) {
+		super();
+		this.uuid = uuid;
+		this.displayString = displayString;
+	}
+
+	/* (non-Javadoc)
+	 * @see com.google.gwt.user.client.ui.SuggestOracle.Suggestion#getDisplayString()
+	 */
+	@Override
+	public String getDisplayString() {
+		return displayString;
+	}
+
+	/* (non-Javadoc)
+	 * @see com.google.gwt.user.client.ui.SuggestOracle.Suggestion#getReplacementString()
+	 */
+	@Override
+	public String getReplacementString() {
+		return displayString;
+	}
+
+	/**
+	 * An unique id which identifies the suggestion.
+	 *
+	 * @return the uuid
+	 */
+	public String getUuid() {
+		return uuid;
+	}
+
+}
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldClientRpc.java b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldClientRpc.java
new file mode 100644
index 0000000..8184a19
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldClientRpc.java
@@ -0,0 +1,63 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.suggesttext.client;
+
+import java.util.List;
+
+import org.eclipse.osbp.vaadin.addons.suggesttext.client.OQueryDelegate.SuggestionResult;
+
+import com.vaadin.shared.communication.ClientRpc;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Interface SuggestTextFieldClientRpc.
+ */
+public interface SuggestTextFieldClientRpc extends ClientRpc {
+
+	/**
+	 * Response from the server with suggestions. Request and response are
+	 * linked by the handleId.
+	 *
+	 * @param handleId
+	 *            the handle id
+	 * @param response
+	 *            the response
+	 */
+	public void respond(String handleId, List<SuggestionResult> response);
+
+	/**
+	 * Opens the popup if not already opened and shows the suggested values.
+	 */
+	public void openPopup();
+
+	/**
+	 * Closes the popup if open. Else it has no effect.
+	 */
+	public void closePopup();
+
+	/**
+	 * Navigates the selected suggestion to the next one available.
+	 */
+	public void navigateToNext();
+
+	/**
+	 * Navigates the selected suggestion to the previous one available.
+	 */
+	public void navigateToPrevious();
+	
+	/**
+	 * Selects the current suggestion.
+	 */
+	public void selectCurrent();
+
+}
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldConnector.java b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldConnector.java
new file mode 100644
index 0000000..1116584
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldConnector.java
@@ -0,0 +1,151 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.suggesttext.client;
+
+import java.util.List;
+
+import org.eclipse.osbp.vaadin.addons.suggesttext.SuggestTextField;
+import org.eclipse.osbp.vaadin.addons.suggesttext.client.OQueryDelegate.SuggestionResult;
+
+import com.google.gwt.event.logical.shared.SelectionEvent;
+import com.google.gwt.event.logical.shared.SelectionHandler;
+import com.google.gwt.user.client.ui.SuggestOracle.Suggestion;
+import com.google.gwt.user.client.ui.ValueBoxBase;
+import com.vaadin.client.ComponentConnector;
+import com.vaadin.client.ConnectorHierarchyChangeEvent;
+import com.vaadin.client.communication.RpcProxy;
+import com.vaadin.client.communication.StateChangeEvent;
+import com.vaadin.client.ui.AbstractSingleComponentContainerConnector;
+import com.vaadin.shared.ui.Connect;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class SuggestTextFieldConnector.
+ */
+@SuppressWarnings("serial")
+@Connect(SuggestTextField.class)
+public class SuggestTextFieldConnector extends AbstractSingleComponentContainerConnector
+		implements SelectionHandler<Suggestion> {
+
+	/** The rpc. */
+	private SuggestTextFieldServerRpc rpc = RpcProxy.create(SuggestTextFieldServerRpc.class, this);
+	
+	/** The query delegate. */
+	private OQueryDelegate queryDelegate;
+
+	/**
+	 * Instantiates a new suggest text field connector.
+	 */
+	public SuggestTextFieldConnector() {
+		registerRpc(SuggestTextFieldClientRpc.class, new SuggestTextFieldClientRpc() {
+			@Override
+			public void respond(String handle, List<SuggestionResult> response) {
+				queryDelegate.respond(handle, response);
+			}
+
+			@Override
+			public void openPopup() {
+				getWidget().openPopup();
+			}
+
+			@Override
+			public void closePopup() {
+				getWidget().closePopup();
+			}
+
+			@Override
+			public void navigateToNext() {
+				getWidget().navigateToNext();
+			}
+
+			@Override
+			public void navigateToPrevious() {
+				getWidget().navigateToPrevious();
+			}
+
+			@Override
+			public void selectCurrent() {
+				getWidget().selectCurrent();
+			}
+		});
+	}
+
+	/* (non-Javadoc)
+	 * @see com.vaadin.client.ui.AbstractComponentConnector#getWidget()
+	 */
+	@Override
+	public OSuggestBox getWidget() {
+		return (OSuggestBox) super.getWidget();
+	}
+
+	/* (non-Javadoc)
+	 * @see com.vaadin.client.ui.AbstractComponentConnector#createWidget()
+	 */
+	public OSuggestBox createWidget() {
+		queryDelegate = new OQueryDelegate(rpc);
+		OSuggestBox widget = new OSuggestBox(new ODelegatingOracle(queryDelegate));
+		widget.addSelectionHandler(this);
+		return widget;
+	}
+	
+	/* (non-Javadoc)
+	 * @see com.vaadin.client.ui.AbstractComponentConnector#getState()
+	 */
+	@Override
+	public SuggestTextFieldState getState() {
+		return (SuggestTextFieldState) super.getState();
+	}
+
+	/* (non-Javadoc)
+	 * @see com.vaadin.client.ui.AbstractComponentConnector#onStateChanged(com.vaadin.client.communication.StateChangeEvent)
+	 */
+	@Override
+	public void onStateChanged(StateChangeEvent stateChangeEvent) {
+		super.onStateChanged(stateChangeEvent);
+
+		getWidget().setLimit(getState().limit);
+		getWidget().setPopupDelay(getState().popupDelay);
+		getWidget().setSuggestionEnabled(getState().suggestionEnabled);
+		getWidget().setAutoHide(getState().autoHide);
+		getWidget().setOpenPopupKey(getState().openPopup_key);
+		getWidget().setOpenPopupKeyModifier(getState().openPopup_modifier);
+	}
+
+	/* (non-Javadoc)
+	 * @see com.google.gwt.event.logical.shared.SelectionHandler#onSelection(com.google.gwt.event.logical.shared.SelectionEvent)
+	 */
+	@Override
+	public void onSelection(SelectionEvent<Suggestion> event) {
+		OSuggestion suggestion = (OSuggestion) event.getSelectedItem();
+		if (suggestion != null) {
+			rpc.selectionChanged(suggestion.getUuid());
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see com.vaadin.client.HasComponentsConnector#updateCaption(com.vaadin.client.ComponentConnector)
+	 */
+	@Override
+	public void updateCaption(ComponentConnector connector) {
+
+	}
+
+	/* (non-Javadoc)
+	 * @see com.vaadin.client.ConnectorHierarchyChangeEvent.ConnectorHierarchyChangeHandler#onConnectorHierarchyChange(com.vaadin.client.ConnectorHierarchyChangeEvent)
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void onConnectorHierarchyChange(ConnectorHierarchyChangeEvent connectorHierarchyChangeEvent) {
+		getWidget().initialize((ValueBoxBase<String>) getContent().getWidget());
+	}
+}
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldServerRpc.java b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldServerRpc.java
new file mode 100644
index 0000000..c2ebc8e
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldServerRpc.java
@@ -0,0 +1,40 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.suggesttext.client;
+
+import com.vaadin.shared.communication.ServerRpc;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Interface SuggestTextFieldServerRpc.
+ */
+public interface SuggestTextFieldServerRpc extends ServerRpc {
+
+	/**
+	 * Requests a response with suggestions from the server.
+	 * 
+	 * @param handleId
+	 *            a unique id for every request to link request/response.
+	 * @param filter the filter string.
+	 * @param limit the maximum number of suggestions to be contained in the response. 
+	 */
+	public void requestSuggestions(String handleId, String filter, int limit);
+
+	/**
+	 * The suggestion with the given id was selected.
+	 *
+	 * @param uuid the uuid
+	 */
+	public void selectionChanged(String uuid);
+
+}
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldState.java b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldState.java
new file mode 100644
index 0000000..2bc82bc
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldState.java
@@ -0,0 +1,55 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.suggesttext.client;
+
+import com.vaadin.event.ShortcutAction;
+import com.vaadin.shared.AbstractComponentState;
+
+/**
+ * The Class SuggestTextFieldState.
+ */
+@SuppressWarnings("serial")
+public class SuggestTextFieldState extends AbstractComponentState {
+
+	/**
+	 * The popup delay in milliseconds.
+	 */
+	public int popupDelay = 450;
+
+	/**
+	 * How many suggestions should be displayed.
+	 */
+	public int limit = 10;
+
+	/**
+	 * True, if suggestions should be enabled. False otherwise.
+	 */
+	public boolean suggestionEnabled = true;
+
+	/**
+	 * If true, then the suggestions are hidden, if the user clicks outside the
+	 * popup.
+	 */
+	public boolean autoHide = true;
+
+	/**
+	 * Key to open the popup in combination with the {@link #openPopup_modifier}
+	 */
+	public int openPopup_key = ShortcutAction.KeyCode.ARROW_DOWN;
+
+	/**
+	 * Key modifier to open the popup in combination with the
+	 * {@link #openPopup_key}
+	 */
+	public int openPopup_modifier = ShortcutAction.ModifierKey.ALT;
+}
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/public/suggesttext/styles.css b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/public/suggesttext/styles.css
new file mode 100644
index 0000000..74d032f
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/public/suggesttext/styles.css
@@ -0,0 +1,18 @@
+.o-SuggestBoxPopup {
+	background-color: white;
+	color: darkgray;
+	
+	font-style: normal;
+    font-variant: normal;
+    font-weight: 300;
+    font-stretch: normal;
+    font-size: 16px;
+    line-height: 1.55;
+    font-family: 'Open Sans', sans-serif;
+}
+
+.o-SuggestBoxPopup .item-selected {
+	background-color: darkgray;
+	color: white;
+}
+
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/test/org/eclipse/osbp/vaadin/addons/customcombo/CustomComboTest.java b/org.eclipse.osbp.vaadin.addons.suggesttext/test/org/eclipse/osbp/vaadin/addons/customcombo/CustomComboTest.java
new file mode 100644
index 0000000..e5cae62
--- /dev/null
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/test/org/eclipse/osbp/vaadin/addons/customcombo/CustomComboTest.java
@@ -0,0 +1,99 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
+ */
+package org.eclipse.osbp.vaadin.addons.customcombo;
+
+import com.vaadin.testbench.ScreenshotOnFailureRule;
+import com.vaadin.testbench.TestBenchTestCase;
+import com.vaadin.testbench.elements.ButtonElement;
+import com.vaadin.testbench.elements.LabelElement;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.openqa.selenium.firefox.FirefoxDriver;
+
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+/**
+ * This class contains JUnit tests, which are run using Vaadin TestBench 4.
+ *
+ * To run this, first get an evaluation license from
+ * https://vaadin.com/addon/vaadin-testbench and follow the instructions at
+ * https://vaadin.com/directory/help/installing-cval-license to install it.
+ *
+ * Once the license is installed, you can run this class as a JUnit test.
+ */
+public class CustomComboTest extends TestBenchTestCase {
+    @Rule
+    public ScreenshotOnFailureRule screenshotOnFailureRule =
+            new ScreenshotOnFailureRule(this, true);
+
+    @Before
+    public void setUp() throws Exception {
+        setDriver(new FirefoxDriver()); // Firefox
+
+        // To use Chrome, first install chromedriver.exe from
+        // http://chromedriver.storage.googleapis.com/index.html
+        // on your system path (e.g. C:\Windows\System32\)
+        //   setDriver(new ChromeDriver()); // Chrome
+
+        // To use Internet Explorer, first install iedriverserver.exe from
+        // http://selenium-release.storage.googleapis.com/index.html?path=2.43/
+        // on your system path (e.g. C:\Windows\System32\)
+        //   setDriver(new InternetExplorerDriver()); // IE
+
+        // To test headlessly (without a browser), first install phantomjs.exe
+        // from http://phantomjs.org/download.html on your system path
+        // (e.g. C:\Windows\System32\)
+        //   setDriver(new PhantomJSDriver()); // PhantomJS headless browser
+    }
+
+    /**
+     * Opens the URL where the application is deployed.
+     */
+    private void openTestUrl() {
+        getDriver().get("http://localhost:8080/org.eclipse.osbp.vaadin.addons.customcombo");
+    }
+
+    @Test
+    public void testClickButton() throws Exception {
+        openTestUrl();
+
+        // At first there should be no labels
+        assertFalse($(LabelElement.class).exists());
+
+        // Click the button
+        ButtonElement clickMeButton = $(ButtonElement.class).
+                caption("Click Me").first();
+        clickMeButton.click();
+
+        // There should now be one label
+        assertEquals(1, $(LabelElement.class).all().size());
+        // ... with the specified text
+        assertEquals("Thank you for clicking",
+                $(LabelElement.class).first().getText());
+
+        // Click the button again
+        clickMeButton.click();
+
+        // There should now be two labels
+        List<LabelElement> allLabels = $(LabelElement.class).all();
+        assertEquals(2, allLabels.size());
+        // ... and the last label should have the correct text
+        LabelElement lastLabel = allLabels.get(1);
+        assertEquals("Thank you for clicking", lastLabel.getText());
+    }
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..68fa3ae
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License v1.0       
+ * which accompanies this distribution, and is available at                  
+ * http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ * Contributors:   
+ * Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.eclipse.osbp.releng.maven</groupId>
+		<artifactId>org.eclipse.osbp.releng.maven.parent.tycho</artifactId>
+		<version>0.9.0-SNAPSHOT</version>
+		<relativePath />
+	</parent>
+
+	<groupId>org.eclipse.osbp.vaadin.addons</groupId>
+	<artifactId>org.eclipse.osbp.vaadin.addons.aggregator</artifactId>
+	<version>0.9.0-SNAPSHOT</version>
+	<packaging>pom</packaging>
+
+	<url>${osbp.site.repository.url}</url>
+	<scm>
+		<url>${osbp.scm.url}</url>
+		<connection>${osbp.scm.connection}</connection>
+		<developerConnection>${osbp.scm.connection.dev}</developerConnection>
+		<tag>HEAD</tag>
+	</scm>
+
+	<properties>
+		<osbp.gitrepo.name>${project.groupId}</osbp.gitrepo.name>
+	</properties>
+
+	<modules>
+		<module>org.eclipse.osbp.vaadin.addons.absolutelayout</module>
+		<module>org.eclipse.osbp.vaadin.addons.designer.overlay</module>
+		<module>org.eclipse.osbp.vaadin.addons.suggesttext</module>
+<!--		<module>org.eclipse.osbp.vaadin.addons.feature</module> -->
+	</modules>
+
+	<build>
+		<pluginManagement>
+			<plugins>
+				<plugin>
+					<groupId>org.eclipse.tycho</groupId>
+					<artifactId>target-platform-configuration</artifactId>
+					<version>${tycho-version}</version>
+					<configuration>
+						<resolver>p2</resolver>
+						<pomDependencies>consider</pomDependencies>
+						<environments>
+							<environment>
+								<os>win32</os>
+								<ws>win32</ws>
+								<arch>x86_64</arch>
+							</environment>
+							<environment>
+								<os>linux</os>
+								<ws>gtk</ws>
+								<arch>x86</arch>
+							</environment>
+							<environment>
+								<os>linux</os>
+								<ws>gtk</ws>
+								<arch>x86_64</arch>
+							</environment>
+							<environment>
+								<os>macosx</os>
+								<ws>cocoa</ws>
+								<arch>x86_64</arch>
+							</environment>
+						</environments>
+					</configuration>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+	</build>
+</project>