79 lines
5.5 KiB
XML
79 lines
5.5 KiB
XML
<UserControl x:Class="Intromat.Views.ExplorerView"
|
|
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:viewModels="clr-namespace:Intromat.ViewModels"
|
|
mc:Ignorable="d"
|
|
d:DataContext="{d:DesignInstance {x:Type viewModels:ExplorerViewModel}}"
|
|
d:DesignHeight="450" d:DesignWidth="800">
|
|
<UserControl.Resources>
|
|
<Style x:Key="TreeViewIcon" TargetType="Image">
|
|
<Setter Property="Width" Value="16" />
|
|
<Setter Property="Height" Value="16" />
|
|
<Setter Property="Stretch" Value="Uniform" />
|
|
<Setter Property="VerticalAlignment" Value="Center" />
|
|
<Setter Property="UseLayoutRounding" Value="True" />
|
|
<Setter Property="SnapsToDevicePixels" Value="True" />
|
|
<Setter Property="Margin" Value="2,0,5,0" />
|
|
</Style>
|
|
<ContextMenu x:Key="projectMenu" x:Shared="True">
|
|
<MenuItem x:Name="_newModuleButton" Header="New module..." Icon="{StaticResource ModuleImage}" />
|
|
</ContextMenu>
|
|
<ContextMenu x:Key="moduleMenu" x:Shared="True">
|
|
<MenuItem x:Name="_renameModuleButton" Header="Rename module..." Icon="{StaticResource RenameImage}" />
|
|
<MenuItem x:Name="_deleteModuleButton" Header="Delete module" Icon="{StaticResource DeleteImage}" />
|
|
<MenuItem x:Name="_createModuleFolderButton" Header="Create folder..." Icon="{StaticResource FolderOpenImage}" />
|
|
<MenuItem x:Name="_createModuleFileButton" Header="Create file..." Icon="{StaticResource GraphImage}" />
|
|
</ContextMenu>
|
|
<ContextMenu x:Key="folderMenu" x:Shared="True">
|
|
<MenuItem x:Name="_renameFolderButton" Header="Rename folder..." Icon="{StaticResource RenameImage}" />
|
|
<MenuItem x:Name="_deleteFolderButton" Header="Delete folder" Icon="{StaticResource DeleteImage}" />
|
|
<MenuItem x:Name="_createSubFolderButton" Header="Create folder..." Icon="{StaticResource FolderOpenImage}" />
|
|
<MenuItem x:Name="_createSubFileButton" Header="Create file..." Icon="{StaticResource GraphImage}" />
|
|
</ContextMenu>
|
|
<ContextMenu x:Key="documentMenu" x:Shared="True">
|
|
<MenuItem x:Name="_renameFileButton" Header="Rename file..." Icon="{StaticResource RenameImage}" />
|
|
<MenuItem x:Name="_deleteFileButton" Header="Delete file" Icon="{StaticResource DeleteImage}" />
|
|
</ContextMenu>
|
|
</UserControl.Resources>
|
|
<TreeView x:Name="_treeView">
|
|
<TreeView.Resources>
|
|
<Style TargetType="TreeViewItem" BasedOn="{StaticResource {x:Type TreeViewItem}}">
|
|
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
|
|
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
|
|
</Style>
|
|
<HierarchicalDataTemplate DataType="{x:Type viewModels:ProjectViewModel}" ItemsSource="{Binding Modules}">
|
|
<StackPanel Orientation="Horizontal" Height="20" ContextMenu="{StaticResource projectMenu}">
|
|
<Image Style="{StaticResource TreeViewIcon}" Source="{StaticResource ProjectImageSource}" />
|
|
<TextBlock Text="{Binding Name}" VerticalAlignment="Center" Margin="0,0,2,0" />
|
|
</StackPanel>
|
|
</HierarchicalDataTemplate>
|
|
<HierarchicalDataTemplate DataType="{x:Type viewModels:ModuleViewModel}" ItemsSource="{Binding TreeChildren}">
|
|
<StackPanel Orientation="Horizontal" Height="20" ContextMenu="{StaticResource moduleMenu}">
|
|
<Image Style="{StaticResource TreeViewIcon}" Source="{StaticResource ModuleImageSource}" />
|
|
<TextBlock Text="{Binding Name}" VerticalAlignment="Center" Margin="0,0,2,0" />
|
|
</StackPanel>
|
|
</HierarchicalDataTemplate>
|
|
<HierarchicalDataTemplate DataType="{x:Type viewModels:FolderViewModel}" ItemsSource="{Binding TreeChildren}">
|
|
<StackPanel Orientation="Horizontal" Height="20" ContextMenu="{StaticResource folderMenu}">
|
|
<Image Style="{StaticResource TreeViewIcon}" Source="{StaticResource FolderClosedImageSource}" />
|
|
<TextBlock Text="{Binding Name}" VerticalAlignment="Center" Margin="0,0,2,0" />
|
|
</StackPanel>
|
|
</HierarchicalDataTemplate>
|
|
<DataTemplate DataType="{x:Type viewModels:DocumentViewModel}">
|
|
<StackPanel Orientation="Horizontal" Height="20" ContextMenu="{StaticResource documentMenu}">
|
|
<Image Style="{StaticResource TreeViewIcon}" Source="{StaticResource GraphImageSource}" />
|
|
<TextBlock Text="{Binding Name}" VerticalAlignment="Center" Margin="0,0,2,0" />
|
|
</StackPanel>
|
|
</DataTemplate>
|
|
<DataTemplate DataType="{x:Type viewModels:ShaderFileViewModel}">
|
|
<StackPanel Orientation="Horizontal" Height="20" ContextMenu="{StaticResource documentMenu}">
|
|
<Image Style="{StaticResource TreeViewIcon}" Source="{StaticResource GraphImageSource}" />
|
|
<TextBlock Text="{Binding Name}" VerticalAlignment="Center" Margin="0,0,2,0" />
|
|
</StackPanel>
|
|
</DataTemplate>
|
|
</TreeView.Resources>
|
|
</TreeView>
|
|
</UserControl>
|