diff --git a/CampusAppWP8/CampusAppWP8/App.xaml.cs b/CampusAppWP8/CampusAppWP8/App.xaml.cs index 65a2fc88..23949af1 100644 --- a/CampusAppWP8/CampusAppWP8/App.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/App.xaml.cs @@ -147,7 +147,7 @@ namespace CampusAppWP8 } else { - Settings.AppSetting.DevMode = false; + Settings.AppSetting.DevMode = true; } this.UserSettingsLoaded(); @@ -243,6 +243,9 @@ namespace CampusAppWP8 // Behandeln Sie Rücksetzanforderungen zum Löschen des Backstack RootFrame.Navigated += CheckForResetNavigation; + // Assign the lens example URI-mapper class to the application frame. + RootFrame.UriMapper = new AppUriMapper(); + // Sicherstellen, dass keine erneute Initialisierung erfolgt phoneApplicationInitialized = true; } diff --git a/CampusAppWP8/CampusAppWP8/Assets/ApplicationIcon.png b/CampusAppWP8/CampusAppWP8/Assets/ApplicationIcon.png index 7d95d4e0..4bff7b4f 100644 Binary files a/CampusAppWP8/CampusAppWP8/Assets/ApplicationIcon.png and b/CampusAppWP8/CampusAppWP8/Assets/ApplicationIcon.png differ diff --git a/CampusAppWP8/CampusAppWP8/Assets/Icons/DarkTheme/placeinfo_159.png b/CampusAppWP8/CampusAppWP8/Assets/Icons/DarkTheme/placeinfo_159.png new file mode 100644 index 00000000..f95a93ca Binary files /dev/null and b/CampusAppWP8/CampusAppWP8/Assets/Icons/DarkTheme/placeinfo_159.png differ diff --git a/CampusAppWP8/CampusAppWP8/Assets/Icons/LightTheme/placeinfo_159.png b/CampusAppWP8/CampusAppWP8/Assets/Icons/LightTheme/placeinfo_159.png new file mode 100644 index 00000000..f95a93ca Binary files /dev/null and b/CampusAppWP8/CampusAppWP8/Assets/Icons/LightTheme/placeinfo_159.png differ diff --git a/CampusAppWP8/CampusAppWP8/Assets/Lens.Screen-720p.png b/CampusAppWP8/CampusAppWP8/Assets/Lens.Screen-720p.png new file mode 100644 index 00000000..243e36b7 Binary files /dev/null and b/CampusAppWP8/CampusAppWP8/Assets/Lens.Screen-720p.png differ diff --git a/CampusAppWP8/CampusAppWP8/Assets/Lens.Screen-WVGA.png b/CampusAppWP8/CampusAppWP8/Assets/Lens.Screen-WVGA.png new file mode 100644 index 00000000..f1c35fca Binary files /dev/null and b/CampusAppWP8/CampusAppWP8/Assets/Lens.Screen-WVGA.png differ diff --git a/CampusAppWP8/CampusAppWP8/Assets/Lens.Screen-WXGA.png b/CampusAppWP8/CampusAppWP8/Assets/Lens.Screen-WXGA.png new file mode 100644 index 00000000..3a37c80d Binary files /dev/null and b/CampusAppWP8/CampusAppWP8/Assets/Lens.Screen-WXGA.png differ diff --git a/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj b/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj index 5494815e..635ca627 100644 --- a/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj +++ b/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj @@ -112,12 +112,17 @@ + + + + + @@ -131,6 +136,9 @@ + + RoomListPage.xaml + Exams.xaml @@ -143,6 +151,12 @@ ShowPad.xaml + + True + True + Constants.resx + + @@ -262,11 +276,6 @@ True AppResources.resx - - True - True - Constants.resx - @@ -294,6 +303,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile @@ -439,6 +452,7 @@ + @@ -471,6 +485,7 @@ + @@ -482,6 +497,9 @@ + + + PreserveNewest @@ -519,8 +537,8 @@ PublicResXFileCodeGenerator - Constants.Designer.cs Designer + Constants1.Designer.cs Designer diff --git a/CampusAppWP8/CampusAppWP8/File/Campusmap/Offlinemap.xml b/CampusAppWP8/CampusAppWP8/File/Campusmap/Offlinemap.xml index 2bfc667b..54f09f09 100644 --- a/CampusAppWP8/CampusAppWP8/File/Campusmap/Offlinemap.xml +++ b/CampusAppWP8/CampusAppWP8/File/Campusmap/Offlinemap.xml @@ -384,12 +384,12 @@ Labor - Lehrgebäude der Biotechnologie. + Die Biotechnologie befindet sich seit dem 21. Juni 2007 in einem eigenen Lehrgebäude. Biotechnologie Lehrgebäude - Lehrgebäude der Elektrotechnik, Chemie und Verfahrenstechnik in Senftenberg. + Bereits seit 1998 befinden sich in diesem Lehrgebäude die Fachbereiche Chemie und Verfahrentechnik. Elektrotechnik/Chemie/Verfahrenstechnik Lehrgebäude @@ -399,7 +399,7 @@ Lehrgebäude - Die Sporthalle bietet Möglichkeiten der sportlichen Ertüchtigung. + Die Sporthalle bietet Möglichkeiten der sportlichen Ertüchtigung und ist Veranstaltungsort der Campus-X-Change Messe. Sporthalle Sport @@ -504,549 +504,1278 @@ Lehrgebäude + Limitierter Zugang Erdgeschoss - Eingang - Eingang - Eingang + MZG Eingang + Haupteingang + Zugangsbereich + Kein Zugang Erdgeschoss - Eingang - Eingang - Eingang + MZG Eingang + Nebeneingang + Zugangsbereich + Kein Zugang Erdgeschoss - Eingang - Eingang - Eingang + MZG Eingang + Nebeneingang + Zugangsbereich + Kein Zugang Erdgeschoss - Eingang - Eingang - Eingang + MZG Eingang + Nebeneingang + Zugangsbereich + Voller Zugang Erdgeschoss - Aufzug + MZG Aufzug Aufzug - Aufzug + Zugangsbereich + Kein Zugang Erdgeschoss - Treppe + MZG Treppe Treppe - Treppe + Zugangsbereich + Kein Zugang Erdgeschoss - Treppe + MZG Treppe Treppe - Treppe + Zugangsbereich + Voller Zugang Erdgeschoss - 101 - 101 + MZG R.101 + MZG R.101 Büro + Voller Zugang Erdgeschoss - 102 - 102 + MZG R.102 + MZG R.102 Büro + Voller Zugang Erdgeschoss - 103 - 103 + MZG R.103 + MZG R.103 Büro + Voller Zugang Erdgeschoss - 104 - 104 + MZG R.104 + MZG R.104 Büro + Voller Zugang Erdgeschoss - 105 - 105 + MZG R.105 + Sekretariat Büro + Voller Zugang Erdgeschoss - 106 - 106 + MZG R.106 + MZG R.106 Büro + Voller Zugang Erdgeschoss - 107 - 107 - Labor SDB + MZG R.107 + Labor SDB + Labor + Voller Zugang Erdgeschoss - 108 - 108 - Labor SDB + MZG R.108 + Labor SDB + Labor + Voller Zugang Erdgeschoss - 109 - 109 - Labor SDB + MZG R.109 + Labor SDB + Labor + Voller Zugang Erdgeschoss - 110 - 110 - Labor SDB + MZG R.110 + Labor SDB + Labor + Voller Zugang Erdgeschoss - 111 - 111 - Labor SDB + MZG R.111 + Labor SDB + Labor + Voller Zugang Erdgeschoss - 112 - 112 - Labor SDB + MZG R.112 + Labor SDB + Labor + Voller Zugang Erdgeschoss - 113 - 113 + MZG R.113 + MZG R.113 Büro + Voller Zugang Erdgeschoss - 114 - 114 + MZG R.114 + MZG R.114 Büro + Voller Zugang Erdgeschoss - 115 - 115 + MZG R.115 + MZG R.115 Büro + Voller Zugang Erdgeschoss - 116 - 116 + MZG R.116 + MZG R.116 Büro + Voller Zugang Erdgeschoss - 117 - 117 + MZG R.117 + MZG R.117 Büro + Voller Zugang Erdgeschoss - 118 - 118 + MZG R.118 + MZG R.118 Büro + Voller Zugang Erdgeschoss - 120 - 120 + MZG R.120 + MZG R.120 Büro + Voller Zugang Erdgeschoss - 121 - 121 + MZG R.121 + MZG R.121 Büro + Voller Zugang Erdgeschoss - 122 - 122 + MZG R.122 + MZG R.122 Büro + Voller Zugang Erdgeschoss - 123 - 123 + MZG R.123 + MZG R.123 Büro + Voller Zugang Erdgeschoss - 125 - 125 - PC - Labor + MZG R.125 + PC - Labor + Labor + Voller Zugang Erdgeschoss - 126 - 126 - PC - Labor + MZG R.126 + PC - Labor + Labor + Voller Zugang Erdgeschoss - 128 - 128 - PC - Labor + MZG R.128 + PC - Labor + Labor + Voller Zugang Erdgeschoss - 130 - 130 - PC - Labor + MZG R.130 + PC - Labor + Labor + Voller Zugang Erdgeschoss - 133 - 133 + MZG R.133 + Herrentoilette WC + Voller Zugang Erdgeschoss - 134 - 134 - CO2 - Labor + MZG R.134 + CO2 - Labor + Labor + Voller Zugang Erdgeschoss - 135 - 135 - CO2 - Labor + MZG R.135 + Schulungsraum + Büro - + + Limitierter Zugang Erdgeschoss - 137 - 137 + MZG R.137 + Herrentoilette WC + Voller Zugang Erdgeschoss - 138 - 138 + MZG R.138 + Aufenthaltsraum Mehrzweck + Limitierter Zugang Erdgeschoss - 139 - 139 + MZG R.139 + Damentoilette WC + Voller Zugang Erdgeschoss - 140 - 140 - PC - Labor + MZG R.140 + PC - Labor + Labor + Voller Zugang Erdgeschoss - 149 - 149 + MZG R.149 + MZG R.149 Büro + Voller Zugang Obergeschoss - Aufzug + MZG Aufzug Aufzug - Aufzug + Zugangsbereich + Kein Zugang Obergeschoss - Treppe + MZG Treppe Treppe - Treppe + Zugangsbereich + Kein Zugang Obergeschoss - Treppe + MZG Treppe Treppe - Treppe + Zugangsbereich + Voller Zugang Obergeschoss - 201 - 201 + MZG R.201 + MZG R.201 Labor + Voller Zugang Obergeschoss - 202 - 202 + MZG R.202 + MZG R.202 Labor + Voller Zugang Obergeschoss - 203 - 203 + MZG R.203 + MZG R.203 Labor + Voller Zugang Obergeschoss - 204 - 204 + MZG R.204 + MZG R.204 Büro + Voller Zugang Obergeschoss - 205 - 205 + MZG R.205 + MZG R.205 Büro + Voller Zugang Obergeschoss - 206 - 206 + MZG R.206 + MZG R.206 Büro + Voller Zugang Obergeschoss - 207 - 207 + MZG R.207 + MZG R.207 Büro + Voller Zugang Obergeschoss - 208 - 208 + MZG R.208 + MZG R.208 Büro + Voller Zugang Obergeschoss - 209 - 209 + MZG R.209 + MZG R.209 Büro + Voller Zugang Obergeschoss - 210 - 210 + MZG R.210 + MZG R.210 Büro + Voller Zugang Obergeschoss - 211 - 211 + MZG R.211 + MZG R.211 Büro + Voller Zugang Obergeschoss - 213 - 213 + MZG R.213 + MZG R.213 Büro + Voller Zugang Obergeschoss - 214 - 214 + MZG R.214 + MZG R.214 Büro + Voller Zugang Obergeschoss - 215 - 215 + MZG R.215 + MZG R.215 Büro + Voller Zugang Obergeschoss - 216 - 216 + MZG R.216 + MZG R.216 Büro + Voller Zugang Obergeschoss - 217 - 217 + MZG R.217 + MZG R.217 Büro + Voller Zugang Obergeschoss - 218 - 218 + MZG R.218 + MZG R.218 Büro + Voller Zugang Obergeschoss - 219 - 219 + MZG R.219 + MZG R.219 Büro + Voller Zugang Obergeschoss - 220 - 220 + MZG R.220 + MZG R.220 Büro + Voller Zugang Obergeschoss - 222 - 222 - Seminarraum + MZG R.222 + Seminarraum + Büro + Voller Zugang Obergeschoss - 223 - 223 + MZG R.223 + MZG R.223 Büro + Voller Zugang Obergeschoss - 224 - 224 + MZG R.224 + Sekretariat Büro + Voller Zugang Obergeschoss - 225 - 225 + MZG R.225 + MZG R.225 Büro + Voller Zugang Obergeschoss - 226 - 226 + MZG R.226 + MZG R.226 Büro + Voller Zugang Obergeschoss - 227 - 227 - PC - Labor + MZG R.227 + PC - Labor + Labor + Voller Zugang Obergeschoss - 228 - 228 - PC - Labor + MZG R.228 + PC - Labor + Labor + Voller Zugang Obergeschoss - 231 - 231 - Archiv + MZG R.231 + Archiv + Mehrzweck + Voller Zugang Obergeschoss - 233 - 233 - Drohnenlabor + MZG R.233 + Drohnenlabor + Labor + Limitierter Zugang Obergeschoss - 235 - 235 + MZG R.235 + Herrentoilette WC + Voller Zugang Obergeschoss - 236 - 236 + MZG R.236 + Aufenthaltsraum Mehrzweck + Voller Zugang Obergeschoss - 237 - 237 + MZG R.237 + Aufenthaltsraum Mehrzweck + Voller Zugang Obergeschoss - 238 - 238 + MZG R.238 Mehrzweck + Voller Zugang Obergeschoss - 239 - 239 + MZG R.239 Mehrzweck + Voller Zugang Obergeschoss - 240 - 240 + MZG R.240 Mehrzweck - + + Limitierter Zugang Obergeschoss - 241 - 241 + MZG R.241 + Herrentoilette WC + Limitierter Zugang Obergeschoss - 243 - 243 + MZG R.243 + Damentoilette WC - + + Voller Zugang + 1. Untergeschoss + Damen- und Herrentoiletten + WC + + + Voller Zugang + 1. Untergeschoss + Aufzug + Zugangsbereich + + + Kein Zugang + 1. Untergeschoss + Treppe + Zugangsbereich + + + Voller Zugang + 1. Untergeschoss + Präsentationsraum + Präsentationsraum + Arbeitsplatz + + + Voller Zugang + 1. Untergeschoss + Archiv + Ulrich-Conrad-Archiv + Mehrzweck + + + Limitierter Zugang + 1. Untergeschoss + Bücherregal + Geschichte + Regal + + + Limitierter Zugang + 1. Untergeschoss + Bücherregal + Bildende Kunst, Fotografie + Regal + + + Limitierter Zugang + 1. Untergeschoss + Bücherregal + Sprache + Regal + + + Limitierter Zugang + 1. Untergeschoss + Helpdesk + Helpdesk + Information + + + Limitierter Zugang + 1. Untergeschoss + Bücherregal + Lehrbuchsammlung + Regal + + + Limitierter Zugang + 1. Untergeschoss + Bücherregal + Kultur, Erziehung, Bildung, Wissenschaft + Regal + + + Limitierter Zugang + 1. Untergeschoss + Zeitschriftenregal + Zeitschriften + Regal + + + Limitierter Zugang + 1. Untergeschoss + Bücherregal + Gesellschaft, Arbeit, Sozialwissenschaften + Regal + + + Voller Zugang + 1. Untergeschoss + Lernpool + Lernpool + Arbeitsplatz + + + Limitierter Zugang + 1. Untergeschoss + Bücherregal + Philosophie + Regal + + + Limitierter Zugang + 1. Untergeschoss + Bücherregal + Allgemeines + Regal + + + Limitierter Zugang + 1. Untergeschoss + Bücherregal + Medien- und Kommunikationswissenschaften + Regal + + + Limitierter Zugang + 1. Untergeschoss + Bücherregal + Religion + Regal + + + Voller Zugang + 1. Untergeschoss + Lesesaal + Lesesaal + Arbeitsplatz + + + Voller Zugang Erdgeschoss - 103a - 103a + Damen- und Herrentoiletten + WC + + + Voller Zugang + Erdgeschoss + Aufzug + Zugangsbereich + + + Kein Zugang + Erdgeschoss + Treppe + Zugangsbereich + + + Voller Zugang + Erdgeschoss + Galeriearbeitsplätze + Galeriearbeitsplätze + Arbeitsplatz + + + Voller Zugang + Erdgeschoss + Leseecke + Leseecke + Arbeitsplatz + + + Voller Zugang + Erdgeschoss + Arbeitsplätze + Arbeitsplätze + Arbeitsplatz + + + Voller Zugang + Erdgeschoss + Servicepunkt + Servicepunkt + Information + + + Voller Zugang + Erdgeschoss + Ausleihe und Rückgabe + Ausleihe und Rückgabe + Information + + + Voller Zugang + Erdgeschoss + Garderobe + Garderobenschränke + Mehrzweck + + + Voller Zugang + Erdgeschoss + Haupteingang + Zugangsbereich + + + Voller Zugang + Erdgeschoss + Gruppenarbeitsraum + Gruppenarbeitsraum + Arbeitsplatz + + + Voller Zugang + 2. Obergeschoss + Damen- und Herrentoiletten + WC + + + Voller Zugang + 2. Obergeschoss + Aufzug + Zugangsbereich + + + Kein Zugang + 2. Obergeschoss + Treppe + Zugangsbereich + + + Voller Zugang + 2. Obergeschoss + Lesesaal + Lesesaal + Arbeitsplatz + + + Limitierter Zugang + 2. Obergeschoss + Helpdesk + Helpdesk + Information + + + Limitierter Zugang + 2. Obergeschoss + Lehrbuchsammlung + Lehrbuchsammlung + Regal + + + Limitierter Zugang + 2. Obergeschoss + Bücherregal + Wirtschaft, Verkehr + Regal + + + Voller Zugang + 2. Obergeschoss + Galeriearbeitsplätze + Galeriearbeitsplätze + Arbeitsplatz + + + Limitierter Zugang + 2. Obergeschoss + Zeitschriftenregal + Zeitschriften + Regal + + + Limitierter Zugang + 2. Obergeschoss + Bücherregal + Recht, Verwaltung + Regal + + + Limitierter Zugang + 2. Obergeschoss + Zeitschriftenregal + Zeitschriften + Regal + + + Voller Zugang + 2. Obergeschoss + Ruhiger Lesesaal + Ruhiger Lesesaal + Arbeitsplatz + + + Kein Zugang + 2. Obergeschoss + Treppe ins 3. OG + Zugangsbereich + + + Voller Zugang + 3. Obergeschoss + Damen- und Herrentoiletten + WC + + + Voller Zugang + 3. Obergeschoss + Aufzug + Zugangsbereich + + + Kein Zugang + 3. Obergeschoss + Treppe + Zugangsbereich + + + Limitierter Zugang + 3. Obergeschoss + Bücherregal + Bauwesen und Baurecht + Regal + + + Voller Zugang + 3. Obergeschoss + Ruhiger Lesesaal + Ruhiger Lesesaal + Arbeitsplatz + + + Limitierter Zugang + 3. Obergeschoss + Helpdesk + Helpdesk + Information + + + Limitierter Zugang + 3. Obergeschoss + Lehrbuchsammlung + Lehrbuchsammlung + Regal + + + Limitierter Zugang + 3. Obergeschoss + Bücherregal + Architektur, Städtebau und Raumordnung + Regal + + + Voller Zugang + 3. Obergeschoss + Galeriearbeitsplätze + Galeriearbeitsplätze + Arbeitsplatz + + + Kein Zugang + 3. Obergeschoss + Treppe ins 2. OG + Zugangsbereich + + + Limitierter Zugang + 3. Obergeschoss + Zeitschriftenregal + Zeitschriften + Regal + + + Voller Zugang + 3. Obergeschoss + Lesesaal + Lesesaal + Arbeitsplatz + + + Voller Zugang + 4. Obergeschoss + Damen- und Herrentoiletten + WC + + + Voller Zugang + 4. Obergeschoss + Aufzug + Zugangsbereich + + + Kein Zugang + 4. Obergeschoss + Treppe + Zugangsbereich + + + Limitierter Zugang + 4. Obergeschoss + Bücherregal + Spezielle Technik + Regal + + + Voller Zugang + 4. Obergeschoss + Galeriearbeitsplätze + Galeriearbeitsplätze + Arbeitsplatz + + + Limitierter Zugang + 4. Obergeschoss + Helpdesk + Helpdesk + Information + + + Limitierter Zugang + 4. Obergeschoss + Lehrbuchsammlung + Lehrbuchsammlung + Regal + + + Limitierter Zugang + 4. Obergeschoss + Bücherregal + Technik - Allgemeine Grundlagen + Regal + + + Limitierter Zugang + 4. Obergeschoss + Zeitschriftenregal + Zeitschriften + Regal + + + Voller Zugang + 4. Obergeschoss + Einzelplätze Datenbanken + Einzelplätze Datenbanken + Arbeitsplatz + + + Voller Zugang + 4. Obergeschoss + Gruppenarbeitsraum + Gruppenarbeitsraum + Arbeitsplatz + + + Voller Zugang + 5. Obergeschoss + Damen- und Herrentoiletten + WC + + + Voller Zugang + 5. Obergeschoss + Aufzug + Zugangsbereich + + + Kein Zugang + 5. Obergeschoss + Treppe + Zugangsbereich + + + Voller Zugang + 5. Obergeschoss + Ruhiger Lesesaal + Ruhiger Lesesaal + Arbeitsplatz + + + Limitierter Zugang + 5. Obergeschoss + Bücherregal + Biologie und Chemie + Regal + + + Limitierter Zugang + 5. Obergeschoss + Bücherregal + Geowissenschaften + Regal + + + Limitierter Zugang + 5. Obergeschoss + Helpdesk + Helpdesk + Information + + + Limitierter Zugang + 5. Obergeschoss + Lehrbuchsammlung + Lehrbuchsammlung + Regal + + + Limitierter Zugang + 5. Obergeschoss + Bücherregal + Medizin, Anthropologie + Regal + + + Limitierter Zugang + 5. Obergeschoss + Bücherregal + Verfahrenstechnik + Regal + + + Voller Zugang + 5. Obergeschoss + Ruhiger Lesesaal + Ruhiger Lesesaal + Arbeitsplatz + + + Limitierter Zugang + 5. Obergeschoss + Bücherregal + Umweltwissenschaften + Regal + + + Limitierter Zugang + 5. Obergeschoss + Zeitschriftenregal + Zeitschriften + Regal + + + Voller Zugang + 5. Obergeschoss + Fachreferent, Informationsvermittlungsstelle + Fachreferent, Informationsvermittlungsstelle + Information + + + Voller Zugang + 5. Obergeschoss + Galeriearbeitsplätze + Galeriearbeitsplätze + Arbeitsplatz + + + Limitierter Zugang + 5. Obergeschoss + Zeitschriftenregal + Zeitschriften + Regal + + + Voller Zugang + 6. Obergeschoss + Damen- und Herrentoiletten + WC + + + Voller Zugang + 6. Obergeschoss + Aufzug + Aufzug + + + Kein Zugang + 6. Obergeschoss + Treppe + Treppe + + + Voller Zugang + 6. Obergeschoss + Carrels + Carrels + Arbeitsplatz + + + Limitierter Zugang + 6. Obergeschoss + Mediathek + Mediathek + Regal + + + Limitierter Zugang + 6. Obergeschoss + Lehrbuchsammlung + Lehrbuchsammlung + Regal + + + Voller Zugang + 6. Obergeschoss + Medienarbeitsplatz, PC Fernsehaufzeichnungen + Medienarbeitsplatz, PC Fernsehaufzeichnungen + Arbeitsplatz + + + Voller Zugang + 6. Obergeschoss + Publikationsarbeitsplatz, sehbehindertengerechter Arbeitsplatz + Publikationsarbeitsplatz, sehbehindertengerechter Arbeitsplatz + Arbeitsplatz + + + Voller Zugang + 6. Obergeschoss + Carrels + Carrels + Arbeitsplatz + + + Limitierter Zugang + 6. Obergeschoss + Bücherregal + Informatik und Kybernetik + Regal + + + Limitierter Zugang + 6. Obergeschoss + Helpdesk + Helpdesk + Information + + + Limitierter Zugang + 6. Obergeschoss + Bücherregal + Optimierung und Stochastik + Regal + + + Limitierter Zugang + 6. Obergeschoss + Zeitschriftenregal + Zeitschriften + Regal + + + Voller Zugang + 6. Obergeschoss + Lesesaal + Lesesaal + Arbeitsplatz + + + Limitierter Zugang + 6. Obergeschoss + Bücherregal + Mathematik + Regal + + + Voller Zugang + 6. Obergeschoss + Fachreferenten + Fachreferenten + Arbeitsplatz + + + Voller Zugang + Erdgeschoss + MZG R.103a + MZG R.103a Büro + Voller Zugang Erdgeschoss - 103b - 103b + MZG R.103b + MZG R.103b Büro + Voller Zugang Erdgeschoss - 108a - 108a - Labor SDB + MZG R.108a + Labor SDB + Labor + Voller Zugang Erdgeschoss - 125a - 125a - PC - Labor + MZG R.125a + PC - Labor + Labor + Voller Zugang Erdgeschoss - 134a - 134a - CO2 - Labor + MZG R.134a + CO2 - Labor + Labor + Voller Zugang Erdgeschoss - 135a - 135a - Technik/ Lager - - - Erdgeschoss - 137a - 137a - WC - - - Erdgeschoss - 137b - 137b - WC - - - Obergeschoss - 241a - 241a - WC + MZG R.135a + Technik/ Lager + Mehrzweck + Voller Zugang Obergeschoss - 242a - 242a + MZG R.242a + MZG R.242a Büro + Voller Zugang Obergeschoss - 242e - 242e + MZG R.242e + Aufenthaltsraum Mehrzweck diff --git a/CampusAppWP8/CampusAppWP8/File/Places/PlacesFile.cs b/CampusAppWP8/CampusAppWP8/File/Places/PlacesFile.cs index 382547bb..58991d42 100644 --- a/CampusAppWP8/CampusAppWP8/File/Places/PlacesFile.cs +++ b/CampusAppWP8/CampusAppWP8/File/Places/PlacesFile.cs @@ -51,7 +51,7 @@ namespace CampusAppWP8.File.Places /// /// Method load OfflineMap as Fallback /// - private void FallBackLoad() + public void FallBackLoad() { SpsModel fallBackModel = XmlManager.DeserializationFileToModel(Constants.FileMap_OfflineMap); this.Model = fallBackModel; diff --git a/CampusAppWP8/CampusAppWP8/Model/Campusmap/CBMainMapModel.cs b/CampusAppWP8/CampusAppWP8/Model/Campusmap/CBMainMapModel.cs index 220d403f..ebb66894 100644 --- a/CampusAppWP8/CampusAppWP8/Model/Campusmap/CBMainMapModel.cs +++ b/CampusAppWP8/CampusAppWP8/Model/Campusmap/CBMainMapModel.cs @@ -2,7 +2,7 @@ // // Company copyright tag. // -// fiedlchr +// stubbfel // 13.08.2013 //----------------------------------------------------------------------------- namespace CampusAppWP8.Model.Campusmap @@ -11,22 +11,18 @@ namespace CampusAppWP8.Model.Campusmap using CampusAppWP8.File.Places; using CampusAppWP8.Model.GeoDb; using CampusAppWP8.Resources; + using System.Collections.Generic; /// /// Class for the MapModel of the mainCampus of cottbus /// - public class CBMainMapModel : MapModel + public class CBMainMapModel : CampusMapModel { #region Member /// Variable for the identify of the campus. private static readonly string Campus = ((int)CampusAppWP8.Model.Setting.UserProfilModel.Campus.CB_MAIN).ToString(); - /// - /// Variable for the PlaceFile - /// - private PlacesFile file; - #endregion #region Constructor @@ -34,7 +30,7 @@ namespace CampusAppWP8.Model.Campusmap /// /// Initializes a new instance of the class. /// - public CBMainMapModel() + public CBMainMapModel(List placeList) : base (placeList,CBMainMapModel.Campus) { this.ImageSource = Constants.FileMap_CBMainMap; this.ImageWidth = 2000; @@ -50,37 +46,7 @@ namespace CampusAppWP8.Model.Campusmap #endregion - #region Method - - /// Loads the spatial./. - /// Stubbfel, 19.08.2013. - protected override void LoadSpatials() - { - if (this.file == null) - { - this.file = new PlacesFile(); - } - - this.file.OnLoaded += new PlacesFile.OnIO(this.FileIsReady); - this.file.LoadData(); - } - - /// - /// Method is called if the PlaceFile is loaded - /// - private void FileIsReady() - { - SpsModel model = this.file.Model; - - this.Spatial = new SpsModel(); - foreach (PlaceModel place in model.Places) - { - if (place.PlaceId.StartsWith(CBMainMapModel.Campus)) - { - this.Spatial.Places.Add(place); - } - } - } + #region Method #endregion } diff --git a/CampusAppWP8/CampusAppWP8/Model/Campusmap/CampusMapModel.cs b/CampusAppWP8/CampusAppWP8/Model/Campusmap/CampusMapModel.cs new file mode 100644 index 00000000..7b9bfb8f --- /dev/null +++ b/CampusAppWP8/CampusAppWP8/Model/Campusmap/CampusMapModel.cs @@ -0,0 +1,67 @@ +//----------------------------------------------------------------------- +// +// Company copyright tag. +// +// stubbfel +// 26.09.2013 +//---------------------------------------------------------------------- + +namespace CampusAppWP8.Model.Campusmap +{ + using System.Collections.Generic; + using CampusAppWP8.Model.GeoDb; + + /// + /// Class for the CampusMapModel + /// + public class CampusMapModel : MapModel + { + #region constructor + + /// + /// Initializes a new instance of the class. + /// + /// list of places + /// id of the campus + public CampusMapModel(List placeList, string campusId) + { + this.CampusId = campusId; + this.LoadSpatials(placeList); + this.IsReady = true; + } + + #endregion + + #region property + + /// + /// Gets or sets the campusId + /// + public string CampusId { get; protected set; } + + #endregion + + #region method + + /// Loads the spatial./. + /// Stubbfel, 19.08.2013. + /// list of places + protected override void LoadSpatials(List placeList) + { + List campusPlaces = new List(); + this.Spatial = new SpsModel(); + + foreach (PlaceModel place in placeList) + { + if (place.ParentId.Equals(this.CampusId) || place.PlaceId.Equals(this.CampusId)) + { + campusPlaces.Add(place); + } + } + + this.Spatial.AddPlaces(campusPlaces); + } + + #endregion + } +} diff --git a/CampusAppWP8/CampusAppWP8/Model/Campusmap/ClickAblePlacePinModel.cs b/CampusAppWP8/CampusAppWP8/Model/Campusmap/ClickAblePlacePinModel.cs new file mode 100644 index 00000000..8267acd1 --- /dev/null +++ b/CampusAppWP8/CampusAppWP8/Model/Campusmap/ClickAblePlacePinModel.cs @@ -0,0 +1,47 @@ +//----------------------------------------------------------------------- +// +// Company copyright tag. +// +// stubbfel +// 26.09.2013 +//---------------------------------------------------------------------- + +namespace CampusAppWP8.Model.Campusmap +{ + using System.Collections.Generic; + using CampusAppWP8.Model.GeoDb; + + /// + /// abstract class for click abel bins + /// + public abstract class ClickAblePlacePinModel : MapPinModel + { + #region property + + /// + /// Gets or sets Callback Function, to show place information of the Pin + /// + public MapModel.MapInfos CallBack { get; set; } + + /// + /// Gets or sets place which are associative with this pin + /// + public List AssocPlaces { get; set; } + + #endregion + + #region Method + + /// + /// Show Information of this pin places + /// + /// sender of the Event + /// MouseButtonEvent Arguments + public void ShowInfo(object sender, System.Windows.Input.MouseButtonEventArgs e) + { + this.CallBack(this.AssocPlaces); + } + + #endregion + } +} diff --git a/CampusAppWP8/CampusAppWP8/Model/Campusmap/CurrentPositionPinModel.cs b/CampusAppWP8/CampusAppWP8/Model/Campusmap/CurrentPositionPinModel.cs index 0e9b0552..0410b28e 100644 --- a/CampusAppWP8/CampusAppWP8/Model/Campusmap/CurrentPositionPinModel.cs +++ b/CampusAppWP8/CampusAppWP8/Model/Campusmap/CurrentPositionPinModel.cs @@ -26,6 +26,8 @@ namespace CampusAppWP8.Model.Campusmap this.ImageHeight = 60; this.PinImageOffsetX = -25; this.PinImageOffsetY = -34; + this.Tag = MapPinModel.CurrendPositionPlacePinString; + this.ZIndex = 2; } #endregion diff --git a/CampusAppWP8/CampusAppWP8/Model/Campusmap/HiddenPinPlaceModel.cs b/CampusAppWP8/CampusAppWP8/Model/Campusmap/HiddenPinPlaceModel.cs index e684b3d9..e8343a76 100644 --- a/CampusAppWP8/CampusAppWP8/Model/Campusmap/HiddenPinPlaceModel.cs +++ b/CampusAppWP8/CampusAppWP8/Model/Campusmap/HiddenPinPlaceModel.cs @@ -11,5 +11,13 @@ namespace CampusAppWP8.Model.Campusmap /// Stubbfel, 27.08.2013. public class HiddenPinPlaceModel : MapPinModel { + /// + /// Initializes a new instance of the class. + /// + public HiddenPinPlaceModel() + { + this.Tag = MapPinModel.HiddenPlacePinString; + this.ZIndex = 0; + } } } diff --git a/CampusAppWP8/CampusAppWP8/Model/Campusmap/InfoPlacePinModel.cs b/CampusAppWP8/CampusAppWP8/Model/Campusmap/InfoPlacePinModel.cs new file mode 100644 index 00000000..7c4384fc --- /dev/null +++ b/CampusAppWP8/CampusAppWP8/Model/Campusmap/InfoPlacePinModel.cs @@ -0,0 +1,36 @@ +//----------------------------------------------------------------------- +// +// Company copyright tag. +// +// stubbfel +// 27.08.2013 +//---------------------------------------------------------------------- + +namespace CampusAppWP8.Model.Campusmap +{ + using CampusAppWP8.Resources; + + /// Search pin place model. + /// Stubbfel, 27.08.2013. + public class InfoPlacePinModel : ClickAblePlacePinModel + { + #region Constructor + + /// + /// Initializes a new instance of the class. + /// + /// Stubbfel, 27.08.2013. + public InfoPlacePinModel() + { + this.ImageSource = Icons.PlaceInfo; + this.ImageWidth = 60; + this.ImageHeight = 60; + this.PinImageOffsetX = -25; + this.PinImageOffsetY = -27; + this.Tag = MapPinModel.PinTypeToString(PinType.InfoPlace); + this.ZIndex = 1; + } + + #endregion + } +} diff --git a/CampusAppWP8/CampusAppWP8/Model/Campusmap/MapModel.cs b/CampusAppWP8/CampusAppWP8/Model/Campusmap/MapModel.cs index 40c97791..e8143bfc 100644 --- a/CampusAppWP8/CampusAppWP8/Model/Campusmap/MapModel.cs +++ b/CampusAppWP8/CampusAppWP8/Model/Campusmap/MapModel.cs @@ -27,7 +27,18 @@ namespace CampusAppWP8.Model.Campusmap /// public MapModel() { - this.LoadSpatials(); + this.IsReady = false; + } + + /// + /// Initializes a new instance of the class. + /// + /// list of places + public MapModel(List placeList) + { + this.IsReady = false; + this.LoadSpatials(placeList); + this.IsReady = true; } #endregion @@ -48,6 +59,11 @@ namespace CampusAppWP8.Model.Campusmap #endregion #region Property + /// + /// Gets or sets a value indicating whether the map is ready or not + /// + public bool IsReady { get; protected set; } + /// /// Gets or sets the ImageSource of the map /// @@ -195,6 +211,7 @@ namespace CampusAppWP8.Model.Campusmap Canvas.SetTop(pinImg, pin.Position.Y); Canvas.SetLeft(pinImg, pin.Position.X); + Canvas.SetZIndex(pinImg, pin.ZIndex); return pinImg; } @@ -246,8 +263,11 @@ namespace CampusAppWP8.Model.Campusmap /// Loads the spatial./ /// Stubbfel, 19.08.2013. - protected virtual void LoadSpatials() + /// list of places + protected virtual void LoadSpatials(List placeList) { + this.Spatial = new SpsModel(); + this.Spatial.AddPlaces(placeList); } #endregion @@ -275,11 +295,19 @@ namespace CampusAppWP8.Model.Campusmap ((SearchPlacePinModel)pin).AssocPlaces = places; ((SearchPlacePinModel)pin).CallBack = this.ShowMapInfos; break; + case MapPinModel.PinType.InfoPlace: + pin = new InfoPlacePinModel(); + pinImg.MouseLeftButtonDown += new MouseButtonEventHandler(((InfoPlacePinModel)pin).ShowInfo); + + ((InfoPlacePinModel)pin).AssocPlaces = places; + ((InfoPlacePinModel)pin).CallBack = this.ShowMapInfos; + break; default: pin = new HiddenPinPlaceModel(); break; } + pinImg.Tag = pin.Tag; return pin; } diff --git a/CampusAppWP8/CampusAppWP8/Model/Campusmap/MapPinModel.cs b/CampusAppWP8/CampusAppWP8/Model/Campusmap/MapPinModel.cs index 44cc5451..61769824 100644 --- a/CampusAppWP8/CampusAppWP8/Model/Campusmap/MapPinModel.cs +++ b/CampusAppWP8/CampusAppWP8/Model/Campusmap/MapPinModel.cs @@ -9,6 +9,7 @@ namespace CampusAppWP8.Model.Campusmap { using System.Windows; using System.Windows.Input; + using CampusAppWP8.Resources; /// /// This Class manage the properties of a MapPin @@ -17,6 +18,26 @@ namespace CampusAppWP8.Model.Campusmap { #region Member + /// + /// String for info pins + /// + private static string infoPlacePinString = MapPinModel.PinTypeToString(PinType.InfoPlace); + + /// + /// String for hidden pins + /// + private static string hiddenPlacePinString = MapPinModel.PinTypeToString(PinType.Hidden); + + /// + /// String for search pins + /// + private static string searchPlacePinString = MapPinModel.PinTypeToString(PinType.SearchPlace); + + /// + /// String for current position pins + /// + private static string currendPositionPlacePinString = MapPinModel.PinTypeToString(PinType.CurrentPosition); + /// /// Variable of the actual position of the pin /// @@ -46,12 +67,47 @@ namespace CampusAppWP8.Model.Campusmap SearchPlace = 1, /// An enum constant representing the current position option. - CurrentPosition = 2 + CurrentPosition = 2, + + /// An enum constant representing the info place option. + InfoPlace = 3 } #endregion #region Property + /// + /// Gets the string of current position pins + /// + public static string CurrendPositionPlacePinString + { + get { return MapPinModel.currendPositionPlacePinString; } + } + + /// + /// Gets the string of search pins + /// + public static string SearchPlacePinString + { + get { return MapPinModel.searchPlacePinString; } + } + + /// + /// Gets the string of hidden pins + /// + public static string HiddenPlacePinString + { + get { return MapPinModel.hiddenPlacePinString; } + } + + /// + /// Gets the string of info pins + /// + public static string InfoPlacePinString + { + get { return MapPinModel.infoPlacePinString; } + } + /// /// Gets or sets the ImageSource of the pin /// @@ -67,6 +123,11 @@ namespace CampusAppWP8.Model.Campusmap /// public double ImageHeight { get; set; } + /// + /// Gets or sets the ZIndex of the pin + /// + public int ZIndex { get; set; } + /// /// Gets or sets the ImageOffsetX of the pin /// @@ -114,6 +175,46 @@ namespace CampusAppWP8.Model.Campusmap } } } + + /// + /// Gets or sets the tag of the pin + /// + public object Tag { get; set; } + + #endregion + + #region Method + + /// + /// Method convert PinType to a string + /// + /// type of the Pin + /// PinType as string + public static string PinTypeToString(PinType type) + { + string result = null; + + switch (type) + { + case PinType.CurrentPosition: + result = Constants.PinType_CurrentPosition; + break; + case PinType.Hidden: + result = Constants.PinType_Hidden; + break; + case PinType.InfoPlace: + result = Constants.PinType_Info; + break; + case PinType.SearchPlace: + result = Constants.PinType_Search; + break; + default: + result = string.Empty; + break; + } + + return result; + } #endregion } } diff --git a/CampusAppWP8/CampusAppWP8/Model/Campusmap/SearchPlacePinModel.cs b/CampusAppWP8/CampusAppWP8/Model/Campusmap/SearchPlacePinModel.cs index 15b62fc3..63b8f00d 100644 --- a/CampusAppWP8/CampusAppWP8/Model/Campusmap/SearchPlacePinModel.cs +++ b/CampusAppWP8/CampusAppWP8/Model/Campusmap/SearchPlacePinModel.cs @@ -8,13 +8,11 @@ namespace CampusAppWP8.Model.Campusmap { - using System.Collections.Generic; - using CampusAppWP8.Model.GeoDb; using CampusAppWP8.Resources; /// Search pin place model. /// Stubbfel, 27.08.2013. - public class SearchPlacePinModel : MapPinModel + public class SearchPlacePinModel : ClickAblePlacePinModel { #region Constructor @@ -29,34 +27,8 @@ namespace CampusAppWP8.Model.Campusmap this.ImageHeight = 60; this.PinImageOffsetX = -25; this.PinImageOffsetY = -27; - } - - #endregion - - #region property - - /// - /// Gets or sets Callback Function, to show place information of the Pin - /// - public MapModel.MapInfos CallBack { get; set; } - - /// - /// Gets or sets place which are associative with this pin - /// - public List AssocPlaces { get; set; } - - #endregion - - #region Method - - /// - /// Show Information of this pin places - /// - /// sender of the Event - /// MouseButtonEvent Arguments - public void ShowInfo(object sender, System.Windows.Input.MouseButtonEventArgs e) - { - this.CallBack(this.AssocPlaces); + this.Tag = MapPinModel.SearchPlacePinString; + this.ZIndex = 3; } #endregion diff --git a/CampusAppWP8/CampusAppWP8/Model/GeoDb/CampusBuildingLayerModel.cs b/CampusAppWP8/CampusAppWP8/Model/GeoDb/CampusBuildingLayerModel.cs new file mode 100644 index 00000000..32307073 --- /dev/null +++ b/CampusAppWP8/CampusAppWP8/Model/GeoDb/CampusBuildingLayerModel.cs @@ -0,0 +1,57 @@ +//----------------------------------------------------------------------------- +// +// Company copyright tag. +// +// stubbfel +// 23.09.2013 +//----------------------------------------------------------------------------- + +namespace CampusAppWP8.Model.GeoDb +{ + using System.Collections.Generic; + using CampusAppWP8.Resources; + + /// + /// Class is model for buildings of a campus + /// + public class CampusBuildingLayerModel + { + #region Constructor + + /// + /// Initializes a new instance of the class. + /// + /// id of the layer + /// list of place which can be room of the layer + public CampusBuildingLayerModel(string layerId, List places) + { + this.LayerId = layerId; + this.Rooms = new SpsModel(); + + foreach (PlaceModel place in places) + { + string placeLayerId = place.GetInformationsValue(Constants.PisInformationName_Layer); + if (placeLayerId != null && placeLayerId.Equals(layerId)) + { + this.Rooms.Places.Add(place); + } + } + } + + #endregion + + #region property + + /// + /// Gets or sets Rooms + /// + public SpsModel Rooms { get; set; } + + /// + /// Gets or sets LayerId + /// + public string LayerId { get; set; } + + #endregion + } +} diff --git a/CampusAppWP8/CampusAppWP8/Model/GeoDb/CampusBuildingModel.cs b/CampusAppWP8/CampusAppWP8/Model/GeoDb/CampusBuildingModel.cs new file mode 100644 index 00000000..fc31223a --- /dev/null +++ b/CampusAppWP8/CampusAppWP8/Model/GeoDb/CampusBuildingModel.cs @@ -0,0 +1,96 @@ +//----------------------------------------------------------------------------- +// +// Company copyright tag. +// +// stubbfel +// 23.09.2013 +//----------------------------------------------------------------------------- + +namespace CampusAppWP8.Model.GeoDb +{ + using System.Collections.Generic; + using CampusAppWP8.Resources; + + /// + /// Class is model for buildings of a campus + /// + public class CampusBuildingModel + { + #region constructor + + /// + /// Initializes a new instance of the class. + /// + /// id of the building + /// list of place which can be room of the buildings + public CampusBuildingModel(string buildingId, List places) + { + this.Layers = new Dictionary(); + + foreach (PlaceModel place in places) + { + if (place.ParentId.Equals(buildingId)) + { + string placeLayerId = place.GetInformationsValue(Constants.PisInformationName_Layer); + if (placeLayerId == null) + { + continue; + } + + if (this.Layers.ContainsKey(placeLayerId)) + { + this.Layers[placeLayerId].Rooms.Places.Add(place); + } + else + { + this.Layers.Add(placeLayerId, new CampusBuildingLayerModel(placeLayerId, new List() { place })); + } + } + else if (place.PlaceId.Equals(buildingId)) + { + this.Building = place; + } + } + } + + #endregion + + #region Property + + /// + /// Gets the Layer of the building + /// + public Dictionary Layers { get; private set; } + + /// + /// Gets or sets the Building PlaceModel + /// + public PlaceModel Building { get; set; } + + #endregion + + #region method + + /// + /// Method gets a place by their placeID + /// + /// the placeId of the place + /// The place by identifier. + public PlaceModel GetPlaceById(string placeID) + { + PlaceModel result = null; + foreach (CampusBuildingLayerModel layer in this.Layers.Values) + { + result = layer.Rooms.GetPlaceById(placeID); + if (result != null) + { + break; + } + } + + return result; + } + + #endregion + } +} diff --git a/CampusAppWP8/CampusAppWP8/Model/GeoDb/PlaceModel.cs b/CampusAppWP8/CampusAppWP8/Model/GeoDb/PlaceModel.cs index 799b0757..3d2ecfe4 100644 --- a/CampusAppWP8/CampusAppWP8/Model/GeoDb/PlaceModel.cs +++ b/CampusAppWP8/CampusAppWP8/Model/GeoDb/PlaceModel.cs @@ -87,6 +87,11 @@ namespace CampusAppWP8.Model.GeoDb [XmlElement("placeService")] public ObservableCollection Services { get; set; } + /// + /// Gets or sets a string, which is the caption of the place (e.g. for contents of UIElements) + /// + public string Caption { get; set; } + #endregion #region Method diff --git a/CampusAppWP8/CampusAppWP8/Pages/Campusmap/CampusMapPage.xaml b/CampusAppWP8/CampusAppWP8/Pages/Campusmap/CampusMapPage.xaml index d9c8457e..29065130 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Campusmap/CampusMapPage.xaml +++ b/CampusAppWP8/CampusAppWP8/Pages/Campusmap/CampusMapPage.xaml @@ -39,21 +39,10 @@ - - @@ -74,6 +63,7 @@ + diff --git a/CampusAppWP8/CampusAppWP8/Pages/Campusmap/CampusMapPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Campusmap/CampusMapPage.xaml.cs index 74fadd03..55392209 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Campusmap/CampusMapPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Campusmap/CampusMapPage.xaml.cs @@ -11,10 +11,13 @@ namespace CampusAppWP8.Pages.Campusmap using System.Collections.Generic; using System.Device.Location; using System.Globalization; + using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; using System.Threading; using System.Windows; - using System.Windows.Navigation; + using System.Windows.Controls; + using System.Windows.Navigation; + using CampusAppWP8.File.Places; using CampusAppWP8.Model.Campusmap; using CampusAppWP8.Model.GeoDb; using CampusAppWP8.Resources; @@ -35,7 +38,12 @@ namespace CampusAppWP8.Pages.Campusmap private readonly ProximityDevice device = ProximityDevice.GetDefault(); /// Variable for the map model. - private MapModel map; + private CampusMapModel campusMap; + + /// + /// Variable for the PlaceFile + /// + private PlacesFile file; /// /// List of information names @@ -47,6 +55,16 @@ namespace CampusAppWP8.Pages.Campusmap /// private bool qrcodeScan = false; + /// + /// Variable for the last query + /// + private string lastQuery; + + /// + /// Flag which indicates the map show information of all buildings + /// + private bool buildInfoEnable; + #endregion #region Constructor @@ -56,12 +74,10 @@ namespace CampusAppWP8.Pages.Campusmap public CampusMapPage() { this.InitializeComponent(); - this.map = new CBMainMapModel(); - this.MapCanvas.DataContext = this.map; - this.map.ShowMapInfos += new CBMainMapModel.MapInfos(this.ShowMapInfo); ApplicationBarMenuItem menuItem1 = ApplicationBar.MenuItems[0] as ApplicationBarMenuItem; ApplicationBarMenuItem menuItem2 = ApplicationBar.MenuItems[1] as ApplicationBarMenuItem; + ApplicationBarMenuItem menuItem3 = ApplicationBar.MenuItems[2] as ApplicationBarMenuItem; if (menuItem1 != null) { @@ -72,10 +88,37 @@ namespace CampusAppWP8.Pages.Campusmap { menuItem2.Text = AppResources.CampusMapApp_ScanNfc; } + + if (menuItem3 != null) + { + menuItem3.Text = AppResources.CampusMapApp_EnableBuildInfo; + } + + if (this.file == null) + { + this.file = new PlacesFile(); + } + + this.file.OnLoaded += new PlacesFile.OnIO(this.FileIsReady); + this.file.LoadData(); } #endregion + #region Events + + /// + /// Delegate for LoadingPlace events + /// + /// the events args + public delegate void LoadingPlace(string args); + + /// + /// Event for loading places + /// + public event LoadingPlace OnLoadingPlace; + #endregion + #region Method #region protected @@ -86,26 +129,22 @@ namespace CampusAppWP8.Pages.Campusmap protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); - if (this.map.Spatial == null) - { - return; - } if (e.NavigationMode == NavigationMode.New) { - MapCanvas.Children.Clear(); + this.ClearMap(); bool scroll = true; - string alias = "campus"; + if (NavigationContext.QueryString.ContainsKey(Constants.ParamModelMap_SearchTermAlias)) { - alias = NavigationContext.QueryString[Constants.ParamModelMap_SearchTermAlias]; - this.AddPins(this.SearchPlaces(alias), MapPinModel.PinType.SearchPlace); + string alias = NavigationContext.QueryString[Constants.ParamModelMap_SearchTermAlias]; + this.ShowPlacesByQueryAsSearchPin(alias); scroll = false; } else { - this.AddPins(this.SearchPlaces(alias), MapPinModel.PinType.Hidden); + this.ShowPlacesByQueryAsHiddenPin("campus"); } this.ShowCurrentPositionDispatcher(scroll); @@ -119,7 +158,7 @@ namespace CampusAppWP8.Pages.Campusmap string searchPid = Wp8StringManager.FilterPlaceIdinQRResultString(qrcodeResult); if (searchPid != null) { - this.AddPinsByPids(new List() { searchPid }, MapPinModel.PinType.SearchPlace); + this.ShowAllPlacesByPlaceIdAsSearchPin(searchPid); } } } @@ -128,18 +167,242 @@ namespace CampusAppWP8.Pages.Campusmap #region private + /// + /// Method set the lastQuery and register to OnLoadingPlace-Event + /// + /// the query string + /// the event callback + private void SetLastQuery(string query, Action action) + { + this.lastQuery = query; + this.OnLoadingPlace = new CampusMapPage.LoadingPlace(action); + } + + /// + /// Method shows certain places as hidden Pin + /// + /// the query string + private void ShowPlacesByQueryAsHiddenPin(string query) + { + if (!this.IsMapReady()) + { + this.SetLastQuery(query, this.ShowPlacesByQueryAsHiddenPin); + } + else + { + this.ShowPlacesByQuery(query, MapPinModel.PinType.Hidden, false); + } + } + + /// + /// Method shows certain places as search Pin + /// + /// the query string + private void ShowPlacesByQueryAsSearchPin(string query) + { + if (!this.IsMapReady()) + { + this.SetLastQuery(query, this.ShowPlacesByQueryAsSearchPin); + } + else + { + bool allPlaces = false; + if (Wp8StringManager.IsDigitsOnly(query)) + { + allPlaces = true; + } + + this.ShowPlacesByQuery(query, MapPinModel.PinType.SearchPlace, allPlaces); + } + } + + /// + /// Method show all places, which match with the query as a pin + /// + /// the query string + /// the type of the pin + /// if its true then send query to the place file otherwise to the CampusMapModel + private void ShowPlacesByQuery(string query, MapPinModel.PinType pintype, bool allPlaces) + { + this.AddPins(this.SearchPlaces(query, allPlaces), pintype); + } + + /// + /// Method show all places by placeId + /// + /// the placeId + /// the type of the pin + /// if its true then send query to the place file otherwise to the CampusMapModel + private void ShowPlacesByPlaceId(string placeId, MapPinModel.PinType pintype, bool allPlaces) + { + this.AddPinsByPids(new List() { placeId }, pintype, false, allPlaces); + } + + /// + /// Method shows places by placeId from place file as search Pin + /// + /// the placeId + private void ShowAllPlacesByPlaceIdAsSearchPin(string placeId) + { + if (!this.IsMapReady()) + { + this.SetLastQuery(placeId, this.ShowAllPlacesByPlaceIdAsSearchPin); + } + else + { + this.ShowPlacesByPlaceId(placeId, MapPinModel.PinType.SearchPlace, true); + } + } + + /// + /// Method shows places by placeId from CampusMapModel as search Pin + /// + /// the placeId + private void ShowPlacesByPlaceIdAsSearchPin(string placeId) + { + if (!this.IsMapReady()) + { + this.SetLastQuery(placeId, this.ShowPlacesByPlaceIdAsSearchPin); + } + else + { + this.ShowPlacesByPlaceId(placeId, MapPinModel.PinType.SearchPlace, false); + } + } + + /// + /// Method show all buildings of a campus + /// + /// the id of the campus + private void ShowAllCampusBuilding(string campusId) + { + if (!this.IsMapReady()) + { + this.SetLastQuery(campusId, this.ShowAllCampusBuilding); + } + else + { + this.AddPins(this.campusMap.Spatial.Places.ToList(), MapPinModel.PinType.InfoPlace, false); + } + } + + /// + /// Method check if the map loading is finish + /// + /// true, if the map is ready to use, otherwise false + private bool IsMapReady() + { + if (this.campusMap == null || !this.campusMap.IsReady) + { + return false; + } + + return true; + } + + /// + /// Method will be execute if the place file is ready + /// + private void FileIsReady() + { + this.campusMap = new CBMainMapModel(this.file.Model.Places.ToList()); + this.MapCanvas.DataContext = this.campusMap; + this.campusMap.ShowMapInfos += new CBMainMapModel.MapInfos(this.ShowMapInfo); + if (this.OnLoadingPlace != null) + { + this.OnLoadingPlace(this.lastQuery); + } + } + + /// TextSearch click method. + /// Stubbfel, 19.08.2013. + /// caller object. + /// some EventArgs. + private void SearchByText(object sender, RoutedEventArgs e) + { + string query = QString.Text.Trim(); + + if (query.Equals(string.Empty)) + { + return; + } + + this.ClearMap(new List() { MapPinModel.SearchPlacePinString }); + this.ShowPlacesByQueryAsSearchPin(query); + } + + /// + /// Method insert or remove the buildings pins + /// + /// caller object. + /// some EventArgs. + private void ShowBuildingsInformation(object sender, EventArgs e) + { + string menuText; + if (!this.buildInfoEnable) + { + this.ShowAllCampusBuilding(string.Empty); + this.buildInfoEnable = true; + menuText = AppResources.CampusMapApp_DisableBuildInfo; + } + else + { + this.ClearMap(new List() { MapPinModel.InfoPlacePinString }); + this.buildInfoEnable = false; + menuText = AppResources.CampusMapApp_EnableBuildInfo; + } + + ApplicationBarMenuItem item = ApplicationBar.MenuItems[2] as ApplicationBarMenuItem; + item.Text = menuText; + } + + /// + /// Method clear the Map + /// + /// (optional) tags of the UIElement + private void ClearMap(List removeTags = null) + { + if (removeTags == null) + { + MapCanvas.Children.Clear(); + } + else + { + List childs = MapCanvas.Children.ToList(); + foreach (UIElement child in childs) + { + Image childImg = child as Image; + if (childImg == null || childImg.Tag == null) + { + continue; + } + + string imgTag = childImg.Tag.ToString().Trim(); + if (removeTags.Contains(imgTag)) + { + MapCanvas.Children.Remove(child); + } + } + } + } + /// /// Method adds pin to the map by given list of placeId /// /// list of placeId /// type of pin /// (optional) if its true, clear canvas before adding - private void AddPinsByPids(List pidList, MapPinModel.PinType pinType, bool clearCanvas = true) + /// (optional) if its true, load place from place file, otherwise from CampusMapModel + private void AddPinsByPids(List pidList, MapPinModel.PinType pinType, bool clearCanvas = true, bool allPlaces = false) { // clear canvas if (clearCanvas) { - MapCanvas.Children.Clear(); + this.ClearMap(); + } + else + { + this.ClearMap(new List() { MapPinModel.PinTypeToString(pinType) }); } // null and empty list assert @@ -150,16 +413,25 @@ namespace CampusAppWP8.Pages.Campusmap List placeList = new List(); PlaceModel tmpPlace; + SpsModel spatial; + if (allPlaces) + { + spatial = this.file.Model; + } + else + { + spatial = this.campusMap.Spatial; + } foreach (string pid in pidList) { - tmpPlace = this.map.Spatial.GetPlaceById(pid); + tmpPlace = spatial.GetPlaceById(pid); if (tmpPlace != null) { placeList.Add(tmpPlace); } } - + // add pins to map if (placeList.Count > 0) { @@ -167,15 +439,6 @@ namespace CampusAppWP8.Pages.Campusmap } } - /// Button click method. - /// Stubbfel, 19.08.2013. - /// caller object. - /// some EventArgs. - private void Button_Click(object sender, RoutedEventArgs e) - { - // this.AddPin(double.Parse(XPoint.Text), double.Parse(YPoint.Text)); - } - /// /// Method start a NFCScan /// @@ -185,7 +448,7 @@ namespace CampusAppWP8.Pages.Campusmap { MessageBoxes.ShowMainModelInfoMessageBox(AppResources.ScarNfc_Search); this.ProgressBar.Visibility = Visibility.Visible; - this.device.SubscribeForMessage(Constants.NCFMessageType_NDEF, this.NDEFHandler); + long id = this.device.SubscribeForMessage(Constants.NCFMessageType_NDEF, this.NDEFHandler); } /// @@ -223,11 +486,11 @@ namespace CampusAppWP8.Pages.Campusmap // add pins to map if (this.Dispatcher != null) { - this.Dispatcher.BeginInvoke(new Action(() => this.AddPinsByPids(new List() { searchPid }, MapPinModel.PinType.SearchPlace))); + this.Dispatcher.BeginInvoke(new Action(() => this.ShowAllPlacesByPlaceIdAsSearchPin(searchPid))); } else { - this.AddPinsByPids(new List() { searchPid }, MapPinModel.PinType.SearchPlace); + this.ShowAllPlacesByPlaceIdAsSearchPin(searchPid); } } else @@ -236,8 +499,8 @@ namespace CampusAppWP8.Pages.Campusmap if (this.Dispatcher != null) { this.Dispatcher.BeginInvoke(new Action(() => MessageBoxes.ShowMainModelErrorMessageBox(AppResources.ScarNfc_Fail))); - } - else + } + else { MessageBoxes.ShowMainModelErrorMessageBox(AppResources.ScarNfc_Fail); } @@ -246,36 +509,36 @@ namespace CampusAppWP8.Pages.Campusmap if (this.Dispatcher != null) { this.Dispatcher.BeginInvoke(new Action(() => this.ProgressBar.Visibility = Visibility.Collapsed)); - } - else + } + else { this.ProgressBar.Visibility = Visibility.Collapsed; } } - /// Button click method. - /// Stubbfel, 19.08.2013. - /// caller object. - /// some EventArgs. - private void Button_Click2(object sender, RoutedEventArgs e) - { - string query = QString.Text.Trim(); - - if (query.Equals(string.Empty)) - { - return; - } - - MapCanvas.Children.Clear(); - this.AddPins(this.SearchPlaces(query), MapPinModel.PinType.SearchPlace); - } - /// Searches for the first places. /// Stubbfel, 19.08.2013. /// The query. + /// (optional) if its true, search places in place file, otherwise in CampusMapModel /// The found places. - private List SearchPlaces(string query) + private List SearchPlaces(string query, bool allPlaces = false) { + SpsModel spatial; + if (allPlaces) + { + spatial = this.file.Model; + } + else + { + spatial = this.campusMap.Spatial; + } + + // if query is an id + if (Wp8StringManager.IsDigitsOnly(query)) + { + return new List() { spatial.GetPlaceById(query) }; + } + if (this.informationsNames == null) { this.informationsNames = new List(); @@ -284,7 +547,7 @@ namespace CampusAppWP8.Pages.Campusmap this.informationsNames.Add(Constants.PisInformationName_ShortName); } - return this.map.Spatial.GetPlacesByInformation(query, true, this.informationsNames); + return spatial.GetPlacesByInformation(query, true, this.informationsNames); } /// Adds the pins. @@ -296,6 +559,11 @@ namespace CampusAppWP8.Pages.Campusmap { foreach (PlaceModel place in places) { + if (place == null) + { + continue; + } + GeoCoordinate coor = place.GeoRefPoint; if (coor != null) { @@ -315,8 +583,8 @@ namespace CampusAppWP8.Pages.Campusmap /// (Optional) List of places, whose are associative with the pin private void AddPin(double x, double y, MapPinModel.PinType type, bool scroll = true, List assocPlaces = null) { - Point scrollPoint = this.map.GetScrollPoint(this.map.ConverToPixelPoint(this.map.ConverToMapPoint(x, y))); - MapCanvas.Children.Add(this.map.AddPinFromRefPoint(this.map.ConverToPixelPoint(this.map.ConverToMapPoint(x, y)), type, assocPlaces)); + Point scrollPoint = this.campusMap.GetScrollPoint(this.campusMap.ConverToPixelPoint(this.campusMap.ConverToMapPoint(x, y))); + MapCanvas.Children.Add(this.campusMap.AddPinFromRefPoint(this.campusMap.ConverToPixelPoint(this.campusMap.ConverToMapPoint(x, y)), type, assocPlaces)); MapScroller.UpdateLayout(); if (scroll) @@ -324,9 +592,6 @@ namespace CampusAppWP8.Pages.Campusmap MapScroller.ScrollToVerticalOffset(scrollPoint.Y); MapScroller.ScrollToHorizontalOffset(scrollPoint.X); } - - // XPoint.Text = x.ToString(); - // YPoint.Text = y.ToString(); } /// On clicking the update button in the ApplicationBar. @@ -397,6 +662,7 @@ namespace CampusAppWP8.Pages.Campusmap } else { + this.ClearMap(new List() { MapPinModel.CurrendPositionPlacePinString }); this.SetPinToPosition(lat, log, MapPinModel.PinType.CurrentPosition, scroll); } } @@ -432,12 +698,67 @@ namespace CampusAppWP8.Pages.Campusmap msgText += AppResources.PlaceLabel_Name + ": "; msgText += place.GetInformationsValue(Constants.PisInformationName_Name); msgText = Wp8StringManager.AddNewLine(msgText); - msgText += AppResources.PlaceLabel_ShortDesc + ": "; - msgText += place.GetInformationsValue(Constants.PisInformationName_ShortDesc); - msgText = Wp8StringManager.AddNewLine(msgText); + + string type = place.GetInformationsValue(Constants.PisInformationName_Typ); + if (type != null) + { + msgText += AppResources.PlaceLabel_Type + ": "; + msgText += type; + msgText = Wp8StringManager.AddNewLine(msgText); + } + + string shortDesc = place.GetInformationsValue(Constants.PisInformationName_ShortDesc); + if (shortDesc != null) + { + msgText += AppResources.PlaceLabel_ShortDesc + ": "; + msgText += shortDesc; + msgText = Wp8StringManager.AddNewLine(msgText); + } + + string access = place.GetInformationsValue(Constants.PisInformationName_Accesbility); + if (access != null) + { + msgText += AppResources.PlaceLabel_Accessbility + ": "; + msgText += access; + msgText = Wp8StringManager.AddNewLine(msgText); + } } MessageBoxes.ShowMainModelInfoMessageBox(msgText); + + foreach (PlaceModel place in places) + { + if (place.ParentId.Equals(this.campusMap.CampusId) && this.HasRooms(place.PlaceId)) + { + MessageBoxResult msgResult = MessageBoxes.ShowPlaceInfoOkCancelMessageBox(AppResources.MsgBox_ShowRoomList); + if (msgResult.Equals(MessageBoxResult.OK)) + { + string urlString = Constants.PathCampusmap_RoomListPage; + urlString += "?" + Constants.ParamBuildingId + "=" + place.PlaceId; + Uri url = new Uri(urlString as string, UriKind.Relative); + this.NavigationService.Navigate(url); + return; + } + } + } + } + + /// + /// Method check if a certain place has some rooms + /// + /// the place id + /// true, if the place has got rooms, otherwise false + private bool HasRooms(string placeId) + { + foreach (PlaceModel place in this.file.Model.Places) + { + if (place.ParentId.Equals(placeId)) + { + return true; + } + } + + return false; } #endregion diff --git a/CampusAppWP8/CampusAppWP8/Pages/Campusmap/RoomListPage.xaml b/CampusAppWP8/CampusAppWP8/Pages/Campusmap/RoomListPage.xaml new file mode 100644 index 00000000..be326965 --- /dev/null +++ b/CampusAppWP8/CampusAppWP8/Pages/Campusmap/RoomListPage.xaml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CampusAppWP8/CampusAppWP8/Pages/Campusmap/RoomListPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Campusmap/RoomListPage.xaml.cs new file mode 100644 index 00000000..dc0cac40 --- /dev/null +++ b/CampusAppWP8/CampusAppWP8/Pages/Campusmap/RoomListPage.xaml.cs @@ -0,0 +1,162 @@ +//----------------------------------------------------------------------------- +// +// Company copyright tag. +// +// stubbfel +// 23.09.2013 +//----------------------------------------------------------------------------- + +namespace CampusAppWP8.Pages.Campusmap +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Windows.Navigation; + using CampusAppWP8.File.Places; + using CampusAppWP8.Model.GeoDb; + using CampusAppWP8.Resources; + using Microsoft.Phone.Controls; + using CampusAppWP8.Utility.Lui.MessageBoxes; + + /// + /// Class of the RoomListPage + /// + public partial class RoomListPage : PhoneApplicationPage + { + #region Members + /// + /// Variable of placeFile + /// + private PlacesFile placeFile; + + /// + /// Variable of building which is shown in the list + /// + private CampusBuildingModel building; + + #endregion + + #region Constructor + + /// Initializes a new instance of the class. + /// Stubbfel, 19.08.2013. + public RoomListPage() + { + this.InitializeComponent(); + } + + #endregion + + #region Method + + #region protected + + /// Methods overrides the OnNavigatedTo-Method. + /// Stubbfel, 19.08.2013. + /// some NavigationEventArgs. + protected override void OnNavigatedTo(NavigationEventArgs e) + { + base.OnNavigatedTo(e); + + if (this.placeFile == null) + { + this.placeFile = new PlacesFile(); + this.placeFile.OnLoaded += new PlacesFile.OnIO(this.PlacesFileIsReady); + this.placeFile.OnFailedLoad += new PlacesFile.OnFailed(this.PlacesFileIsFail); + this.placeFile.LoadData(); + } + } + + #endregion + + #region private + /// + /// Callback of the PlaceFile, if load failed + /// + private void PlacesFileIsFail() + { + MessageBoxes.ShowMainModelErrorMessageBox(AppResources.MsgBox_ErrorMainModelLoad); + } + + /// + /// Callback of the PlaceFile, if load was successful + /// + private void PlacesFileIsReady() + { + if (this.placeFile.Model != null) + { + this.SetupPivot(); + } + } + + /// + /// Method setup the PivotElement + /// + private void SetupPivot() + { + if (NavigationContext.QueryString.ContainsKey(Constants.ParamBuildingId)) + { + this.building = new CampusBuildingModel(NavigationContext.QueryString[Constants.ParamBuildingId], this.placeFile.Model.Places.ToList()); + + if (this.building != null && this.building.Layers != null && this.building.Layers.Count > 0) + { + this.SetCaptionsToRooms(); + this.RoomPivot.ItemsSource = this.GetSortedLayers(this.building); + } + else + { + MessageBoxes.ShowMainModelErrorMessageBox(AppResources.MsgBox_ErrorMainModelLoad); + } + } + else + { + MessageBoxes.ShowMainModelErrorMessageBox(AppResources.MsgBox_ErrorMainModelLoad); + } + + } + + /// + /// Method sorts the Layers + /// + /// building of the layers + /// sorted Dictionary + private Dictionary GetSortedLayers(CampusBuildingModel build) + { + Dictionary result = new Dictionary(); + foreach (CampusBuildingLayerModel layer in build.Layers.Values) + { + var sortRom = from place in layer.Rooms.Places + orderby place.GetInformationsValue(Constants.PisInformationName_Typ), place.GetInformationsValue(Constants.PisInformationName_Name) + select place; + result.Add(layer.LayerId, new CampusBuildingLayerModel(layer.LayerId, sortRom.ToList())); + } + + return result; + } + + /// + /// Method set all rooms a formatted string , which will be show as buttonContent + /// + private void SetCaptionsToRooms() + { + string name; + string type; + foreach (CampusBuildingLayerModel layer in this.building.Layers.Values) + { + foreach (PlaceModel place in layer.Rooms.Places) + { + name = place.GetInformationsValue(Constants.PisInformationName_Name); + type = place.GetInformationsValue(Constants.PisInformationName_Typ); + if (name != null && type != null) + { + place.Caption = name + " (" + type + ")"; + } + } + } + } + + #endregion + + #endregion + } +} \ No newline at end of file diff --git a/CampusAppWP8/CampusAppWP8/Pages/Dev/NFC.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Dev/NFC.xaml.cs index ec98d2bc..3a883526 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Dev/NFC.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Dev/NFC.xaml.cs @@ -10,6 +10,7 @@ namespace CampusAppWP8.Pages.Dev { using System; using System.Collections.Generic; + using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; using System.Windows; using System.Windows.Navigation; @@ -18,6 +19,7 @@ namespace CampusAppWP8.Pages.Dev using CampusAppWP8.Utility.NDEF; using Microsoft.Phone.Controls; using Windows.Networking.Proximity; + using CampusAppWP8.File.Places; /// Nfc page. /// Stubbfel, 22.08.2013. @@ -34,6 +36,8 @@ namespace CampusAppWP8.Pages.Dev /// List of ndefs. private List ndefList; + private PlacesFile file; + #endregion #region Constructor @@ -43,14 +47,30 @@ namespace CampusAppWP8.Pages.Dev public NFC() { this.InitializeComponent(); + + if (this.file == null) + { + this.file = new PlacesFile(); + } + + this.file.OnLoaded += new PlacesFile.OnIO(this.FileIsReady); + this.file.LoadData(); + + + + this.actNDEFIndex = 0; + } + + private void FileIsReady() + { this.ndefList = new List(); - MapModel map = new CBMainMapModel(); + MapModel map = new CBMainMapModel(this.file.Model.Places.ToList()); foreach (PlaceModel place in map.Spatial.Places) { this.ndefList.Add(new NDEFMessage(place.ToNfcString(), NDEFMessage.TYPEVAL.TEXT)); } - this.actNDEFIndex = 0; + this.Writecontent.Text = this.ndefList[this.actNDEFIndex].GetContent(); } #endregion @@ -65,7 +85,6 @@ namespace CampusAppWP8.Pages.Dev protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); - this.Writecontent.Text = this.ndefList[this.actNDEFIndex].GetContent(); } #endregion diff --git a/CampusAppWP8/CampusAppWP8/Pages/Dev/QRScanner.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Dev/QRScanner.xaml.cs index 76f8bd73..023cde77 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Dev/QRScanner.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Dev/QRScanner.xaml.cs @@ -19,6 +19,7 @@ namespace CampusAppWP8.Pages.Dev using System.Windows; using System.Windows.Media.Imaging; using CampusAppWP8.Resources; + using CampusAppWP8.Utility; using Microsoft.Devices; using Microsoft.Phone.Controls; using ZXing; @@ -35,20 +36,23 @@ namespace CampusAppWP8.Pages.Dev /// Thread for transfer the preview image to the reader. private Thread captureThread = null; - + /// For ending the thread. private volatile bool captureThreadExit = false; - + /// QR reader object. private IBarcodeReader barcodeReader = null; - + /// Bitmap for transfer the camera image to the reader. private WriteableBitmap bit = null; /// true if this object is in autofocus. private bool isInAutofocus = false; - private string ResultAppStoreKey; + /// + /// Variable for the storage key of the result + /// + private string resultAppStoreKey; #endregion @@ -77,15 +81,15 @@ namespace CampusAppWP8.Pages.Dev { if (NavigationContext.QueryString.ContainsKey(Constants.ParamQRResultKey)) { - this.ResultAppStoreKey = NavigationContext.QueryString[Constants.ParamQRResultKey]; + this.resultAppStoreKey = NavigationContext.QueryString[Constants.ParamQRResultKey]; } + this.cam = new PhotoCamera(CameraType.Primary); this.cam.Initialized += new EventHandler(this.Cam_Initialized); this.cam.AutoFocusCompleted += new EventHandler(this.Cam_AutoFocusCompl); this.bit = new WriteableBitmap((int)this.cam.PreviewResolution.Width, (int)this.cam.PreviewResolution.Height); - + this.camViewBrush.SetSource(this.cam); - this.isInAutofocus = false; } else { @@ -95,7 +99,7 @@ namespace CampusAppWP8.Pages.Dev }); } } - + /// /// Is called when this page will not be the current page of a frame. /// @@ -106,7 +110,7 @@ namespace CampusAppWP8.Pages.Dev { this.captureThreadExit = true; this.captureThread.Join(); - + this.cam.Dispose(); this.bit = null; @@ -123,23 +127,23 @@ namespace CampusAppWP8.Pages.Dev switch (e.Orientation) { - case PageOrientation.Landscape: - this.camViewBrushTransform.Rotation = 0; + case PageOrientation.Landscape: + this.camViewBrushTransform.Rotation = 0; break; - case PageOrientation.LandscapeLeft: - this.camViewBrushTransform.Rotation = 0; + case PageOrientation.LandscapeLeft: + this.camViewBrushTransform.Rotation = 0; break; - case PageOrientation.LandscapeRight: - this.camViewBrushTransform.Rotation = 180; + case PageOrientation.LandscapeRight: + this.camViewBrushTransform.Rotation = 180; break; - case PageOrientation.Portrait: - this.camViewBrushTransform.Rotation = 90; + case PageOrientation.Portrait: + this.camViewBrushTransform.Rotation = 90; break; - case PageOrientation.PortraitUp: - this.camViewBrushTransform.Rotation = 90; + case PageOrientation.PortraitUp: + this.camViewBrushTransform.Rotation = 90; break; - case PageOrientation.PortraitDown: - this.camViewBrushTransform.Rotation = 270; + case PageOrientation.PortraitDown: + this.camViewBrushTransform.Rotation = 270; break; } } @@ -187,11 +191,11 @@ namespace CampusAppWP8.Pages.Dev if (this.cam.IsFocusAtPointSupported == true) { Point pos = e.GetPosition(this.camView); - + this.cam.FocusAtPoint( - pos.Y / this.camView.ActualHeight, + pos.Y / this.camView.ActualHeight, 1.0 - (pos.X / this.camView.ActualWidth)); - + this.isInAutofocus = true; } else if (this.cam.IsFocusSupported == true) @@ -212,15 +216,26 @@ namespace CampusAppWP8.Pages.Dev Array.Copy(img, this.bit.Pixels, img.Length); var result = this.barcodeReader.Decode(this.bit); - + if (result != null) { Dispatcher.BeginInvoke(delegate { - if (this.ResultAppStoreKey != null) + if (this.resultAppStoreKey != null) { - App.SaveToIsolatedStorage(this.ResultAppStoreKey, result.Text); - NavigationService.GoBack(); + if (NavigationService.CanGoBack) + { + App.SaveToIsolatedStorage(this.resultAppStoreKey, result.Text); + NavigationService.GoBack(); + } + else + { + string pid = Wp8StringManager.FilterPlaceIdinQRResultString(result.Text); + string urlString = Constants.PathCampusmap_Campusmap; + urlString += "?" + Constants.ParamModelMap_SearchTermAlias + "=" + pid; + Uri url = new Uri(urlString as string, UriKind.Relative); + NavigationService.Navigate(url); + } } else { @@ -246,7 +261,7 @@ namespace CampusAppWP8.Pages.Dev this.OnCaptureImage(buffer, (int)resolution.Width, (int)resolution.Height); } - + System.Threading.Thread.Sleep(1000); } } diff --git a/CampusAppWP8/CampusAppWP8/Pages/PlaceNews/PlaceNews.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/PlaceNews/PlaceNews.xaml.cs index 6ad59c34..e4a529f5 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/PlaceNews/PlaceNews.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/PlaceNews/PlaceNews.xaml.cs @@ -418,7 +418,6 @@ namespace CampusAppWP8.Pages.PlaceNews txt.Text = place.GetInformationsValue(Constants.PisInformationName_Name); } - /// Handler, called when the ndef. /// Stubbfel, 22.08.2013. /// The sender. diff --git a/CampusAppWP8/CampusAppWP8/Properties/WMAppManifest.xml b/CampusAppWP8/CampusAppWP8/Properties/WMAppManifest.xml index 4d8b94b2..fc444e49 100644 --- a/CampusAppWP8/CampusAppWP8/Properties/WMAppManifest.xml +++ b/CampusAppWP8/CampusAppWP8/Properties/WMAppManifest.xml @@ -1,8 +1,8 @@  - - Assets\Tiles\kachel_small.png + + Assets\ApplicationIcon.png @@ -22,27 +22,30 @@ - + Assets\Tiles\kachel_small.png 0 - Assets\Tiles\kachel_medium.png - CampusAppWP8 - - - - - - - Assets\Tiles\kachel_large.png - - - - - + Assets\Tiles\kachel_medium.png + BTU-CampusApp + + + + True - + + + + + + + + + + + + diff --git a/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs b/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs index f3c27a3a..0d621fb5 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs +++ b/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs @@ -141,6 +141,24 @@ namespace CampusAppWP8.Resources { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die Gebäudeinfos ausblenden ähnelt. + /// + public static string CampusMapApp_DisableBuildInfo { + get { + return ResourceManager.GetString("CampusMapApp_DisableBuildInfo", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die Gebäudeinfos einblenden ähnelt. + /// + public static string CampusMapApp_EnableBuildInfo { + get { + return ResourceManager.GetString("CampusMapApp_EnableBuildInfo", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die Info via NFC ähnelt. /// @@ -627,6 +645,15 @@ namespace CampusAppWP8.Resources { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die Für dieses Gebäude gibt es eine Raumübersicht. Soll diese angezeigt werden? ähnelt. + /// + public static string MsgBox_ShowRoomList { + get { + return ResourceManager.GetString("MsgBox_ShowRoomList", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die News ähnelt. /// @@ -735,6 +762,15 @@ namespace CampusAppWP8.Resources { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die Barrierefreiheit ähnelt. + /// + public static string PlaceLabel_Accessbility { + get { + return ResourceManager.GetString("PlaceLabel_Accessbility", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die Name ähnelt. /// @@ -753,6 +789,15 @@ namespace CampusAppWP8.Resources { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die Type ähnelt. + /// + public static string PlaceLabel_Type { + get { + return ResourceManager.GetString("PlaceLabel_Type", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die Placenews ähnelt. /// diff --git a/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx b/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx index 8eea55e9..9528d551 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx +++ b/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx @@ -452,4 +452,19 @@ Bitte halten Sie das Handy vor dem NFC-Tag + + Barrierefreiheit + + + Gebäudeinfos ausblenden + + + Gebäudeinfos einblenden + + + Für dieses Gebäude gibt es eine Raumübersicht. Soll diese angezeigt werden? + + + Type + \ No newline at end of file diff --git a/CampusAppWP8/CampusAppWP8/Resources/Constants.resx b/CampusAppWP8/CampusAppWP8/Resources/Constants.resx index 09dd5d5f..da484cb4 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/Constants.resx +++ b/CampusAppWP8/CampusAppWP8/Resources/Constants.resx @@ -525,4 +525,31 @@ NDEF + + BuildingId + + + /Pages/Campusmap/RoomListPage.xaml + + + Ebene + + + Barrierefreiheit + + + /Pages/StartPage.xaml + + + CurrentPositionPin + + + HiddenPin + + + InfoPin + + + SearchPin + \ No newline at end of file diff --git a/CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs b/CampusAppWP8/CampusAppWP8/Resources/Constants1.Designer.cs similarity index 94% rename from CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs rename to CampusAppWP8/CampusAppWP8/Resources/Constants1.Designer.cs index 4595325a..2ed1f9a6 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs +++ b/CampusAppWP8/CampusAppWP8/Resources/Constants1.Designer.cs @@ -573,6 +573,15 @@ namespace CampusAppWP8.Resources { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die BuildingId ähnelt. + /// + public static string ParamBuildingId { + get { + return ResourceManager.GetString("ParamBuildingId", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die Studiengang ähnelt. /// @@ -690,6 +699,15 @@ namespace CampusAppWP8.Resources { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die /Pages/StartPage.xaml ähnelt. + /// + public static string PathApp_StartPage { + get { + return ResourceManager.GetString("PathApp_StartPage", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die /Pages/Campusmap/CampusMapPage.xaml ähnelt. /// @@ -699,6 +717,15 @@ namespace CampusAppWP8.Resources { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die /Pages/Campusmap/RoomListPage.xaml ähnelt. + /// + public static string PathCampusmap_RoomListPage { + get { + return ResourceManager.GetString("PathCampusmap_RoomListPage", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die /Pages/Departments/DepartmentFavoritePage.xaml ähnelt. /// @@ -924,6 +951,42 @@ namespace CampusAppWP8.Resources { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die CurrentPositionPin ähnelt. + /// + public static string PinType_CurrentPosition { + get { + return ResourceManager.GetString("PinType_CurrentPosition", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die HiddenPin ähnelt. + /// + public static string PinType_Hidden { + get { + return ResourceManager.GetString("PinType_Hidden", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die InfoPin ähnelt. + /// + public static string PinType_Info { + get { + return ResourceManager.GetString("PinType_Info", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die SearchPin ähnelt. + /// + public static string PinType_Search { + get { + return ResourceManager.GetString("PinType_Search", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die iname ähnelt. /// @@ -942,6 +1005,24 @@ namespace CampusAppWP8.Resources { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die Barrierefreiheit ähnelt. + /// + public static string PisInformationName_Accesbility { + get { + return ResourceManager.GetString("PisInformationName_Accesbility", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die Ebene ähnelt. + /// + public static string PisInformationName_Layer { + get { + return ResourceManager.GetString("PisInformationName_Layer", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die Name ähnelt. /// diff --git a/CampusAppWP8/CampusAppWP8/Resources/Icons.cs b/CampusAppWP8/CampusAppWP8/Resources/Icons.cs index eb719a52..eea1a597 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/Icons.cs +++ b/CampusAppWP8/CampusAppWP8/Resources/Icons.cs @@ -308,6 +308,17 @@ namespace CampusAppWP8.Resources } } + /// + /// Gets the uri string of the PlaceInfo icon. + /// + public static string PlaceInfo + { + get + { + return Themerize("placeinfo_159.png"); + } + } + /// /// Gets the uri string of the Practise icon. /// diff --git a/CampusAppWP8/CampusAppWP8/Resources/Icons.resx b/CampusAppWP8/CampusAppWP8/Resources/Icons.resx index 35f73cf8..360bc657 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/Icons.resx +++ b/CampusAppWP8/CampusAppWP8/Resources/Icons.resx @@ -195,6 +195,9 @@ info_159.png + + placeinfo_159.png + practise_159.png diff --git a/CampusAppWP8/CampusAppWP8/Utility/AppUriMapper.cs b/CampusAppWP8/CampusAppWP8/Utility/AppUriMapper.cs new file mode 100644 index 00000000..a25d83e2 --- /dev/null +++ b/CampusAppWP8/CampusAppWP8/Utility/AppUriMapper.cs @@ -0,0 +1,43 @@ +//----------------------------------------------------------------------- +// +// Company copyright tag. +// +// stubbfel +// 26.09.2013 +//---------------------------------------------------------------------- + +namespace CampusAppWP8.Utility +{ + using System; + using System.Windows.Navigation; + using CampusAppWP8.Resources; + + /// + /// Class map Uri to AppPages + /// + public class AppUriMapper : UriMapperBase + { + /// + /// Method overrides MapUri from UriMapperBase + /// + /// the url + /// the mapped url + public override Uri MapUri(Uri uri) + { + string tempUri = uri.ToString(); + + // Look for a URI from the lens picker. + if (tempUri.Contains("ViewfinderLaunch")) + { + // Launch as a lens, launch viewfinder screen. + tempUri = Constants.PathQR_QRPage; + tempUri += "?" + Constants.ParamQRResultKey + "=" + Constants.CampusMapApp_QRCodeSearchResultStorageKey; + Uri url = new Uri(tempUri as string, UriKind.Relative); + return new Uri(tempUri, UriKind.Relative); + } + + // Otherwise perform normal launch. + return uri; + } + } +} diff --git a/CampusAppWP8/CampusAppWP8/Utility/Lui/MessageBoxes/MessageBoxes.cs b/CampusAppWP8/CampusAppWP8/Utility/Lui/MessageBoxes/MessageBoxes.cs index a095990b..af439b41 100644 --- a/CampusAppWP8/CampusAppWP8/Utility/Lui/MessageBoxes/MessageBoxes.cs +++ b/CampusAppWP8/CampusAppWP8/Utility/Lui/MessageBoxes/MessageBoxes.cs @@ -54,6 +54,15 @@ namespace CampusAppWP8.Utility.Lui.MessageBoxes return MessageBox.Show(text, AppResources.MsgBox_PlaceInfoHeader, MessageBoxButton.OK); } + /// Shows the place information message box (OKCancel-Box). + /// Stubbfel, 10.09.2013. + /// custom text for the box. + /// result of the UserInteraction + public static MessageBoxResult ShowPlaceInfoOkCancelMessageBox(string text) + { + return MessageBox.Show(text, AppResources.MsgBox_PlaceInfoHeader, MessageBoxButton.OKCancel); + } + #endregion } } diff --git a/CampusAppWP8/CampusAppWP8/Utility/Utilities.cs b/CampusAppWP8/CampusAppWP8/Utility/Utilities.cs index 75be2464..c373f1ff 100644 --- a/CampusAppWP8/CampusAppWP8/Utility/Utilities.cs +++ b/CampusAppWP8/CampusAppWP8/Utility/Utilities.cs @@ -127,7 +127,7 @@ namespace CampusAppWP8.Utility } else { - retValue.AddRange(GetChild(child as DependencyObject, elemName)); + retValue.AddRange(Utilities.GetChild(child as DependencyObject, elemName)); } } diff --git a/Doc/html/annotated.html b/Doc/html/annotated.html index 3aef254a..d916ef2e 100644 --- a/Doc/html/annotated.html +++ b/Doc/html/annotated.html @@ -153,12 +153,15 @@ $(document).ready(function(){initNavTree('annotated.html','');});  | \CPlacesFilePlaces file.  oNModel  |oNCampusmap - ||oCCBMainMapModelClass for the MapModel of the mainCampus of cottbus - ||oCCurrentPositionPinModelCurrent position pin model. - ||oCHiddenPinPlaceModelHidden pin place model. - ||oCMapModelThis Class manage the properties of a Map - ||oCMapPinModelThis Class manage the properties of a MapPin - ||\CSearchPlacePinModelSearch pin place model. + ||oCCampusMapModelClass for the CampusMapModel + ||oCCBMainMapModelClass for the MapModel of the mainCampus of cottbus + ||oCClickAblePlacePinModelabstract class for click abel bins + ||oCCurrentPositionPinModelCurrent position pin model. + ||oCHiddenPinPlaceModelHidden pin place model. + ||oCInfoPlacePinModelSearch pin place model. + ||oCMapModelThis Class manage the properties of a Map + ||oCMapPinModelThis Class manage the properties of a MapPin + ||\CSearchPlacePinModelSearch pin place model.  |oNDepartments  ||oCChairModelClass to hold information about a professorship chair.  ||oCDepartmentModelView model for department page. @@ -170,10 +173,12 @@ $(document).ready(function(){initNavTree('annotated.html','');});  ||oCExamListModelExam list model.  ||\CExamModelExam model.  |oNGeoDb - ||oCPlaceInformationInformation about the place. - ||oCPlaceModelModel for a place of the SPSService - ||oCPlaceServicePlace service. - ||\CSpsModelModel for a xml-response of the SPSService + ||oCCampusBuildingLayerModelClass is model for buildings of a campus + ||oCCampusBuildingModelClass is model for buildings of a campus + ||oCPlaceInformationInformation about the place. + ||oCPlaceModelModel for a place of the SPSService + ||oCPlaceServicePlace service. + ||\CSpsModelModel for a xml-response of the SPSService  |oNLecture  ||oCLectureActivityModel for a Activity  ||oCLectureCourseModel for a course @@ -185,43 +190,34 @@ $(document).ready(function(){initNavTree('annotated.html','');});  |oNLink  ||oCLinkListModelModel for a list of links.  ||\CLinkModelModel for menu - |oNMensa - ||oCMealModelModel for a meal - ||oCMenuModelModel for menu - ||\CMenuWeekModelModel for menus in one week - |oNOpeninghours - ||oCOpeninghoursInstitutionModelModel for menu - ||\COpeninghoursModelModel for opening hours. - |oNPerson - ||oCPersonFunctionModelPerson function model. - ||oCPersonListModelPerson list model. - ||\CPersonModelPerson model. - |oNRSS - ||oCRSSChannelModelChannel Model, which contains the RSS feed item list. - ||oCRSSModelContains the RSS feed information. - ||\CRSSViewModelViewModel of the RSS feed, containing the feed/channel object. - |oNSetting - ||oCAppSettingsModel for settings of the app - ||\CUserProfilModelModel for the profile of an user - |oNStudentCouncil - ||oCStudentCouncilListModelModel for menus in one week - ||\CStudentCouncilModelModel for menu - |oNUtility - ||oCCampusListPickerItemListModelThis Class creates a list of degrees - ||oCCleanUrlParamModelThis class is a Model for the URLParameter like GET-Parameter - ||oCCourseListPickerItemListModelThis is a class for the courseList - ||oCCourseModelCourse model. - ||oCDegreeListPickerItemListModelThis Class creates a list of degrees - ||oCListPickerItemListModelClass for a List of ListPickerItems - ||oCListPickerItemModelModel for the ListPickerItems - ||oCRoleListPickerItemListModelClass for the RoleList - ||oCSemesterListPickerItemListModelClass for the SemesterList - ||\CUrlParamModelThis class is a Model for the URLParameter like GET-Parameter - |oCBinaryModelBinary model. - |\CXmlModel< T >Xml model io handler class. + |oNOpeninghours + ||oCOpeninghoursInstitutionModelModel for menu + ||\COpeninghoursModelModel for opening hours. + |oNPerson + ||oCPersonFunctionModelPerson function model. + ||oCPersonListModelPerson list model. + ||\CPersonModelPerson model. + |oNSetting + ||oCAppSettingsModel for settings of the app + ||\CUserProfilModelModel for the profile of an user + |oNStudentCouncil + ||oCStudentCouncilListModelModel for menus in one week + ||\CStudentCouncilModelModel for menu + |oNUtility + ||oCCampusListPickerItemListModelThis Class creates a list of degrees + ||oCCourseListPickerItemListModelThis is a class for the courseList + ||oCCourseModelCourse model. + ||oCDegreeListPickerItemListModelThis Class creates a list of degrees + ||oCListPickerItemListModelClass for a List of ListPickerItems + ||oCListPickerItemModelModel for the ListPickerItems + ||oCRoleListPickerItemListModelClass for the RoleList + ||\CSemesterListPickerItemListModelClass for the SemesterList + |oCBinaryModelBinary model. + |\CXmlModel< T >Xml model io handler class.  oNPages  |oNCampusmap - ||\CCampusMapPageClass for the campusMap page. + ||oCCampusMapPageClass for the campusMap page. + ||\CRoomListPageClass of the RoomListPage  |oNDepartments  ||oCDepartmentFavoritePagePage to visualize the favorite department list.  ||oCDepartmentIndexPagePage with a list of the faculties. @@ -277,21 +273,24 @@ $(document).ready(function(){initNavTree('annotated.html','');});  |||oCPhoneButtonThis class create an Button which start a PhoneCall  |||oCToggleButtonThis class create an Button which can toggle the Visibility of certain FrameworkElements  |||\CUpdateButtonAppBarThis class create an Button which start the Email-Client - ||\NMessageBoxes - || \CMessageBoxesClass creates some MessageBoxes + ||oNMessageBoxes + |||\CMessageBoxesClass creates some MessageBoxes + ||\NTiles + || \CTileCreatorClass creates different live tiles  |oNNDEF  ||oCNDEFMessageNdef message.  ||oCNDEFRecordNdef record of a NDEFMessage.  ||\CNDEFShortRecordNdef short record. - |oCFileFile class. - |oCHttpRequestClass realize the access of restful HttpRequest - |oCLoggerThis Class creates logs for the app - |\CXmlManagerClass provides some Xml-methods - oCApp - oCConstAccess to Constants.rex - oCLocalizedStringsLocalized strings. - oCMainModel< T >Base model io handling class. - \CThemelizedIconsTheme icons. + |oCAppUriMapperClass map Uri to AppPages + |oCBackgroundTasksClass provide some static methods for background tasks + |oCFileFile class. + |oCHttpRequestClass realize the access of restful HttpRequest + |\CWp8StringManagerClass provides some special StringMethods + oCApp + oCConstAccess to Constants.rex + oCLocalizedStringsLocalized strings. + oCMainModel< T >Base model io handling class. + \CThemelizedIconsTheme icons. @@ -299,7 +298,7 @@ $(document).ready(function(){initNavTree('annotated.html','');});