Skip to content

Commit 664d852

Browse files
committed
add new functions: remove item and remvoe items contain certain keywords
1 parent fd48cd6 commit 664d852

File tree

2 files changed

+72
-16
lines changed

2 files changed

+72
-16
lines changed

src/Senparc.ProjectFileManager/MainWindow.xaml

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -40,20 +40,29 @@
4040
<ColumnDefinition Width="*"></ColumnDefinition>
4141
</Grid.ColumnDefinitions>
4242
<GroupBox Grid.Column="0" Header="Peoject Files" Margin="7,12,0,8" HorizontalAlignment="Left" Width="369">
43-
<ListBox x:Name="lbFiles" VerticalContentAlignment="Center" SelectionChanged="lbFiles_SelectionChanged" SelectionMode="Single"
43+
<Grid>
44+
<Grid.RowDefinitions>
45+
<RowDefinition Height="*"></RowDefinition>
46+
<RowDefinition Height="30"></RowDefinition>
47+
</Grid.RowDefinitions>
48+
<ListBox Grid.Row="0" x:Name="lbFiles" VerticalContentAlignment="Center" SelectionChanged="lbFiles_SelectionChanged" SelectionMode="Single"
4449
ItemsSource="{Binding ProjectFiles,Mode=OneWay}">
45-
<ListBox.ItemTemplate>
46-
<DataTemplate>
47-
<Grid>
48-
<Grid.ColumnDefinitions>
49-
<!--<ColumnDefinition Width="300"></ColumnDefinition>-->
50-
<ColumnDefinition Width="*"></ColumnDefinition>
51-
</Grid.ColumnDefinitions>
52-
<Label Grid.Column="0" Background="LightBlue" Content="{Binding Path=FileName, Mode=TwoWay}"></Label>
53-
</Grid>
54-
</DataTemplate>
55-
</ListBox.ItemTemplate>
56-
</ListBox>
50+
<ListBox.ItemTemplate>
51+
<DataTemplate>
52+
<Grid>
53+
<Grid.ColumnDefinitions>
54+
<ColumnDefinition Width="40"></ColumnDefinition>
55+
<ColumnDefinition Width="*"></ColumnDefinition>
56+
</Grid.ColumnDefinitions>
57+
<Button x:Name="btnRemoveFileItem" Grid.Column="0" Content="" Background="LightCyan" Click="btnRemoveFileItem_Click"></Button>
58+
<Label Grid.Column="1" Background="LightBlue" Content="{Binding Path=FileName, Mode=TwoWay}"></Label>
59+
</Grid>
60+
</DataTemplate>
61+
</ListBox.ItemTemplate>
62+
</ListBox>
63+
<TextBox Grid.Row="1" x:Name="txtRemoveKeywords" Margin="0,5,100,0" Text="Test,Sample"></TextBox>
64+
<Button Grid.Row="1" x:Name="btnRemoveKeywords" Margin="0,5,0,0" Content="Remove" Width="90" HorizontalAlignment="Right" Click="btnRemoveKeywords_Click"></Button>
65+
</Grid>
5766
</GroupBox>
5867
<Label Content="File Path:" Grid.Column="1" HorizontalAlignment="Left" Margin="4,5,0,0" VerticalAlignment="Top"/>
5968
<Label Grid.Column="1" MaxWidth="540" HorizontalAlignment="Left" Margin="74,4,0,0" VerticalAlignment="Top">

src/Senparc.ProjectFileManager/MainWindow.xaml.cs

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -331,16 +331,26 @@ private void menuSaveOne_Click(object sender, RoutedEventArgs e)
331331
MessageBox.Show("Please choose one project!");
332332
}
333333

334-
SelectedFile.Save();
334+
try
335+
{
336+
SelectedFile.Save();
337+
MessageBox.Show($"File saved:\r\n{SelectedFile.FullFilePath}", "Success", MessageBoxButton.OK, MessageBoxImage.Information);
338+
}
339+
catch (Exception ex)
340+
{
341+
MessageBox.Show($@"File save faild:\r\n{SelectedFile.FullFilePath}
342+
343+
{ex.Message}", "Success", MessageBoxButton.OK, MessageBoxImage.Error);
344+
}
335345

336-
MessageBox.Show($"File saved:\r\n{SelectedFile.FullFilePath}");
337346
}
338347

339348
private void menuSaveAll_Click(object sender, RoutedEventArgs e)
340349
{
341350
txtPath.Focus();
342351

343352
int i = 0;
353+
List<string> notSaved = new List<string>();
344354
foreach (var projectFile in ProjectFiles)
345355
{
346356
try
@@ -350,15 +360,52 @@ private void menuSaveAll_Click(object sender, RoutedEventArgs e)
350360
}
351361
catch
352362
{
363+
notSaved.Add(projectFile.FileName);
364+
}
365+
}
366+
var msg = $"All files saved: {i}/{ProjectFiles.Count}";
367+
if (i < ProjectFiles.Count)
368+
{
369+
msg += @"
370+
371+
The following files are not saved:
353372
373+
";
374+
foreach (var file in ProjectFiles)
375+
{
376+
msg += file.FileName + Environment.NewLine;
354377
}
355378
}
356-
MessageBox.Show($"All files saved: {i}/{ProjectFiles.Count}");
379+
380+
MessageBox.Show(msg, "Complete", MessageBoxButton.OK, MessageBoxImage.Information);
357381
}
358382

359383

384+
360385
#endregion
361386

387+
private void btnRemoveKeywords_Click(object sender, RoutedEventArgs e)
388+
{
389+
txtRemoveKeywords.Text.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries)
390+
.ToList()
391+
.ForEach(kw =>
392+
{
393+
var keyword = kw.Trim();
394+
if (keyword.Length == 0)
395+
{
396+
return;
397+
}
362398

399+
var tobeRemvoe = ProjectFiles.Where(z => z.FileName.Contains(keyword, StringComparison.OrdinalIgnoreCase)).ToList();
400+
tobeRemvoe.ForEach(z => ProjectFiles.Remove(z));
401+
});
402+
}
403+
404+
private void btnRemoveFileItem_Click(object sender, RoutedEventArgs e)
405+
{
406+
var propertyGroup = (PropertyGroup)((Button)e.OriginalSource).DataContext;
407+
ProjectFiles.Remove(propertyGroup);
408+
e.Handled = true;
409+
}
363410
}
364411
}

0 commit comments

Comments
 (0)