diff --git a/ss2012/IT Sicherheit/Gastvorträge/Jan_Camensich.pdf b/ss2012/IT Sicherheit/Gastvortraege/Jan_Camensich.pdf similarity index 100% rename from ss2012/IT Sicherheit/Gastvorträge/Jan_Camensich.pdf rename to ss2012/IT Sicherheit/Gastvortraege/Jan_Camensich.pdf diff --git a/ss2013/Bachelor Thesis/Literatur/RiLSA_2010/BS1_TBA A 32 Schloßgraben_ Alexanderstraße_20110614_160000.TXT b/ss2013/Bachelor Thesis/Literatur/RiLSA_2010/BS1_TBA A 32 Schlossgraben_ Alexanderstraße_20110614_160000.TXT old mode 100755 new mode 100644 similarity index 100% rename from ss2013/Bachelor Thesis/Literatur/RiLSA_2010/BS1_TBA A 32 Schloßgraben_ Alexanderstraße_20110614_160000.TXT rename to ss2013/Bachelor Thesis/Literatur/RiLSA_2010/BS1_TBA A 32 Schlossgraben_ Alexanderstraße_20110614_160000.TXT diff --git a/ss2013/Bachelor Thesis/Literatur/Wikipedia als pdf/Zellulärer Automat.pdf b/ss2013/Bachelor Thesis/Literatur/Wikipedia als pdf/Zellulaaerer Automat.pdf similarity index 100% rename from ss2013/Bachelor Thesis/Literatur/Wikipedia als pdf/Zellulärer Automat.pdf rename to ss2013/Bachelor Thesis/Literatur/Wikipedia als pdf/Zellulaaerer Automat.pdf diff --git a/ss2013/Bachelor Thesis/Literatur/Zellularautomaten/Zellulärer Automat.pdf b/ss2013/Bachelor Thesis/Literatur/Zellularautomaten/Zellulaaerer Automat.pdf similarity index 100% rename from ss2013/Bachelor Thesis/Literatur/Zellularautomaten/Zellulärer Automat.pdf rename to ss2013/Bachelor Thesis/Literatur/Zellularautomaten/Zellulaaerer Automat.pdf diff --git a/ss2013/Bachelor Thesis/TK Präsentation PP/BachelorThesis - Vortrag TK.pdf b/ss2013/Bachelor Thesis/TK Praaesentation PP/BachelorThesis - Vortrag TK.pdf similarity index 100% rename from ss2013/Bachelor Thesis/TK Präsentation PP/BachelorThesis - Vortrag TK.pdf rename to ss2013/Bachelor Thesis/TK Praaesentation PP/BachelorThesis - Vortrag TK.pdf diff --git a/ss2013/Bachelor Thesis/TK Präsentation PP/BachelorThesis - Vortrag TK.pptx b/ss2013/Bachelor Thesis/TK Praaesentation PP/BachelorThesis - Vortrag TK.pptx similarity index 100% rename from ss2013/Bachelor Thesis/TK Präsentation PP/BachelorThesis - Vortrag TK.pptx rename to ss2013/Bachelor Thesis/TK Praaesentation PP/BachelorThesis - Vortrag TK.pptx diff --git a/ss2013/Bachelor Thesis/Verkehrszählung/ergebnisse.ods b/ss2013/Bachelor Thesis/Verkehrszaaehlung/ergebnisse.ods similarity index 100% rename from ss2013/Bachelor Thesis/Verkehrszählung/ergebnisse.ods rename to ss2013/Bachelor Thesis/Verkehrszaaehlung/ergebnisse.ods diff --git a/ss2013/Bachelor Thesis/Verkehrszählung/ergebnisse.pdf b/ss2013/Bachelor Thesis/Verkehrszaaehlung/ergebnisse.pdf similarity index 100% rename from ss2013/Bachelor Thesis/Verkehrszählung/ergebnisse.pdf rename to ss2013/Bachelor Thesis/Verkehrszaaehlung/ergebnisse.pdf diff --git a/ss2013/Bachelor Thesis/Verkehrszählung/ergebnisse_08_05.ods b/ss2013/Bachelor Thesis/Verkehrszaaehlung/ergebnisse_08_05.ods similarity index 100% rename from ss2013/Bachelor Thesis/Verkehrszählung/ergebnisse_08_05.ods rename to ss2013/Bachelor Thesis/Verkehrszaaehlung/ergebnisse_08_05.ods diff --git a/ss2013/Bachelor Thesis/Verkehrszählung/ergebnisse_08_05.pdf b/ss2013/Bachelor Thesis/Verkehrszaaehlung/ergebnisse_08_05.pdf similarity index 100% rename from ss2013/Bachelor Thesis/Verkehrszählung/ergebnisse_08_05.pdf rename to ss2013/Bachelor Thesis/Verkehrszaaehlung/ergebnisse_08_05.pdf diff --git a/ws2009/gdi I/exercise/src/GDI Calendar/.classpath b/ws2009/gdi I/exercise/src/GDI Calendar/.classpath new file mode 100644 index 00000000..04cc82dc --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/ws2009/gdi I/exercise/src/GDI Calendar/.project b/ws2009/gdi I/exercise/src/GDI Calendar/.project new file mode 100644 index 00000000..e24d16a5 --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar/.project @@ -0,0 +1,17 @@ + + + GDI Calendar + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/ws2009/gdi I/exercise/src/GDI Calendar/.settings/org.eclipse.jdt.core.prefs b/ws2009/gdi I/exercise/src/GDI Calendar/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..878886f0 --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +#Fri Dec 18 08:14:28 CET 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/ws2009/gdi I/exercise/src/GDI Calendar/src/GdICalendarTemplate/Calendar.java b/ws2009/gdi I/exercise/src/GDI Calendar/src/GdICalendarTemplate/Calendar.java new file mode 100644 index 00000000..fec94a71 --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar/src/GdICalendarTemplate/Calendar.java @@ -0,0 +1,106 @@ +package GdICalendarTemplate; + +/** + * Import TimeClasses + */ +import java.util.GregorianCalendar; + +/** + * Instances of the Calendar class contain CalendarEntries. + * + * @author Ulf Gebhardt + * @version 1.0 + */ +public class Calendar { + + /** + * Array of CalendarEntry. Startsize is 0. + */ + private CalendarEntry[] calendarEntries = new CalendarEntry[0]; + + /** + * Constructor -> Not used, Std Constructor + */ + public Calendar() + { + } + + /** + * Adds a CalendarEntry to the array in Calendar. + * @param calEntry + */ + public void addCalendarEntry(CalendarEntry calEntry) + { + CalendarEntry[] ce = calendarEntries; + calendarEntries = new CalendarEntry[ce.length+1]; + System.arraycopy(ce, 0, calendarEntries, 0, ce.length); + calendarEntries[calendarEntries.length-1] = calEntry; + } + + /** + * Returns String containing Entry.tostring values + * separated by linebreak. + * Does not include Private Elements from foreign + * People. + * + * @param user + * @return String + */ + public String listEntries(User user) + { + StringBuffer s = new StringBuffer(); + for (int i = 0; i < calendarEntries.length; i++) + { + if(!calendarEntries[i].isPrivate() || calendarEntries[i].getOwner() == user) + { + s.append(calendarEntries[i].toString()); + s.append("\n"); + } + } + + return s.toString(); + } + + /** + * Start the Programm, + * + * Add some Users, Entries, Print content. + * @param args + */ + public static void main(String[] args) { + // please leave this method alone for now... + // create a new calendar + Calendar cal = new Calendar(); + + // create some users + User paul = new User("Paul", "Anderson"); + User mary = new User("Mary", "Bobkins"); + User bob = new User("Adam", "Johanson"); + + // create some entries + CalendarEntry plants = new CalendarEntry( + new GregorianCalendar(2010, 3, 12, 14, 30), + "Water the plants", paul); + plants.setPrivate(true); + cal.addCalendarEntry(plants); + + CalendarEntry cinema = new CalendarEntry( + new GregorianCalendar(2010, 3, 12, 18, 30), + "Meet Mary for cinema", paul); + cal.addCalendarEntry(cinema); + + CalendarEntry call = new CalendarEntry( + new GregorianCalendar(2010, 3, 13, 9, 30), + "Call Susi for an appointment with Ron", mary); + cal.addCalendarEntry(call); + + CalendarEntry lunch = new CalendarEntry( + new GregorianCalendar(2010, 3, 13, 12, 00), + "Lunch with Paul", bob); + lunch.setPrivate(true); + cal.addCalendarEntry(lunch); + + // print out the list of entries + System.out.println(cal.listEntries(bob)); + } +} diff --git a/ws2009/gdi I/exercise/src/GDI Calendar/src/GdICalendarTemplate/CalendarEntry.java b/ws2009/gdi I/exercise/src/GDI Calendar/src/GdICalendarTemplate/CalendarEntry.java new file mode 100644 index 00000000..6c8d68fd --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar/src/GdICalendarTemplate/CalendarEntry.java @@ -0,0 +1,151 @@ +package GdICalendarTemplate; + +/** + * Import Time/Date/Converter Functionality + */ +import java.text.SimpleDateFormat; +import java.util.GregorianCalendar; +import java.util.Locale; + +/** + * All entries in the Calendar are instances of the class CalendarEntry. + * + * @author Ulf Gebhardt + * @version 1.0 + */ +public class CalendarEntry { + + /** + * DateTime Stamp + */ + private GregorianCalendar time; + /** + * Description what to do/remind + */ + private String description; + /** + * Owner of Entry + */ + private User owner; + /** + * Determines if Entry is visible for all. + */ + private boolean priv; + + /** + * Constructor of CalendarEntry + * + * @param time Timestamp (GregorianCalendar) + * @param description Description(String) + * @param owner (User) + */ + public CalendarEntry(GregorianCalendar time, String description, User owner) + { + setTime(time); + setDescription(description); + setOwner(owner); + } + + /** + * Returns the string-representation of + * a CalendarEntry of the following form: + * + * DAYSTRING, DAY MONTH YEAR - HOUR:MIN:SEC by USERFIRSTNAME USERLASTNAME | DESCRIPTION + * + * @return String + */ + @Override public String toString() + { + StringBuffer temp = new StringBuffer(); + + SimpleDateFormat sdf = new SimpleDateFormat("E, dd MMMM yyyy - HH:mm:ss", Locale.GERMAN); + + temp.append(sdf.format(time.getTime())); + temp.append(" by "); + temp.append(owner.toString()); + temp.append(" | "); + temp.append(description); + + return temp.toString(); + } + + /** + * Set Timestamp + * + * @param newtime GregorianCalendar + */ + public void setTime(GregorianCalendar newtime) + { + time = newtime; + } + + /** + * Set Timestamp + * + * @return GregorianCalendar + */ + public GregorianCalendar getTime() + { + return time; + } + + /** + * set new Description + * + * @param newdesc String + */ + public void setDescription(String newdesc) + { + description = newdesc; + } + + /** + * Returns Description + * + * @return String + */ + public String getDescription() + { + return description; + } + + /** + * Set new Owner + * + * @param newowner User + */ + public void setOwner(User newowner) + { + owner = newowner; + } + + /** + * Returns current Owner + * + * @return User + */ + public User getOwner() + { + return owner; + } + + /** + * Set Private-Flag + * + * @param newpriv boolean + */ + public void setPrivate(boolean newpriv) + { + priv = newpriv; + } + + /** + * Returns true if Entry is Private. + * + * @return boolean + */ + public boolean isPrivate() + { + return priv; + } +} diff --git a/ws2009/gdi I/exercise/src/GDI Calendar/src/GdICalendarTemplate/User.java b/ws2009/gdi I/exercise/src/GDI Calendar/src/GdICalendarTemplate/User.java new file mode 100644 index 00000000..9b4a04dc --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar/src/GdICalendarTemplate/User.java @@ -0,0 +1,78 @@ +package GdICalendarTemplate; + +/** + * User Class Definition + * used by: CalendarEntries + * + * @author Ulf Gebhardt + * @version 1.0 + */ +public class User { + + /** + * FirstName of the User + */ + private String givenName; + + /** + * FamilyName of the User + */ + private String familyName; + + /** + * The constructor for User objects + * + * @param givenName FirstName + * @param familyName LastName + */ + public User(String givenName, String familyName) + { + setGivenName(givenName); + setFamilyName(familyName); + } + + /** + * Sets givenName. + * @param newname + */ + public void setGivenName(String newname) + { + givenName = newname; + } + + /** + * Returns givenName + * @return String + */ + public String getGivenName() + { + return givenName; + } + + /** + * Returns familyName + * @return String + */ + public String getFamilyName() + { + return familyName; + } + + /** + * Sets familyName + * @param newname + */ + public void setFamilyName(String newname) + { + familyName = newname; + } + + /** + * Returns String representing a User + * @return String UserName + Lastname + */ + @Override public String toString() + { + return givenName + " " + familyName; + } +} \ No newline at end of file diff --git a/ws2009/gdi I/exercise/src/GDI Calendar/tests/CalendarTest.java b/ws2009/gdi I/exercise/src/GDI Calendar/tests/CalendarTest.java new file mode 100644 index 00000000..eb9a7d72 --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar/tests/CalendarTest.java @@ -0,0 +1,54 @@ + + + + +import GdICalendarTemplate.Calendar; +import GdICalendarTemplate.Calendar; +import GdICalendarTemplate.CalendarEntry; +import GdICalendarTemplate.CalendarEntry; +import GdICalendarTemplate.User; +import GdICalendarTemplate.User; +import java.util.GregorianCalendar; + +import junit.framework.Assert; +import org.junit.Test; + + +/** + * Test the various calendar functionality. + */ +public class CalendarTest{ + @Test + public void testUserCreation() { + User sasha = new User("Sasha", "Dole"); + Assert.assertEquals(sasha.getGivenName(), "Sasha"); + Assert.assertEquals(sasha.getFamilyName(), "Dole"); + } + + @Test + public void testCalendarEntryCreation() { + CalendarEntry meeting = new CalendarEntry(new GregorianCalendar(2010, + 3, 12, 18, 30), "Meeting with Alex and Joseph", new User( + "Sasha", "Dole")); + Assert.assertFalse(meeting.isPrivate()); + Assert.assertEquals(meeting.getDescription(), "Meeting with Alex and Joseph"); + Assert.assertEquals(meeting.getOwner().getGivenName(), "Sasha"); + } + + @Test + public void testCalendarCreation() { + Calendar cal = new Calendar(); + User bob = new User("Bob", "Smith"); + CalendarEntry meeting = new CalendarEntry(new GregorianCalendar(2010, + 3, 12, 18, 30), "Meeting with Alex and Joseph", new User( + "Sasha", "Dole")); + cal.addCalendarEntry(meeting); + Assert.assertTrue(cal.listEntries(bob).length() > 0); + Assert.assertTrue(cal.listEntries(bob).contains("Sasha")); + Assert.assertTrue(cal.listEntries(bob).contains("Meeting with Alex and Joseph")); + Assert.assertTrue(cal.listEntries(bob).contains("2010")); + Assert.assertTrue(cal.listEntries(bob).contains("April")); + Assert.assertTrue(cal.listEntries(bob).contains("Mo")); + } + +} diff --git a/ws2009/gdi I/exercise/src/GDI Calendar2/.classpath b/ws2009/gdi I/exercise/src/GDI Calendar2/.classpath new file mode 100644 index 00000000..04cc82dc --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar2/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/ws2009/gdi I/exercise/src/GDI Calendar2/.project b/ws2009/gdi I/exercise/src/GDI Calendar2/.project new file mode 100644 index 00000000..8dfddccf --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar2/.project @@ -0,0 +1,17 @@ + + + GDI Calendar2 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/ws2009/gdi I/exercise/src/GDI Calendar2/.settings/org.eclipse.jdt.core.prefs b/ws2009/gdi I/exercise/src/GDI Calendar2/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..29a667ed --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar2/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +#Sat Dec 19 17:46:19 CET 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/ws2009/gdi I/exercise/src/GDI Calendar2/src/Calendar.java b/ws2009/gdi I/exercise/src/GDI Calendar2/src/Calendar.java new file mode 100644 index 00000000..1c407af8 --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar2/src/Calendar.java @@ -0,0 +1,190 @@ +import java.util.ArrayList; +import java.util.Arrays; +import java.util.GregorianCalendar; +import java.util.Iterator; +import java.util.List; + +/** + * Instances of the Calendar class contain CalendarEntries. + * + * @author Stefan Radomski, Guido Roessling + * @version 1.0 + */ +public class Calendar { + + /** + * the internal storage for calendar entries + */ + private List calendarEntries; + + /** + * Construct a new calendar object. + */ + public Calendar() + { + calendarEntries = new ArrayList(); + } + + /** + * Add a CalendarEntry to this calendar instance. + * + * @param calEntry + * The entry to add. + */ + public void addCalendarEntry(CalendarEntry calEntry) + { + if(!hasCalendarEntry(calEntry)) + { + calendarEntries.add(calEntry); + } + } + + /** + * Removes a CalendarEntry of this calendar instance. + * + * @param calEntry Entry to be removed + */ + public void removeCalendarEntry(CalendarEntry calEntry) + { + calendarEntries.remove(calEntry); + } + + /** + * Checks if a CalendarEntry is part of this Calendar. + * + * @param calEntry CalendarEntry to be checked + * @return boolean True if Entry is part of Calendar else false. + */ + public boolean hasCalendarEntry(CalendarEntry calEntry) + { + return calendarEntries.contains(calEntry); + } + + /** + * Removes all CalendarEntries from Calendar and replace them + * with given Array of CalendarEntries. + * + * No checks are performed if Entries are valid! + * + * @param calEntries Array of CalendarEntry + */ + public void setCalendarEntries(CalendarEntry[] calEntries) + { + calendarEntries = Arrays.asList(calEntries); + } + + /** + * Returns all CalendarEntries in this Calendar. + * + * @return CalendarEntry[] Array of CalendarEntries of Calendar. + */ + public CalendarEntry[] getCalendarEntries() + { + CalendarEntry[] temparray = new CalendarEntry[calendarEntries.size()]; + calendarEntries.toArray(temparray); + return temparray; + } + + /** + * Return a textual representation of all CalendarEntries visible for the + * given user. + * + * @param user + * The user object for whom to display the CalendarEntries. + * @return A String representing all the CalendarEntries. + */ + public String listEntries(User user) + { + StringBuffer sb = new StringBuffer(); + + Iterator it = calendarEntries.iterator(); + + while(it.hasNext()) + { + CalendarEntry ce = it.next(); + if(ce.isVisible(user)) + { + sb.append(ce.toString()); + sb.append("\n"); + } + } + + return sb.toString(); + } + + /** + * Returns new Calendar-Instance which contains only the Entries of + * this Calendar with are between start- and end-Time. + * + * @param start GregorianCalendar + * @param end GregorianCalendar + * @return Calendar + */ + public Calendar getBetween(GregorianCalendar start, GregorianCalendar end) + { + Calendar tempcal = new Calendar(); + + Iterator it = calendarEntries.iterator(); + + while(it.hasNext()) + { + CalendarEntry ce = it.next(); + + if(ce.isBetween(start,end)) + { + tempcal.addCalendarEntry(ce); + } + } + + return tempcal; + } + + /** + * Create a new calendar, three users and add some appointments to the + * calendar. + * + * @param args + * command-line arguments (ignored in this application) + */ + public static void main(String[] args) { + Calendar cal = new Calendar(); + + Developer paul = new Developer("Paul", "Anderson"); + Developer mary = new Developer("Mary", "Bobkins"); + Secretary bob = new Secretary("Adam", "Johanson"); + + Reminder plants = new Reminder( + new GregorianCalendar(2010, 3, 12, 14, 30), + new GregorianCalendar(2010, 3, 12, 14, 20), + "Water the plants", paul); + plants.setPrivate(true); + cal.addCalendarEntry(plants); + + Meeting dailyScrum = new Meeting( + new GregorianCalendar(2010, 3, 12, 10, 30), + new GregorianCalendar(2010, 3, 12, 11, 30), + "Discuss yesterdays work", paul); + dailyScrum.addParticipant(mary); + cal.addCalendarEntry(dailyScrum); + + Vacation spain = new Vacation( + new GregorianCalendar(2010, 2, 3), + new GregorianCalendar(2010, 2, 13), + "Enjoying the beach in spain", mary); + spain.setDelegate(bob); + cal.addCalendarEntry(spain); + + Illness cold = new Illness( + new GregorianCalendar(2010, 3, 3), + new GregorianCalendar(2010, 3, 4), + "Caught a cold, will be back tomorrow", bob); + cold.setDelegate(mary); + cal.addCalendarEntry(cold); + + Calendar earlyApril = cal.getBetween(new GregorianCalendar(2010, 3, 3), + new GregorianCalendar(2010, 3, 10)); + + System.out.println(cal.listEntries(bob)); + System.out.println(earlyApril.listEntries(bob)); + } +} diff --git a/ws2009/gdi I/exercise/src/GDI Calendar2/src/CalendarEntry.java b/ws2009/gdi I/exercise/src/GDI Calendar2/src/CalendarEntry.java new file mode 100644 index 00000000..212c2c5e --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar2/src/CalendarEntry.java @@ -0,0 +1,168 @@ +import java.text.SimpleDateFormat; +import java.util.GregorianCalendar; + +/** + * This class represents an entry in our calendar. All entries in the Calendar + * are instances of the class CalendarEntry. + * + * @author Stefan Radomski, Guido Roessling + * @version 1.0 + */ +public abstract class CalendarEntry { + + /** + * the description of this calendar entry + */ + private String description; + + /** + * the owner of this calendar entry + */ + private User owner; + + /** + * mark if this entry is private (only visible to the user) + */ + private boolean priv; + + /** + * the date and time for this entry + */ + protected GregorianCalendar time; + + /** + * Construct a new CalendarEntry object. + * + * @param time the GregorianCalendar representing the date and time of the + * entry. + * @param description a String describing the nature of the entry. + * @param owner the User object who owns this entry. + */ + public CalendarEntry(GregorianCalendar time, String description, User owner) + { + this.time = time; + this.description = description; + this.owner = owner; + } + + /** + * Check whether this entry is visible for the given user. + * + * @param user The user who wants to see calendar entries. + * @return A boolean value, indicating the visibility. + */ + public boolean isVisible(User user) { + return (user.equals(owner) || !priv); + } + + /** + * returns the description of this entry + * + * @return the description of this entry + */ + public String getDescription() { + return description; + } + + /** + * assigns a new description for this entry + * + * @param description + * the new description for this entry + */ + public void setDescription(String description) { + this.description = description; + } + + /** + * returns the owner of this entry + * + * @return the ower of this entry + */ + public User getOwner() { + return owner; + } + + /** + * assigns a new owner for this entry + * + * @param time the new owner for this entry + */ + public void setOwner(User owner) { + this.owner = owner; + } + + /** + * Check whether this is a private entry. + * + * @return The privacy flag of the entry. + */ + public boolean isPrivate() { + return priv; + } + + /** + * Set the privacy of this entry. + * + * @param priv set to true for private or false for public (default). + */ + public void setPrivate(boolean priv) { + this.priv = priv; + } + + /** + * returns the date and time of this entry + * + * @return the date and time of this entry + */ + public GregorianCalendar getTime() { + return time; + } + + /** + * assigns a new date and time for this entry + * + * @param time the new date and time for this entry + */ + public void setTime(GregorianCalendar time) + { + this.time = time; + } + + /** + * Returns true if CalendarEntry is between start- and end-Time else false. + * + * @param start + * @param end + * @return boolean + */ + public boolean isBetween(GregorianCalendar start, GregorianCalendar end) + { + if( time.getTime().getTime() >= start.getTime().getTime() && + time.getTime().getTime() <= end.getTime().getTime() ) + { + return true; + } + + return false; + } + + /** + * returns a String representation of this CalendarEntry. + * + * @return a String representing this object + */ + @Override + public String toString() + { + StringBuilder sb = new StringBuilder(); + SimpleDateFormat sdf = new SimpleDateFormat("E, dd MMMM yyyy - kk:mm:ss"); + + sb.append(sdf.format(time.getTime())); + sb.append(" von ").append(owner.getGivenName()).append(" "); + sb.append(owner.getFamilyName()); + sb.append(" | ").append(description); + + return sb.toString(); + } +} diff --git a/ws2009/gdi I/exercise/src/GDI Calendar2/src/CalendarEntryDuration.java b/ws2009/gdi I/exercise/src/GDI Calendar2/src/CalendarEntryDuration.java new file mode 100644 index 00000000..d91b4a95 --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar2/src/CalendarEntryDuration.java @@ -0,0 +1,199 @@ +import java.util.GregorianCalendar; + +/** + * This Class represents a CalendarEntry with a duration. + * + * @author Ulf Gebhardt + * @version 1.0 + */ + +public class CalendarEntryDuration extends CalendarEntry +{ + /** + * Start-Time of the Duration + */ + private GregorianCalendar startTime; + + /** + * End-Time of the Duration + */ + private GregorianCalendar endTime; + + /** + * Delegate which replaces absent Person + */ + private User delegate; + + /** + * Constructor of CalendarEntryDuration. + * + * You have to pass a aditional start- and end-Time. + * + * @param startTime + * @param endTime + * @param description + * @param owner + */ + public CalendarEntryDuration( GregorianCalendar startTime, + GregorianCalendar endTime, + String description, + User owner) + { + super(startTime,description,owner); + setStartTime(startTime); + setEndTime(endTime); + } + + public GregorianCalendar getStartTime() { + return startTime; + } + + public void setStartTime(GregorianCalendar startTime) { + this.startTime = startTime; + } + + public GregorianCalendar getEndTime() { + return endTime; + } + + public void setEndTime(GregorianCalendar endTime) { + this.endTime = endTime; + } + + public User getDelegate() { + return delegate; + } + + public void setDelegate(User delegate) { + this.delegate = delegate; + } + + /** + * returns Duration of CalendarEntry on given field. + * + * @param field + * @return integer + */ + public int getDuration(int field) + { + double timedif = endTime.getTimeInMillis() - startTime.getTimeInMillis(); + + switch(field) + { + case GregorianCalendar.DATE: + { + return (int) Math.floor(timedif / (1000*60*60*24)); + } + case GregorianCalendar.HOUR: + { + return (int) Math.floor(timedif / (1000*60*60)); + } + case GregorianCalendar.MINUTE: + { + return (int) Math.floor(timedif / (1000*60)); + } + case GregorianCalendar.SECOND: + { + return (int) Math.floor(timedif / (1000)); + } + default: + { + return 0; + } + } + } + + /** + * + * @param date + * @return + */ + public boolean spans(GregorianCalendar date) + { + if( (date.getTime().getTime() - startTime.getTime().getTime()) >= 0 && + (date.getTime().getTime() - endTime.getTime().getTime()) <= 0 ) + { + return true; + } + + return false; + } + + /** + * Returns true if CalendarEntry is between start- and end-Time else false. + * + * @param start + * @param end + * @return boolean + */ + @Override + public boolean isBetween(GregorianCalendar start, GregorianCalendar end) + { + if( (startTime.getTime().getTime() >= start.getTime().getTime() && + startTime.getTime().getTime() <= end.getTime().getTime() ) || + (endTime.getTime().getTime() >= start.getTime().getTime() && + endTime.getTime().getTime() <= end.getTime().getTime() )) + { + return true; + } + + return false; + } + + /** + * Checks if given User is allowed to view this CalendarEntry. + * + * @param user + * @return boolean + */ + @Override + public boolean isVisible(User user) + { + if(user == this.getOwner() || !isPrivate() || user == delegate) + { + return true; + } + + return false; + } + + /** + * returns a String representation of this CalendarEntry. + * + * Warning, do not count months and years!!! + * + * @return a String representing this object + */ + @Override + public String toString() + { + String result = super.toString() + " - about "; + + if(getDuration(GregorianCalendar.DATE) > 0) + { + if(Math.floor((double)getDuration(GregorianCalendar.DATE) / 365) > 0) + { + return result + (int)Math.floor((double)getDuration(GregorianCalendar.DATE) / 365) + " year(s)"; + } + + return result + getDuration(GregorianCalendar.DATE) + " day(s)"; + } + + if(getDuration(GregorianCalendar.HOUR) > 0) + { + return result + getDuration(GregorianCalendar.HOUR) + " hour(s)"; + } + + if(getDuration(GregorianCalendar.MINUTE) > 0) + { + return result + getDuration(GregorianCalendar.MINUTE) + " minute(s)"; + } + + if(getDuration(GregorianCalendar.SECOND) > 0) + { + return result + getDuration(GregorianCalendar.SECOND) + " second(s)"; + } + + return super.toString(); + } +} \ No newline at end of file diff --git a/ws2009/gdi I/exercise/src/GDI Calendar2/src/Developer.java b/ws2009/gdi I/exercise/src/GDI Calendar2/src/Developer.java new file mode 100644 index 00000000..35a73a6f --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar2/src/Developer.java @@ -0,0 +1,20 @@ +/** + * A Developer is a special type of user + * + * + * @author Stefan Radomski, Guido Rößling + * @version 1.0 2009-12-03 + */ +public class Developer extends User{ + + /** + * Create a new Developer. + * + * @param givenName The developers first name. + * @param familyName The developers last name. + */ + public Developer(String givenName, String familyName) + { + super(givenName, familyName); + } +} diff --git a/ws2009/gdi I/exercise/src/GDI Calendar2/src/Illness.java b/ws2009/gdi I/exercise/src/GDI Calendar2/src/Illness.java new file mode 100644 index 00000000..1094e83b --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar2/src/Illness.java @@ -0,0 +1,27 @@ +import java.util.GregorianCalendar; + +/** + * Illness is a type of CalendarEntry that has a start and end time + * + * @author Stefan Radomski, Guido Rößling + * @version 1.0 2009-12-03 + */ +public class Illness extends CalendarEntryDuration { + + /** + * Create a new period of illness as it might be reported by a user. + * + * @param startTime The day the user went absent due to her illness. + * @param endTime The day the user plans to return. + * @param description Some additional information. + * @param owner The user being ill. + */ + public Illness( GregorianCalendar startTime, + GregorianCalendar endTime, + String description, + User owner) + { + super(startTime,endTime,description,owner); + } + +} diff --git a/ws2009/gdi I/exercise/src/GDI Calendar2/src/Meeting.java b/ws2009/gdi I/exercise/src/GDI Calendar2/src/Meeting.java new file mode 100644 index 00000000..39cfb97e --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar2/src/Meeting.java @@ -0,0 +1,112 @@ +import java.util.GregorianCalendar; +import java.util.List; +import java.util.ArrayList; + +/** + * A Meeting is a calendar entry with participants and a start and + * end time. + * + * @author Stefan Radomski, Guido Rößling + * @version 1.0 2009-12-03 + */ +public class Meeting extends CalendarEntryDuration +{ + /** + * Variable which stores participants of the meeting + */ + private List participants; + + /** + * Create a new Meeting. + * + * @param startTime The time the meeting will start. + * @param endTime The end time of the meeting. + * @param description Additional information regarding the meetin. + * @param owner The organizer of the meeting. + */ + public Meeting( GregorianCalendar startTime, + GregorianCalendar endTime, + String description, + User owner) + { + super(startTime,endTime,description,owner); + participants = new ArrayList(); + } + + /** + * Checks if user is Allowed to this Meeting + * + * @param user + * @return boolean + */ + private boolean isUserAllowed(User user) + { + return user.getClass() == Developer.class ? true : false; + } + + /** + * Adds User to Participant-List if user is allowed. + * + * @param newUser + */ + public void addParticipant(User newUser) + { + if(isUserAllowed(newUser) && !hasParticipant(newUser)) + { + participants.add(newUser); + } + + //error here + } + + /** + * Removes given User from Participant-List + * + * Do not invoke error if User is not in List! + * + * @param user + */ + public void removeParticipant(User user) + { + participants.remove(user); + } + + /** + * Checks if User is in Participant-List. + * + * @param user + * @return boolean + */ + public boolean hasParticipant(User user) + { + return participants.contains(user); + } + + /** + * Sets Participant-List. + * Users who are not allowed are removed from List. + * + * @param users + */ + public void setParticipants(User[] users) + { + participants.clear(); + + for(int i = 0; i < users.length; i++) + { + addParticipant(users[i]); + } + } + + /** + * Returns Participant-List. + * + * @return User[] + */ + public User[] getParticipants() + { + User[] temparray = new User[participants.size()]; + participants.toArray(temparray); + return temparray; + } +} diff --git a/ws2009/gdi I/exercise/src/GDI Calendar2/src/Note.java b/ws2009/gdi I/exercise/src/GDI Calendar2/src/Note.java new file mode 100644 index 00000000..4f3ec946 --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar2/src/Note.java @@ -0,0 +1,35 @@ +import java.util.GregorianCalendar; + +/** + * A note is a calendar entry that stores details + * + * @author Stefan Radomski, Guido Rößling + * @version 1.0 2009-12-03 + */ +public class Note extends CalendarEntry +{ + /** + * Variable to store Details of the Note. + */ + private String details; + + /** + * Create a new note to be added to a calendar. + * + * @param time The time this note will become relevant. + * @param description Additinal information. + * @param owner The owner of the note. + */ + public Note(GregorianCalendar time, String description, User owner) + { + super(time, description, owner); + } + + public String getDetails() { + return details; + } + + public void setDetails(String details) { + this.details = details; + } +} diff --git a/ws2009/gdi I/exercise/src/GDI Calendar2/src/Reminder.java b/ws2009/gdi I/exercise/src/GDI Calendar2/src/Reminder.java new file mode 100644 index 00000000..cc078dde --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar2/src/Reminder.java @@ -0,0 +1,44 @@ +import java.util.GregorianCalendar; + +/** + * A reminder is a calendar entry that appears at a defined + * point in time but has no duration. + * + * @author Stefan Radomski, Guido Rößling + * @version 1.0 2009-12-03 + */ +public class Reminder extends CalendarEntry +{ + /** + * The time when to remind the owner about this entry. + */ + private GregorianCalendar alarmTime; + + /** + * Create a new reminder to be added in a calendar. + * + * @param time The time this reminder references. + * @param alarmTime When to alert the owner about this reminder. + * @param description Some descriptive information. + * @param owner The user owning this entry. + */ + public Reminder(GregorianCalendar time, + GregorianCalendar alarmTime, + String description, + User owner) + { + super(time,description,owner); + setAlarmTime(alarmTime); + } + + public GregorianCalendar getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(GregorianCalendar alarmTime) { + if(alarmTime.before(time)) + { + this.alarmTime = alarmTime; + } + } +} diff --git a/ws2009/gdi I/exercise/src/GDI Calendar2/src/Secretary.java b/ws2009/gdi I/exercise/src/GDI Calendar2/src/Secretary.java new file mode 100644 index 00000000..6258e331 --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar2/src/Secretary.java @@ -0,0 +1,19 @@ +/** + * A secretary is a special user for calendars. + * + * @author Stefan Radomski, Guido Rößling + * @version 1.0 2009-12-03 + */ +public class Secretary extends User{ + + /** + * Creates a new secretary + * + * @param givenName The first name. + * @param familyName The last name. + */ + public Secretary(String givenName, String familyName) + { + super(givenName,familyName); + } +} diff --git a/ws2009/gdi I/exercise/src/GDI Calendar2/src/User.java b/ws2009/gdi I/exercise/src/GDI Calendar2/src/User.java new file mode 100644 index 00000000..ed1790c3 --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar2/src/User.java @@ -0,0 +1,80 @@ +/** + * Instances of the user class own CalendarEntries + * + * @author Stefan Radomski, Guido Roessling + * @version 1.0 2009-12-03 + */ +public abstract class User { + + /** + * the given name of this user + */ + private String givenName; + + /** + * the family name of this user + */ + private String familyName; + + /** + * The constructor for User objects + * + * @param givenName the first name. + * @param familyName the last name. + */ + public User(String givenName, String familyName) { + this.givenName = givenName; + this.familyName = familyName; + } + + /** + * returns a textual representation of this user as a String + * + * @return the user in a String representation + */ + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(givenName); + if (givenName.length() > 0) { + sb.append(" "); + } + sb.append(familyName); + return sb.toString(); + } + + /** + * returns the given name of this user + * + * @return the given name of this user + */ + public String getGivenName() { + return givenName; + } + + /** + * sets the given name of this user + * + * @param givenName the new given name of the user + */ + public void setGivenName(String givenName) { + this.givenName = givenName; + } + + /** + * returns the family name of this user + * + * @return the family name of this user + */ + public String getFamilyName() { + return familyName; + } + + /** + * sets the family name of this user + * + * @param familyName the new family name of the user + */ + public void setFamilyName(String familyName) { + this.familyName = familyName; + } +} diff --git a/ws2009/gdi I/exercise/src/GDI Calendar2/src/Vacation.java b/ws2009/gdi I/exercise/src/GDI Calendar2/src/Vacation.java new file mode 100644 index 00000000..25510b4e --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar2/src/Vacation.java @@ -0,0 +1,27 @@ +import java.util.GregorianCalendar; + +/** + * Vacation represents an absence of a person due to a vacation + * + * @author Stefan Radomski, Guido Rößling + * @version 1.0 2009-12-03 + */ +public class Vacation extends CalendarEntryDuration +{ + + /** + * Create a new entry of a person's vacation. + * + * @param startTime When the vacation will start. + * @param endTime When the person will be come back. + * @param description Some additional information about the vacation. + * @param owner The person going on vacation. + */ + public Vacation(GregorianCalendar startTime, + GregorianCalendar endTime, + String description, + User owner) + { + super(startTime,endTime,description,owner); + } +} diff --git a/ws2009/gdi I/exercise/src/GDI Calendar2/tests/CalendarTest.java b/ws2009/gdi I/exercise/src/GDI Calendar2/tests/CalendarTest.java new file mode 100644 index 00000000..5afc2125 --- /dev/null +++ b/ws2009/gdi I/exercise/src/GDI Calendar2/tests/CalendarTest.java @@ -0,0 +1,453 @@ +import java.util.GregorianCalendar; + +import junit.framework.Assert; + +import org.junit.Before; +import org.junit.Test; + + +/** + * Test the various calendar functionality. + */ +public class CalendarTest { + + /** + * @author felix + */ + + private Calendar testCal; + private Developer paul; + private Developer mary; + private Secretary bob; + + private Note note; + private Illness illness; + private Reminder reminder; + private Meeting meeting; + private Vacation vacation; + + @Before + public void Init() { + // test calendar object + testCal = new Calendar(); + + // users init + paul = new Developer("Paul", "Anderson"); + mary = new Developer("Mary", "Bobkins"); + bob = new Secretary("Adam", "Johanson"); + + // note init + note = new Note(new GregorianCalendar(2009, 1, 0, 16, 0), "my note", paul); + note.setDetails("test"); + testCal.addCalendarEntry(note); + + // reminder init + reminder = new Reminder(new GregorianCalendar(2010, 3, 12, 14, 30), new GregorianCalendar(2010, 3, 12, 14, 20), "Water the plants", mary); + reminder.setPrivate(true); + testCal.addCalendarEntry(reminder); + + // meeting init + meeting = new Meeting(new GregorianCalendar(2010, 1, 1, 16, 30), new GregorianCalendar(2010, 1, 1, 17, 0), "test meeting", bob); + meeting.addParticipant(paul); + meeting.addParticipant(mary); + // meeting.addParticipant(bob); --> not possible - bob isn't a developer! + + // illness init + illness = new Illness(new GregorianCalendar(2010, 0, 1), new GregorianCalendar(2010, 0, 2), "bobs illness", bob); + illness.setPrivate(true); + testCal.addCalendarEntry(illness); + + // vacation init + vacation = new Vacation(new GregorianCalendar(2020, 0, 0, 0, 0), new GregorianCalendar(2020, 0, 0, 0, 1), "short vacation", paul); + testCal.addCalendarEntry(vacation); + } + + @Test + public void noteTest() { + // has note the additional field details? + Assert.assertEquals(note.getDetails(), "test"); + Assert.assertEquals(note.getDescription(), "my note"); + } + + @Test + public void reminderTest() { + // check current alarm time (should be set) + Assert.assertEquals(reminder.getAlarmTime(), new GregorianCalendar(2010, 3, 12, 14, 20)); + + // set new alarm time after the actual time - this should not work + // -> old alarm time should be set + try { + reminder.setAlarmTime(new GregorianCalendar(2010, 3, 12, 14, 40)); + } catch (Exception e) { + } + Assert.assertEquals(reminder.getAlarmTime(), new GregorianCalendar(2010, 3, 12, 14, 20)); + } + + @Test + public void meetingTest() { + // test method getParticipants + String[] names = {"Paul", "Mary"}; + User[] participants = meeting.getParticipants(); + + for (int i=0; i 30min + + // check getDuration + Assert.assertEquals(0, meeting.getDuration(GregorianCalendar.DATE)); + Assert.assertEquals(0, meeting.getDuration(GregorianCalendar.HOUR)); + Assert.assertEquals(30, meeting.getDuration(GregorianCalendar.MINUTE)); + Assert.assertEquals(1800, meeting.getDuration(GregorianCalendar.SECOND)); + + // check spans + // 16:40 is within 16:30 - 17:00 + Assert.assertTrue(meeting.spans(new GregorianCalendar(2010, 1, 1, 16, 40))); + // 16:00 is not within 16:30 - 17:00 + Assert.assertFalse(meeting.spans(new GregorianCalendar(2010, 1, 1, 16, 0))); + + // check new toString() + Assert.assertEquals("Mo, 01 Februar 2010 - 16:30:00 von Adam Johanson | test meeting - about 30 minute(s)", meeting.toString()); + meeting.setEndTime(new GregorianCalendar(2011, 1, 1, 18, 0)); + Assert.assertEquals("Mo, 01 Februar 2010 - 16:30:00 von Adam Johanson | test meeting - about 1 year(s)", meeting.toString()); + } + + @Test + public void calendarTest() { + // test getBetween + Calendar newCalendar = testCal.getBetween(new GregorianCalendar(2009, 0, 0, 0, 0), new GregorianCalendar(2010, 0, 0, 0, 0)); + + // pauls note is the only entry that's in 2009 + Assert.assertEquals("Sa, 31 Januar 2009 - 16:00:00 von Paul Anderson | my note\n", newCalendar.listEntries(paul)); + Assert.assertEquals(1, newCalendar.getCalendarEntries().length); // getCalendarEntries should work also for this test + + // test addCalendarEntry and hasCalendarEntry + Assert.assertTrue(newCalendar.hasCalendarEntry(note)); + newCalendar.addCalendarEntry(reminder); + Assert.assertTrue(newCalendar.hasCalendarEntry(reminder)); + + // test removeCalendarEntry + newCalendar.removeCalendarEntry(reminder); + Assert.assertFalse(newCalendar.hasCalendarEntry(reminder)); + + // test getCalendarEntries and setCalendarEntries + CalendarEntry[] testEntries = {meeting, illness}; + newCalendar.setCalendarEntries(testEntries); + CalendarEntry[] actualEntries = newCalendar.getCalendarEntries(); + for (int i=0; i 0); + Assert.assertTrue(cal.listEntries(bob).contains("Nailin'")); + Assert.assertTrue(cal.listEntries(bob).contains("Meeting with Alex and Joseph")); + Assert.assertTrue(cal.listEntries(bob).contains("2010")); + Assert.assertTrue(cal.listEntries(bob).contains("April")); + Assert.assertTrue(cal.listEntries(bob).contains("Mo")); + } + + @Test + public void testCalendarCreationAgain() + { + Calendar cal = new Calendar(); + + Developer mrt = new Developer("Mr.", "T."); + Assert.assertEquals(mrt.getGivenName(), "Mr."); + Assert.assertEquals(mrt.getFamilyName(), "T."); + + Developer god = new Developer("Gott", "braucht keinen Nachnamen"); + Assert.assertEquals(god.getGivenName(), "Gott"); + Assert.assertEquals(god.getFamilyName(), "braucht keinen Nachnamen"); + + Secretary hp = new Secretary("Haris", "Pilton"); + Assert.assertEquals(hp.getGivenName(), "Haris"); + Assert.assertEquals(hp.getFamilyName(), "Pilton"); + + Developer cn = new Developer("chuck", "norris"); + Assert.assertEquals(cn.getGivenName(), "chuck"); + Assert.assertEquals(cn.getFamilyName(), "norris"); + + Note note = new Note( new GregorianCalendar(2010, 3, 12, 14, 30), + "Perform Roundhousekick", + cn); + + Assert.assertEquals(note.getDescription(), "Perform Roundhousekick"); + Assert.assertEquals(note.getDetails(),null); + Assert.assertFalse(note.isPrivate()); + Assert.assertTrue(note.isVisible(mrt)); + Assert.assertTrue(note.isVisible(god)); + Assert.assertTrue(note.isVisible(hp)); + Assert.assertTrue(note.isVisible(cn)); + + note.setDetails("In Ya Face"); + + Assert.assertEquals(note.getDetails(),"In Ya Face"); + + note.setPrivate(true); + + Assert.assertFalse(note.isVisible(mrt)); + Assert.assertFalse(note.isVisible(god)); + Assert.assertFalse(note.isVisible(hp)); + Assert.assertTrue(note.isVisible(cn)); + + note.setPrivate(false); + + Reminder rem = new Reminder( new GregorianCalendar(2010, 3, 12, 14, 30), + new GregorianCalendar(2010, 3, 12, 14, 20), + "Tell some Chuck Norris Jokes", + god); + rem.setPrivate(true); + + Assert.assertEquals(rem.getDescription(), "Tell some Chuck Norris Jokes"); + Assert.assertTrue(rem.isPrivate()); + Assert.assertFalse(rem.isVisible(mrt)); + Assert.assertTrue(rem.isVisible(god)); + Assert.assertFalse(rem.isVisible(hp)); + Assert.assertFalse(rem.isVisible(cn)); + + Meeting meet = new Meeting( new GregorianCalendar(2010, 3, 12, 10, 30), + new GregorianCalendar(2010, 3, 12, 11, 30), + "Meeting about ... wow shiny new shoes", + hp); + Assert.assertFalse(meet.hasParticipant(god)); + meet.addParticipant(god); + Assert.assertTrue(meet.hasParticipant(god)); + + Assert.assertEquals(meet.getDescription(), "Meeting about ... wow shiny new shoes"); + Assert.assertFalse(meet.isPrivate()); + Assert.assertTrue(meet.isVisible(mrt)); + Assert.assertTrue(meet.isVisible(god)); + Assert.assertTrue(meet.isVisible(hp)); + Assert.assertTrue(meet.isVisible(cn)); + + Vacation vac = new Vacation( new GregorianCalendar(2010, 2, 3), + new GregorianCalendar(2010, 2, 13), + "Create Nightelf", + mrt); + + Assert.assertEquals(vac.getDelegate(),null); + + vac.setDelegate(cn); + + Assert.assertEquals(vac.getDelegate(),cn); + + Assert.assertEquals(vac.getDescription(), "Create Nightelf"); + Assert.assertFalse(vac.isPrivate()); + Assert.assertTrue(vac.isVisible(mrt)); + Assert.assertTrue(vac.isVisible(god)); + Assert.assertTrue(vac.isVisible(hp)); + Assert.assertTrue(vac.isVisible(cn)); + + Illness ill = new Illness( new GregorianCalendar(2010, 3, 3), + new GregorianCalendar(2010, 3, 4), + "Chuck Norris f�ngt sich keine Erk�ltung ein, eine Erk�ltung f�ngt sich Eine von Chuck Norris ein", + cn); + + Assert.assertEquals(ill.getDelegate(),null); + + ill.setDelegate(god); + + Assert.assertEquals(ill.getDelegate(),god); + + Assert.assertEquals(ill.getDescription(), "Chuck Norris f�ngt sich keine Erk�ltung ein, eine Erk�ltung f�ngt sich Eine von Chuck Norris ein"); + Assert.assertFalse(ill.isPrivate()); + Assert.assertTrue(ill.isVisible(mrt)); + Assert.assertTrue(ill.isVisible(god)); + Assert.assertTrue(ill.isVisible(hp)); + Assert.assertTrue(ill.isVisible(cn)); + + Calendar earlyApril = cal.getBetween( new GregorianCalendar(2010, 3, 3), + new GregorianCalendar(2010, 3, 10)); + + cal.listEntries(mrt); + cal.listEntries(god); + cal.listEntries(hp); + cal.listEntries(cn); + + earlyApril.listEntries(mrt); + earlyApril.listEntries(god); + earlyApril.listEntries(hp); + earlyApril.listEntries(cn); + } + +} diff --git a/ws2009/gdi I/exercise/src/Plumber/.classpath b/ws2009/gdi I/exercise/src/Plumber/.classpath new file mode 100644 index 00000000..a96066f3 --- /dev/null +++ b/ws2009/gdi I/exercise/src/Plumber/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/ws2009/gdi I/exercise/src/Plumber/.project b/ws2009/gdi I/exercise/src/Plumber/.project new file mode 100644 index 00000000..4907725b --- /dev/null +++ b/ws2009/gdi I/exercise/src/Plumber/.project @@ -0,0 +1,17 @@ + + + Plumber + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/ws2009/gdi I/exercise/src/Plumber/.settings/org.eclipse.jdt.core.prefs b/ws2009/gdi I/exercise/src/Plumber/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..a0a6c54a --- /dev/null +++ b/ws2009/gdi I/exercise/src/Plumber/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +#Thu Feb 25 22:27:38 CET 2010 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/ws2009/gdi I/exercise/src/Plumber/Plumber.de_DE b/ws2009/gdi I/exercise/src/Plumber/Plumber.de_DE new file mode 100644 index 00000000..bc0b60cb --- /dev/null +++ b/ws2009/gdi I/exercise/src/Plumber/Plumber.de_DE @@ -0,0 +1,101 @@ +//about window +credits = Impressum: +names = Sascha, Yvonne, Ulf, Jana +about =
Vier Leute fanden sich zusammen
in zwei Wochen
ein Spiel zu erstellen ...<\center><\html> + +backButton.iconName= +backButton.label=Zurueck +backButton.mnemonic=z +backButton.toolTipText=Druecken Sie diesen Knopf um zum Menue zu gehen + +//options window +aim = Ziel des Spieles:
Durch rotieren der Rohre eine funktionierende Verbindung zwischen der Quelle und der Senke herstellen.<\html> +control = Steuerung:
Mit der Maus und/oder Tastatur (Pfeiltasten)<\html> +rules = Regeln:
Aus jeder Aktion und der Zeit wird der Punktestand errechnet. Sie können Schritte rueckgaengig machen und wiederholen lassen, auch ein Neustart ist möglich.
Achten Sie auf die ablaufende Zeit! Nach Ablauf der Zeit beginnt das Wasser automatisch zu fließen. Gefuellte Rohre sind nicht mehr drehbar.<\html> +shortcuts = Tastenbelegung:
[w] - Wasser starten
[n] - Neustart
[t] - Thema wechseln
[h] - Bestenliste
[q] - Beenden
[Leertaste] - rotieren
[Enter] - Wiederholen
[Backspace] - Zurueck<\html> + +//highscore window +time = Zeit +points = Punkte +highscore = Bestenliste + +//main menu +startButton.iconName= +startButton.label= Starte Plumber +startButton.mnemonic=s +startButton.toolTipText=Druecken Sie diesen Knopf zum Starten + +highscoreButton.iconName= +highscoreButton.label= Highscore +highscoreButton.mnemonic=h +highscoreButton.toolTipText=Hier sehen Sie den Highscore + +directionsButton.iconName= +directionsButton.label= Anleitung +directionsButton.mnemonic=o +directionsButton.toolTipText=Klicken Sie hier fuer weiter Optionen + +aboutButton.iconName= +aboutButton.label= Informationen +aboutButton.mnemonic=i +aboutButton.toolTipText=Klicken Sie hier fuer weiter Informationen + + +languageMenu.iconName= +languageMenu.label= Sprache +languageMenu.mnemonic=l +languageMenu.toolTipText=Sprache hier auswaehlen + +deutschItem.iconName= +deutschItem.label=Deutsch +deutschItem.mnemonic=d +deutschItem.toolTipText=Waehle deutsch + +englishItem.iconName= +englishItem.label=English +englishItem.mnemonic=e +englishItem.toolTipText=Choose English + +//window + +timeLeft = Übrige Zeit: + +restart.iconName= +restart.label=Neustart +restart.mnemonic=n +restart.toolTipText=Druecken Sie diesen Knopf zum Neustarten + +undo.iconName= +undo.label=<<< +undo.mnemonic=r +undo.toolTipText=Druecken Sie diesen Knopf um den letzten Schritt rueckgaengig zu machen + +redo.iconName= +redo.label=>>> +redo.mnemonic=w +redo.toolTipText=Druecken Sie diesen Knopf um den letzten Schritt zu Wiederholen + +exit.iconName= +exit.label=Beenden +exit.mnemonic=b +exit.toolTipText=Druecken Sie diesen Knopf zum Beenden + +theme.iconName= +theme.label=Thema +theme.mnemonic=t +theme.toolTipText=Druecken Sie diesen Knopf um ein anderes Thema auszusuchen + +Wasser.iconName= +Wasser.label=Wasser +Wasser.mnemonic=w +Wasser.toolTipText=Druecken Sie diesen Knopf um das Wasser zu starten + +Highscore.iconName= +Highscore.label=Highscore +Highscore.mnemonic=h +Highscore.toolTipText=Zeigt Highscore fuer aktuelles Levelset + + +gameover = Spiel vorbei! +mastered = Level geschafft! +ended = Das Levelpaket ist zu Ende. Bitte im Hauptmenü ein neues wählen. diff --git a/ws2009/gdi I/exercise/src/Plumber/Plumber.en_US b/ws2009/gdi I/exercise/src/Plumber/Plumber.en_US new file mode 100644 index 00000000..cb3dc502 --- /dev/null +++ b/ws2009/gdi I/exercise/src/Plumber/Plumber.en_US @@ -0,0 +1,101 @@ +//about window +credits = Credits: +names = Sascha, Yvonne, Ulf, Jana +about =
Four people came together
to create one game
in two weeks ...<\center><\html> + +backButton.iconName= +backButton.label= Back +backButton.mnemonic=b +backButton.toolTipText=Press Button to get back to the menu + +//options window +aim = Goal:
The goal is to find a valid connection between the sink and the well <\html> +control = Control:
With the mouse or the arrow keys <\html> +rules = Rules:
Your Points are calculated according to every action and the time. You can undo and redo steps. A restart of a level is also possible.
Look at the time you have left. The water will start to flow after the time is down to zero. You can't move pipes that are filled with water.<\html> +shortcuts = Shortcuts:
[w] - start the water
[n] - restart
[t] - change the theme
[h] - Highscore
[q] - Quit
[space] - rotate
[Enter] - redo
[Backspace] - undo<\html> + +//highscore window +time = Time +points = Points +highscore = Highscore + +//main menu +startButton.iconName= +startButton.label= Start Plumber +startButton.mnemonic=s +startButton.toolTipText=Press Button to start the game + +highscoreButton.iconName= +highscoreButton.label= Highscore +highscoreButton.mnemonic=h +highscoreButton.toolTipText=Press Button to see the highscore + +directionsButton.iconName= +directionsButton.label= Directions +directionsButton.mnemonic=o +directionsButton.toolTipText=Press Button for more options + +aboutButton.iconName= +aboutButton.label= About +aboutButton.mnemonic=a +aboutButton.toolTipText=Press Button to learn more about the game + + + +languageMenu.iconName= +languageMenu.label= Language +languageMenu.mnemonic=l +languageMenu.toolTipText=Choose language here + +deutschItem.iconName= +deutschItem.label=Deutsch +deutschItem.mnemonic=d +deutschItem.toolTipText=WŠhle deutsch + +englishItem.iconName= +englishItem.label=English +englishItem.mnemonic=e +englishItem.toolTipText=Choose English + +//window + +timeLeft = Time Left: + +restart.iconName= +restart.label=Restart +restart.mnemonic=r +restart.toolTipText=Press Button to restart the level + +undo.iconName= +undo.label=Undo +undo.mnemonic=u +undo.toolTipText=Press Button to undo last step + +redo.iconName= +redo.label=Redo +redo.mnemonic=r +redo.toolTipText=Press Button to redo last step + +exit.iconName= +exit.label=Exit +exit.mnemonic=e +exit.toolTipText=Press Button to exit + +theme.iconName= +theme.label=Theme +theme.mnemonic=t +theme.toolTipText=Press Button to choose a different theme + +Wasser.iconName= +Wasser.label=Water +Wasser.mnemonic=w +Wasser.toolTipText=Press Button to start the water flow + +Highscore.iconName= +Highscore.label=Highscore +Highscore.mnemonic=h +Highscore.toolTipText=Show highscore for current level + +gameover = Game over! +mastered = You mastered this level! +ended = Levelset ended please go to mainmenu and select another one. \ No newline at end of file diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/Plumber.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/Plumber.class new file mode 100644 index 00000000..c7173914 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/Plumber.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/Controller.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/Controller.class new file mode 100644 index 00000000..53e84198 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/Controller.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/exceptioncatcher/DefaultOutputHandler.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/exceptioncatcher/DefaultOutputHandler.class new file mode 100644 index 00000000..8dfe2665 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/exceptioncatcher/DefaultOutputHandler.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/exceptioncatcher/ExceptionCatcher.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/exceptioncatcher/ExceptionCatcher.class new file mode 100644 index 00000000..63fae018 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/exceptioncatcher/ExceptionCatcher.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/exceptioncatcher/ExceptionOutputHandler.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/exceptioncatcher/ExceptionOutputHandler.class new file mode 100644 index 00000000..0ec0b236 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/exceptioncatcher/ExceptionOutputHandler.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/LogicController$1.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/LogicController$1.class new file mode 100644 index 00000000..b63a65fe Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/LogicController$1.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/LogicController.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/LogicController.class new file mode 100644 index 00000000..e24b7ca4 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/LogicController.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/level/LevelController.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/level/LevelController.class new file mode 100644 index 00000000..eff042ce Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/level/LevelController.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/level/ModuleElements.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/level/ModuleElements.class new file mode 100644 index 00000000..42deabd0 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/level/ModuleElements.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/level/ModuleIsCorrect.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/level/ModuleIsCorrect.class new file mode 100644 index 00000000..fbdc7542 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/level/ModuleIsCorrect.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/level/ModuleLoadSave.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/level/ModuleLoadSave.class new file mode 100644 index 00000000..15e7447e Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/level/ModuleLoadSave.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/level/ModuleStartEndTime.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/level/ModuleStartEndTime.class new file mode 100644 index 00000000..a6a456db Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/level/ModuleStartEndTime.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/levelset/LevelSetController$1.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/levelset/LevelSetController$1.class new file mode 100644 index 00000000..93ecba33 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/levelset/LevelSetController$1.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/levelset/LevelSetController.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/levelset/LevelSetController.class new file mode 100644 index 00000000..7e4ad513 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/logic/levelset/LevelSetController.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/options/Option.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/options/Option.class new file mode 100644 index 00000000..c8f90135 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/options/Option.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/options/Options.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/options/Options.class new file mode 100644 index 00000000..51a97bf4 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/options/Options.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/view/ViewController$1.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/view/ViewController$1.class new file mode 100644 index 00000000..5dc1bf01 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/view/ViewController$1.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/view/ViewController.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/view/ViewController.class new file mode 100644 index 00000000..7b90a887 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/view/ViewController.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/view/theme/ThemeController.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/view/theme/ThemeController.class new file mode 100644 index 00000000..1fe30593 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/controller/view/theme/ThemeController.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/Model.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/Model.class new file mode 100644 index 00000000..a6628534 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/Model.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/EventListener.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/EventListener.class new file mode 100644 index 00000000..2797a4dd Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/EventListener.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/Event_interface.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/Event_interface.class new file mode 100644 index 00000000..8c841c45 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/Event_interface.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/LevelEvent_abstract.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/LevelEvent_abstract.class new file mode 100644 index 00000000..1e21d79c Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/LevelEvent_abstract.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/NewLevel.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/NewLevel.class new file mode 100644 index 00000000..1c6f7c2e Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/NewLevel.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/NewLevelElement.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/NewLevelElement.class new file mode 100644 index 00000000..500f2a88 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/NewLevelElement.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/Rotate.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/Rotate.class new file mode 100644 index 00000000..f7325ce3 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/Rotate.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/SelectionChange.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/SelectionChange.class new file mode 100644 index 00000000..bebc9fd0 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/SelectionChange.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/Timer.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/Timer.class new file mode 100644 index 00000000..f889ff3b Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/Timer.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/WaterOut.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/WaterOut.class new file mode 100644 index 00000000..4e8dcd79 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/WaterOut.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/WaterStart.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/WaterStart.class new file mode 100644 index 00000000..245cd768 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/WaterStart.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/WaterWin.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/WaterWin.class new file mode 100644 index 00000000..ae5ff6f8 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/level/WaterWin.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/levelelement/LevelElementEvent_abstract.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/levelelement/LevelElementEvent_abstract.class new file mode 100644 index 00000000..a873daba Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/levelelement/LevelElementEvent_abstract.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/levelelement/ReDo.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/levelelement/ReDo.class new file mode 100644 index 00000000..72065dfa Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/levelelement/ReDo.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/levelelement/Rotate.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/levelelement/Rotate.class new file mode 100644 index 00000000..90f8d490 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/levelelement/Rotate.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/levelelement/UnDo.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/levelelement/UnDo.class new file mode 100644 index 00000000..daea2965 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/events/levelelement/UnDo.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/exceptions/PlumberError.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/exceptions/PlumberError.class new file mode 100644 index 00000000..671da49c Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/exceptions/PlumberError.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/exceptions/PlumberInfo.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/exceptions/PlumberInfo.class new file mode 100644 index 00000000..292ae414 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/exceptions/PlumberInfo.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/exceptions/PlumberWarning.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/exceptions/PlumberWarning.class new file mode 100644 index 00000000..ba5af7b1 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/exceptions/PlumberWarning.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/highscores/Highscore.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/highscores/Highscore.class new file mode 100644 index 00000000..f36b36e9 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/highscores/Highscore.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/highscores/HighscoreEntry.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/highscores/HighscoreEntry.class new file mode 100644 index 00000000..357b70e5 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/highscores/HighscoreEntry.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/history/History.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/history/History.class new file mode 100644 index 00000000..fe97aee2 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/history/History.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/history/events/HistoryEvent_interface.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/history/events/HistoryEvent_interface.class new file mode 100644 index 00000000..fcb2e4d4 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/history/events/HistoryEvent_interface.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/history/events/LevelRotateElement.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/history/events/LevelRotateElement.class new file mode 100644 index 00000000..6b412576 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/history/events/LevelRotateElement.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/level/Level$1.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/level/Level$1.class new file mode 100644 index 00000000..4b2a4dea Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/level/Level$1.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/level/Level.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/level/Level.class new file mode 100644 index 00000000..70ca4c43 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/level/Level.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/levelelements/Element_abstract.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/levelelements/Element_abstract.class new file mode 100644 index 00000000..f2c9387c Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/levelelements/Element_abstract.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/levelelements/Pipe_Bent.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/levelelements/Pipe_Bent.class new file mode 100644 index 00000000..350946a9 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/levelelements/Pipe_Bent.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/levelelements/Pipe_Straight.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/levelelements/Pipe_Straight.class new file mode 100644 index 00000000..3e75a20e Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/levelelements/Pipe_Straight.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/levelelements/Sink.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/levelelements/Sink.class new file mode 100644 index 00000000..afa67884 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/levelelements/Sink.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/levelelements/Well.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/levelelements/Well.class new file mode 100644 index 00000000..f993fc37 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/levelelements/Well.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/levelsets/LevelSet.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/levelsets/LevelSet.class new file mode 100644 index 00000000..dce54afd Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/model/levelsets/LevelSet.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/tests/adapters/PlumberTestAdapterExtended1.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/tests/adapters/PlumberTestAdapterExtended1.class new file mode 100644 index 00000000..ba45e33b Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/tests/adapters/PlumberTestAdapterExtended1.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/tests/adapters/PlumberTestAdapterExtended2.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/tests/adapters/PlumberTestAdapterExtended2.class new file mode 100644 index 00000000..57cabfff Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/tests/adapters/PlumberTestAdapterExtended2.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/tests/adapters/PlumberTestAdapterExtended3.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/tests/adapters/PlumberTestAdapterExtended3.class new file mode 100644 index 00000000..691fe41a Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/tests/adapters/PlumberTestAdapterExtended3.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/tests/adapters/PlumberTestAdapterMinimal.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/tests/adapters/PlumberTestAdapterMinimal.class new file mode 100644 index 00000000..acbd1d43 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/tests/adapters/PlumberTestAdapterMinimal.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/ViewLogicListener.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/ViewLogicListener.class new file mode 100644 index 00000000..bb2db133 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/ViewLogicListener.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Panel.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Panel.class new file mode 100644 index 00000000..00597833 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Panel.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window$1.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window$1.class new file mode 100644 index 00000000..3c610a62 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window$1.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window$2.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window$2.class new file mode 100644 index 00000000..71560cd3 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window$2.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window$3.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window$3.class new file mode 100644 index 00000000..6d6e0b14 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window$3.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window$4.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window$4.class new file mode 100644 index 00000000..d7d88969 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window$4.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window$5.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window$5.class new file mode 100644 index 00000000..da666881 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window$5.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window$6.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window$6.class new file mode 100644 index 00000000..acc800a9 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window$6.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window$7.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window$7.class new file mode 100644 index 00000000..95b9fd51 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window$7.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window.class new file mode 100644 index 00000000..705e18a1 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/game/Window.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/tudframework/GamePanel$1.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/tudframework/GamePanel$1.class new file mode 100644 index 00000000..75456ea9 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/tudframework/GamePanel$1.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/tudframework/GamePanel.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/tudframework/GamePanel.class new file mode 100644 index 00000000..1c6e0bd9 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/tudframework/GamePanel.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/tudframework/GameWindow.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/tudframework/GameWindow.class new file mode 100644 index 00000000..9a271f31 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/tudframework/GameWindow.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/tudframework/InternalFailureException.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/tudframework/InternalFailureException.class new file mode 100644 index 00000000..1c565553 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/tudframework/InternalFailureException.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/tudframework/InvalidOperationException.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/tudframework/InvalidOperationException.class new file mode 100644 index 00000000..8ef39c78 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/tudframework/InvalidOperationException.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/tudframework/ParameterOutOfRangeException.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/tudframework/ParameterOutOfRangeException.class new file mode 100644 index 00000000..23d0490f Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/tudframework/ParameterOutOfRangeException.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/AboutWindow$1.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/AboutWindow$1.class new file mode 100644 index 00000000..15396f18 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/AboutWindow$1.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/AboutWindow$2.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/AboutWindow$2.class new file mode 100644 index 00000000..d72580cf Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/AboutWindow$2.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/AboutWindow.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/AboutWindow.class new file mode 100644 index 00000000..03d43058 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/AboutWindow.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/DirectionsWindow$1.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/DirectionsWindow$1.class new file mode 100644 index 00000000..5ec8cd64 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/DirectionsWindow$1.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/DirectionsWindow.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/DirectionsWindow.class new file mode 100644 index 00000000..45415083 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/DirectionsWindow.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/HighscoreWindow$1.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/HighscoreWindow$1.class new file mode 100644 index 00000000..df53cde8 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/HighscoreWindow$1.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/HighscoreWindow.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/HighscoreWindow.class new file mode 100644 index 00000000..4a37e2a4 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/HighscoreWindow.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$1.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$1.class new file mode 100644 index 00000000..81d026b0 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$1.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$2.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$2.class new file mode 100644 index 00000000..4a164a2f Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$2.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$3.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$3.class new file mode 100644 index 00000000..ef9d9934 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$3.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$4.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$4.class new file mode 100644 index 00000000..679513c2 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$4.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$5.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$5.class new file mode 100644 index 00000000..c6d72fff Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$5.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$6.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$6.class new file mode 100644 index 00000000..41faca4c Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$6.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$7.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$7.class new file mode 100644 index 00000000..e9013b30 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$7.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$8.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$8.class new file mode 100644 index 00000000..45e72abc Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$8.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$9.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$9.class new file mode 100644 index 00000000..c8a9e353 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow$9.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow.class new file mode 100644 index 00000000..81ab760d Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/MainMenuWindow.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/Translatable$1.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/Translatable$1.class new file mode 100644 index 00000000..f916b3f9 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/Translatable$1.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/Translatable$2.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/Translatable$2.class new file mode 100644 index 00000000..971f4834 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/Translatable$2.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/Translatable.class b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/Translatable.class new file mode 100644 index 00000000..6ff32e06 Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/bin/de/tu_darmstadt/gdi1/plumber/view/windows/Translatable.class differ diff --git a/ws2009/gdi I/exercise/src/Plumber/docu/Plumber Class-Diagramm.jpg b/ws2009/gdi I/exercise/src/Plumber/docu/Plumber Class-Diagramm.jpg new file mode 100644 index 00000000..1369e7de Binary files /dev/null and b/ws2009/gdi I/exercise/src/Plumber/docu/Plumber Class-Diagramm.jpg differ diff --git a/ws2009/gdi I/exercise/src/Plumber/docu/Plumber.ump b/ws2009/gdi I/exercise/src/Plumber/docu/Plumber.ump new file mode 100644 index 00000000..b249f7cd --- /dev/null +++ b/ws2009/gdi I/exercise/src/Plumber/docu/Plumber.ump @@ -0,0 +1 @@ +