-
-
Notifications
You must be signed in to change notification settings - Fork 143
/
FunctionPaneView.xaml
110 lines (106 loc) · 6.49 KB
/
FunctionPaneView.xaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<controls:ZoomableUserControl x:Class="DaxStudio.UI.Views.FunctionPaneView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:cal="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro.Platform"
xmlns:dd="clr-namespace:GongSolutions.Wpf.DragDrop;assembly=GongSolutions.Wpf.DragDrop"
xmlns:fa="http://schemas.fontawesome.io/icons/"
xmlns:conv="clr-namespace:DaxStudio.UI.Converters"
xmlns:trig="clr-namespace:DaxStudio.UI.Triggers"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:controls="clr-namespace:DaxStudio.UI.Controls"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300" >
<UserControl.Resources>
<ResourceDictionary>
<BitmapImage x:Key="FunctionGroup" UriSource="pack://application:,,,/DaxStudio.UI;component/images/Folder.ico"/>
<BitmapImage x:Key="Function" UriSource="pack://application:,,,/DaxStudio.UI;component/images/Metadata/Function.png" />
<BooleanToVisibilityConverter x:Key="BoolToVisibilityConverter"/>
<conv:MaxMultiConverter x:Key="MaxMultiConverter" />
<ResourceDictionary.MergedDictionaries>
<!--<ResourceDictionary Source="pack://application:,,,/DaxStudio.UI;Component/Resources/Styles/SearchBox.xaml"/>-->
<ResourceDictionary Source="pack://application:,,,/DaxStudio.UI;Component/Resources/Styles/MetaDataPaneViewStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
<Grid >
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!-- Search Box -->
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<fa:ImageAwesome Icon="Search" Foreground="Gray" Height="15"/>
<TextBox Name="SearchCriteria" Margin="3" Padding="2" Grid.Column="1">
<i:Interaction.Triggers>
<trig:InputBindingTrigger>
<trig:InputBindingTrigger.InputBinding>
<KeyBinding Key="Escape"/>
</trig:InputBindingTrigger.InputBinding>
<cal:ActionMessage MethodName="ClearSearchCriteria"/>
</trig:InputBindingTrigger>
</i:Interaction.Triggers>
</TextBox>
</Grid>
<Button x:Name="ClearSearchCriteria" Grid.Row="0"
HorizontalAlignment="Right"
Background="Transparent"
BorderThickness="0"
Margin="5"
Visibility="{Binding Path=HasSearchCriteria, Converter={StaticResource BoolToVisibilityConverter}}">
<fa:FontAwesome Icon="Times" Foreground="DimGray"/>
</Button>
<!-- TreeView -->
<controls:TreeViewEx Grid.Row="1" x:Name="FunctionGroups" Height="Auto" ItemsSource="{Binding FunctionGroups}"
Style="{StaticResource ResourceKey=MetadataPaneViewStyle}"
dd:DragDrop.IsDragSource="True"
dd:DragDrop.IsDropTarget="False"
dd:DragDrop.DragHandler="{Binding}"
cal:Message.Attach="[Event MouseDoubleClick] = [Action MouseDoubleClick($this.SelectedItem,$eventArgs)]; [Event KeyUp] = [Action MetadataKeyUp($this.SelectedItem, $eventArgs)]"
>
<!--" dd:DragDrop.DragAdornerTemplate="{StaticResource DragAdorner}">>-->
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<!-- FunctionGroup Template -->
<StackPanel Orientation="Horizontal">
<Image Source="{StaticResource FunctionGroup}" Margin="2,1,5,1"/>
<TextBlock Text="{Binding Caption}" />
</StackPanel>
<!-- Function Template -->
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Tag="{Binding DataContext, ElementName=FunctionGroups}">
<Image Source="{StaticResource Function}" Margin="2,1,5,1" />
<TextBlock Text="{Binding Caption}" >
<TextBlock.ToolTip>
<!-- Function Tooltip -->
<StackPanel x:Name="FunctionTooltip" MaxWidth="750" >
<StackPanel Orientation="Horizontal">
<Image Source="{StaticResource Function}" Margin="2,1,5,1" />
<TextBlock Text="{Binding Caption}" FontWeight="Bold"/>
</StackPanel>
<TextBlock FontFamily="Courier New" Text="{Binding DaxName}" x:Name="DaxName"/>
<TextBlock TextWrapping="Wrap" Text="{Binding Description}" />
</StackPanel>
</TextBlock.ToolTip>
</TextBlock>
<StackPanel.ContextMenu>
<ContextMenu cal:Action.TargetWithoutContext="{Binding Path=PlacementTarget.Tag, RelativeSource={RelativeSource Self}}">
<MenuItem Header="Open in Dax.Guide"
cal:Message.Attach="[Event Click] = [Action LaunchDaxGuide($dataContext)]">
</MenuItem>
</ContextMenu>
</StackPanel.ContextMenu>
</StackPanel>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</controls:TreeViewEx>
</Grid>
</controls:ZoomableUserControl>