Revision 3f9d3448
b/trunk/Pithos.Client.WPF/FileProperties/ContainerPropertiesView.xaml | ||
---|---|---|
2 | 2 |
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
3 | 3 |
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:cal="http://www.caliburnproject.org" |
4 | 4 |
xmlns:extToolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit/extended" |
5 |
Title="ContainerPropertiesView" Height="500" Width="300"
|
|
5 |
Title="ContainerPropertiesView" Height="507" Width="400"
|
|
6 | 6 |
Icon="/PithosPlus;component/Images/PithosTaskbar.png" |
7 | 7 |
Background="{StaticResource {x:Static SystemColors.ControlBrushKey}}"> |
8 | 8 |
<Window.Resources> |
... | ... | |
70 | 70 |
</Grid> |
71 | 71 |
|
72 | 72 |
</TabItem> |
73 |
<TabItem Header="Metadata"> |
|
74 |
<DataGrid ItemsSource="{Binding Tags}" x:Name="Tags" |
|
75 |
AutoGenerateColumns="False" CanUserAddRows="True" > |
|
76 |
<DataGrid.Columns> |
|
77 |
<DataGridTemplateColumn > |
|
78 |
<DataGridTemplateColumn.CellTemplate> |
|
79 |
<DataTemplate> |
|
80 |
<Button Content=" - " Command="DataGrid.DeleteCommand"/> |
|
81 |
</DataTemplate> |
|
82 |
</DataGridTemplateColumn.CellTemplate> |
|
83 |
</DataGridTemplateColumn> |
|
84 |
<DataGridTextColumn Binding="{Binding Name}" Header="Key" /> |
|
85 |
<DataGridTextColumn Binding="{Binding Value}" Header="Value" /> |
|
86 |
</DataGrid.Columns> |
|
87 |
</DataGrid> |
|
88 |
</TabItem> |
|
73 |
<TabItem Header="Metadata"> |
|
74 |
<StackPanel> |
|
75 |
<StackPanel Orientation="Horizontal"> |
|
76 |
<TextBox x:Name="CurrentTag_Name" Width="145" Margin="5" Grid.Row="6"/> |
|
77 |
<TextBox x:Name="CurrentTag_Value" Width="145" Margin="5" Grid.Row="6"/> |
|
78 |
<Button x:Name="AddTag" Content="Update" Margin="5"/> |
|
79 |
</StackPanel> |
|
80 |
<DataGrid x:Name="Tags" AutoGenerateColumns="False" GridLinesVisibility="None" |
|
81 |
IsReadOnly="False" |
|
82 |
CanUserDeleteRows="True" |
|
83 |
CanUserAddRows="False"> |
|
84 |
<DataGrid.Columns> |
|
85 |
<DataGridTextColumn Binding="{Binding Name}" Header="Key" MinWidth="150" IsReadOnly="True"/> |
|
86 |
<DataGridTextColumn Binding="{Binding Value}" Header="Value" MinWidth="100" IsReadOnly="True"/> |
|
87 |
</DataGrid.Columns> |
|
88 |
</DataGrid> |
|
89 |
<Button x:Name="DeleteTag" Content="Delete" |
|
90 |
Command="DataGrid.DeleteCommand" CommandTarget="{Binding ElementName=Tags}" |
|
91 |
Style="{StaticResource ResourceKey=ButtonStyle}" HorizontalAlignment="Left" /> |
|
92 |
</StackPanel> |
|
93 |
</TabItem> |
|
89 | 94 |
<TabItem Header="Policies"> |
90 | 95 |
|
91 | 96 |
|
b/trunk/Pithos.Client.WPF/FileProperties/ContainerPropertiesViewModel.cs | ||
---|---|---|
283 | 283 |
items.Apply(collection.Add); |
284 | 284 |
} |
285 | 285 |
|
286 |
private MetaValue _currentTag; |
|
287 |
public MetaValue CurrentTag |
|
288 |
{ |
|
289 |
get { return _currentTag; } |
|
290 |
set |
|
291 |
{ |
|
292 |
_currentTag = (value == null) ? new MetaValue() : value.Clone(); |
|
293 |
_currentTag.PropertyChanged += (o, e) => NotifyOfPropertyChange(() => CanAddTag); |
|
294 |
|
|
295 |
NotifyOfPropertyChange(() => CurrentTag); |
|
296 |
NotifyOfPropertyChange(() => CanAddTag); |
|
297 |
} |
|
298 |
} |
|
299 |
|
|
286 | 300 |
private readonly ObservableCollection<MetaValue> _tags; |
287 | 301 |
public ObservableCollection<MetaValue> Tags |
288 | 302 |
{ |
289 | 303 |
get { return _tags; } |
290 | 304 |
} |
291 | 305 |
|
306 |
public bool CanAddTag |
|
307 |
{ |
|
308 |
get { return !String.IsNullOrWhiteSpace(CurrentTag.Name); } |
|
309 |
} |
|
310 |
|
|
311 |
public void AddTag() |
|
312 |
{ |
|
313 |
var existingTag = Tags.FirstOrDefault(tag => tag.Name == CurrentTag.Name); |
|
314 |
if (existingTag == null) |
|
315 |
Tags.Add(CurrentTag.Clone()); |
|
316 |
else |
|
317 |
{ |
|
318 |
existingTag.Value = CurrentTag.Value; |
|
319 |
} |
|
320 |
} |
|
321 |
|
|
292 | 322 |
/* private readonly ObservableCollection<MetaValue> _policies; |
293 | 323 |
public ObservableCollection<MetaValue> Policies |
294 | 324 |
{ |
... | ... | |
333 | 363 |
_tags = new ObservableCollection<MetaValue>(); |
334 | 364 |
_tags.CollectionChanged += (sender, evt) => { TagsChanged = true; }; |
335 | 365 |
|
366 |
CurrentTag=new MetaValue(); |
|
336 | 367 |
/*_policies = new ObservableCollection<MetaValue>(); |
337 | 368 |
_policies.CollectionChanged += (sender, evt) => { PoliciesChanged = true; }; |
338 | 369 |
*/ |
b/trunk/Pithos.Client.WPF/FileProperties/FilePropertiesView.xaml | ||
---|---|---|
94 | 94 |
<TextBox x:Name="CurrentTag_Value" Width="145" Margin="5" Grid.Row="6"/> |
95 | 95 |
<Button x:Name="AddTag" Content="Update" Margin="5"/> |
96 | 96 |
</StackPanel> |
97 |
<DataGrid ItemsSource="{Binding Tags}" x:Name="Tags" |
|
98 |
AutoGenerateColumns="False" GridLinesVisibility="None" |
|
97 |
<DataGrid x:Name="Tags" AutoGenerateColumns="False" GridLinesVisibility="None" |
|
99 | 98 |
IsReadOnly="False" |
100 | 99 |
CanUserDeleteRows="True" |
101 | 100 |
CanUserAddRows="False"> |
Also available in: Unified diff