From 09a5ae006e442766aaf27c75c3c35bd4d3431d58 Mon Sep 17 00:00:00 2001 From: Lars Brubaker Date: Fri, 12 Jun 2015 09:48:20 -0700 Subject: [PATCH] More work on new library. --- PrintLibrary/LibraryDataView.cs | 7 ++++++ PrintLibrary/Provider/LibraryProvider.cs | 8 ++++--- .../Provider/LibraryProviderFileSystem.cs | 23 ++++++++++++++++++- .../Provider/LibraryProviderSqlite.cs | 10 +++++++- 4 files changed, 43 insertions(+), 5 deletions(-) diff --git a/PrintLibrary/LibraryDataView.cs b/PrintLibrary/LibraryDataView.cs index 5cf1be079..b52007cfb 100644 --- a/PrintLibrary/LibraryDataView.cs +++ b/PrintLibrary/LibraryDataView.cs @@ -190,6 +190,13 @@ namespace MatterHackers.MatterControl.PrintLibrary topToBottomItemList.HAnchor = Agg.UI.HAnchor.Max_FitToChildren_ParentWidth; base.AddChild(topToBottomItemList); + for (int i = 0; i < LibraryProvider.CurrentProvider.CollectionCount; i++) + { + PrintItemWrapper item = LibraryProvider.CurrentProvider.GetCollectionItemWrapper(i); + LibraryRowItem queueItem = new LibraryRowItem(item, this); + AddChild(queueItem); + } + for (int i = 0; i < LibraryProvider.CurrentProvider.ItemCount; i++) { PrintItemWrapper item = LibraryProvider.CurrentProvider.GetPrintItemWrapper(i); diff --git a/PrintLibrary/Provider/LibraryProvider.cs b/PrintLibrary/Provider/LibraryProvider.cs index 63e566b11..ece925436 100644 --- a/PrintLibrary/Provider/LibraryProvider.cs +++ b/PrintLibrary/Provider/LibraryProvider.cs @@ -66,16 +66,18 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider public abstract string KeywordFilter { get; set; } - public abstract PrintItemWrapper GetPrintItemWrapper(int itemIndex); - public abstract void AddCollectionToLibrary(string collectionName); public abstract void AddFilesToLibrary(IList files, ReportProgressRatio reportProgress = null, RunWorkerCompletedEventHandler callback = null); - public abstract void RemoveItem(PrintItemWrapper printItemWrapper); + public abstract PrintItemWrapper GetCollectionItemWrapper(int collectionIndex); + + public abstract PrintItemWrapper GetPrintItemWrapper(int itemIndex); public abstract void RemoveCollection(string collectionName); + public abstract void RemoveItem(PrintItemWrapper printItemWrapper); + #endregion AbstractMethods public static void OnDataReloaded(EventArgs eventArgs) diff --git a/PrintLibrary/Provider/LibraryProviderFileSystem.cs b/PrintLibrary/Provider/LibraryProviderFileSystem.cs index 1a281b482..41f60a1b0 100644 --- a/PrintLibrary/Provider/LibraryProviderFileSystem.cs +++ b/PrintLibrary/Provider/LibraryProviderFileSystem.cs @@ -40,6 +40,7 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider { private string currentDirectory = "."; private List currentDirectoryFiles = new List(); + private List currentDirectoryDirectories = new List(); private string keywordFilter = string.Empty; private string rootPath; @@ -52,7 +53,10 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider public override int CollectionCount { - get { throw new NotImplementedException(); } + get + { + return currentDirectoryDirectories.Count; + } } public override int ItemCount @@ -91,6 +95,12 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider throw new NotImplementedException(); } + public override PrintItemWrapper GetCollectionItemWrapper(int collectionIndex) + { + string directoryName = currentDirectoryDirectories[collectionIndex]; + return new PrintItemWrapper(new DataStorage.PrintItem("", directoryName)); + } + public override PrintItemWrapper GetPrintItemWrapper(int itemIndex) { string fileName = currentDirectoryFiles[itemIndex]; @@ -109,6 +119,17 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider private void GetFilesInCurrentDirectory() { + currentDirectoryDirectories.Clear(); + string[] directories = Directory.GetDirectories(Path.Combine(rootPath, currentDirectory)); + foreach (string directoryName in directories) + { + if (keywordFilter.Trim() == string.Empty + || Path.GetFileNameWithoutExtension(directoryName).Contains(keywordFilter)) + { + currentDirectoryDirectories.Add(directoryName); + } + } + currentDirectoryFiles.Clear(); string[] files = Directory.GetFiles(Path.Combine(rootPath, currentDirectory)); foreach (string filename in files) diff --git a/PrintLibrary/Provider/LibraryProviderSqlite.cs b/PrintLibrary/Provider/LibraryProviderSqlite.cs index 0905a5361..bd9df59f7 100644 --- a/PrintLibrary/Provider/LibraryProviderSqlite.cs +++ b/PrintLibrary/Provider/LibraryProviderSqlite.cs @@ -39,7 +39,10 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider { public override int CollectionCount { - get { throw new NotImplementedException(); } + get + { + return 0; + } } public override int ItemCount @@ -78,6 +81,11 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider return LibrarySQLiteData.Instance.GetPrintItemWrapper(itemIndex); } + public override PrintItemWrapper GetCollectionItemWrapper(int collectionIndex) + { + throw new NotImplementedException(); + } + public override void RemoveCollection(string collectionName) { throw new NotImplementedException();