Fixed AvalonDock close tools crash, added Block Output Preview pane
This commit is contained in:
parent
0eafd59e79
commit
e3505b3575
|
@ -85,25 +85,11 @@
|
|||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="PresentationFramework" />
|
||||
<Reference Include="WPFToolkit">
|
||||
<HintPath>..\packages\WPFToolkit.3.5.50211.1\lib\WPFToolkit.dll</HintPath>
|
||||
<HintPath>bin\Debug\WPFToolkit.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Xceed.Wpf.AvalonDock">
|
||||
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Aero">
|
||||
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.Aero.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Expression">
|
||||
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.Expression.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Metro">
|
||||
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.Metro.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Xceed.Wpf.AvalonDock.Themes.VS2010">
|
||||
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.VS2010.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Xceed.Wpf.AvalonDock.Themes.VS2013">
|
||||
<HintPath>.\Xceed.Wpf.AvalonDock.Themes.VS2013.dll</HintPath>
|
||||
<Reference Include="Xceed.Wpf.AvalonDock, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>.\Xceed.Wpf.AvalonDock.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Xceed.Wpf.Toolkit, Version=2.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
|
@ -189,7 +175,7 @@
|
|||
<Compile Include="Utilities\BlockGroupMapper.cs" />
|
||||
<Compile Include="Utilities\LineReader.cs" />
|
||||
<Compile Include="ViewModels\AvalonDockWorkspaceViewModel.cs" />
|
||||
<Compile Include="ViewModels\BlockGroupBrowserViewModel.cs" />
|
||||
<Compile Include="ViewModels\ToolPanes\BlockGroupBrowserViewModel.cs" />
|
||||
<Compile Include="ViewModels\FiltrationViewModelBase.cs" />
|
||||
<Compile Include="ViewModels\IDocument.cs" />
|
||||
<Compile Include="ViewModels\IItemFilterScriptViewModelFactory.cs" />
|
||||
|
@ -197,11 +183,12 @@
|
|||
<Compile Include="ViewModels\ItemFilterBlockGroupViewModel.cs" />
|
||||
<Compile Include="ViewModels\ItemFilterBlockViewModel.cs" />
|
||||
<Compile Include="ViewModels\ItemFilterScriptViewModel.cs" />
|
||||
<Compile Include="ViewModels\PaneViewModel.cs" />
|
||||
<Compile Include="ViewModels\ToolPanes\BlockOutputPreviewViewModel.cs" />
|
||||
<Compile Include="ViewModels\ToolPanes\PaneViewModel.cs" />
|
||||
<Compile Include="ViewModels\ReplaceColorsViewModel.cs" />
|
||||
<Compile Include="ViewModels\SectionBrowserViewModel.cs" />
|
||||
<Compile Include="ViewModels\ToolPanes\SectionBrowserViewModel.cs" />
|
||||
<Compile Include="ViewModels\StartPageViewModel.cs" />
|
||||
<Compile Include="ViewModels\ToolViewModel.cs" />
|
||||
<Compile Include="ViewModels\ToolPanes\ToolViewModel.cs" />
|
||||
<Compile Include="Views\AttachedProperties\SelectingItemAttachedProperty.cs" />
|
||||
<Compile Include="Views\AvalonDock\AvalonDockWorkspaceView.xaml.cs">
|
||||
<DependentUpon>AvalonDockWorkspaceView.xaml</DependentUpon>
|
||||
|
@ -237,6 +224,9 @@
|
|||
<Compile Include="Views\ReplaceColorsWindow.xaml.cs">
|
||||
<DependentUpon>ReplaceColorsWindow.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\ToolPanes\BlockOutputPreviewView.xaml.cs">
|
||||
<DependentUpon>BlockOutputPreviewView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\ToolPanes\SectionBrowserView.xaml.cs">
|
||||
<DependentUpon>SectionBrowserView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
|
@ -281,6 +271,10 @@
|
|||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Views\ToolPanes\BlockOutputPreviewView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Views\ToolPanes\SectionBrowserView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
|
@ -390,6 +384,7 @@
|
|||
<Resource Include="Resources\Icons\clear_filter_icon.png" />
|
||||
<Resource Include="Resources\Icons\filter_icon.png" />
|
||||
<Resource Include="Resources\Icons\show_advanced_icon.png" />
|
||||
<Resource Include="Resources\Icons\block_output_preview_icon.png" />
|
||||
<Content Include="Resources\ItemBaseTypes.txt">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 188 B |
|
@ -1,6 +1,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using Filtration.ViewModels.ToolPanes;
|
||||
using GalaSoft.MvvmLight.Messaging;
|
||||
|
||||
namespace Filtration.ViewModels
|
||||
|
@ -10,6 +11,9 @@ namespace Filtration.ViewModels
|
|||
event EventHandler ActiveDocumentChanged;
|
||||
IDocument ActiveDocument { get; set; }
|
||||
IItemFilterScriptViewModel ActiveScriptViewModel { get; }
|
||||
ISectionBrowserViewModel SectionBrowserViewModel { get; }
|
||||
IBlockGroupBrowserViewModel BlockGroupBrowserViewModel { get; }
|
||||
IBlockOutputPreviewViewModel BlockOutputPreviewViewModel { get; }
|
||||
void AddDocument(IDocument document);
|
||||
void CloseDocument(IDocument document);
|
||||
void SwitchActiveDocument(IDocument document);
|
||||
|
@ -19,6 +23,7 @@ namespace Filtration.ViewModels
|
|||
{
|
||||
private readonly ISectionBrowserViewModel _sectionBrowserViewModel;
|
||||
private readonly IBlockGroupBrowserViewModel _blockGroupBrowserViewModel;
|
||||
private readonly IBlockOutputPreviewViewModel _blockOutputPreviewViewModel;
|
||||
|
||||
private IDocument _activeDocument;
|
||||
private IItemFilterScriptViewModel _activeScriptViewModel;
|
||||
|
@ -26,10 +31,12 @@ namespace Filtration.ViewModels
|
|||
|
||||
public AvalonDockWorkspaceViewModel(ISectionBrowserViewModel sectionBrowserViewModel,
|
||||
IBlockGroupBrowserViewModel blockGroupBrowserViewModel,
|
||||
IStartPageViewModel startPageViewModel)
|
||||
IStartPageViewModel startPageViewModel,
|
||||
IBlockOutputPreviewViewModel blockOutputPreviewViewModel)
|
||||
{
|
||||
_sectionBrowserViewModel = sectionBrowserViewModel;
|
||||
_blockGroupBrowserViewModel = blockGroupBrowserViewModel;
|
||||
_blockOutputPreviewViewModel = blockOutputPreviewViewModel;
|
||||
|
||||
_sectionBrowserViewModel.Initialise(this);
|
||||
_blockGroupBrowserViewModel.Initialise(this);
|
||||
|
@ -76,18 +83,33 @@ namespace Filtration.ViewModels
|
|||
get { return _activeScriptViewModel; }
|
||||
}
|
||||
|
||||
public IBlockGroupBrowserViewModel BlockGroupBrowserViewModel
|
||||
{
|
||||
get { return _blockGroupBrowserViewModel; }
|
||||
}
|
||||
|
||||
public IBlockOutputPreviewViewModel BlockOutputPreviewViewModel
|
||||
{
|
||||
get { return _blockOutputPreviewViewModel; }
|
||||
}
|
||||
|
||||
public ISectionBrowserViewModel SectionBrowserViewModel
|
||||
{
|
||||
get { return _sectionBrowserViewModel; }
|
||||
}
|
||||
|
||||
private List<IToolViewModel> _tools;
|
||||
|
||||
public IEnumerable<IToolViewModel> Tools
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_tools == null)
|
||||
return _tools ?? (_tools = new List<IToolViewModel>
|
||||
{
|
||||
_tools = new List<IToolViewModel> { _sectionBrowserViewModel, _blockGroupBrowserViewModel };
|
||||
}
|
||||
|
||||
return _tools;
|
||||
_sectionBrowserViewModel,
|
||||
_blockGroupBrowserViewModel,
|
||||
_blockOutputPreviewViewModel
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -95,7 +117,7 @@ namespace Filtration.ViewModels
|
|||
{
|
||||
if (document.IsScript)
|
||||
{
|
||||
_activeScriptViewModel = (IItemFilterScriptViewModel)document;
|
||||
_activeScriptViewModel = (IItemFilterScriptViewModel) document;
|
||||
}
|
||||
|
||||
OpenDocuments.Add(document);
|
||||
|
|
|
@ -11,6 +11,7 @@ using Castle.Core.Internal;
|
|||
using Filtration.Models;
|
||||
using Filtration.Services;
|
||||
using Filtration.Translators;
|
||||
using Filtration.ViewModels.ToolPanes;
|
||||
using GalaSoft.MvvmLight.CommandWpf;
|
||||
using GalaSoft.MvvmLight.Messaging;
|
||||
using Clipboard = System.Windows.Clipboard;
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using GalaSoft.MvvmLight.CommandWpf;
|
||||
using Filtration.ViewModels.ToolPanes;
|
||||
using GalaSoft.MvvmLight.CommandWpf;
|
||||
using GalaSoft.MvvmLight.Messaging;
|
||||
|
||||
namespace Filtration.ViewModels
|
||||
|
|
|
@ -0,0 +1,108 @@
|
|||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Windows.Media.Imaging;
|
||||
using Filtration.Utilities;
|
||||
using GalaSoft.MvvmLight.Command;
|
||||
using GalaSoft.MvvmLight.Messaging;
|
||||
|
||||
namespace Filtration.ViewModels.ToolPanes
|
||||
{
|
||||
internal interface IBlockGroupBrowserViewModel : IToolViewModel
|
||||
{
|
||||
void ClearDown();
|
||||
bool IsVisible { get; set; }
|
||||
}
|
||||
|
||||
internal class BlockGroupBrowserViewModel : ToolViewModel, IBlockGroupBrowserViewModel
|
||||
{
|
||||
private readonly IBlockGroupMapper _blockGroupMapper;
|
||||
private ObservableCollection<ItemFilterBlockGroupViewModel> _blockGroupViewModelViewModels;
|
||||
private ItemFilterBlockGroupViewModel _selectedBlockGroupViewModel;
|
||||
|
||||
public BlockGroupBrowserViewModel(IBlockGroupMapper blockGroupMapper) : base("Block Group Browser")
|
||||
{
|
||||
_blockGroupMapper = blockGroupMapper;
|
||||
FilterToSelectedBlockGroupCommand = new RelayCommand(OnFilterToSelectedBlockGroupCommand, () => SelectedBlockGroupViewModel != null);
|
||||
|
||||
ContentId = ToolContentId;
|
||||
var icon = new BitmapImage();
|
||||
icon.BeginInit();
|
||||
icon.UriSource = new Uri("pack://application:,,,/Filtration;component/Resources/Icons/block_group_browser_icon.png");
|
||||
icon.EndInit();
|
||||
IconSource = icon;
|
||||
Messenger.Default.Register<NotificationMessage<bool>>(this, message =>
|
||||
{
|
||||
switch (message.Notification)
|
||||
{
|
||||
case "ShowAdvancedToggled":
|
||||
{
|
||||
OnShowAdvancedToggled(message.Content);
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public const string ToolContentId = "BlockGroupBrowserTool";
|
||||
|
||||
protected override void OnActiveDocumentChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (AvalonDockWorkspaceViewModel.ActiveScriptViewModel != null && AvalonDockWorkspaceViewModel.ActiveDocument.IsScript)
|
||||
{
|
||||
BlockGroupViewModels = RebuildBlockGroupViewModels(AvalonDockWorkspaceViewModel.ActiveScriptViewModel.ShowAdvanced);
|
||||
}
|
||||
else
|
||||
{
|
||||
ClearDown();
|
||||
}
|
||||
}
|
||||
|
||||
public ItemFilterBlockGroupViewModel SelectedBlockGroupViewModel
|
||||
{
|
||||
get { return _selectedBlockGroupViewModel; }
|
||||
set
|
||||
{
|
||||
_selectedBlockGroupViewModel = value;
|
||||
RaisePropertyChanged();
|
||||
FilterToSelectedBlockGroupCommand.RaiseCanExecuteChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public RelayCommand FilterToSelectedBlockGroupCommand { get; private set; }
|
||||
|
||||
public ObservableCollection<ItemFilterBlockGroupViewModel> BlockGroupViewModels
|
||||
{
|
||||
get { return _blockGroupViewModelViewModels; }
|
||||
private set
|
||||
{
|
||||
_blockGroupViewModelViewModels = value;
|
||||
RaisePropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public void ClearDown()
|
||||
{
|
||||
BlockGroupViewModels = null;
|
||||
SelectedBlockGroupViewModel = null;
|
||||
}
|
||||
|
||||
private void OnShowAdvancedToggled(bool showAdvanced)
|
||||
{
|
||||
BlockGroupViewModels = RebuildBlockGroupViewModels(showAdvanced);
|
||||
}
|
||||
|
||||
private ObservableCollection<ItemFilterBlockGroupViewModel> RebuildBlockGroupViewModels(bool showAdvanced)
|
||||
{
|
||||
return
|
||||
_blockGroupMapper.MapBlockGroupsToViewModels(
|
||||
AvalonDockWorkspaceViewModel.ActiveScriptViewModel.Script.ItemFilterBlockGroups, showAdvanced);
|
||||
}
|
||||
|
||||
private void OnFilterToSelectedBlockGroupCommand()
|
||||
{
|
||||
AvalonDockWorkspaceViewModel.ActiveScriptViewModel.BlockFilterPredicate =
|
||||
b => b.Block.HasBlockGroupInParentHierarchy(SelectedBlockGroupViewModel.SourceBlockGroup, b.Block.BlockGroup);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Windows.Media.Imaging;
|
||||
|
||||
namespace Filtration.ViewModels.ToolPanes
|
||||
{
|
||||
internal interface IBlockOutputPreviewViewModel : IToolViewModel
|
||||
{
|
||||
bool IsVisible { get; set; }
|
||||
}
|
||||
|
||||
internal class BlockOutputPreviewViewModel : ToolViewModel, IBlockOutputPreviewViewModel
|
||||
{
|
||||
public BlockOutputPreviewViewModel() : base("Block Output Preview")
|
||||
{
|
||||
ContentId = ToolContentId;
|
||||
var icon = new BitmapImage();
|
||||
icon.BeginInit();
|
||||
icon.UriSource = new Uri("pack://application:,,,/Filtration;component/Resources/Icons/block_output_preview_icon.png");
|
||||
icon.EndInit();
|
||||
IconSource = icon;
|
||||
|
||||
IsVisible = false;
|
||||
}
|
||||
|
||||
|
||||
public const string ToolContentId = "BlockOutputPreviewTool";
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
using System.Windows.Media;
|
||||
|
||||
namespace Filtration.ViewModels
|
||||
namespace Filtration.ViewModels.ToolPanes
|
||||
{
|
||||
class PaneViewModel : FiltrationViewModelBase
|
||||
{
|
|
@ -2,11 +2,12 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Windows.Media.Imaging;
|
||||
|
||||
namespace Filtration.ViewModels
|
||||
namespace Filtration.ViewModels.ToolPanes
|
||||
{
|
||||
internal interface ISectionBrowserViewModel : IToolViewModel
|
||||
{
|
||||
void ClearDown();
|
||||
bool IsVisible { get; set; }
|
||||
}
|
||||
|
||||
internal class SectionBrowserViewModel : ToolViewModel, ISectionBrowserViewModel
|
|
@ -1,6 +1,6 @@
|
|||
using System;
|
||||
|
||||
namespace Filtration.ViewModels
|
||||
namespace Filtration.ViewModels.ToolPanes
|
||||
{
|
||||
internal interface IToolViewModel
|
||||
{
|
||||
|
@ -26,7 +26,7 @@ namespace Filtration.ViewModels
|
|||
if (_isVisible != value)
|
||||
{
|
||||
_isVisible = value;
|
||||
RaisePropertyChanged();
|
||||
RaisePropertyChanged("IsVisible");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -7,13 +7,13 @@
|
|||
xmlns:viewsAvalonDock="clr-namespace:Filtration.Views.AvalonDock"
|
||||
xmlns:views="clr-namespace:Filtration.Views"
|
||||
xmlns:toolPanes="clr-namespace:Filtration.Views.ToolPanes"
|
||||
xmlns:xcad="http://schemas.xceed.com/wpf/xaml/avalondock"
|
||||
xmlns:converters="clr-namespace:Filtration.Converters"
|
||||
xmlns:xcad="http://schemas.xceed.com/wpf/xaml/avalondock"
|
||||
mc:Ignorable="d"
|
||||
d:DataContext="{d:DesignInstance d:Type=viewModels:AvalonDockWorkspaceViewModel}"
|
||||
d:DesignHeight="300" d:DesignWidth="300">
|
||||
<UserControl.Resources>
|
||||
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
|
||||
<xcad:BoolToVisibilityConverter x:Key="AvalonBoolToVisibilityConverter" />
|
||||
<converters:ActiveDocumentConverter x:Key="ActiveDocumentConverter" />
|
||||
</UserControl.Resources>
|
||||
<Grid>
|
||||
|
@ -40,6 +40,11 @@
|
|||
<toolPanes:SectionBrowserView DataContext="{Binding}" />
|
||||
</DataTemplate>
|
||||
</viewsAvalonDock:PanesTemplateSelector.SectionBrowserTemplate>
|
||||
<viewsAvalonDock:PanesTemplateSelector.BlockOutputPreviewTemplate>
|
||||
<DataTemplate>
|
||||
<toolPanes:BlockOutputPreviewView DataContext="{Binding}" />
|
||||
</DataTemplate>
|
||||
</viewsAvalonDock:PanesTemplateSelector.BlockOutputPreviewTemplate>
|
||||
<viewsAvalonDock:PanesTemplateSelector.StartPageTemplate>
|
||||
<DataTemplate>
|
||||
<views:StartPageView DataContext="{Binding}" />
|
||||
|
@ -54,7 +59,7 @@
|
|||
<Style TargetType="{x:Type xcad:LayoutAnchorableItem}">
|
||||
<Setter Property="Title" Value="{Binding Model.Title}"/>
|
||||
<Setter Property="IconSource" Value="{Binding Model.IconSource}"/>
|
||||
<Setter Property="Visibility" Value="{Binding Model.IsVisible, Mode=TwoWay, Converter={StaticResource BooleanToVisibilityConverter}, ConverterParameter={x:Static Visibility.Hidden}}"/>
|
||||
<Setter Property="Visibility" Value="{Binding Model.IsVisible, Mode=TwoWay, Converter={StaticResource AvalonBoolToVisibilityConverter}, ConverterParameter={x:Static Visibility.Hidden}}"/>
|
||||
<Setter Property="ContentId" Value="{Binding Model.ContentId}"/>
|
||||
<Setter Property="IsSelected" Value="{Binding Model.IsSelected, Mode=TwoWay}"/>
|
||||
<Setter Property="IsActive" Value="{Binding Model.IsActive, Mode=TwoWay}"/>
|
||||
|
@ -81,7 +86,8 @@
|
|||
<xcad:LayoutAnchorablePane Name="SectionBrowserPane" DockWidth="150" />
|
||||
<xcad:LayoutPanel Orientation="Vertical">
|
||||
<xcad:LayoutDocumentPane />
|
||||
<xcad:LayoutAnchorablePane Name="BlockOutputPreviewPane" DockHeight="100" />
|
||||
<xcad:LayoutAnchorablePane Name="BlockOutputPreviewPane" DockHeight="100">
|
||||
</xcad:LayoutAnchorablePane>
|
||||
</xcad:LayoutPanel>
|
||||
<xcad:LayoutAnchorablePane Name="BlockGroupBrowserPane" DockWidth="200" />
|
||||
</xcad:LayoutPanel>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
using System.Linq;
|
||||
using Filtration.ViewModels;
|
||||
using Filtration.ViewModels.ToolPanes;
|
||||
using Xceed.Wpf.AvalonDock.Layout;
|
||||
|
||||
namespace Filtration.Views.AvalonDock
|
||||
|
@ -21,7 +21,7 @@ namespace Filtration.Views.AvalonDock
|
|||
var toolsPane = layout.Descendents().OfType<LayoutAnchorablePane>().FirstOrDefault(d => d.Name == "SectionBrowserPane");
|
||||
if (toolsPane != null)
|
||||
{
|
||||
anchorableToShow.CanHide = false;
|
||||
// anchorableToShow.CanHide = false;
|
||||
toolsPane.Children.Add(anchorableToShow);
|
||||
return true;
|
||||
}
|
||||
|
@ -32,7 +32,17 @@ namespace Filtration.Views.AvalonDock
|
|||
var toolsPane = layout.Descendents().OfType<LayoutAnchorablePane>().FirstOrDefault(d => d.Name == "BlockGroupBrowserPane");
|
||||
if (toolsPane != null)
|
||||
{
|
||||
anchorableToShow.CanHide = false;
|
||||
// anchorableToShow.CanHide = false;
|
||||
toolsPane.Children.Add(anchorableToShow);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (anchorableToShow.Content is BlockOutputPreviewViewModel)
|
||||
{
|
||||
var toolsPane = layout.Descendents().OfType<LayoutAnchorablePane>().FirstOrDefault(d => d.Name == "BlockOutputPreviewPane");
|
||||
if (toolsPane != null)
|
||||
{
|
||||
toolsPane.Children.Add(anchorableToShow);
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using Filtration.ViewModels;
|
||||
using Filtration.ViewModels.ToolPanes;
|
||||
|
||||
namespace Filtration.Views.AvalonDock
|
||||
{
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using Filtration.ViewModels;
|
||||
using Filtration.ViewModels.ToolPanes;
|
||||
using Xceed.Wpf.AvalonDock.Layout;
|
||||
|
||||
namespace Filtration.Views.AvalonDock
|
||||
|
@ -10,6 +11,7 @@ namespace Filtration.Views.AvalonDock
|
|||
public DataTemplate ItemFilterScriptTemplate { get; set; }
|
||||
public DataTemplate BlockGroupBrowserTemplate { get; set; }
|
||||
public DataTemplate SectionBrowserTemplate { get; set; }
|
||||
public DataTemplate BlockOutputPreviewTemplate { get; set; }
|
||||
public DataTemplate StartPageTemplate { get; set; }
|
||||
|
||||
public override DataTemplate SelectTemplate(object item, DependencyObject container)
|
||||
|
@ -31,6 +33,11 @@ namespace Filtration.Views.AvalonDock
|
|||
return BlockGroupBrowserTemplate;
|
||||
}
|
||||
|
||||
if (item is BlockOutputPreviewViewModel)
|
||||
{
|
||||
return BlockOutputPreviewTemplate;
|
||||
}
|
||||
|
||||
if (item is StartPageViewModel)
|
||||
{
|
||||
return StartPageTemplate;
|
||||
|
|
|
@ -20,4 +20,6 @@
|
|||
<Image Source="/Filtration;component/Resources/Icons/clear_filter_icon.png" x:Key="ClearFilterIcon" x:Shared="False" />
|
||||
<Image Source="/Filtration;component/Resources/Icons/filter_icon.png" x:Key="FilterIcon" x:Shared="False" />
|
||||
<Image Source="/Filtration;component/Resources/Icons/show_advanced_icon.png" x:Key="ShowAdvancedIcon" x:Shared="False" />
|
||||
<Image Source="/Filtration;component/Resources/Icons/block_group_browser_icon.png" x:Key="BlockGroupBrowserIcon" x:Shared="False" />
|
||||
<Image Source="/Filtration;component/Resources/Icons/block_output_preview_icon.png" x:Key="BlockOutputPreviewIcon" x:Shared="False" />
|
||||
</ResourceDictionary>
|
|
@ -26,6 +26,11 @@
|
|||
<Separator />
|
||||
<MenuItem Header="Copy _Script" Command="{Binding CopyScriptCommand}" Icon="{StaticResource CopyIcon}" />
|
||||
</MenuItem>
|
||||
<MenuItem Header="_View">
|
||||
<MenuItem Header="Section Browser" IsCheckable="True" IsChecked="{Binding AvalonDockWorkspaceViewModel.SectionBrowserViewModel.IsVisible}" Icon="{StaticResource AddSectionIcon}" />
|
||||
<MenuItem Header="Block Output Preview" IsCheckable="True" IsChecked="{Binding AvalonDockWorkspaceViewModel.BlockOutputPreviewViewModel.IsVisible}" Icon="{StaticResource BlockOutputPreviewIcon}" />
|
||||
<MenuItem Header="Block Group Browser" IsCheckable="True" IsChecked="{Binding AvalonDockWorkspaceViewModel.BlockGroupBrowserViewModel.IsVisible}" Icon="{StaticResource BlockGroupBrowserIcon}" />
|
||||
</MenuItem>
|
||||
<MenuItem Header="_Tools">
|
||||
<MenuItem Header="_Replace Colors" Command="{Binding ReplaceColorsCommand}" Icon="{StaticResource ReplaceColorsIcon}" />
|
||||
</MenuItem>
|
||||
|
|
|
@ -7,8 +7,9 @@
|
|||
xmlns:converters="clr-namespace:Filtration.Converters"
|
||||
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
|
||||
xmlns:behaviors="clr-namespace:Filtration.Views.Behaviors"
|
||||
xmlns:toolPanes="clr-namespace:Filtration.ViewModels.ToolPanes"
|
||||
mc:Ignorable="d"
|
||||
d:DataContext="{d:DesignInstance Type=viewModels:BlockGroupBrowserViewModel}"
|
||||
d:DataContext="{d:DesignInstance Type=toolPanes:BlockGroupBrowserViewModel}"
|
||||
d:DesignHeight="300" d:DesignWidth="300">
|
||||
<UserControl.Resources>
|
||||
<converters:BlockGroupAdvancedColorConverter x:Key="BlockGroupAdvancedColorConverter" />
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
<UserControl x:Class="Filtration.Views.ToolPanes.BlockOutputPreviewView"
|
||||
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"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="300" d:DesignWidth="300">
|
||||
<Grid>
|
||||
<TextBlock>This is the Block Text Preview Pane</TextBlock>
|
||||
</Grid>
|
||||
</UserControl>
|
|
@ -0,0 +1,10 @@
|
|||
namespace Filtration.Views.ToolPanes
|
||||
{
|
||||
public partial class BlockOutputPreviewView
|
||||
{
|
||||
public BlockOutputPreviewView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -3,9 +3,9 @@
|
|||
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:Filtration.ViewModels"
|
||||
xmlns:converters="clr-namespace:Filtration.Converters"
|
||||
d:DataContext="{d:DesignInstance Type=viewModels:SectionBrowserViewModel}"
|
||||
xmlns:toolPanes="clr-namespace:Filtration.ViewModels.ToolPanes"
|
||||
d:DataContext="{d:DesignInstance Type=toolPanes:SectionBrowserViewModel}"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="300" d:DesignWidth="300">
|
||||
<UserControl.Resources>
|
||||
|
|
|
@ -3,6 +3,7 @@ using Castle.MicroKernel.Registration;
|
|||
using Castle.MicroKernel.SubSystems.Configuration;
|
||||
using Castle.Windsor;
|
||||
using Filtration.ViewModels;
|
||||
using Filtration.ViewModels.ToolPanes;
|
||||
|
||||
namespace Filtration.WindsorInstallers
|
||||
{
|
||||
|
@ -50,6 +51,11 @@ namespace Filtration.WindsorInstallers
|
|||
.ImplementedBy<BlockGroupBrowserViewModel>()
|
||||
.LifeStyle.Singleton);
|
||||
|
||||
container.Register(
|
||||
Component.For<IBlockOutputPreviewViewModel>()
|
||||
.ImplementedBy<BlockOutputPreviewViewModel>()
|
||||
.LifeStyle.Singleton);
|
||||
|
||||
container.AddFacility<TypedFactoryFacility>();
|
||||
container.Register(
|
||||
Component.For<IItemFilterBlockViewModelFactory>().AsFactory());
|
||||
|
|
Loading…
Reference in New Issue