Skip to content

Commit bb1304b

Browse files
committed
Work on UI
1 parent ed01192 commit bb1304b

File tree

3 files changed

+120
-26
lines changed

3 files changed

+120
-26
lines changed

SmartImage.Lib 3/SearchClient.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -239,9 +239,10 @@ public static IReadOnlyList<SearchResultItem> Optimize(IEnumerable<SearchResultI
239239
.ToArray();
240240

241241
try {
242-
var c = items.Where(r => r.Root.Engine.EngineOption == SearchEngineOptions.TraceMoe
243-
/*&& r.Similarity <= TraceMoeEngine.FILTER_THRESHOLD*/);
244-
items = items.Except(c).ToArray();
242+
/*var c = items.Where(r => r.Root.Engine.EngineOption == SearchEngineOptions.TraceMoe
243+
/*&& r.Similarity <= TraceMoeEngine.FILTER_THRESHOLD#1#);
244+
items = items.Except(c).ToArray();*/
245+
245246
}
246247
catch (Exception e) {
247248
Logger.LogError("{Error}", e.Message);

SmartImage.UI/MainWindow.xaml

Lines changed: 55 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,31 +3,65 @@
33
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
44
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
55
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
6-
xmlns:local="clr-namespace:SmartImage.UI" xmlns:results="clr-namespace:SmartImage.Lib.Results;assembly=SmartImage.Lib" d:DataContext="{d:DesignInstance Type=results:SearchResult}"
6+
xmlns:local="clr-namespace:SmartImage.UI"
7+
xmlns:results="clr-namespace:SmartImage.Lib.Results;assembly=SmartImage.Lib"
8+
xmlns:ds="clr-namespace:SmartImage.Lib;assembly=SmartImage.Lib"
79
mc:Ignorable="d"
810
Title="MainWindow" Height="450" Width="800">
11+
<Window.Resources>
12+
<ObjectDataProvider x:Key="Lv_SrcResults" ObjectType="{x:Type results:SearchResult}" />
13+
</Window.Resources>
14+
915
<Grid>
10-
<TextBox x:Name="Tb_Input" HorizontalAlignment="Left" Margin="10,34,0,0"
16+
<TextBox x:Name="Tb_Input" HorizontalAlignment="Left" Margin="10,34,0,0"
1117
TextWrapping="Wrap" VerticalAlignment="Top" Width="300" Height="20" TextChanged="Tb_Input_TextChanged"
12-
AllowDrop="True" Drop="Tb_Input_OnDrop" PreviewDrop="Tb_Input_Drop" PreviewDragOver="Tb_Input_DragOver"/>
13-
<Button x:Name="Btn_Run" Content="Run" HorizontalAlignment="Left" Margin="315,34,0,0" VerticalAlignment="Top" Width="40" Click="Btn_Run_Click"/>
14-
<Button x:Name="Btn_Browse" Content="Browse" HorizontalAlignment="Left" Margin="360,34,0,0" VerticalAlignment="Top" Width="50"/>
15-
<ListBox x:Name="Lb_Res" Height="NaN" Margin="0,256,0,0" ItemsSource="{Binding Results}">
16-
<ListBox.ItemTemplate>
17-
<DataTemplate>
18-
<StackPanel>
19-
<TextBlock Text="{Binding Path=Url}" />
20-
<TextBlock Text="{Binding Path=Description}" />
21-
<TextBlock Text="{Binding Path=Source}" />
22-
</StackPanel>
23-
</DataTemplate>
24-
</ListBox.ItemTemplate>
25-
</ListBox>
26-
<Image x:Name="Img_Query" HorizontalAlignment="Right" Height="120" Margin="0,10,10,0" VerticalAlignment="Top" Width="200"/>
27-
<Button x:Name="Btn_Clear" Content="Clear" HorizontalAlignment="Left" Margin="315,59,0,0" VerticalAlignment="Top" Width="40" Click="Btn_Clear_Click"/>
28-
<Label x:Name="Lbl_Input" Content="Input" HorizontalAlignment="Left" Margin="10,3,0,0" VerticalAlignment="Top" FontWeight="Bold"/>
29-
<ProgressBar x:Name="Pbr_Input" HorizontalAlignment="Left" Height="10" Margin="10,59,0,0" VerticalAlignment="Top" Width="100"/>
18+
AllowDrop="True" Drop="Tb_Input_OnDrop" PreviewDrop="Tb_Input_Drop"
19+
PreviewDragOver="Tb_Input_DragOver" />
20+
<Button x:Name="Btn_Run" Content="Run" HorizontalAlignment="Left" Margin="315,34,0,0" VerticalAlignment="Top"
21+
Width="40" Click="Btn_Run_Click" />
22+
<Button x:Name="Btn_Browse" Content="Browse" HorizontalAlignment="Left" Margin="360,34,0,0"
23+
VerticalAlignment="Top" Width="50" />
24+
<Image x:Name="Img_Query" HorizontalAlignment="Right" Height="120" Margin="0,10,10,0" VerticalAlignment="Top"
25+
Width="200" />
26+
<Button x:Name="Btn_Clear" Content="Clear" HorizontalAlignment="Left" Margin="315,59,0,0"
27+
VerticalAlignment="Top" Width="40" Click="Btn_Clear_Click" />
28+
<Label x:Name="Lbl_Input" Content="Input" HorizontalAlignment="Left" Margin="10,3,0,0" VerticalAlignment="Top"
29+
FontWeight="Bold" />
30+
<ProgressBar x:Name="Pbr_Input" HorizontalAlignment="Left" Height="10" Margin="10,59,0,0"
31+
VerticalAlignment="Top" Width="100" />
32+
<ListView x:Name="Lv_Results" ItemsSource="{Binding Source={StaticResource Lv_SrcResults}}" Margin="0,298,0,0">
33+
<ListView.ItemContainerStyle>
34+
<Style TargetType="ListViewItem">
35+
<EventSetter Event="Selected" Handler="EventSetter_OnHandler" />
36+
</Style>
37+
</ListView.ItemContainerStyle>
38+
<ListView.View>
39+
40+
<GridView AllowsColumnReorder="true" ColumnHeaderToolTip="">
41+
42+
<GridViewColumn DisplayMemberBinding="{Binding Path=Engine.Name}" Header="Name" Width="100"/>
43+
44+
<GridViewColumn DisplayMemberBinding="{Binding Path=Status}" Header="Status" Width="100">
45+
<!--<GridViewColumnHeader>
46+
Last Name
47+
<GridViewColumnHeader.ContextMenu>
48+
<ContextMenu MenuItem.Click="LastNameCM_OnClick" Name="LastNameCM">
49+
<MenuItem Header="Ascending" />
50+
<MenuItem Header="Descending" />
51+
</ContextMenu>
52+
</GridViewColumnHeader.ContextMenu>
53+
</GridViewColumnHeader>-->
54+
</GridViewColumn>
55+
56+
<!--
57+
<GridViewColumn DisplayMemberBinding="{Binding Path=}"
58+
Width="100" />-->
59+
</GridView>
60+
61+
</ListView.View>
62+
</ListView>
63+
<TreeView x:Name="Tv_Results" Margin="0,103,0,141" ItemsSource="{Binding Source={StaticResource Lv_SrcResults}}"/>
3064

3165
</Grid>
3266

33-
</Window>
67+
</Window>

SmartImage.UI/MainWindow.xaml.cs

Lines changed: 61 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
using System;
22
using System.Collections.Generic;
33
using System.Collections.ObjectModel;
4+
using System.Diagnostics;
5+
using System.Drawing;
46
using System.Linq;
57
using System.Text;
8+
using System.Threading;
69
using System.Threading.Tasks;
710
using System.Windows;
811
using System.Windows.Controls;
@@ -16,6 +19,7 @@
1619
using System.Windows.Shapes;
1720
using SmartImage.Lib;
1821
using SmartImage.Lib.Results;
22+
using Size = System.Windows.Size;
1923

2024
namespace SmartImage.UI;
2125

@@ -34,7 +38,21 @@ public MainWindow()
3438

3539
m_sc.OnResult += (sender, result) =>
3640
{
37-
Results.Add(result);
41+
ListViewItem l = new ListViewItem();
42+
43+
Lv_Results.Items.Add(result);
44+
45+
MenuItem m = new MenuItem()
46+
{
47+
Header = $"{result.Engine.Name}",
48+
49+
};
50+
51+
foreach (SearchResultItem searchResultItem in result.Results) {
52+
m.Items.Add(searchResultItem);
53+
}
54+
55+
Tv_Results.Items.Add(m);
3856
};
3957

4058
/*Binding binding = new Binding();
@@ -44,13 +62,24 @@ public MainWindow()
4462
4563
// Setup binding:
4664
BindingOperations.SetBinding(this.Lb_Res, ListBox.ItemsSourceProperty, binding);*/
65+
66+
}
67+
68+
private void ListViewItem_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
69+
{
70+
var item = sender as ListViewItem;
71+
72+
if (item != null && item.IsSelected) {
73+
//Do your stuff
74+
Debug.WriteLine($"{item}");
75+
}
4776
}
4877

4978
private SearchClient m_sc;
5079
private SearchQuery m_query;
5180
private ResultItem m_result;
5281

53-
public static ObservableCollection<SearchResult> Results { get; set; } = new ObservableCollection<SearchResult>();
82+
public ObservableCollection<SearchResult> Lv_SrcResults { get; set; } = new ObservableCollection<SearchResult>();
5483

5584
private void Tb_Input_TextChanged(object sender, TextChangedEventArgs e) { }
5685

@@ -104,4 +133,34 @@ private async void Btn_Run_Click(object sender, RoutedEventArgs e)
104133
// Lb_Res.Items[0] = new Image();
105134
await m_sc.RunSearchAsync(m_query);
106135
}
136+
137+
private void EventSetter_OnHandler(object sender, RoutedEventArgs e)
138+
{
139+
Debug.WriteLine($"{e.Source} {e.OriginalSource} {e.RoutedEvent.Name}");
140+
141+
var sr = ((ListViewItem) e.Source).Content as SearchResult;
142+
143+
ThreadPool.QueueUserWorkItem((x) =>
144+
{
145+
Debug.WriteLine("queue");
146+
for (int i = 0; i < sr.Results.Count; i++) {
147+
var task = sr.Results[i].GetUniAsync();
148+
task.Wait();
149+
150+
if (task.Result) {
151+
var u = sr.Results[i].Uni;
152+
Debug.WriteLine($"{u}");
153+
}
154+
155+
Debug.WriteLine($"{i}/{sr.Results.Count} {sr.Engine.Name}");
156+
}
157+
});
158+
}
159+
}
160+
161+
public class ListViewResult
162+
{
163+
public string Name { get; set; }
164+
165+
public SearchResult Result { get; set; }
107166
}

0 commit comments

Comments
 (0)