From 93233b99b10c44d7b1f3d43b0900487525a06efe Mon Sep 17 00:00:00 2001 From: Maximilian Komp <m.komp@sprinteins.com> Date: Thu, 13 Apr 2017 15:46:47 +0200 Subject: [PATCH] demo Set Up to be modifyed --- .idea/vcs.xml | 6 + .idea/workspace.xml | 277 ++++++++++++++++-- README.md | 52 ++++ pom.xml | 177 ++++++++++- src/main/java/org/s4s/MyUI.java | 49 ++++ src/main/java/org/test/MyUI.java | 47 +++ src/main/resources/README | 1 + .../webapp/VAADIN/themes/mytheme/addons.scss | 7 + .../webapp/VAADIN/themes/mytheme/favicon.ico | Bin 0 -> 31005 bytes .../webapp/VAADIN/themes/mytheme/mytheme.scss | 38 +++ .../webapp/VAADIN/themes/mytheme/styles.scss | 11 + 11 files changed, 629 insertions(+), 36 deletions(-) create mode 100644 .idea/vcs.xml create mode 100644 README.md create mode 100644 src/main/java/org/s4s/MyUI.java create mode 100644 src/main/java/org/test/MyUI.java create mode 100644 src/main/resources/README create mode 100644 src/main/webapp/VAADIN/themes/mytheme/addons.scss create mode 100644 src/main/webapp/VAADIN/themes/mytheme/favicon.ico create mode 100644 src/main/webapp/VAADIN/themes/mytheme/mytheme.scss create mode 100644 src/main/webapp/VAADIN/themes/mytheme/styles.scss diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="" vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 60e30f3..bfc8900 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,11 +1,16 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="ChangeListManager"> - <list default="true" id="982c694a-4df5-427f-ab7f-677a121f1431" name="Default" comment="" /> + <list default="true" id="982c694a-4df5-427f-ab7f-677a121f1431" name="Default" comment=""> + <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/vcs.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/pom.xml" afterPath="$PROJECT_DIR$/pom.xml" /> + </list> <ignored path="S4S.iws" /> <ignored path=".idea/workspace.xml" /> <ignored path="$PROJECT_DIR$/out/" /> <ignored path="$PROJECT_DIR$/target/" /> + <ignored path=".idea/dataSources.local.xml" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="TRACKING_ENABLED" value="true" /> <option name="SHOW_DIALOG" value="false" /> @@ -21,12 +26,12 @@ <favorites_list name="S4S" /> </component> <component name="FileEditorManager"> - <leaf> + <leaf SIDE_TABS_SIZE_LIMIT_KEY="600"> <file leaf-file-name="pom.xml" pinned="false" current-in-tab="true"> <entry file="file://$PROJECT_DIR$/pom.xml"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="0"> - <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> + <state relative-caret-position="816"> + <caret line="17" column="36" selection-start-line="17" selection-start-column="36" selection-end-line="17" selection-end-column="36" /> <folding /> </state> </provider> @@ -34,11 +39,21 @@ </file> </leaf> </component> + <component name="Git.Settings"> + <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> + </component> <component name="GradleLocalSettings"> <option name="externalProjectsViewState"> <projects_view /> </option> </component> + <component name="IdeDocumentHistory"> + <option name="CHANGED_PATHS"> + <list> + <option value="$PROJECT_DIR$/pom.xml" /> + </list> + </option> + </component> <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" /> <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" /> <component name="JsGulpfileManager"> @@ -83,36 +98,149 @@ <foldersAlwaysOnTop value="true" /> </navigator> <panes> + <pane id="Scratches" /> <pane id="ProjectPane"> <subPane> <PATH> <PATH_ELEMENT> - <option name="myItemId" value="S4S" /> + <option name="myItemId" value="s4s" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> + </PATH_ELEMENT> + </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="s4s" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="s4s" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="s4s" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="s4s" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="src" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="main" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="webapp" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="VAADIN" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="themes" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="mytheme" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="s4s" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="s4s" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="src" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="main" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="resources" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="s4s" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="s4s" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="src" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="main" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="java" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="org" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="test" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> </PATH> <PATH> <PATH_ELEMENT> - <option name="myItemId" value="S4S" /> + <option name="myItemId" value="s4s" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> </PATH_ELEMENT> <PATH_ELEMENT> - <option name="myItemId" value="S4S" /> + <option name="myItemId" value="s4s" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="src" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="main" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="java" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="org" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> </PATH_ELEMENT> </PATH> </subPane> </pane> - <pane id="PackagesPane" /> <pane id="Scope" /> - <pane id="Scratches" /> + <pane id="PackagesPane" /> </panes> </component> <component name="PropertiesComponent"> <property name="aspect.path.notification.shown" value="true" /> <property name="WebServerToolWindowFactoryState" value="false" /> + <property name="last_opened_file_path" value="$PROJECT_DIR$" /> </component> - <component name="RunManager"> + <component name="RunManager" selected="Maven.Unnamed"> <configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin"> <module name="" /> <option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" /> @@ -163,6 +291,28 @@ <patterns /> <method /> </configuration> + <configuration default="true" type="MavenRunConfiguration" factoryName="Maven"> + <MavenSettings> + <option name="myGeneralSettings" /> + <option name="myRunnerSettings" /> + <option name="myRunnerParameters"> + <MavenRunnerParameters> + <option name="profiles"> + <set /> + </option> + <option name="goals"> + <list /> + </option> + <option name="profilesMap"> + <map /> + </option> + <option name="resolveToWorkspace" value="false" /> + <option name="workingDirPath" value="$PROJECT_DIR$" /> + </MavenRunnerParameters> + </option> + </MavenSettings> + <method /> + </configuration> <configuration default="true" type="Remote" factoryName="Remote"> <option name="USE_SOCKET_TRANSPORT" value="true" /> <option name="SERVER_MODE" value="false" /> @@ -199,6 +349,31 @@ <listeners /> <method /> </configuration> + <configuration default="false" name="Unnamed" type="MavenRunConfiguration" factoryName="Maven"> + <MavenSettings> + <option name="myGeneralSettings" /> + <option name="myRunnerSettings" /> + <option name="myRunnerParameters"> + <MavenRunnerParameters> + <option name="profiles"> + <set /> + </option> + <option name="goals"> + <list /> + </option> + <option name="profilesMap"> + <map /> + </option> + <option name="resolveToWorkspace" value="false" /> + <option name="workingDirPath" value="$PROJECT_DIR$" /> + </MavenRunnerParameters> + </option> + </MavenSettings> + <method /> + </configuration> + <list size="1"> + <item index="0" class="java.lang.String" itemvalue="Maven.Unnamed" /> + </list> </component> <component name="ShelveChangesManager" show_recycled="false"> <option name="remove_strategy" value="false" /> @@ -211,42 +386,43 @@ <option name="presentableId" value="Default" /> <updated>1492086129765</updated> <workItem from="1492086137340" duration="26000" /> + <workItem from="1492089690381" duration="1452000" /> </task> <servers /> </component> <component name="TimeTrackingManager"> - <option name="totallyTimeSpent" value="26000" /> + <option name="totallyTimeSpent" value="1478000" /> </component> <component name="ToolWindowManager"> <frame x="-16" y="-16" width="3232" height="1756" extended-state="6" /> <editor active="false" /> <layout> - <window_info id="PlantUML" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> - <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> + <window_info id="PlantUML" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> + <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> - <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3295979" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> - <window_info id="Palette	" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> - <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> - <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" /> - <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> - <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> - <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> - <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> - <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> - <window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> + <window_info id="Palette	" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> + <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> + <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" /> + <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> + <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> + <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2168435" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> + <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> + <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> + <window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" /> - <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> + <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> - <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> + <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> + <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" /> <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> - <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" /> <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> - <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" /> <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> - <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> + <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" /> + <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3295979" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> + <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> </layout> </component> <component name="Vcs.Log.UiProperties"> @@ -273,5 +449,50 @@ </state> </provider> </entry> + <entry file="file://$PROJECT_DIR$/src/main/webapp/VAADIN/themes/mytheme/styles.scss"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="0"> + <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/main/webapp/VAADIN/themes/mytheme/favicon.ico"> + <provider selected="true" editor-type-id="images"> + <state /> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/main/resources/README"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="0"> + <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/main/java/org/test/MyUI.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="-15"> + <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/main/webapp/VAADIN/themes/mytheme/mytheme.scss"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="0"> + <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/pom.xml"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="816"> + <caret line="17" column="36" selection-start-line="17" selection-start-column="36" selection-end-line="17" selection-end-column="36" /> + <folding /> + </state> + </provider> + </entry> </component> </project> \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..da9722b --- /dev/null +++ b/README.md @@ -0,0 +1,52 @@ +shopInShop +============== + +Template for a simple Vaadin application that only requires a Servlet 3.0 container to run. + + +Workflow +======== + +To compile the entire project, run "mvn install". + +To run the application, run "mvn jetty:run" and open http://localhost:8080/ . + +To produce a deployable production mode WAR: +- change productionMode to true in the servlet class configuration (nested in the UI class) +- run "mvn clean package" +- test the war file with "mvn jetty:run-war" + +Client-Side compilation +------------------------- + +The generated maven project is using an automatically generated widgetset by default. +When you add a dependency that needs client-side compilation, the maven plugin will +automatically generate it for you. Your own client-side customisations can be added into +package "client". + +Debugging client side code + - run "mvn vaadin:run-codeserver" on a separate console while the application is running + - activate Super Dev Mode in the debug window of the application + +Developing a theme using the runtime compiler +------------------------- + +When developing the theme, Vaadin can be configured to compile the SASS based +theme at runtime in the server. This way you can just modify the scss files in +your IDE and reload the browser to see changes. + +To use the runtime compilation, open pom.xml and comment out the compile-theme +goal from vaadin-maven-plugin configuration. To remove a possibly existing +pre-compiled theme, run "mvn clean package" once. + +When using the runtime compiler, running the application in the "run" mode +(rather than in "debug" mode) can speed up consecutive theme compilations +significantly. + +It is highly recommended to disable runtime compilation for production WAR files. + +Using Vaadin pre-releases +------------------------- + +If Vaadin pre-releases are not enabled by default, use the Maven parameter +"-P vaadin-prerelease" or change the activation default value of the profile in pom.xml . diff --git a/pom.xml b/pom.xml index 106c5b6..bb38ac2 100644 --- a/pom.xml +++ b/pom.xml @@ -1,12 +1,173 @@ <?xml version="1.0" encoding="UTF-8"?> -<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> +<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> - <groupId>com.vaadin</groupId> - <artifactId>vaadin-archetype-application</artifactId> - <version>7.7</version> + <groupId>org.s4s</groupId> + <artifactId>shopInShop</artifactId> + <packaging>war</packaging> + <version>1.0-SNAPSHOT</version> + <name>shopInShop</name> + <prerequisites> + <maven>3</maven> + </prerequisites> -</project> \ No newline at end of file + <properties> + <vaadin.version>7.7.8</vaadin.version> + <vaadin.plugin.version>7.7.8</vaadin.plugin.version> + <jetty.plugin.version>9.3.9.v20160517</jetty.plugin.version> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <maven.compiler.source>1.8</maven.compiler.source> + <maven.compiler.target>1.8</maven.compiler.target> + <!-- If there are no local customisations, this can also be "fetch" or "cdn" --> + <vaadin.widgetset.mode>local</vaadin.widgetset.mode> + </properties> + + <repositories> + <repository> + <id>vaadin-addons</id> + <url>http://maven.vaadin.com/vaadin-addons</url> + </repository> + </repositories> + + <dependencyManagement> + <dependencies> + <dependency> + <groupId>com.vaadin</groupId> + <artifactId>vaadin-bom</artifactId> + <version>${vaadin.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <dependencies> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>javax.servlet-api</artifactId> + <version>3.0.1</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>com.vaadin</groupId> + <artifactId>vaadin-server</artifactId> + </dependency> + <dependency> + <groupId>com.vaadin</groupId> + <artifactId>vaadin-push</artifactId> + </dependency> + <dependency> + <groupId>com.vaadin</groupId> + <artifactId>vaadin-client-compiled</artifactId> + </dependency> + <dependency> + <groupId>com.vaadin</groupId> + <artifactId>vaadin-themes</artifactId> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-war-plugin</artifactId> + <version>2.6</version> + <configuration> + <failOnMissingWebXml>false</failOnMissingWebXml> + <!-- Exclude an unnecessary file generated by the GWT compiler. --> + <packagingExcludes>WEB-INF/classes/VAADIN/widgetsets/WEB-INF/**</packagingExcludes> + </configuration> + </plugin> + <plugin> + <groupId>com.vaadin</groupId> + <artifactId>vaadin-maven-plugin</artifactId> + <version>${vaadin.plugin.version}</version> + <executions> + <execution> + <goals> + <goal>update-theme</goal> + <goal>update-widgetset</goal> + <goal>compile</goal> + <!-- Comment out compile-theme goal to use on-the-fly theme compilation --> + <goal>compile-theme</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-clean-plugin</artifactId> + <version>3.0.0</version> + <!-- Clean up also any pre-compiled themes --> + <configuration> + <filesets> + <fileset> + <directory>src/main/webapp/VAADIN/themes</directory> + <includes> + <include>**/styles.css</include> + <include>**/styles.scss.cache</include> + </includes> + </fileset> + </filesets> + </configuration> + </plugin> + + <!-- The Jetty plugin allows us to easily test the development build by + running jetty:run on the command line. --> + <plugin> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-maven-plugin</artifactId> + <version>${jetty.plugin.version}</version> + <configuration> + <scanIntervalSeconds>2</scanIntervalSeconds> + </configuration> + </plugin> + </plugins> + </build> + + <profiles> + <profile> + <!-- Vaadin pre-release repositories --> + <id>vaadin-prerelease</id> + <activation> + <activeByDefault>false</activeByDefault> + </activation> + + <repositories> + <repository> + <id>vaadin-prereleases</id> + <url>http://maven.vaadin.com/vaadin-prereleases</url> + </repository> + <repository> + <id>vaadin-snapshots</id> + <url>https://oss.sonatype.org/content/repositories/vaadin-snapshots/</url> + <releases> + <enabled>false</enabled> + </releases> + <snapshots> + <enabled>true</enabled> + </snapshots> + </repository> + </repositories> + <pluginRepositories> + <pluginRepository> + <id>vaadin-prereleases</id> + <url>http://maven.vaadin.com/vaadin-prereleases</url> + </pluginRepository> + <pluginRepository> + <id>vaadin-snapshots</id> + <url>https://oss.sonatype.org/content/repositories/vaadin-snapshots/</url> + <releases> + <enabled>false</enabled> + </releases> + <snapshots> + <enabled>true</enabled> + </snapshots> + </pluginRepository> + </pluginRepositories> + </profile> + </profiles> + +</project> diff --git a/src/main/java/org/s4s/MyUI.java b/src/main/java/org/s4s/MyUI.java new file mode 100644 index 0000000..4dcc8ef --- /dev/null +++ b/src/main/java/org/s4s/MyUI.java @@ -0,0 +1,49 @@ +package org.s4s; + +import javax.servlet.annotation.WebServlet; + +import com.vaadin.annotations.Theme; +import com.vaadin.annotations.VaadinServletConfiguration; +import com.vaadin.server.VaadinRequest; +import com.vaadin.server.VaadinServlet; +import com.vaadin.ui.Button; +import com.vaadin.ui.Label; +import com.vaadin.ui.TextField; +import com.vaadin.ui.UI; +import com.vaadin.ui.VerticalLayout; + +/** + * This UI is the application entry point. A UI may either represent a browser window + * (or tab) or some part of a html page where a Vaadin application is embedded. + * <p> + * The UI is initialized using {@link #init(VaadinRequest)}. This method is intended to be + * overridden to add component to the user interface and initialize non-component functionality. + */ +@Theme("mytheme") +public class MyUI extends UI { + + @Override + protected void init(VaadinRequest vaadinRequest) { + final VerticalLayout layout = new VerticalLayout(); + + final TextField name = new TextField(); + name.setCaption("Type your name here:"); + + Button button = new Button("Click Me"); + button.addClickListener( e -> { + layout.addComponent(new Label("Thanks " + name.getValue() + + ", it works!")); + }); + + layout.addComponents(name, button); + layout.setMargin(true); + layout.setSpacing(true); + + setContent(layout); + } + + @WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true) + @VaadinServletConfiguration(ui = MyUI.class, productionMode = false) + public static class MyUIServlet extends VaadinServlet { + } +} diff --git a/src/main/java/org/test/MyUI.java b/src/main/java/org/test/MyUI.java new file mode 100644 index 0000000..12d4d24 --- /dev/null +++ b/src/main/java/org/test/MyUI.java @@ -0,0 +1,47 @@ +package org.test; + +import javax.servlet.annotation.WebServlet; + +import com.vaadin.annotations.Theme; +import com.vaadin.annotations.VaadinServletConfiguration; +import com.vaadin.server.VaadinRequest; +import com.vaadin.server.VaadinServlet; +import com.vaadin.ui.Button; +import com.vaadin.ui.Label; +import com.vaadin.ui.TextField; +import com.vaadin.ui.UI; +import com.vaadin.ui.VerticalLayout; + +/** + * This UI is the application entry point. A UI may either represent a browser window + * (or tab) or some part of a html page where a Vaadin application is embedded. + * <p> + * The UI is initialized using {@link #init(VaadinRequest)}. This method is intended to be + * overridden to add component to the user interface and initialize non-component functionality. + */ +@Theme("mytheme") +public class MyUI extends UI { + + @Override + protected void init(VaadinRequest vaadinRequest) { + final VerticalLayout layout = new VerticalLayout(); + + final TextField name = new TextField(); + name.setCaption("Type your name here:"); + + Button button = new Button("Click Me"); + button.addClickListener( e -> { + layout.addComponent(new Label("Thanks " + name.getValue() + + ", it works!")); + }); + + layout.addComponents(name, button); + + setContent(layout); + } + + @WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true) + @VaadinServletConfiguration(ui = MyUI.class, productionMode = false) + public static class MyUIServlet extends VaadinServlet { + } +} diff --git a/src/main/resources/README b/src/main/resources/README new file mode 100644 index 0000000..faabc74 --- /dev/null +++ b/src/main/resources/README @@ -0,0 +1 @@ +Please add your static resources here diff --git a/src/main/webapp/VAADIN/themes/mytheme/addons.scss b/src/main/webapp/VAADIN/themes/mytheme/addons.scss new file mode 100644 index 0000000..a5670b7 --- /dev/null +++ b/src/main/webapp/VAADIN/themes/mytheme/addons.scss @@ -0,0 +1,7 @@ +/* This file is automatically managed and will be overwritten from time to time. */ +/* Do not manually edit this file. */ + +/* Import and include this mixin into your project theme to include the addon themes */ +@mixin addons { +} + diff --git a/src/main/webapp/VAADIN/themes/mytheme/favicon.ico b/src/main/webapp/VAADIN/themes/mytheme/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ffb34a65c73eb1b3d59dcbb8f18ec78a8b0fc767 GIT binary patch literal 31005 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 literal 0 HcmV?d00001 diff --git a/src/main/webapp/VAADIN/themes/mytheme/mytheme.scss b/src/main/webapp/VAADIN/themes/mytheme/mytheme.scss new file mode 100644 index 0000000..2c5fb8b --- /dev/null +++ b/src/main/webapp/VAADIN/themes/mytheme/mytheme.scss @@ -0,0 +1,38 @@ +// If you edit this file you need to compile the theme. See README.md for details. + +// Global variable overrides. Must be declared before importing Valo. + +// Defines the plaintext font size, weight and family. Font size affects general component sizing. +//$v-font-size: 16px; +//$v-font-weight: 300; +//$v-font-family: "Open Sans", sans-serif; + +// Defines the border used by all components. +//$v-border: 1px solid (v-shade 0.7); +//$v-border-radius: 4px; + +// Affects the color of some component elements, e.g Button, Panel title, etc +//$v-background-color: hsl(210, 0%, 98%); +// Affects the color of content areas, e.g Panel and Window content, TextField input etc +//$v-app-background-color: $v-background-color; + +// Affects the visual appearance of all components +//$v-gradient: v-linear 8%; +//$v-bevel-depth: 30%; +//$v-shadow-opacity: 5%; + +// Defines colors for indicating status (focus, success, failure) +//$v-focus-color: valo-focus-color(); // Calculates a suitable color automatically +//$v-friendly-color: #2c9720; +//$v-error-indicator-color: #ed473b; + +// For more information, see: https://vaadin.com/book/-/page/themes.valo.html +// Example variants can be copy/pasted from https://vaadin.com/wiki/-/wiki/Main/Valo+Examples + +@import "../valo/valo.scss"; + +@mixin mytheme { + @include valo; + + // Insert your own theme rules here +} diff --git a/src/main/webapp/VAADIN/themes/mytheme/styles.scss b/src/main/webapp/VAADIN/themes/mytheme/styles.scss new file mode 100644 index 0000000..bba1d49 --- /dev/null +++ b/src/main/webapp/VAADIN/themes/mytheme/styles.scss @@ -0,0 +1,11 @@ +@import "mytheme.scss"; +@import "addons.scss"; + +// This file prefixes all rules with the theme name to avoid causing conflicts with other themes. +// The actual styles should be defined in mytheme.scss + +.mytheme { + @include addons; + @include mytheme; + +} -- GitLab