finish#214

This commit is contained in:
stubbfel
2013-10-09 17:13:09 +02:00
parent 094b769f99
commit 92918be6a7
36 changed files with 500 additions and 98 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 755 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 755 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

View File

@@ -122,6 +122,9 @@
<Compile Include="Model\Campusmap\InfoPlacePinModel.cs" />
<Compile Include="Model\Campusmap\CBMainMapRoomModel.cs" />
<Compile Include="Model\Campusmap\InfoLabPlacePinModel.cs" />
<Compile Include="Model\Campusmap\InfoPlaceRedPinModel.cs" />
<Compile Include="Model\Campusmap\InfoPlaceAccessPinModel.cs" />
<Compile Include="Model\Campusmap\InfoPlaceWCPinModel.cs" />
<Compile Include="Model\Campusmap\SearchPlacePinModel.cs" />
<Compile Include="Model\Exams\ExamListWp8Model.cs" />
<Compile Include="Model\Exams\ExamWp8Model.cs" />
@@ -430,7 +433,7 @@
<Content Include="Assets\ApplicationIcon.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\campusmap.png" />
<Content Include="Assets\Maps\campusmap.png" />
<Content Include="Assets\Icons\DarkTheme\add_159.png" />
<Content Include="Assets\Icons\DarkTheme\add_contact_159.png" />
<Content Include="Assets\Icons\DarkTheme\btulogo_159.png" />
@@ -449,8 +452,11 @@
<Content Include="Assets\Icons\DarkTheme\lecture_159.png" />
<Content Include="Assets\Icons\DarkTheme\person_159.png" />
<Content Include="Assets\Icons\DarkTheme\phone_159.png" />
<Content Include="Assets\Icons\DarkTheme\placeinfoacces_159.png" />
<Content Include="Assets\Icons\DarkTheme\placeinfowc_159.png" />
<Content Include="Assets\Icons\DarkTheme\placeinfo_159.png" />
<Content Include="Assets\Icons\DarkTheme\placelab_159.png" />
<Content Include="Assets\Icons\DarkTheme\placesearchred_159.png" />
<Content Include="Assets\Icons\DarkTheme\pork_159.png" />
<Content Include="Assets\Icons\DarkTheme\practise_159.png" />
<Content Include="Assets\Icons\DarkTheme\search_place_159.png" />
@@ -491,8 +497,11 @@
<Content Include="Assets\Icons\DarkTheme\schedule_159.png" />
<Content Include="Assets\Icons\LightTheme\person_159.png" />
<Content Include="Assets\Icons\LightTheme\phone_159.png" />
<Content Include="Assets\Icons\LightTheme\placeinfoacces_159.png" />
<Content Include="Assets\Icons\LightTheme\placeinfowc_159.png" />
<Content Include="Assets\Icons\LightTheme\placeinfo_159.png" />
<None Include="Assets\Icons\LightTheme\placelab_159.png" />
<Content Include="Assets\Icons\LightTheme\placesearchred_159.png" />
<Content Include="Assets\Icons\LightTheme\pork_159.png" />
<Content Include="Assets\Icons\LightTheme\practise_159.png" />
<Content Include="Assets\Icons\LightTheme\schedule_159.png" />
@@ -510,8 +519,8 @@
<Content Include="Assets\Lens.Screen-720p.png" />
<Content Include="Assets\Lens.Screen-WVGA.png" />
<Content Include="Assets\Lens.Screen-WXGA.png" />
<Content Include="Assets\testmap.png" />
<Content Include="Assets\testmzg.png" />
<Content Include="Assets\Maps\IKMZ.png" />
<Content Include="Assets\Maps\MZG.png" />
<Content Include="Assets\Tiles\FlipCycleTileLarge.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
@@ -579,6 +588,7 @@
<Name>CampusAppWPortalLib8</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\$(TargetFrameworkIdentifier)\$(TargetFrameworkVersion)\Microsoft.$(TargetFrameworkIdentifier).$(TargetFrameworkVersion).Overrides.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\$(TargetFrameworkIdentifier)\$(TargetFrameworkVersion)\Microsoft.$(TargetFrameworkIdentifier).CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.

View File

@@ -5,13 +5,27 @@
<placeInformation placeInformationName="Kurzname">MZG</placeInformation>
<placeInformation placeInformationName="Name">Mehrzweckgebäude</placeInformation>
<placeInformation placeInformationName="Typ">Mehrzweck</placeInformation>
<placeInformation placeInformationName="ImageSource">/Assets/testmzg.png</placeInformation>
<placeInformation placeInformationName="ImageWidth">480</placeInformation>
<placeInformation placeInformationName="ImageHeight">781</placeInformation>
<placeInformation placeInformationName="ImageSource">/Assets/Maps/MZG.png</placeInformation>
<placeInformation placeInformationName="ImageWidth">730</placeInformation>
<placeInformation placeInformationName="ImageHeight">800</placeInformation>
<placeInformation placeInformationName="MapImageOffsetX">-288</placeInformation>
<placeInformation placeInformationName="MapImageOffsetY">-390</placeInformation>
<placeInformation placeInformationName="MapRefPoint">Point(260 380)</placeInformation>
<placeInformation placeInformationName="ScaleX">517932</placeInformation>
<placeInformation placeInformationName="ScaleY">790594</placeInformation>
<placeInformation placeInformationName="MapRefPoint">Point(430 526)</placeInformation>
<placeInformation placeInformationName="ScaleX">735864</placeInformation>
<placeInformation placeInformationName="ScaleY">1401188</placeInformation>
</place>
<place id="157" parentId="1" refpoint="POINT(14.329434644291759 51.76722025560722)">
<placeInformation placeInformationName="Kurzbeschreibung">Das IKMZ ist die zentrale Einrichtung der BTU, in der die Strukturbereiche der Informations-, Kommunikations- und Medienversorgung zusammengefasst sind.</placeInformation>
<placeInformation placeInformationName="Kurzname">IKMZ</placeInformation>
<placeInformation placeInformationName="Name">Informations-, Kommunikations- und Medienzentrum</placeInformation>
<placeInformation placeInformationName="Typ">Bibliothek</placeInformation>
<placeInformation placeInformationName="ImageSource">/Assets/Maps/IKMZ.png</placeInformation>
<placeInformation placeInformationName="ImageWidth">525</placeInformation>
<placeInformation placeInformationName="ImageHeight">800</placeInformation>
<placeInformation placeInformationName="MapImageOffsetX">-252</placeInformation>
<placeInformation placeInformationName="MapImageOffsetY">-390</placeInformation>
<placeInformation placeInformationName="MapRefPoint">Point(235 380)</placeInformation>
<placeInformation placeInformationName="ScaleX">300000</placeInformation>
<placeInformation placeInformationName="ScaleY">500000</placeInformation>
</place>
</root>

View File

@@ -27,7 +27,7 @@ namespace CampusAppWP8.Model.Campusmap
this.PinImageOffsetX = -25;
this.PinImageOffsetY = -34;
this.Tag = MapPinModel.CurrendPositionPlacePinString;
this.ZIndex = 2;
this.ZIndex = 3;
}
#endregion

View File

@@ -25,8 +25,8 @@ namespace CampusAppWP8.Model.Campusmap
this.ImageSource = Icons.PlaceLab;
this.ImageWidth = 40;
this.ImageHeight = 40;
this.PinImageOffsetX = -30;
this.PinImageOffsetY = -25;
this.PinImageOffsetX = -20;
this.PinImageOffsetY = -15;
this.ZIndex += 1;
}

View File

@@ -0,0 +1,34 @@
//-----------------------------------------------------------------------
// <copyright file="InfoLabPlacePinModel.cs" company="BTU/IIT">
// Company copyright tag.
// </copyright>
// <author>stubbfel</author>
// <sience>27.08.2013</sience>
//----------------------------------------------------------------------
namespace CampusAppWP8.Model.Campusmap
{
using CampusAppWP8.Resources;
/// <summary>Search pin place model.</summary>
/// <remarks>Stubbfel, 27.08.2013.</remarks>
public class InfoPlaceAccessPinModel : InfoPlacePinModel
{
#region Constructor
/// <summary>
/// Initializes a new instance of the <see cref="InfoPlacePinModel" /> class.
/// </summary>
/// <remarks>Stubbfel, 27.08.2013.</remarks>
public InfoPlaceAccessPinModel()
{
this.ImageSource = Icons.PlaceInfoAccess;
this.ImageWidth = 40;
this.ImageHeight = 40;
this.PinImageOffsetX = -10;
this.PinImageOffsetY = -35;
}
#endregion
}
}

View File

@@ -0,0 +1,36 @@
//-----------------------------------------------------------------------
// <copyright file="InfoLabPlacePinModel.cs" company="BTU/IIT">
// Company copyright tag.
// </copyright>
// <author>stubbfel</author>
// <sience>27.08.2013</sience>
//----------------------------------------------------------------------
namespace CampusAppWP8.Model.Campusmap
{
using CampusAppWP8.Resources;
/// <summary>Search pin place model.</summary>
/// <remarks>Stubbfel, 27.08.2013.</remarks>
public class InfoPlaceRedPinModel : InfoPlacePinModel
{
#region Constructor
/// <summary>
/// Initializes a new instance of the <see cref="InfoPlacePinModel" /> class.
/// </summary>
/// <remarks>Stubbfel, 27.08.2013.</remarks>
public InfoPlaceRedPinModel()
{
this.ImageSource = Icons.PlaceRearchRed;
this.ImageWidth = 60;
this.ImageHeight = 60;
this.PinImageOffsetX = -25;
this.PinImageOffsetY = -27;
this.ZIndex += 1;
this.Tag = MapPinModel.InfoRedPlacePinString;
}
#endregion
}
}

View File

@@ -0,0 +1,35 @@
//-----------------------------------------------------------------------
// <copyright file="InfoLabPlacePinModel.cs" company="BTU/IIT">
// Company copyright tag.
// </copyright>
// <author>stubbfel</author>
// <sience>27.08.2013</sience>
//----------------------------------------------------------------------
namespace CampusAppWP8.Model.Campusmap
{
using CampusAppWP8.Resources;
/// <summary>Search pin place model.</summary>
/// <remarks>Stubbfel, 27.08.2013.</remarks>
public class InfoPlaceWCPinModel : InfoPlacePinModel
{
#region Constructor
/// <summary>
/// Initializes a new instance of the <see cref="InfoPlacePinModel" /> class.
/// </summary>
/// <remarks>Stubbfel, 27.08.2013.</remarks>
public InfoPlaceWCPinModel()
{
this.ImageSource = Icons.PlaceInfoWc;
this.ImageWidth = 40;
this.ImageHeight = 40;
this.PinImageOffsetX = 0;
this.PinImageOffsetY = -10;
this.ZIndex += 1;
}
#endregion
}
}

View File

@@ -309,6 +309,27 @@ namespace CampusAppWP8.Model.Campusmap
((InfoLabPlacePinModel)pin).AssocPlaces = places;
((InfoLabPlacePinModel)pin).CallBack = this.ShowMapInfos;
break;
case MapPinModel.PinType.InfoAccesPlace:
pin = new InfoPlaceAccessPinModel();
pinImg.MouseLeftButtonDown += new MouseButtonEventHandler(((InfoPlaceAccessPinModel)pin).ShowInfo);
((InfoPlaceAccessPinModel)pin).AssocPlaces = places;
((InfoPlaceAccessPinModel)pin).CallBack = this.ShowMapInfos;
break;
case MapPinModel.PinType.InfoRedPlace:
pin = new InfoPlaceRedPinModel();
pinImg.MouseLeftButtonDown += new MouseButtonEventHandler(((InfoPlaceRedPinModel)pin).ShowInfo);
((InfoPlaceRedPinModel)pin).AssocPlaces = places;
((InfoPlaceRedPinModel)pin).CallBack = this.ShowMapInfos;
break;
case MapPinModel.PinType.InfoWcPlace:
pin = new InfoPlaceWCPinModel();
pinImg.MouseLeftButtonDown += new MouseButtonEventHandler(((InfoPlaceWCPinModel)pin).ShowInfo);
((InfoPlaceWCPinModel)pin).AssocPlaces = places;
((InfoPlaceWCPinModel)pin).CallBack = this.ShowMapInfos;
break;
default:
pin = new HiddenPinPlaceModel();
break;

View File

@@ -43,6 +43,14 @@ namespace CampusAppWP8.Model.Campusmap
/// </summary>
private static string currendPositionPlacePinString = MapPinModel.PinTypeToString(PinType.CurrentPosition);
private static string infoWcPlacePinString = MapPinModel.PinTypeToString(PinType.InfoWcPlace);
private static string infoAccesPlacePinString = MapPinModel.PinTypeToString(PinType.InfoAccesPlace);
private static string infoRedPlacePinString = MapPinModel.PinTypeToString(PinType.InfoRedPlace);
/// <summary>
/// Variable of the actual position of the pin
/// </summary>
@@ -76,13 +84,30 @@ namespace CampusAppWP8.Model.Campusmap
/// <summary>An enum constant representing the info place option.</summary>
InfoPlace = 3,
InfoLabPlace = 4
InfoLabPlace = 4,
InfoWcPlace = 5,
InfoRedPlace = 6,
InfoAccesPlace = 7
}
#endregion
#region Property
public static string InfoRedPlacePinString
{
get { return MapPinModel.infoRedPlacePinString; }
}
public static string InfoAccesPlacePinString
{
get { return MapPinModel.infoAccesPlacePinString; }
}
public static string InfoWcPlacePinString
{
get { return MapPinModel.infoWcPlacePinString; }
}
/// <summary>
/// Gets the string of current position pins
/// </summary>

View File

@@ -28,7 +28,7 @@ namespace CampusAppWP8.Model.Campusmap
this.PinImageOffsetX = -25;
this.PinImageOffsetY = -27;
this.Tag = MapPinModel.SearchPlacePinString;
this.ZIndex = 3;
this.ZIndex = 4;
}
#endregion

View File

@@ -91,6 +91,22 @@ namespace CampusAppWP8.Model.GeoDb
return result;
}
public string GetLayerKey(string placeId)
{
PlaceModel tmpPlace = null;
foreach (CampusBuildingLayerModel layer in this.Layers.Values)
{
tmpPlace = layer.Rooms.GetPlaceById(placeId);
if (tmpPlace != null)
{
return layer.LayerId;
}
}
return null;
}
#endregion
}
}

View File

@@ -8,10 +8,11 @@
xmlns:Location="clr-namespace:System.Device.Location;assembly=System.Device"
x:Class="CampusAppWP8.Pages.Campusmap.CampusMapPage"
xmlns:lui="clr-namespace:CampusAppWP8.Utility.Lui.Button"
xmlns:header="clr-namespace:CampusAppWP8.Utility.Lui.Header"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
SupportedOrientations="Portrait" Orientation="Portrait"
mc:Ignorable="d"
shell:SystemTray.IsVisible="True">
@@ -21,10 +22,10 @@
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ProgressBar Name="ProgressBar" Visibility="Collapsed" IsIndeterminate="True"/>
<!--TitlePanel enthält den Namen der Anwendung und den Seitentitel-->
<StackPanel Grid.Row="0" Margin="12,17,0,28">
<TextBlock Text="{Binding LocalizedResources.CampusMapApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource PhoneTextNormalStyle}"/>
<StackPanel Grid.Row="0">
<ProgressBar Name="ProgressBar" Visibility="Collapsed" IsIndeterminate="True"/>
<header:DefaultHeader HeaderName="{Binding Path=LocalizedResources.CampusMapApp_Title, Source={StaticResource LocalizedStrings}}"/>
</StackPanel>
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
@@ -40,18 +41,16 @@
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" VerticalAlignment="Center">
<TextBox Name="QString" InputScope="Text" AcceptsReturn="False" />
<TextBox Name="QString" InputScope="Text" AcceptsReturn="False" KeyDown="Button_KeyDown" />
</StackPanel>
<Button Grid.Column="1" Click="SearchByText">
<Button Grid.Column="1" Click="SearchByText" >
<Image Source="{Binding Path=ThemelizedIcon.Search, Source={StaticResource ThemelizedIcons}}" Width="60"/>
</Button>
</Grid>
<ScrollViewer Name="MapScroller" Grid.Row="1" HorizontalScrollBarVisibility="Auto" RenderTransformOrigin="0,0">
<ScrollViewer Name="MapScroller" Grid.Row="1" HorizontalScrollBarVisibility="Auto" RenderTransformOrigin="0,0" Margin="12,0,0,0">
<Canvas Name="MapCanvas" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto" Height="{Binding ImageHeight}" Width="{Binding ImageWidth}">
<Canvas.Background>
<ImageBrush Stretch="Fill" ImageSource="{Binding ImageSource}">
</ImageBrush>
<ImageBrush Stretch="Fill" ImageSource="{Binding ImageSource}"/>
</Canvas.Background>
</Canvas>
</ScrollViewer>

View File

@@ -27,6 +27,7 @@ namespace CampusAppWP8.Pages.Campusmap
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using Windows.Networking.Proximity;
using System.Windows.Input;
/// <summary>Class for the campusMap page.</summary>
/// <remarks>Stubbfel, 19.08.2013.</remarks>
@@ -117,6 +118,8 @@ namespace CampusAppWP8.Pages.Campusmap
/// Event for loading places
/// </summary>
public event LoadingPlace OnLoadingPlace;
private long ndefId;
#endregion
#region Method
@@ -139,8 +142,17 @@ namespace CampusAppWP8.Pages.Campusmap
if (NavigationContext.QueryString.ContainsKey(Constants.ParamModelMap_SearchTermAlias))
{
string alias = NavigationContext.QueryString[Constants.ParamModelMap_SearchTermAlias];
this.ShowPlacesByQueryAsSearchPin(alias);
scroll = false;
if (Utilities.IsRoomId(alias))
{
PlaceModel place = this.file.Model.GetPlaceById(alias);
if (place != null)
{
this.GoToRoomList(place.ParentId, place.PlaceId);
}
}
}
else
{
@@ -156,13 +168,38 @@ namespace CampusAppWP8.Pages.Campusmap
App.SaveToIsolatedStorage<string>(Constants.CampusMapApp_QRCodeSearchResultStorageKey, null);
string searchPid = Wp8StringManager.FilterPlaceIdinQRResultString(qrcodeResult);
PlaceModel place = this.file.Model.GetPlaceById(searchPid);
if (searchPid != null)
{
this.ShowAllPlacesByPlaceIdAsSearchPin(searchPid);
//this.ShowAllPlacesByPlaceIdAsSearchPin(searchPid);
if (place.ParentId.Equals(this.campusMap.CampusId))
{
this.ShowAllPlacesByPlaceIdAsSearchPin(searchPid);
}
else
{
this.GoToRoomList(place.ParentId, place.PlaceId);
}
}
}
ndefId = this.device.SubscribeForMessage(Constants.NCFMessageType_NDEF, this.NDEFHandler);
}
/// <summary>
/// Methods overrides the OnNavigatedFrom-Method
/// </summary>
/// <param name="e">some NavigationEventArgs</param>
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
this.device.StopSubscribingForMessage(ndefId);
base.OnNavigatedFrom(e);
}
#endregion
#region private
@@ -448,7 +485,8 @@ namespace CampusAppWP8.Pages.Campusmap
{
MessageBoxes.ShowMainModelInfoMessageBox(AppResources.ScarNfc_Search);
this.ProgressBar.Visibility = Visibility.Visible;
long id = this.device.SubscribeForMessage(Constants.NCFMessageType_NDEF, this.NDEFHandler);
this.device.StopSubscribingForMessage(this.ndefId);
this.ndefId = this.device.SubscribeForMessage(Constants.NCFMessageType_NDEF, this.NDEFHandler);
}
/// <summary>
@@ -481,16 +519,33 @@ namespace CampusAppWP8.Pages.Campusmap
// search for placeId
string nfcContent = ndef.GetContent();
string searchPid = Wp8StringManager.FilterPlaceIdinNFCResultString(nfcContent.Trim());
PlaceModel place = this.file.Model.GetPlaceById(searchPid);
if (searchPid != null)
{
// add pins to map
if (this.Dispatcher != null)
{
this.Dispatcher.BeginInvoke(new Action(() => this.ShowAllPlacesByPlaceIdAsSearchPin(searchPid)));
if (place.ParentId.Equals(this.campusMap.CampusId))
{
this.Dispatcher.BeginInvoke(new Action(() => this.ShowAllPlacesByPlaceIdAsSearchPin(searchPid)));
}
else
{
this.Dispatcher.BeginInvoke(new Action(() => this.GoToRoomList(place.ParentId, place.PlaceId)));
}
}
else
{
this.ShowAllPlacesByPlaceIdAsSearchPin(searchPid);
//this.ShowAllPlacesByPlaceIdAsSearchPin(searchPid);
if (place.ParentId.Equals(this.campusMap.CampusId))
{
this.ShowAllPlacesByPlaceIdAsSearchPin(searchPid);
}
else
{
this.GoToRoomList(place.ParentId, place.PlaceId);
}
}
}
else
@@ -514,6 +569,9 @@ namespace CampusAppWP8.Pages.Campusmap
{
this.ProgressBar.Visibility = Visibility.Collapsed;
}
ndefId = this.device.SubscribeForMessage(Constants.NCFMessageType_NDEF, this.NDEFHandler);
}
/// <summary>Searches for the first places.</summary>
@@ -651,7 +709,7 @@ namespace CampusAppWP8.Pages.Campusmap
{
string lat = App.LoadFromAppState<string>(Constants.GeoWatch_CurrentPosition_Lat);
string log = App.LoadFromAppState<string>(Constants.GeoWatch_CurrentPosition_Long);
if (lat == null || log == null ||(lat.Equals("0") && log.Equals("0")))
if (lat == null || log == null || (lat.Equals("0") && log.Equals("0")))
{
if (Settings.AppSetting.GeoWatchEnable)
{
@@ -738,16 +796,26 @@ namespace CampusAppWP8.Pages.Campusmap
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);
this.GoToRoomList(place.PlaceId);
return;
}
}
}
}
private void GoToRoomList(string buildingId, string roomId = null)
{
string urlString = Constants.PathCampusmap_RoomListPage;
urlString += "?" + Constants.ParamBuildingId + "=" + buildingId;
if (roomId != null)
{
urlString += "&" + Constants.ParamRoomId + "=" + roomId;
}
Uri url = new Uri(urlString as string, UriKind.Relative);
this.NavigationService.Navigate(url);
}
/// <summary>
/// Method check if a certain place has some rooms
/// </summary>
@@ -766,6 +834,16 @@ namespace CampusAppWP8.Pages.Campusmap
return false;
}
private void Button_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
this.SearchByText(sender, e);
this.MapScroller.Focus();
}
}
#endregion
#endregion

View File

@@ -12,7 +12,7 @@
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
SupportedOrientations="Portrait" Orientation="Portrait"
mc:Ignorable="d"
shell:SystemTray.IsVisible="True">
@@ -25,12 +25,12 @@
</Grid.RowDefinitions>
<StackPanel Grid.Row="0">
<ProgressBar Name="ProgressBar" Visibility="Collapsed" IsIndeterminate="True"/>
<header:DefaultHeader HeaderName="{Binding Path=LocalizedResources.ExaminationApp_Header, Source={StaticResource LocalizedStrings}}"/>
<header:DefaultHeader Name="Header" HeaderName="{Binding Path=LocalizedResources.CampusMapApp_RoomListTitle, Source={StaticResource LocalizedStrings}}"/>
</StackPanel>
<StackPanel Grid.Row="1">
<TextBlock Text="{Binding Path=LocalizedResources.Setting_UserSemester, Source={StaticResource LocalizedStrings}}"/>
<StackPanel Grid.Row="1" Margin="24,0,0,0">
<TextBlock Text="{Binding Path=LocalizedResources.LayerListPicker_Label, Source={StaticResource LocalizedStrings}}"/>
<!-- Listpicket of courses -->
<toolkit:ListPicker Name="Layer" ExpansionMode="FullScreenOnly" FullModeHeader="{Binding Path=LocalizedResources.ListPickerHeaderSemester, Source={StaticResource LocalizedStrings}}" SelectionChanged="Layer_SelectionChanged" >
<toolkit:ListPicker Name="Layer" ExpansionMode="FullScreenOnly" FullModeHeader="{Binding Path=LocalizedResources.ListPickerHeader_Layer, Source={StaticResource LocalizedStrings}}" SelectionChanged="Layer_SelectionChanged" >
<toolkit:ListPicker.ItemTemplate>
<DataTemplate>
<StackPanel>
@@ -47,11 +47,9 @@
</toolkit:ListPicker.FullModeItemTemplate>
</toolkit:ListPicker>
</StackPanel>
<ViewportControl Name="VPC" Grid.Row="2" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Bounds="0,0,630,800">
<Canvas Name="MapCanvas" Height="800" Width="480" VerticalAlignment="Top" HorizontalAlignment="Left" ManipulationDelta="MapCanvas_ManipulationDelta" ManipulationStarted="MapCanvas_ManipulationStarted" ManipulationCompleted="MapCanvas_ManipulationCompleted" Margin="-200">
<Image Name="imgMap" Height="{Binding ImageHeigh}" Width="{Binding ImageWidth}" Source="{Binding ImageSource}" HorizontalAlignment="Left" VerticalAlignment="Top">
</Image>
<ViewportControl Name="VPC" Grid.Row="2" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Bounds="0,-200,720,1200" Margin="24,12,12,0" >
<Canvas Name="MapCanvas" Height="800" Width="480" VerticalAlignment="Top" HorizontalAlignment="Left" ManipulationDelta="MapCanvas_ManipulationDelta" ManipulationStarted="MapCanvas_ManipulationStarted" ManipulationCompleted="MapCanvas_ManipulationCompleted" Margin="-188,-200,-188,-200">
<Image Name="imgMap" Height="{Binding ImageHeigh}" Width="{Binding ImageWidth}" Source="{Binding ImageSource}" HorizontalAlignment="Left" VerticalAlignment="Top"/>
<Canvas.RenderTransform>
<ScaleTransform/>
</Canvas.RenderTransform>

View File

@@ -47,6 +47,7 @@ namespace CampusAppWP8.Pages.Campusmap
private bool pinchRun = false;
private Point mappoint;
private Point offsetPoint;
private ListPickerItemListModel layerListPicker;
#endregion
@@ -57,8 +58,6 @@ namespace CampusAppWP8.Pages.Campusmap
public RoomListPage()
{
this.InitializeComponent();
this.buildingMap = new BuildingMapModel("122");
this.buildingMap.ShowMapInfos += new CBMainMapModel.MapInfos(this.ShowMapInfo);
}
#endregion
@@ -101,24 +100,32 @@ namespace CampusAppWP8.Pages.Campusmap
{
if (this.placeFile.Model != null)
{
this.SetupPivot();
this.SetupMap();
}
}
/// <summary>
/// Method setup the PivotElement
/// </summary>
private void SetupPivot()
private void SetupMap()
{
if (NavigationContext.QueryString.ContainsKey(Constants.ParamBuildingId))
{
this.setupCanvas();
this.setupCanvas(NavigationContext.QueryString[Constants.ParamBuildingId]);
this.createLayerListPicker();
if (this.building != null && this.building.Layers != null && this.building.Layers.Count > 0)
{
if (NavigationContext.QueryString.ContainsKey(Constants.ParamRoomId))
{
string layerKey = this.building.GetLayerKey(NavigationContext.QueryString[Constants.ParamRoomId]);
if (layerKey != null)
{
this.Layer.SelectedIndex = this.layerListPicker.GetIndexOrDefault(layerKey);
this.showCurrentRoom(NavigationContext.QueryString[Constants.ParamRoomId]);
}
}
this.showLayerPlaces(((ListPickerItemModel)this.Layer.SelectedItem).Value);
}
else
{
@@ -132,6 +139,24 @@ namespace CampusAppWP8.Pages.Campusmap
}
private void showCurrentRoom(string placeId)
{
double x;
double y;
this.ClearMap(new List<string>() { MapPinModel.InfoPlacePinString });
PlaceModel room = this.building.GetPlaceById(placeId);
x = room.GeoRefPoint.Longitude;
y = room.GeoRefPoint.Latitude;
Point roompoint = this.buildingMap.GetScrollPoint(this.buildingMap.ConverToPixelPoint(this.buildingMap.ConverToMapPoint(x, y)));
Point viewPoint = new Point(roompoint.X - mappoint.X + offsetPoint.X, roompoint.Y - mappoint.Y + offsetPoint.Y);
MapCanvas.Children.Add(this.buildingMap.AddPin(viewPoint, MapPinModel.PinType.InfoRedPlace, new List<PlaceModel> { room }));
}
private void ShowMapInfo(List<PlaceModel> places)
{
if (this.pinchRun)
@@ -177,46 +202,6 @@ namespace CampusAppWP8.Pages.Campusmap
MessageBoxes.ShowMainModelInfoMessageBox(msgText);
}
/// <summary>
/// Method sorts the Layers
/// </summary>
/// <param name="build"> building of the layers </param>
/// <returns>sorted Dictionary</returns>
private Dictionary<string, CampusBuildingLayerModel> GetSortedLayers(CampusBuildingModel build)
{
Dictionary<string, CampusBuildingLayerModel> result = new Dictionary<string, CampusBuildingLayerModel>();
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;
}
/// <summary>
/// Method set all rooms a formatted string , which will be show as buttonContent
/// </summary>
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 + ")";
}
}
}
}
private void MapCanvas_ManipulationDelta(object sender, System.Windows.Input.ManipulationDeltaEventArgs e)
{
PinchManipulation pinch = e.PinchManipulation;
@@ -265,7 +250,7 @@ namespace CampusAppWP8.Pages.Campusmap
private void createLayerListPicker()
{
ListPickerItemListModel layerListPicker = new ListPickerItemListModel();
layerListPicker = new ListPickerItemListModel();
foreach (string layername in this.building.Layers.Keys)
{
@@ -296,11 +281,19 @@ namespace CampusAppWP8.Pages.Campusmap
MapPinModel.PinType type;
switch (room.GetInformationsValue(Constants.PisInformationName_Typ))
switch (room.GetInformationsValue(Constants.PisInformationName_Typ))
{
case "Labor" :
case "Labor":
type = MapPinModel.PinType.InfoLabPlace;
break;
case "Zugangsbereich":
type = MapPinModel.PinType.InfoAccesPlace;
break;
case "WC":
type = MapPinModel.PinType.InfoWcPlace;
break;
case "Regal":
continue;
default:
type = MapPinModel.PinType.InfoPlace;
break;
@@ -308,6 +301,8 @@ namespace CampusAppWP8.Pages.Campusmap
}
MapCanvas.Children.Add(this.buildingMap.AddPin(viewPoint, type, new List<PlaceModel> { room }));
}
// MapCanvas.Children.Add(this.buildingMap.AddPin(offsetPoint, MapPinModel.PinType.SearchPlace));
}
private void showLayerPlaces(int index = 0)
@@ -316,9 +311,14 @@ namespace CampusAppWP8.Pages.Campusmap
this.showLayerPlaces(layerKey);
}
private void setupCanvas()
private void setupCanvas(string buildingId)
{
this.building = new CampusBuildingModel(NavigationContext.QueryString[Constants.ParamBuildingId], this.placeFile.Model.Places.ToList());
this.building = new CampusBuildingModel(buildingId, this.placeFile.Model.Places.ToList());
this.buildingMap = new BuildingMapModel(this.building.Building.PlaceId);
this.buildingMap.ShowMapInfos += new CBMainMapModel.MapInfos(this.ShowMapInfo);
this.Header.HeaderName = AppResources.CampusMapApp_RoomListTitle + " (" + this.building.Building.GetInformationsValue(Constants.PisInformationName_ShortName) + ")";
double y = this.building.Building.GeoRefPoint.Latitude;
double x = this.building.Building.GeoRefPoint.Longitude;
mappoint = this.buildingMap.GetScrollPoint(this.buildingMap.ConverToPixelPoint(this.buildingMap.ConverToMapPoint(x, y)));

View File

@@ -148,6 +148,7 @@ namespace CampusAppWP8.Pages.Person
if (e.Key == Key.Enter)
{
this.SendRequest(sender,e);
this.ResultBox.Focus();
}
}

View File

@@ -123,6 +123,15 @@ namespace CampusAppWP8.Resources {
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Raumübersicht ähnelt.
/// </summary>
public static string CampusMapApp_RoomListTitle {
get {
return ResourceManager.GetString("CampusMapApp_RoomListTitle", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Info via NFC ähnelt.
/// </summary>
@@ -285,6 +294,15 @@ namespace CampusAppWP8.Resources {
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Ebene ähnelt.
/// </summary>
public static string LayerListPicker_Label {
get {
return ResourceManager.GetString("LayerListPicker_Label", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Studiengang ähnelt.
/// </summary>
@@ -420,6 +438,15 @@ namespace CampusAppWP8.Resources {
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Ebeneauswahl ähnelt.
/// </summary>
public static string ListPickerHeader_Layer {
get {
return ResourceManager.GetString("ListPickerHeader_Layer", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Campusauswahl ähnelt.
/// </summary>

View File

@@ -439,11 +439,20 @@
</data>
<data name="MensaApp_CloseMensa" xml:space="preserve">
<value>Die Mensa ist heute geschlossen</value>
</data>
</data>
<data name="DepartmentForwarding" xml:space="preserve">
<value>Möchten Sie Weiter zur Lehstuhlübersicht?</value>
</data>
<data name="DepartmentNotFound" xml:space="preserve">
<value>Der angegebene Lehrstuhl konnte nicht gefunden werden.</value>
</data>
<data name="CampusMapApp_RoomListTitle" xml:space="preserve">
<value>Raumübersicht</value>
</data>
<data name="LayerListPicker_Label" xml:space="preserve">
<value>Ebene</value>
</data>
<data name="ListPickerHeader_Layer" xml:space="preserve">
<value>Ebeneauswahl</value>
</data>
</root>

View File

@@ -382,7 +382,7 @@
<value>File/Campusmap/Offlinemap.xml</value>
</data>
<data name="FileMap_CBMainMap" xml:space="preserve">
<value>/Assets/campusmap.png</value>
<value>/Assets/Maps/campusmap.png</value>
</data>
<data name="AppSetting_DevMode" xml:space="preserve">
<value>DevMode</value>
@@ -564,4 +564,16 @@
<data name="PinType_InfoLab" xml:space="preserve">
<value>InfoLabPin</value>
</data>
<data name="ParamRoomId" xml:space="preserve">
<value>ParamRoomId</value>
</data>
<data name="PinType_InfoAccess" xml:space="preserve">
<value>InfoAccesPin</value>
</data>
<data name="PinType_InfoRed" xml:space="preserve">
<value>InfoRedPin</value>
</data>
<data name="PinType_InfoWC" xml:space="preserve">
<value>InfoWCPin</value>
</data>
</root>

View File

@@ -295,7 +295,7 @@ namespace CampusAppWP8.Resources {
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die /Assets/campusmap.png ähnelt.
/// Sucht eine lokalisierte Zeichenfolge, die /Assets/Maps/campusmap.png ähnelt.
/// </summary>
public static string FileMap_CBMainMap {
get {
@@ -726,6 +726,15 @@ namespace CampusAppWP8.Resources {
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die ParamRoomId ähnelt.
/// </summary>
public static string ParamRoomId {
get {
return ResourceManager.GetString("ParamRoomId", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Url ähnelt.
/// </summary>
@@ -1014,6 +1023,15 @@ namespace CampusAppWP8.Resources {
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die InfoAccesPin ähnelt.
/// </summary>
public static string PinType_InfoAccess {
get {
return ResourceManager.GetString("PinType_InfoAccess", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die InfoLabPin ähnelt.
/// </summary>
@@ -1023,6 +1041,24 @@ namespace CampusAppWP8.Resources {
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die InfoRedPin ähnelt.
/// </summary>
public static string PinType_InfoRed {
get {
return ResourceManager.GetString("PinType_InfoRed", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die InfoWCPin ähnelt.
/// </summary>
public static string PinType_InfoWC {
get {
return ResourceManager.GetString("PinType_InfoWC", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die SearchPin ähnelt.
/// </summary>

View File

@@ -319,6 +319,28 @@ namespace CampusAppWP8.Resources
}
}
/// <summary>
/// Gets the uri string of the PlaceInfoAccess icon.
/// </summary>
public static string PlaceInfoAccess
{
get
{
return Themerize("placeinfoacces_159.png");
}
}
/// <summary>
/// Gets the uri string of the PlaceInfoWc icon.
/// </summary>
public static string PlaceInfoWc
{
get
{
return Themerize("placeinfowc_159.png");
}
}
/// <summary>
/// Gets the uri string of the PlaceLab icon.
/// </summary>
@@ -330,6 +352,17 @@ namespace CampusAppWP8.Resources
}
}
/// <summary>
/// Gets the uri string of the PlaceRearchRed icon.
/// </summary>
public static string PlaceRearchRed
{
get
{
return Themerize("placesearchred_159.png");
}
}
/// <summary>
/// Gets the uri string of the Practise icon.
/// </summary>

View File

@@ -198,9 +198,18 @@
<data name="PlaceInfo" xml:space="preserve">
<value>placeinfo_159.png</value>
</data>
<data name="PlaceInfoAccess" xml:space="preserve">
<value>placeinfoacces_159.png</value>
</data>
<data name="PlaceInfoWc" xml:space="preserve">
<value>placeinfowc_159.png</value>
</data>
<data name="PlaceLab" xml:space="preserve">
<value>placelab_159.png</value>
</data>
<data name="PlaceRearchRed" xml:space="preserve">
<value>placesearchred_159.png</value>
</data>
<data name="Practise" xml:space="preserve">
<value>practise_159.png</value>
</data>

View File

@@ -360,6 +360,15 @@ namespace CampusAppWP8.Utility
}
}
public static bool IsRoomId(string placeId)
{
if (Wp8StringManager.IsDigitsOnly(placeId) && placeId.Length > 7)
{
return true;
}
return false;
}
#endregion
}
}