From 372cfe692b7c43548d58fa7a730990f639650b7e Mon Sep 17 00:00:00 2001
From: Martin Goik <goik@hdm-stuttgart.de>
Date: Tue, 7 Jul 2015 18:42:12 +0200
Subject: [PATCH] Hello UI

---
 Doc/Sda1/vaadin.xml                           |  57 +++-
 P/Sda1/Jpa/Company/companyJpa1/pom.xml        | 251 ++++++++++--------
 .../mi/company/model/Employee.java            |   1 +
 .../mi/company/model/Project.java             |   5 +-
 .../mi/company/model/WorksFor.java            |   1 +
 .../hdm_stuttgart/mi/company/ui/HelloUi.java  |  70 +++++
 6 files changed, 270 insertions(+), 115 deletions(-)
 create mode 100644 P/Sda1/Jpa/Company/companyJpa1/src/main/java/de/hdm_stuttgart/mi/company/ui/HelloUi.java

diff --git a/Doc/Sda1/vaadin.xml b/Doc/Sda1/vaadin.xml
index 31bbb92e3..95f8e6c50 100644
--- a/Doc/Sda1/vaadin.xml
+++ b/Doc/Sda1/vaadin.xml
@@ -17,17 +17,58 @@
   <section xml:id="sda1SectVaadinMavenConfig">
     <title>Configuring Maven.</title>
 
-    <para>The <productname xlink:href="http://vaadin.com">Vaadin</productname>
-    Maven repository does not allow for tool searching. Thus artifactId and
-    related attributes of required dependencies must be identified in advance.
-    If e.g. <code>maven-cdi</code> is being required <link
-    xlink:href="http://vaadin.com/nexus/#nexus-search">http://vaadin.com/nexus/#nexus-search</link>
-    tells us:</para>
-
-    <programlisting language="none">&lt;dependency&gt;
+    <glosslist>
+      <glossentry>
+        <glossterm>Searching for artifacts</glossterm>
+
+        <glossdef>
+          <para>The <productname
+          xlink:href="http://vaadin.com">Vaadin</productname> Maven repository
+          does not allow for tool searching. Thus artifactId and related
+          attributes of required dependencies must be identified in advance.
+          If e.g. <code>maven-cdi</code> is being required <link
+          xlink:href="http://vaadin.com/nexus/#nexus-search">http://vaadin.com/nexus/#nexus-search</link>
+          tells us:</para>
+
+          <programlisting language="none">&lt;dependency&gt;
   &lt;groupId&gt;com.vaadin&lt;/groupId&gt;
   &lt;artifactId&gt;vaadin-cdi&lt;/artifactId&gt;
   &lt;version&gt;1.0.2&lt;/version&gt;
 &lt;/dependency&gt;</programlisting>
+        </glossdef>
+      </glossentry>
+
+      <glossentry>
+        <glossterm>Jetty configuration</glossterm>
+
+        <glossdef>
+          <para>The jetty plugin searches for source code changes. You may
+          want to adjust its scan interval in
+          <filename>pom.xml</filename>:</para>
+
+          <programlisting language="none">&lt;plugin&gt;
+				&lt;groupId&gt;org.mortbay.jetty&lt;/groupId&gt;
+				&lt;artifactId&gt;jetty-maven-plugin&lt;/artifactId&gt;
+				&lt;configuration&gt;
+					<emphasis role="bold">&lt;scanIntervalSeconds&gt;2&lt;/scanIntervalSeconds&gt;</emphasis>
+				&lt;/configuration&gt;
+			&lt;/plugin&gt;</programlisting>
+        </glossdef>
+      </glossentry>
+    </glosslist>
+  </section>
+
+  <section xml:id="sda1SectVaadinTips">
+    <title><productname>Vaadin</productname> related hints</title>
+
+    <orderedlist>
+      <listitem>
+        <para/>
+      </listitem>
+
+      <listitem>
+        <para/>
+      </listitem>
+    </orderedlist>
   </section>
 </chapter>
diff --git a/P/Sda1/Jpa/Company/companyJpa1/pom.xml b/P/Sda1/Jpa/Company/companyJpa1/pom.xml
index feee3116b..a8e96104e 100644
--- a/P/Sda1/Jpa/Company/companyJpa1/pom.xml
+++ b/P/Sda1/Jpa/Company/companyJpa1/pom.xml
@@ -1,107 +1,150 @@
 <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>de.hdm-stuttgart.mi</groupId>
-  <artifactId>company</artifactId>
-  <version>1.0</version>
-  <packaging>jar</packaging>
-
-  <name>Company</name>
-  <url>http://www.mi.hdm-stuttgart.de/freedocs</url>
-
-  <properties>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-  </properties>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.2</version>
-        <configuration>
-          <source>1.8</source>
-          <target>1.8</target>
-        </configuration>
-      </plugin>
-      
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-javadoc-plugin</artifactId>
-        <version>2.10.1</version>
-        <configuration>
-          <linksource>true</linksource>
-        </configuration>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jar-plugin</artifactId>
-        <version>2.5</version>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-install-plugin</artifactId>
-        <version>2.5.2</version>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-resources-plugin</artifactId>
-        <version>2.5</version>
-      </plugin>
-
-    </plugins>
-
-  </build>
-
-  <dependencies>
-
-    <dependency>
-      <groupId>org.hibernate</groupId>
-      <artifactId>hibernate-entitymanager</artifactId>
-      <version>5.0.0.CR1</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.hibernate.javax.persistence</groupId>
-      <artifactId>hibernate-jpa-2.1-api</artifactId>
-      <version>1.0.0.Final</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.hibernate</groupId>
-      <artifactId>hibernate-c3p0</artifactId>
-      <version>5.0.0.CR1</version>
-    </dependency>
-
-    <dependency>
-      <groupId>mysql</groupId>
-      <artifactId>mysql-connector-java</artifactId>
-      <version>5.1.34</version>
-    </dependency>
-
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>4.12</version>
-      <scope>test</scope>
-    </dependency>
-	
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-api</artifactId>
-      <version>2.1</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-core</artifactId>
-      <version>2.1</version>
-    </dependency>
-
-  </dependencies>
+	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>de.hdm-stuttgart.mi</groupId>
+	<artifactId>company</artifactId>
+	<version>1.0</version>
+	<packaging>jar</packaging>
+
+	<name>Company</name>
+	<url>http://www.mi.hdm-stuttgart.de/freedocs</url>
+
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<vaadin.version>7.2.0</vaadin.version>
+		<vaadin.jpacontainer.version>3.2.0</vaadin.jpacontainer.version>
+	</properties>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>3.2</version>
+				<configuration>
+					<source>1.8</source>
+					<target>1.8</target>
+				</configuration>
+			</plugin>
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-javadoc-plugin</artifactId>
+				<version>2.10.1</version>
+				<configuration>
+					<linksource>true</linksource>
+				</configuration>
+			</plugin>
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-jar-plugin</artifactId>
+				<version>2.5</version>
+			</plugin>
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-install-plugin</artifactId>
+				<version>2.5.2</version>
+			</plugin>
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-resources-plugin</artifactId>
+				<version>2.5</version>
+			</plugin>
+			<plugin>
+				<groupId>org.mortbay.jetty</groupId>
+				<artifactId>jetty-maven-plugin</artifactId>
+				<configuration>
+					<scanIntervalSeconds>2</scanIntervalSeconds>
+				</configuration>
+			</plugin>
+
+		</plugins>
+
+	</build>
+	<repositories>
+		<repository>
+			<id>EclipseLink Repo</id>
+			<url>http://www.eclipse.org/downloads/download.php?r=1&amp;nf=1&amp;file=/rt/eclipselink/maven.repo</url>
+		</repository>
+		<repository>
+			<id>vaadin-addons</id>
+			<url>http://maven.vaadin.com/vaadin-addons</url>
+		</repository>
+		<repository>
+			<id>vaadin-snapshots</id>
+			<name>Vaadin snapshot repository</name>
+			<url>http://oss.sonatype.org/content/repositories/vaadin-snapshots/</url>
+		</repository>
+	</repositories>
+	<dependencies>
+		<dependency>
+			<groupId>com.vaadin</groupId>
+			<artifactId>vaadin-server</artifactId>
+			<version>${vaadin.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>com.vaadin</groupId>
+			<artifactId>vaadin-client-compiled</artifactId>
+			<version>${vaadin.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>com.vaadin</groupId>
+			<artifactId>vaadin-themes</artifactId>
+			<version>${vaadin.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>javax.servlet-api</artifactId>
+			<version>3.1.0</version>
+			<scope>provided</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>com.vaadin.addon</groupId>
+			<artifactId>jpacontainer</artifactId>
+			<version>${vaadin.jpacontainer.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.hibernate</groupId>
+			<artifactId>hibernate-validator</artifactId>
+			<version>4.2.0.Final</version>
+		</dependency>
+
+		<dependency>
+			<groupId>org.hibernate</groupId>
+			<artifactId>hibernate-entitymanager</artifactId>
+			<version>5.0.0.CR1</version>
+		</dependency>
+
+		<dependency>
+			<groupId>org.hibernate.javax.persistence</groupId>
+			<artifactId>hibernate-jpa-2.1-api</artifactId>
+			<version>1.0.0.Final</version>
+		</dependency>
+
+		<dependency>
+			<groupId>org.hibernate</groupId>
+			<artifactId>hibernate-c3p0</artifactId>
+			<version>5.0.0.CR1</version>
+		</dependency>
+
+		<dependency>
+			<groupId>mysql</groupId>
+			<artifactId>mysql-connector-java</artifactId>
+			<version>5.1.34</version>
+		</dependency>
+
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.12</version>
+			<scope>test</scope>
+		</dependency>
+
+	</dependencies>
 
 </project>
diff --git a/P/Sda1/Jpa/Company/companyJpa1/src/main/java/de/hdm_stuttgart/mi/company/model/Employee.java b/P/Sda1/Jpa/Company/companyJpa1/src/main/java/de/hdm_stuttgart/mi/company/model/Employee.java
index e40ca55b0..2af826d85 100644
--- a/P/Sda1/Jpa/Company/companyJpa1/src/main/java/de/hdm_stuttgart/mi/company/model/Employee.java
+++ b/P/Sda1/Jpa/Company/companyJpa1/src/main/java/de/hdm_stuttgart/mi/company/model/Employee.java
@@ -15,6 +15,7 @@ import javax.persistence.UniqueConstraint;
 @Table(
 		uniqueConstraints= {@UniqueConstraint(columnNames={"email"})}
 )
+@SuppressWarnings("javadoc")
 public class Employee {
 	
 	protected Employee(){}
diff --git a/P/Sda1/Jpa/Company/companyJpa1/src/main/java/de/hdm_stuttgart/mi/company/model/Project.java b/P/Sda1/Jpa/Company/companyJpa1/src/main/java/de/hdm_stuttgart/mi/company/model/Project.java
index 9be5a9c7c..e5e24747c 100644
--- a/P/Sda1/Jpa/Company/companyJpa1/src/main/java/de/hdm_stuttgart/mi/company/model/Project.java
+++ b/P/Sda1/Jpa/Company/companyJpa1/src/main/java/de/hdm_stuttgart/mi/company/model/Project.java
@@ -11,17 +11,16 @@ import javax.persistence.OneToMany;
 import javax.persistence.Table;
 import javax.persistence.UniqueConstraint;
 
-import org.hibernate.annotations.Cascade;
-
 @Entity
 @Table(
 		uniqueConstraints= {@UniqueConstraint(columnNames={"name"})}
 )
+@SuppressWarnings("javadoc")
 public class Project {
 
 	protected Project(){}
 	
-	public Project(final String name){
+   public Project(final String name){
 		this.name = name;
 	}
 	
diff --git a/P/Sda1/Jpa/Company/companyJpa1/src/main/java/de/hdm_stuttgart/mi/company/model/WorksFor.java b/P/Sda1/Jpa/Company/companyJpa1/src/main/java/de/hdm_stuttgart/mi/company/model/WorksFor.java
index 7928cc4c6..616c00a14 100644
--- a/P/Sda1/Jpa/Company/companyJpa1/src/main/java/de/hdm_stuttgart/mi/company/model/WorksFor.java
+++ b/P/Sda1/Jpa/Company/companyJpa1/src/main/java/de/hdm_stuttgart/mi/company/model/WorksFor.java
@@ -14,6 +14,7 @@ import javax.persistence.UniqueConstraint;
 @Table(
 		uniqueConstraints= {@UniqueConstraint(columnNames={"project", "employee"})}
 )
+@SuppressWarnings("javadoc")
 public class WorksFor {
 	
 	protected WorksFor (){}
diff --git a/P/Sda1/Jpa/Company/companyJpa1/src/main/java/de/hdm_stuttgart/mi/company/ui/HelloUi.java b/P/Sda1/Jpa/Company/companyJpa1/src/main/java/de/hdm_stuttgart/mi/company/ui/HelloUi.java
new file mode 100644
index 000000000..b4843ea27
--- /dev/null
+++ b/P/Sda1/Jpa/Company/companyJpa1/src/main/java/de/hdm_stuttgart/mi/company/ui/HelloUi.java
@@ -0,0 +1,70 @@
+package de.hdm_stuttgart.mi.company.ui;
+
+import javax.servlet.annotation.WebServlet;
+
+import com.vaadin.annotations.Theme;
+import com.vaadin.annotations.Title;
+import com.vaadin.annotations.VaadinServletConfiguration;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.server.VaadinServlet;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.UI;
+import com.vaadin.ui.VerticalLayout;
+
+/**
+ * Starting example
+ *
+ */
+@Title("Intro")
+@Theme("valo")
+public class HelloUi  extends UI {
+
+   private static final long serialVersionUID = -307591917714387247L;
+
+   @Override
+   protected void init(VaadinRequest request) {
+   // The root of the component hierarchy
+      VerticalLayout content = new VerticalLayout();
+      content.setSizeFull(); // Use entire window
+      setContent(content);   // Attach to the UI
+      
+      // Add some component
+      content.addComponent(new Label("Hello!"));
+      
+      // Layout inside layout
+      HorizontalLayout hor = new HorizontalLayout();
+      hor.setSizeFull(); // Use all available space
+
+//      // Couple of horizontally laid out components
+//      Tree tree = new Tree("My Tree",
+//              TreeExample.createTreeContent());
+//      hor.addComponent(tree);
+//
+//      Table table = new Table("My Table",
+//              TableExample.generateContent());
+//      table.setSizeFull();
+//      hor.addComponent(table);
+//      hor.setExpandRatio(table, 1); // Expand to fill
+
+      content.addComponent(hor);
+      content.setExpandRatio(hor, 1); // Expand to fill
+      
+   }
+   
+   /**  Deployed as a Servlet or Portlet.
+   *
+   *  You can specify additional servlet parameters like the URI and UI
+   *  class name and turn on production mode when you have finished developing the application.
+   */
+  @WebServlet(urlPatterns = "/*")
+  @VaadinServletConfiguration(ui = HelloUi.class, productionMode = false)
+  public static class MyUIServlet extends VaadinServlet {
+
+    /**
+     * 
+     */
+    private static final long serialVersionUID = -2771410633323765889L;
+  }
+
+}
-- 
GitLab