added events, sort events by date, added link in news and events
This commit is contained in:
@@ -97,10 +97,13 @@
|
||||
<Compile Include="MainPage.xaml.cs">
|
||||
<DependentUpon>MainPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="pages\events\EventPage.xaml.cs">
|
||||
<DependentUpon>EventPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="pages\news\NewsPage.xaml.cs">
|
||||
<DependentUpon>NewsPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="pages\news\RSSItem.cs" />
|
||||
<Compile Include="pages\RSSItem.cs" />
|
||||
<Compile Include="pages\news\RSSNewsTemplate.xaml.cs">
|
||||
<DependentUpon>RSSNewsTemplate.xaml</DependentUpon>
|
||||
</Compile>
|
||||
@@ -129,6 +132,10 @@
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</DesignData>
|
||||
<Page Include="pages\events\EventPage.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="pages\news\NewsPage.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
@@ -187,9 +194,7 @@
|
||||
<HintPath>..\packages\WPtoolkit.4.2012.10.30\lib\wp8\Microsoft.Phone.Controls.Toolkit.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="pages\events\" />
|
||||
</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.
|
||||
|
||||
@@ -177,6 +177,15 @@ namespace CampusAppWP8.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Link ähnelt.
|
||||
/// </summary>
|
||||
public static string NewsLinkBtn {
|
||||
get {
|
||||
return ResourceManager.GetString("NewsLinkBtn", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Öffnungszeiten ähnelt.
|
||||
/// </summary>
|
||||
|
||||
@@ -179,4 +179,7 @@
|
||||
<data name="NewsHomeBtn" xml:space="preserve">
|
||||
<value>zur Übersicht</value>
|
||||
</data>
|
||||
<data name="NewsLinkBtn" xml:space="preserve">
|
||||
<value>Link</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -11,6 +11,7 @@ namespace CampusAppWP8.pages.news
|
||||
private string title;
|
||||
private string text;
|
||||
private DateTime timestamp;
|
||||
private string link;
|
||||
|
||||
public string Title
|
||||
{
|
||||
@@ -30,6 +31,12 @@ namespace CampusAppWP8.pages.news
|
||||
set { this.timestamp = DateTime.Parse(value); }
|
||||
}
|
||||
|
||||
public DateTime DTTimestamp
|
||||
{
|
||||
get { return this.timestamp; }
|
||||
set { this.timestamp = value; }
|
||||
}
|
||||
|
||||
public string Date
|
||||
{
|
||||
get { return String.Format("{0:ddd, dd.MM.yyyy}", this.timestamp); }
|
||||
@@ -40,6 +47,12 @@ namespace CampusAppWP8.pages.news
|
||||
get { return String.Format("{0:h:mm} Uhr", this.timestamp); }
|
||||
}
|
||||
|
||||
public string Link
|
||||
{
|
||||
get { return this.link; }
|
||||
set { this.link = value; }
|
||||
}
|
||||
|
||||
private string HTMLUnicodeToString(string htmluni)
|
||||
{
|
||||
StringBuilder retValue = new StringBuilder();
|
||||
@@ -87,5 +100,13 @@ namespace CampusAppWP8.pages.news
|
||||
|
||||
return retValue.ToString();
|
||||
}
|
||||
|
||||
public static int CompareTimeStamp(RSSItem item1, RSSItem item2)
|
||||
{
|
||||
if (item1.DTTimestamp > item2.DTTimestamp)
|
||||
return -1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
27
CampusAppWP8/CampusAppWP8/pages/events/EventPage.xaml
Normal file
27
CampusAppWP8/CampusAppWP8/pages/events/EventPage.xaml
Normal file
@@ -0,0 +1,27 @@
|
||||
<phone:PhoneApplicationPage
|
||||
x:Class="CampusAppWP8.pages.events.EventPage"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
|
||||
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d"
|
||||
FontFamily="{StaticResource PhoneFontFamilyNormal}"
|
||||
FontSize="{StaticResource PhoneFontSizeNormal}"
|
||||
Foreground="{StaticResource PhoneForegroundBrush}"
|
||||
SupportedOrientations="Portrait" Orientation="Portrait"
|
||||
shell:SystemTray.IsVisible="True">
|
||||
|
||||
<!--LayoutRoot ist das Stammraster, in dem alle anderen Seiteninhalte platziert werden-->
|
||||
<Grid x:Name="LayoutRoot" Background="Transparent">
|
||||
<!--Pivotsteuerelement-->
|
||||
<phone:Pivot x:Name="EventPivot" Title="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}">
|
||||
<!--Pivotelement eins-->
|
||||
<phone:PivotItem Name="EventPivotHome" Header="{Binding Path=LocalizedResources.EventApp_Title, Source={StaticResource LocalizedStrings}}">
|
||||
<ListBox x:Name="ButtonPanel" Grid.Row="1">
|
||||
</ListBox>
|
||||
</phone:PivotItem>
|
||||
</phone:Pivot>
|
||||
</Grid>
|
||||
</phone:PhoneApplicationPage>
|
||||
128
CampusAppWP8/CampusAppWP8/pages/events/EventPage.xaml.cs
Normal file
128
CampusAppWP8/CampusAppWP8/pages/events/EventPage.xaml.cs
Normal file
@@ -0,0 +1,128 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Navigation;
|
||||
using Microsoft.Phone.Controls;
|
||||
using Microsoft.Phone.Shell;
|
||||
using System.Xml.Linq;
|
||||
using System.Xml;
|
||||
using System.IO;
|
||||
using Microsoft.Phone.Tasks;
|
||||
|
||||
// Should be CampusAppWP8.pages (for RSSItem).
|
||||
using CampusAppWP8.pages.news;
|
||||
|
||||
|
||||
namespace CampusAppWP8.pages.events
|
||||
{
|
||||
public partial class EventPage : PhoneApplicationPage
|
||||
{
|
||||
List<RSSItem> itemList;
|
||||
|
||||
public EventPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
protected override void OnNavigatedTo(NavigationEventArgs e)
|
||||
{
|
||||
this.itemList = new List<RSSItem>();
|
||||
this.itemList.Clear();
|
||||
|
||||
WebClient wc = new WebClient();
|
||||
wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(WC_DownloadStringCompleted);
|
||||
|
||||
wc.DownloadStringAsync(new Uri("http://www.tu-cottbus.de/oracle-gateway/php/rss2feed_veranstaltungen.php"));
|
||||
}
|
||||
|
||||
private void WC_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
|
||||
{
|
||||
if (e.Error != null)
|
||||
return;
|
||||
|
||||
int i = 0;
|
||||
|
||||
XElement xmlitems = XElement.Parse(e.Result);
|
||||
|
||||
List<XElement> elements = xmlitems.Descendants("item").ToList();
|
||||
|
||||
|
||||
foreach (XElement rssItem in elements)
|
||||
{
|
||||
if(i < 12)
|
||||
{
|
||||
RSSItem rss = new RSSItem();
|
||||
|
||||
rss.Title = rssItem.Element("title").Value;
|
||||
rss.Text = rssItem.Element("description").Value;
|
||||
rss.Timestamp = rssItem.Element("pubDate").Value;
|
||||
rss.Link = rssItem.Element("link").Value;
|
||||
|
||||
this.itemList.Add(rss);
|
||||
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
this.itemList.Sort(RSSItem.CompareTimeStamp);
|
||||
|
||||
for(i = 0; i < this.itemList.Count(); i++)
|
||||
{
|
||||
Button btn = new Button();
|
||||
btn.Name = "EventRowAppButton" + i;
|
||||
btn.Content = this.itemList[i].Title;
|
||||
btn.BorderBrush = null;
|
||||
btn.Background = null;
|
||||
btn.VerticalContentAlignment = VerticalAlignment.Stretch;
|
||||
btn.HorizontalContentAlignment = HorizontalAlignment.Stretch;
|
||||
btn.BorderThickness = new Thickness(0);
|
||||
btn.Padding = new Thickness(0);
|
||||
btn.Click += EventRowAppButton_Click;
|
||||
btn.Tag = i;
|
||||
|
||||
PivotItem newPivItem = new PivotItem();
|
||||
newPivItem.Name = "EventPivot" + i;
|
||||
newPivItem.Header = this.itemList[i].Date;
|
||||
|
||||
RSSNewsTemplate pvContent = new RSSNewsTemplate();
|
||||
pvContent.NewsHeadline.Text = this.itemList[i].Title;
|
||||
pvContent.NewsText.Text = this.itemList[i].Text;
|
||||
pvContent.NewsHome.Click += EventHome_Click;
|
||||
pvContent.NewsLink.Click += EventLink_Click;
|
||||
pvContent.NewsLink.Tag = i;
|
||||
|
||||
if (this.itemList[i].Link.Length == 0)
|
||||
pvContent.NewsLink.Visibility = Visibility.Collapsed;
|
||||
|
||||
newPivItem.Content = pvContent;
|
||||
EventPivot.Items.Add(newPivItem);
|
||||
|
||||
ButtonPanel.Items.Add(btn);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
private void EventRowAppButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Button btn = (Button)sender;
|
||||
EventPivot.SelectedIndex = (int)btn.Tag + 1;
|
||||
}
|
||||
|
||||
private void EventHome_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
EventPivot.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
private void EventLink_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Button btn = (Button)sender;
|
||||
|
||||
WebBrowserTask webBrowserTask = new WebBrowserTask();
|
||||
webBrowserTask.Uri = new Uri(this.itemList[(int)btn.Tag].Link, UriKind.Absolute);
|
||||
webBrowserTask.Show();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,8 @@ using Microsoft.Phone.Shell;
|
||||
using System.Xml.Linq;
|
||||
using System.Xml;
|
||||
using System.IO;
|
||||
using Microsoft.Phone.Tasks;
|
||||
|
||||
|
||||
namespace CampusAppWP8.pages.news
|
||||
{
|
||||
@@ -80,6 +82,26 @@ namespace CampusAppWP8.pages.news
|
||||
pvContent.NewsHeadline.Text = rss.Title;
|
||||
pvContent.NewsText.Text = rss.Text;
|
||||
pvContent.NewsHome.Click += NewsHome_Click;
|
||||
pvContent.NewsLink.Click += NewsLink_Click;
|
||||
pvContent.NewsLink.Tag = i;
|
||||
/*
|
||||
{
|
||||
double height = pvContent.NewsHeadline.Height * 0.99;
|
||||
double width = pvContent.NewsHeadline.Width * 0.99;
|
||||
|
||||
Font tryFont = pvContent.NewsHeadline.Font;
|
||||
Size tempSize = TextRenderer.MeasureText(pvContent.NewsHeadline.Text, tryFont);
|
||||
|
||||
float heightRatio = height / tempSize.Height;
|
||||
float widthRatio = width / tempSize.Width;
|
||||
|
||||
tryFont = new Font(tryFont.FontFamily, tryFont.Size * Math.Min(widthRatio, heightRatio), tryFont.Style);
|
||||
|
||||
pvContent.NewsHeadline.Font = tryFont;
|
||||
}
|
||||
*/
|
||||
if ((rss.Link == null) || (rss.Link.Length == 0))
|
||||
pvContent.NewsLink.Visibility = Visibility.Collapsed;
|
||||
|
||||
newPivItem.Content = pvContent;
|
||||
NewsPivot.Items.Add(newPivItem);
|
||||
@@ -102,5 +124,14 @@ namespace CampusAppWP8.pages.news
|
||||
{
|
||||
NewsPivot.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
private void NewsLink_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Button btn = (Button)sender;
|
||||
|
||||
WebBrowserTask webBrowserTask = new WebBrowserTask();
|
||||
webBrowserTask.Uri = new Uri(this.itemList[(int)btn.Tag].Link, UriKind.Absolute);
|
||||
webBrowserTask.Show();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -24,5 +24,6 @@
|
||||
<TextBlock x:Name="NewsText" Text="(text)" Height="Auto" TextWrapping="Wrap" VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="24" />
|
||||
</ScrollViewer>
|
||||
<Button Name="NewsHome" Content="{Binding Path=LocalizedResources.NewsHomeBtn, Source={StaticResource LocalizedStrings}}" Grid.Row="2" VerticalAlignment="Bottom" HorizontalAlignment="Left" />
|
||||
<Button Name="NewsLink" Content="{Binding Path=LocalizedResources.NewsLinkBtn, Source={StaticResource LocalizedStrings}}" Grid.Row="2" VerticalAlignment="Bottom" HorizontalAlignment="Right" />
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
||||
Reference in New Issue
Block a user