Added INotifyPropertyChanged interface and target kind to reference.

This commit is contained in:
2014-09-12 18:22:24 +03:00
parent f0071e552f
commit 0090059531
7 changed files with 204 additions and 51 deletions

View File

@ -98,10 +98,12 @@
</Compile>
<Compile Include="Editor\ProjectEditor\ProjectStorage.cs" />
<Compile Include="UI\Command.cs" />
<Compile Include="UI\CommandGroup.cs" />
<Compile Include="UI\Controller\IconProvider.cs" />
<Compile Include="UI\Controller\IContextMenuProvider.cs" />
<Compile Include="UI\Controller\ProjectController.cs" />
<Compile Include="Business\SettingsProvider.cs" />
<Compile Include="UI\Controller\ReferenceContextMenuProvider.cs" />
<Compile Include="UI\Dialogs\CloseUnsavedDialog.xaml.cs">
<DependentUpon>CloseUnsavedDialog.xaml</DependentUpon>
</Compile>

View File

@ -210,7 +210,7 @@ namespace RainmeterStudio.UI.Controller
/// </summary>
public bool Save(IDocumentEditor editor)
{
if (editor.AttachedDocument.Reference.IsOnStorage())
if (editor.AttachedDocument.Reference != null)
{
DocumentManager.Save(editor.AttachedDocument);
return true;

View File

@ -33,7 +33,7 @@ namespace RainmeterStudio.UI.Controller
string key = "ProjectItem";
// Is a file?
if (File.Exists(item.StoragePath))
if (item.TargetKind == Reference.ReferenceTargetKind.File || item.TargetKind == Reference.ReferenceTargetKind.Project)
{
if (String.IsNullOrEmpty(Path.GetExtension(item.StoragePath)))
key += "Unknown";
@ -43,7 +43,7 @@ namespace RainmeterStudio.UI.Controller
}
// Not a file, try to figure out if a directory
else if (item.Count > 0 || Directory.Exists(item.StoragePath))
else if (item.TargetKind == Reference.ReferenceTargetKind.Directory)
{
key += "Directory";
}

View File

@ -35,17 +35,6 @@ namespace RainmeterStudio.UI.ViewModel
}
}
/// <summary>
/// Gets or sets the path
/// </summary>
public string Path
{
get
{
return Reference.StoragePath;
}
}
/// <summary>
/// Gets an enumerable of this object's children
/// </summary>
@ -120,9 +109,16 @@ namespace RainmeterStudio.UI.ViewModel
{
Reference = reference;
Reference.CollectionChanged += Reference_CollectionChanged;
Reference.PropertyChanged += Reference_PropertyChanged;
RefreshChildren();
}
private void Reference_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
if (e.PropertyName == "Name" && PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("Name"));
}
private void Reference_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
List<ReferenceViewModel> newItems = new List<ReferenceViewModel>();