diff --git a/Library/PrintLibraryWidget.cs b/Library/PrintLibraryWidget.cs index a23c55676..3e45a589e 100644 --- a/Library/PrintLibraryWidget.cs +++ b/Library/PrintLibraryWidget.cs @@ -344,7 +344,7 @@ namespace MatterHackers.MatterControl.PrintLibrary navigationButtonFactory.hoverTextColor = ActiveTheme.Instance.PrimaryTextColor; navigationButtonFactory.pressedTextColor = ActiveTheme.Instance.PrimaryTextColor; navigationButtonFactory.disabledTextColor = ActiveTheme.Instance.PrimaryTextColor; - navigationButtonFactory.FixedHeight = 22 * TextWidget.GlobalPointSizeScaleRatio; + navigationButtonFactory.Margin = new BorderDouble(10, 0); breadCrumbDisplayHolder.CloseAndRemoveAllChildren(); LibraryProvider currentProvider = LibraryDataView.CurrentLibraryProvider; @@ -363,11 +363,12 @@ namespace MatterHackers.MatterControl.PrintLibrary { GuiWidget separator = new TextWidget(">", textColor: ActiveTheme.Instance.PrimaryTextColor); separator.VAnchor = VAnchor.ParentCenter; - separator.Margin = new BorderDouble(3, 0); + separator.Margin = new BorderDouble(0); breadCrumbDisplayHolder.AddChild(separator); } Button gotoProviderButton = navigationButtonFactory.Generate(localCurrentProvider.Name); + gotoProviderButton.Margin = new BorderDouble(3, 0); gotoProviderButton.Click += (sender2, e2) => { UiThread.RunOnIdle(() => diff --git a/Library/Provider/LibraryProviderFileSystem.cs b/Library/Provider/LibraryProviderFileSystem.cs index a7bd45ac5..dd32e9f8e 100644 --- a/Library/Provider/LibraryProviderFileSystem.cs +++ b/Library/Provider/LibraryProviderFileSystem.cs @@ -86,7 +86,20 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider public override void RenameItem(int itemIndexToRename, string newName) { - throw new NotImplementedException(); + string sourceFile = Path.Combine(rootPath, currentDirectoryFiles[itemIndexToRename]); + if (File.Exists(sourceFile)) + { + string destFile = Path.Combine(Path.GetDirectoryName(sourceFile), newName); + File.Move(sourceFile, destFile); + Stopwatch time = Stopwatch.StartNew(); + // Wait for up to some amount of time for the directory to be gone. + while (File.Exists(destFile) + && time.ElapsedMilliseconds < 100) + { + Thread.Sleep(1); // make sure we are not eating all the cpu time. + } + GetFilesAndCollectionsInCurrentDirectory(); + } } public override int ItemCount diff --git a/Library/Provider/LibraryProviderSelector.cs b/Library/Provider/LibraryProviderSelector.cs index 6e19edb33..69447c19b 100644 --- a/Library/Provider/LibraryProviderSelector.cs +++ b/Library/Provider/LibraryProviderSelector.cs @@ -61,15 +61,17 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider ApplicationController.Instance.CloudSyncStatusChanged.RegisterEvent(CloudSyncStatusChanged, ref unregisterEvents); - // This is test code for how to add these when we get to it - // put in the queue provider - libraryProviders.Add(new LibraryProviderQueue(null, this)); - AddFolderImage("queue_folder.png"); + if (false) + { + // This is test code for how to add these when we get to it + // put in the queue provider + libraryProviders.Add(new LibraryProviderQueue(null, this)); + AddFolderImage("queue_folder.png"); - // put in the queue provider - libraryProviders.Add(new LibraryProviderHistory(null, this)); - AddFolderImage("queue_folder.png"); - // */ + // put in the queue provider + libraryProviders.Add(new LibraryProviderHistory(null, this)); + AddFolderImage("queue_folder.png"); + } // put in the sqlite provider libraryProviders.Add(new LibraryProviderSQLite(null, this)); diff --git a/Library/Provider/LibraryProviderSqlite.cs b/Library/Provider/LibraryProviderSqlite.cs index f94d76726..33a418f7d 100644 --- a/Library/Provider/LibraryProviderSqlite.cs +++ b/Library/Provider/LibraryProviderSqlite.cs @@ -88,12 +88,16 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider public override void RenameCollection(int collectionIndexToRename, string newName) { - throw new NotImplementedException(); + childCollections[collectionIndexToRename].Name = newName; + childCollections[collectionIndexToRename].Commit(); + LoadLibraryItems(); } public override void RenameItem(int itemIndexToRename, string newName) { - throw new NotImplementedException(); + printItems[itemIndexToRename].PrintItem.Name = newName; + printItems[itemIndexToRename].PrintItem.Commit(); + LoadLibraryItems(); } public static string StaticProviderKey diff --git a/VersionManagement/WebRequestHandler.cs b/VersionManagement/WebRequestHandler.cs index f88c78df1..bc791c8c4 100644 --- a/VersionManagement/WebRequestHandler.cs +++ b/VersionManagement/WebRequestHandler.cs @@ -48,21 +48,47 @@ namespace MatterHackers.MatterControl.VersionManagement public class WebRequestBase where ResponseType : class { - protected string uri; protected Dictionary requestValues; - - public event EventHandler> RequestSucceeded; - - public event EventHandler RequestFailed; + protected string uri; + public WebRequestBase() + { + requestValues = new Dictionary(); + } public event EventHandler RequestComplete; - protected void OnRequestSuceeded(ResponseType responseItem) + public event EventHandler RequestFailed; + + public event EventHandler> RequestSucceeded; + public static void Request(string requestUrl, string[] requestStringPairs) { - if (RequestSucceeded != null) + WebRequestBase tempRequest = new WebRequestBase(); + + tempRequest.uri = requestUrl; + for (int i = 0; i < requestStringPairs.Length; i += 2) { - RequestSucceeded(this, new ResponseSuccessEventArgs() { ResponseItem = responseItem }); + tempRequest.requestValues[requestStringPairs[i]] = requestStringPairs[i + 1]; } + + tempRequest.Request(); + } + + public virtual void ProcessErrorResponse(JsonResponseDictionary responseValues) + { + string errorMessage = responseValues.get("ErrorMessage"); + if (errorMessage != null) + { + Console.WriteLine(string.Format("Request Failed: {0}", errorMessage)); + } + else + { + Console.WriteLine(string.Format("Request Failed: Unknown Reason")); + } + } + + public async void Request() + { + await Task.Run((Action)SendRequest); } //This gets called after failure or success @@ -82,11 +108,13 @@ namespace MatterHackers.MatterControl.VersionManagement } } - public WebRequestBase() + protected void OnRequestSuceeded(ResponseType responseItem) { - requestValues = new Dictionary(); + if (RequestSucceeded != null) + { + RequestSucceeded(this, new ResponseSuccessEventArgs() { ResponseItem = responseItem }); + } } - protected void SendRequest() { RequestManager requestManager = new RequestManager(); @@ -122,6 +150,34 @@ namespace MatterHackers.MatterControl.VersionManagement OnRequestComplete(); } + } + + public class WebRequestBase + { + protected Dictionary requestValues; + protected string uri; + public WebRequestBase() + { + requestValues = new Dictionary(); + } + + public event EventHandler RequestComplete; + + public event EventHandler RequestFailed; + + public event EventHandler RequestSucceeded; + public static void Request(string requestUrl, string[] requestStringPairs) + { + WebRequestBase tempRequest = new WebRequestBase(); + + tempRequest.uri = requestUrl; + for (int i = 0; i < requestStringPairs.Length; i += 2) + { + tempRequest.requestValues[requestStringPairs[i]] = requestStringPairs[i + 1]; + } + + tempRequest.Request(); + } public virtual void ProcessErrorResponse(JsonResponseDictionary responseValues) { @@ -136,29 +192,22 @@ namespace MatterHackers.MatterControl.VersionManagement } } - public async void Request() + public virtual void ProcessSuccessResponse(JsonResponseDictionary responseValues) { - await Task.Run((Action)SendRequest); + //Do Stuff } - } - public class WebRequestBase - { - protected string uri; - protected Dictionary requestValues; - - public event EventHandler RequestSucceeded; - - public event EventHandler RequestFailed; - - public event EventHandler RequestComplete; - - protected void OnRequestSuceeded() + public virtual void Request() { - if (RequestSucceeded != null) - { - RequestSucceeded(this, null); - } + BackgroundWorker doRequestWorker = new BackgroundWorker(); + doRequestWorker.DoWork += new DoWorkEventHandler(SendRequest); + doRequestWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(ProcessResponse); + doRequestWorker.RunWorkerAsync(); + } + + protected virtual string getJsonToSend() + { + return SerializeObject(requestValues); } //This gets called after failure or success @@ -178,19 +227,36 @@ namespace MatterHackers.MatterControl.VersionManagement } } - public WebRequestBase() + protected void OnRequestSuceeded() { - requestValues = new Dictionary(); + if (RequestSucceeded != null) + { + RequestSucceeded(this, null); + } } - - protected virtual string getJsonToSend() + protected virtual void ProcessResponse(object sender, RunWorkerCompletedEventArgs e) { - return SerializeObject(requestValues); - } + JsonResponseDictionary responseValues = e.Result as JsonResponseDictionary; + if (responseValues != null) + { + string requestSuccessStatus = responseValues.get("Status"); + if (responseValues != null && requestSuccessStatus != null && requestSuccessStatus == "success") + { + ProcessSuccessResponse(responseValues); + OnRequestSuceeded(); + } + else + { + ProcessErrorResponse(responseValues); + OnRequestFailed(responseValues); + } - protected string SerializeObject(object requestObject) - { - return Newtonsoft.Json.JsonConvert.SerializeObject(requestObject); + OnRequestComplete(); + } + else + { + // Don't do anything, there was no respones. + } } protected virtual void SendRequest(object sender, DoWorkEventArgs e) @@ -217,7 +283,7 @@ namespace MatterHackers.MatterControl.VersionManagement responseValues = JsonConvert.DeserializeObject(requestManager.LastResponse); string errorMessage; - if(responseValues.TryGetValue("ErrorMessage", out errorMessage) && errorMessage.IndexOf("expired session") != -1) + if (responseValues.TryGetValue("ErrorMessage", out errorMessage) && errorMessage.IndexOf("expired session") != -1) { // TODO: Map more error conditions (beyond just session expired) to CredentialsInvalid status UserSettings.Instance.set("CredentialsInvalid", "true"); @@ -239,68 +305,9 @@ namespace MatterHackers.MatterControl.VersionManagement e.Result = responseValues; } - protected virtual void ProcessResponse(object sender, RunWorkerCompletedEventArgs e) + protected string SerializeObject(object requestObject) { - JsonResponseDictionary responseValues = e.Result as JsonResponseDictionary; - if (responseValues != null) - { - string requestSuccessStatus = responseValues.get("Status"); - if (responseValues != null && requestSuccessStatus != null && requestSuccessStatus == "success") - { - ProcessSuccessResponse(responseValues); - OnRequestSuceeded(); - } - else - { - ProcessErrorResponse(responseValues); - OnRequestFailed(responseValues); - } - - OnRequestComplete(); - } - else - { - // Don't do anything, there was no respones. - } - } - - public virtual void ProcessSuccessResponse(JsonResponseDictionary responseValues) - { - //Do Stuff - } - - public virtual void ProcessErrorResponse(JsonResponseDictionary responseValues) - { - string errorMessage = responseValues.get("ErrorMessage"); - if (errorMessage != null) - { - Console.WriteLine(string.Format("Request Failed: {0}", errorMessage)); - } - else - { - Console.WriteLine(string.Format("Request Failed: Unknown Reason")); - } - } - - public virtual void Request() - { - BackgroundWorker doRequestWorker = new BackgroundWorker(); - doRequestWorker.DoWork += new DoWorkEventHandler(SendRequest); - doRequestWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(ProcessResponse); - doRequestWorker.RunWorkerAsync(); - } - - public static void Request(string requestUrl, string[] requestStringPairs) - { - WebRequestBase tempRequest = new WebRequestBase(); - - tempRequest.uri = requestUrl; - for (int i = 0; i < requestStringPairs.Length; i += 2) - { - tempRequest.requestValues[requestStringPairs[i]] = requestStringPairs[i + 1]; - } - - tempRequest.Request(); + return Newtonsoft.Json.JsonConvert.SerializeObject(requestObject); } } } \ No newline at end of file