Rewrote references

This commit is contained in:
2014-08-31 14:41:24 +03:00
parent 520eed12a6
commit 10aa72176e
24 changed files with 1182 additions and 475 deletions

View File

@ -46,8 +46,8 @@
<TreeView Grid.Row="2" Name="treeProjectItems">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding Data.IsExpanded, Mode=TwoWay}" />
<Setter Property="IsSelected" Value="{Binding Data.IsSelected, Mode=TwoWay}" />
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
<EventSetter Event="Expanded" Handler="TreeViewItem_ExpandedOrCollapsed" />
<EventSetter Event="Collapsed" Handler="TreeViewItem_ExpandedOrCollapsed" />
</Style>
@ -55,8 +55,8 @@
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<DockPanel LastChildFill="True">
<Image DockPanel.Dock="Left" Width="16" Height="16" Source="{Binding Data.Reference.Data, Converter={StaticResource IconConverter}}" />
<TextBlock Text="{Binding Data.Name}" />
<Image DockPanel.Dock="Left" Width="16" Height="16" Source="{Binding Reference, Converter={StaticResource IconConverter}}" />
<TextBlock Text="{Binding Name}" />
</DockPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>

View File

@ -67,7 +67,7 @@ namespace RainmeterStudio.UI.Panels
/// <summary>
/// Gets the selected tree view item
/// </summary>
public Tree<Reference> ActiveItem
public Reference ActiveItem
{
get
{
@ -136,57 +136,36 @@ namespace RainmeterStudio.UI.Panels
this.IsEnabled = true;
// Get tree
Tree<ReferenceViewModel> tree;
Reference refTree;
if (toggleShowAllFiles.IsChecked.HasValue && toggleShowAllFiles.IsChecked.Value)
{
tree = GetAllFiles();
// Get directory name
string projectFolder = System.IO.Path.GetDirectoryName(Controller.ActiveProjectPath);
// Get folder tree
refTree = DirectoryHelper.GetFolderTree(projectFolder);
}
else
{
tree = GetProjectItems();
refTree = Controller.ActiveProject.Root;
}
// Add tree to tree view
treeProjectItems.Items.Clear();
treeProjectItems.Items.Add(tree);
treeProjectItems.Items.Add(new ReferenceViewModel(refTree));
}
}
private Tree<ReferenceViewModel> GetAllFiles()
{
// Get directory name
string projectFolder = System.IO.Path.GetDirectoryName(Controller.ActiveProjectPath);
// Get folder tree
Tree<Reference> refTree = DirectoryHelper.GetFolderTree(projectFolder);
refTree.Data = Controller.ActiveProject.Root.Data;
// Remove the project file from the list
Tree<Reference> project = refTree.First(x => DirectoryHelper.PathsEqual(x.Data.StoragePath, Controller.ActiveProjectPath));
refTree.Remove(project);
// Transform to reference view model and return
return refTree.Transform<Reference, ReferenceViewModel>((node) => new Tree<ReferenceViewModel>(new ReferenceViewModel(node)));
}
private Tree<ReferenceViewModel> GetProjectItems()
{
// Get project items
Tree<Reference> refTree = Controller.ActiveProject.Root;
// Transform to reference view model and return
return refTree.Transform<Reference, ReferenceViewModel>((node) => new Tree<ReferenceViewModel>(new ReferenceViewModel(node)));
}
private void ExpandAll()
{
// Get tree
var tree = treeProjectItems.Items[0] as Tree<ReferenceViewModel>;
var tree = treeProjectItems.Items[0] as ReferenceViewModel;
if (tree == null)
return;
// Expand all
tree.Apply((node) => node.Data.IsExpanded = true);
tree.TreeExpand(true);
// Set can expand property
CanExpand = false;
@ -195,12 +174,12 @@ namespace RainmeterStudio.UI.Panels
private void CollapseAll()
{
// Get tree
var tree = treeProjectItems.Items[0] as Tree<ReferenceViewModel>;
var tree = treeProjectItems.Items[0] as ReferenceViewModel;
if (tree == null)
return;
// Expand all
tree.Apply((node) => node.Data.IsExpanded = false);
tree.TreeExpand(false);
// Set can expand property
CanExpand = true;
@ -209,12 +188,12 @@ namespace RainmeterStudio.UI.Panels
void TreeViewItem_ExpandedOrCollapsed(object sender, RoutedEventArgs e)
{
// Get tree
var tree = treeProjectItems.Items[0] as Tree<ReferenceViewModel>;
var tree = treeProjectItems.Items[0] as ReferenceViewModel;
if (tree == null)
return;
// We can expand if the root is not expanded
CanExpand = (!tree.Data.IsExpanded);
CanExpand = (!tree.IsExpanded);
}
}
}