This commit is contained in:
Gregory Diaz 2015-07-29 10:19:25 -07:00
commit 3086095fd7
5 changed files with 141 additions and 114 deletions

View file

@ -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(() =>

View file

@ -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

View file

@ -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));

View file

@ -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

View file

@ -48,21 +48,47 @@ namespace MatterHackers.MatterControl.VersionManagement
public class WebRequestBase<ResponseType> where ResponseType : class
{
protected string uri;
protected Dictionary<string, string> requestValues;
public event EventHandler<ResponseSuccessEventArgs<ResponseType>> RequestSucceeded;
public event EventHandler<ResponseErrorEventArgs> RequestFailed;
protected string uri;
public WebRequestBase()
{
requestValues = new Dictionary<string, string>();
}
public event EventHandler RequestComplete;
protected void OnRequestSuceeded(ResponseType responseItem)
public event EventHandler<ResponseErrorEventArgs> RequestFailed;
public event EventHandler<ResponseSuccessEventArgs<ResponseType>> RequestSucceeded;
public static void Request(string requestUrl, string[] requestStringPairs)
{
if (RequestSucceeded != null)
WebRequestBase<ResponseType> tempRequest = new WebRequestBase<ResponseType>();
tempRequest.uri = requestUrl;
for (int i = 0; i < requestStringPairs.Length; i += 2)
{
RequestSucceeded(this, new ResponseSuccessEventArgs<ResponseType>() { 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<string, string>();
if (RequestSucceeded != null)
{
RequestSucceeded(this, new ResponseSuccessEventArgs<ResponseType>() { ResponseItem = responseItem });
}
}
protected void SendRequest()
{
RequestManager requestManager = new RequestManager();
@ -122,6 +150,34 @@ namespace MatterHackers.MatterControl.VersionManagement
OnRequestComplete();
}
}
public class WebRequestBase
{
protected Dictionary<string, string> requestValues;
protected string uri;
public WebRequestBase()
{
requestValues = new Dictionary<string, string>();
}
public event EventHandler RequestComplete;
public event EventHandler<ResponseErrorEventArgs> 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<string, string> requestValues;
public event EventHandler RequestSucceeded;
public event EventHandler<ResponseErrorEventArgs> 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<string, string>();
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<JsonResponseDictionary>(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);
}
}
}