Merge branch 'master' of https://github.com/MatterHackers/MatterControl
This commit is contained in:
commit
3086095fd7
5 changed files with 141 additions and 114 deletions
|
|
@ -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(() =>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue