diff --git a/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj b/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj
index 66a85f19..0c4c9e11 100644
--- a/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj
+++ b/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj
@@ -211,6 +211,7 @@
+
diff --git a/CampusAppWP8/CampusAppWP8/Pages/StudentCouncil/StudentCouncilPage.xaml b/CampusAppWP8/CampusAppWP8/Pages/StudentCouncil/StudentCouncilPage.xaml
index a07a7e28..572ca18c 100644
--- a/CampusAppWP8/CampusAppWP8/Pages/StudentCouncil/StudentCouncilPage.xaml
+++ b/CampusAppWP8/CampusAppWP8/Pages/StudentCouncil/StudentCouncilPage.xaml
@@ -30,27 +30,27 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
+
+
-
+
\ No newline at end of file
diff --git a/CampusAppWP8/CampusAppWP8/Pages/StudentCouncil/StudentCouncilPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/StudentCouncil/StudentCouncilPage.xaml.cs
index b52b6661..f6b50393 100644
--- a/CampusAppWP8/CampusAppWP8/Pages/StudentCouncil/StudentCouncilPage.xaml.cs
+++ b/CampusAppWP8/CampusAppWP8/Pages/StudentCouncil/StudentCouncilPage.xaml.cs
@@ -29,11 +29,6 @@ namespace CampusAppWP8.Pages.StudentCouncil
///
private StudentCouncilFeed feed;
- ///
- /// last visible UI element.
- ///
- private UIElement lastOpenUIElem = null;
-
#endregion
#region Constructor
@@ -72,36 +67,6 @@ namespace CampusAppWP8.Pages.StudentCouncil
#endregion
#region private
- ///
- /// Method toggle the Visibility of the Link- and Details-Buttons
- ///
- /// Caller of the function
- /// some EventArgs
- private void ToggleOptions(object sender, RoutedEventArgs e)
- {
- if (this.lastOpenUIElem != null)
- {
- this.lastOpenUIElem.Visibility = Visibility.Collapsed;
- }
-
- FrameworkElement btn = sender as FrameworkElement;
- StackPanel parent = btn.Parent as StackPanel;
-
- if (parent.Children.Count() >= 2)
- {
- if (!parent.Children[1].Equals(this.lastOpenUIElem))
- {
- this.lastOpenUIElem = parent.Children[1];
- this.lastOpenUIElem.Visibility = Visibility.Visible;
- this.ProgressBar.Visibility = Visibility.Collapsed;
- }
- else
- {
- this.lastOpenUIElem = null;
- }
- }
- }
-
///
/// Method initialize the Feed
///
diff --git a/CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs b/CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs
index 3a0c91cb..0ce45221 100644
--- a/CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs
+++ b/CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs
@@ -285,6 +285,15 @@ namespace CampusAppWP8.Resources {
}
}
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die ToggleContent ähnelt.
+ ///
+ public static string ToggleContent {
+ get {
+ return ResourceManager.GetString("ToggleContent", resourceCulture);
+ }
+ }
+
///
/// Sucht eine lokalisierte Zeichenfolge, die http://www.zv.tu-cottbus.de/LSFveranst/LSF4 ähnelt.
///
diff --git a/CampusAppWP8/CampusAppWP8/Resources/Constants.resx b/CampusAppWP8/CampusAppWP8/Resources/Constants.resx
index 2ac2c6d7..3920cc5c 100644
--- a/CampusAppWP8/CampusAppWP8/Resources/Constants.resx
+++ b/CampusAppWP8/CampusAppWP8/Resources/Constants.resx
@@ -213,4 +213,7 @@
/Pages/StudentCouncil/StudentCouncilPage.xaml
+
+ ToggleContent
+
\ No newline at end of file
diff --git a/CampusAppWP8/CampusAppWP8/Utility/Lui/Button/ToggleButton.cs b/CampusAppWP8/CampusAppWP8/Utility/Lui/Button/ToggleButton.cs
new file mode 100644
index 00000000..b59f43ad
--- /dev/null
+++ b/CampusAppWP8/CampusAppWP8/Utility/Lui/Button/ToggleButton.cs
@@ -0,0 +1,257 @@
+//-----------------------------------------------------------------------
+//
+// Company copyright tag.
+//
+// stubbfel
+// 08.07.2013
+//----------------------------------------------------------------------
+namespace CampusAppWP8.Utility.Lui.Button
+{
+ using System.Collections.Generic;
+ using System.Windows;
+ using System.Windows.Controls;
+
+ ///
+ /// This class create an Button which can toggle the Visibility of certain FrameworkElements
+ ///
+ public class ToggleButton : System.Windows.Controls.Button
+ {
+ #region Members
+
+ #region public
+ ///
+ /// Register the ToggleContentTag
+ ///
+ public static readonly DependencyProperty ToggleContentTagProperty = DependencyProperty.Register("ToggleContentTag", typeof(object), typeof(ToggleButton), new PropertyMetadata(false));
+
+ #endregion
+ #region private
+
+ ///
+ /// List of FrameworkElement which can change their Visibility by this button
+ ///
+ private List toggleElements = null;
+
+ ///
+ /// EventHandler of the ToggleButton
+ ///
+ private ToggleButtonHandler eventHandler;
+
+ #endregion
+
+ #endregion
+
+ #region Constructors
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public ToggleButton()
+ : base()
+ {
+ }
+
+ #endregion
+
+ #region Events
+
+ ///
+ /// Delegate for the ToggleButton events
+ ///
+ private delegate void ToggleButtonHandler();
+
+ ///
+ /// The closeButtonEvent
+ ///
+ private static event ToggleButtonHandler CloseButtonEvent;
+ #endregion
+
+ #region Proberties
+
+ ///
+ /// Gets or sets the ToggleContentTag
+ ///
+ public object ToggleContentTag
+ {
+ get { return (object)this.GetValue(ToggleContentTagProperty); }
+ set { this.SetValue(ToggleContentTagProperty, value); }
+ }
+
+ #endregion
+
+ #region Methods
+
+ #region public
+
+ ///
+ /// Method close the ToggleContent of the old ToggleContent and then show the new one
+ ///
+ public void ToggleToggleContent()
+ {
+ if (this.toggleElements != null)
+ {
+ // close the old (other) Button
+ if (CloseButtonEvent != null && !CloseButtonEvent.Equals(this.eventHandler))
+ {
+ CloseButtonEvent();
+ }
+
+ foreach (UIElement elment in this.toggleElements)
+ {
+ this.ToggleToggleContentElement(elment);
+ }
+ }
+ }
+
+ ///
+ /// Method show all Element of the ToggleContent
+ ///
+ public void ShowToggleContent()
+ {
+ if (this.toggleElements != null)
+ {
+ foreach (UIElement elment in this.toggleElements)
+ {
+ this.ShowToggleContentElement(elment);
+ }
+ }
+ }
+
+ ///
+ /// Method show all Element of the ToggleContent
+ ///
+ public void HideToggleContent()
+ {
+ if (this.toggleElements != null)
+ {
+ foreach (UIElement elment in this.toggleElements)
+ {
+ this.HideToggleContentElement(elment);
+ }
+ }
+ }
+ #endregion
+
+ #region protected
+
+ ///
+ /// Overrides the OnClick-Method from button
+ ///
+ ///
+ /// now method toggle the visibility of some FrameWorkElements
+ ///
+ protected override void OnClick()
+ {
+ if (this.toggleElements == null)
+ {
+ this.SetupToggleElements();
+ }
+
+ this.ToggleToggleContent();
+ }
+
+ #endregion
+
+ #region private
+
+ ///
+ /// Method look for some ToggleContent
+ ///
+ private void SetupToggleElements()
+ {
+ this.toggleElements = new List();
+ Panel parent = this.Parent as Panel;
+ if (parent == null)
+ {
+ parent = this.GetFirstParentPanel();
+ }
+
+ foreach (FrameworkElement element in parent.Children)
+ {
+ string elementTag = element.Tag as string;
+ if (elementTag != null && elementTag.Contains(this.ToggleContentTag as string))
+ {
+ this.toggleElements.Add(element);
+ break;
+ }
+ }
+ }
+
+ ///
+ /// Gets the first panel, which is a parent of this button
+ ///
+ /// first panel of the parents
+ private Panel GetFirstParentPanel()
+ {
+ FrameworkElement parentElement = this.Parent as FrameworkElement;
+ Panel parentPanel = parentElement as Panel;
+ while (parentPanel == null)
+ {
+ parentElement = parentElement.Parent as FrameworkElement;
+ if (parentElement == null)
+ {
+ break;
+ }
+
+ parentPanel = parentElement as Panel;
+ }
+
+ return parentPanel;
+ }
+
+ ///
+ /// Method toggle the visibility of a certain element
+ ///
+ /// element of the ToggleContent
+ private void ToggleToggleContentElement(UIElement element)
+ {
+ if (element != null)
+ {
+ if (Visibility.Collapsed.Equals(element.Visibility))
+ {
+ this.ShowToggleContentElement(element);
+ }
+ else
+ {
+ this.HideToggleContentElement(element);
+ }
+ }
+ }
+
+ ///
+ /// Method show the visibility of a certain element
+ ///
+ /// element of the ToggleContent
+ private void ShowToggleContentElement(UIElement element)
+ {
+ if (element != null)
+ {
+ element.Visibility = Visibility.Visible;
+ if (this.eventHandler == null)
+ {
+ this.eventHandler = new ToggleButtonHandler(this.HideToggleContent);
+ CloseButtonEvent += this.eventHandler;
+ }
+ }
+ }
+
+ ///
+ /// Method hide the visibility of a certain element
+ ///
+ /// element of the ToggleContent
+ private void HideToggleContentElement(UIElement element)
+ {
+ if (element != null)
+ {
+ element.Visibility = Visibility.Collapsed;
+ if (this.eventHandler != null)
+ {
+ CloseButtonEvent -= this.eventHandler;
+ this.eventHandler = null;
+ }
+ }
+ }
+ #endregion
+ #endregion
+ }
+}