You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

132 lines
6.8 KiB

<Window x:Class="vues.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:vues"
xmlns:bib="clr-namespace:notre_bibliotheque;assembly=notre_bibliotheque"
xmlns:system="clr-namespace:System;assembly=mscorlib"
mc:Ignorable="d"
Title="MainWindow" Height="470" Width="820" Closed="SauvegarderALaFermeture">
<Window.Resources>
<!-- Permet de récupérer toutes les valeurs de l'énumeration ValeurTri-->
<ObjectDataProvider x:Key="EnumTri" ObjectType="{x:Type system:Enum}" MethodName="GetValues">
<ObjectDataProvider.MethodParameters>
<x:Type Type="bib:ValeurTri"/>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Window.Resources>
<DockPanel>
<!-- <DockPanel HorizontalAlignment="Left" MinWidth="120"> -->
<Menu Grid.Column="0" Background="white" DockPanel.Dock="Top" Padding="4">
<!--
le bouton connexion va permettre à l'utilisateur soit de se connecter, soit d'acceder
au mode administrateur si il en a l'autorisation
-->
<MenuItem Header="_Connexion">
<MenuItem Header="Se C_onnecter" Click="SeConnecter_Click"/>
<Separator/>
<MenuItem Header="Se _Déconnecter" Click="Deconnexion_Click"/>
</MenuItem>
<!--
le bouton langage va permettre à l'utilisateur d'ajouter, modifier ou supprimer un langage
cliquer sur l'un des trois ouvre une nouvelle fenetre
ce bouton n'est visible que si l'utilisateur est connecté et sous mode administrateur
-->
<MenuItem Header="_Langages" x:Name="boutonLangages" IsEnabled="False">
<MenuItem Header="_Ajouter" Click="NouveauLangage_Click"/>
<MenuItem Name="ModifierLangageMenu" Header="_Modifier" Click="ModifierLangage_Click"
IsEnabled="{Binding IsASelectedLanguage}"/>
<MenuItem Name="SupprimerLangageMenu" Header="_Supprimer" Click="SupprimerLangage_Click"
IsEnabled="{Binding IsASelectedLanguage}"/>
</MenuItem>
</Menu>
<DockPanel DockPanel.Dock="Left">
<!--
Ce DockPanel contient une ComboBox qui va servir à choisir le mode de tri
des langages (nom, date, génération, favoris)
-->
<ComboBox x:Name="ComboTri" DockPanel.Dock="Top" ItemsSource="{Binding Source={StaticResource EnumTri}}"
SelectedItem="{Binding ItemsLangages.Filtre}" Background="White">
</ComboBox>
<!--
Cette ListBox contiend tout les langages recencés par le logiciel.
C'est la ListBox qui a été retenue car elle permet une gestion
simple de l'affichage, récupération simple des données sauvgardées,
ainsi qu'une récupération simple des données séléctionées par
l'utilisateur (le langage).
Cette ListBox sera placé à gauche de l'application grâce au DockPanel
qui occupe l'ensemble de le fenêtre. Elle occupera aussi toute la
hauteur de la fenêtre (mode Strech)
-->
<ListBox VerticalAlignment="Stretch" Background="black" x:Name="MasterDesLangages" MaxWidth="150" MinWidth="20" Padding="3,1"
SelectedItem="{Binding ItemsLangages.ItemCourant}" ItemsSource="{Binding ItemsLangages.LesItems}"
SelectionChanged="MasterDesLangages_SelectionChanged">
<ListBox.ItemTemplate>
<!--
Ce DataTemplate permet de controller l'affichage du
langage dans la ListBox et n'affiche que le nom du langage
-->
<DataTemplate>
<Border Background="white" MinWidth="90" MinHeight="30" CornerRadius="10">
<TextBlock Text="{Binding Nom}" FontWeight="Medium" FontSize="15" Foreground="Orange" Padding="2"
VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</DockPanel>
<!--
Ici, on a choisi d'uttiliser un DockPanel. En effet, le DocPanel nous permet
de projeter une barre de saisie en haut de la fenêtre et permet aux informations
du langage sélectioné d'occuper le reste entier de la fenêtre, ce qui n'aurais
pas été paussible avec un StackPanel.
-->
<DockPanel>
<!--
cette grid permet de placer le nom de l'application en haut à droite
ainsi que le témoin de connexion.
-->
<Grid DockPanel.Dock="Top" Background="black">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Padding="25,10" TextAlignment="Right" Text="PRO LANG" Foreground="Orange" FontSize="28" FontWeight="DemiBold"/>
<Border Grid.Row="1" HorizontalAlignment="Right" Height="25" Margin="0,5,25,5" Padding="2"
CornerRadius="10" Background="orange" Width="120">
<DockPanel>
<Image DockPanel.Dock="Left" Source="/images/connecter.png"/>
<TextBlock x:Name="temoinID" Text="{Binding Identifiant, FallbackValue=Non connecté}" FontWeight="Medium"
Padding="3" Foreground="white" HorizontalAlignment="Center"/>
</DockPanel>
</Border>
</Grid>
<!--
le contentcontrol va permettre de garder la structure de la MainWindow tout en changeant
son contennu principale facilement en fonctions des actions de l'utilisateur
-->
<ContentControl x:Name="detail">
<local:ConnexionUC/>
</ContentControl>
</DockPanel>
</DockPanel>
</Window>