Added Clear Conflict action to resolver
[pithos-ms-client] / trunk / Pithos.Client.WPF / FileProperties / ConflictsView.xaml
index ee3ddc1..4cacf2a 100644 (file)
@@ -3,47 +3,63 @@
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:cal="http://www.caliburnproject.org" 
         xmlns:cnv="clr-namespace:Pithos.Client.WPF.Converters"
         xmlns:model="clr-namespace:Pithos.Client.WPF.FileProperties"
-        Title="Conflicts" Height="300" Width="500" x:Name="This"
-               >
+        Title="Conflicts" Height="500" Width="500" x:Name="This" xmlns:my="clr-namespace:Microsoft.Windows.Controls.Core.Converters;assembly=WPFToolkit.Extended" Icon="/PithosPlus;component/Images/Pithos.ico">
     <Window.Resources>
         <ResourceDictionary>
             <ContextMenu  x:Key="RowMenu" DataContext="{Binding PlacementTarget.DataContext, RelativeSource={RelativeSource Self}}">
-            <MenuItem Header="{Binding FilePath}" cal:Message.Attach="[Event MouseLeftButtonUp]=[Action GoToFile($dataContext)]"
-                      cal:Action.TargetWithoutContext="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=DataGrid}, Path=DataContext}"/>
-        </ContextMenu>
-        <Style x:Key="DefaultRowStyle" TargetType="{x:Type DataGridRow}">
-            <Setter Property="ContextMenu" Value="{StaticResource RowMenu}" />
-        </Style>
-                <ResourceDictionary.MergedDictionaries>
+                <MenuItem Header="{Binding FilePath}" cal:Message.Attach="GoToFile"/>
+            </ContextMenu>
+            <ObjectDataProvider x:Key="ActionsList" MethodName="GetValues" ObjectType="{x:Type model:ConflictAction}">
+                <ObjectDataProvider.MethodParameters>
+                    <x:Type TypeName="model:ConflictAction"/>
+                </ObjectDataProvider.MethodParameters>
+            </ObjectDataProvider>
+
+            <Style x:Key="DefaultRowStyle" TargetType="{x:Type DataGridRow}">
+                <Setter Property="ContextMenu" Value="{StaticResource RowMenu}" />
+            </Style>
+            <BooleanToVisibilityConverter x:Key="BoolToVisible" />
+            <my:InverseBoolConverter x:Key="BoolToInvisible" />
+            <ResourceDictionary.MergedDictionaries>
                     <ResourceDictionary Source="..\PithosStyles.xaml" />
                 </ResourceDictionary.MergedDictionaries>
-            </ResourceDictionary>
+
+        </ResourceDictionary>
     </Window.Resources>
+    
     <Grid>
         <Grid.RowDefinitions>
             <RowDefinition />
             <RowDefinition Height="Auto"/>
         </Grid.RowDefinitions>
         
-        <ListBox x:Name="Conflicts" HorizontalContentAlignment="Stretch" Grid.Row="0">
-            <ListBox.ItemTemplate>
-                <DataTemplate>
-                    <Grid>
-                        <Grid.ColumnDefinitions>
-                            <ColumnDefinition />
-                            <ColumnDefinition Width="Auto"/>
-                        </Grid.ColumnDefinitions>
-                        <TextBlock x:Name="FilePath" Text="{Binding FilePath}" Grid.Row="0" Margin="5"/>
-                        <ComboBox x:Name="Action" ItemsSource="{cnv:EnumValues model:ConflictAction}" 
-                                  SelectedValue="{Binding Action}" Grid.Row="1" 
-                                  HorizontalAlignment="Right" 
-                                  HorizontalContentAlignment="Left"
-                                  Width="110" Margin="5" Padding="5,2"
-                                  />
-                    </Grid>
-                </DataTemplate>
-            </ListBox.ItemTemplate>
-        </ListBox>
+        <DataGrid x:Name="Conflicts" HorizontalContentAlignment="Stretch" Grid.Row="0" 
+                  AutoGenerateColumns="false" 
+                  RowStyle="{StaticResource DefaultRowStyle}"
+                  Visibility="{Binding Converter={StaticResource BoolToVisible}, Path=HasConflicts}"
+                  >
+            <DataGrid.Columns>
+                <DataGridTextColumn x:Name="FilePath" Binding="{Binding FilePath}" Header="File" Width="*" IsReadOnly="True" />
+                <DataGridTextColumn x:Name="LocalModified" Binding="{Binding LocalModified}" Header="Local Date" Width="Auto" IsReadOnly="True"/>
+                <DataGridTextColumn x:Name="Reason" Binding="{Binding Reason}" Header="Reason" Width="Auto" IsReadOnly="True"/>
+                <DataGridComboBoxColumn x:Name="Action"  Header="Action" Width="Auto" 
+                                    ItemsSource="{Binding Source={StaticResource ActionsList}}"                                                                                 
+                                    SelectedValueBinding="{Binding Action}" >
+                 <!--   <DataGridComboBoxColumn.CellStyle>
+                        <Style  TargetType="{x:Type DataGridCell}">
+                            <Style.Triggers>
+                                <Trigger Property="IsSelected" Value="True">
+                                    <Setter Property="IsEditing" Value="True" />
+                                </Trigger>
+                            </Style.Triggers>
+                        </Style>
+                    </DataGridComboBoxColumn.CellStyle>-->
+                </DataGridComboBoxColumn>
+            </DataGrid.Columns>
+        </DataGrid>
+        <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" TextAlignment="Center" 
+                   Visibility="{Binding Converter={StaticResource BoolToVisible}, Path=HasNoConflicts}"
+                   FontWeight="Bold">There are no conflicts.</TextBlock>
         <StackPanel Orientation="Horizontal" Grid.Row="2" HorizontalAlignment="Right">
             <Button Name="Apply" Content="OK" Margin="5,5,10,5" Style="{StaticResource ButtonStyle}" IsDefault="False" />
             <Button Name="Cancel" Content="Cancel" Margin="5,5,10,5" Style="{StaticResource ButtonStyle}" IsCancel="True" />