Changeset 3500
- Timestamp:
- 04/22/10 23:33:13 (15 years ago)
- Location:
- trunk/sources
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Common/3.2/Content/ContentManager.cs
r3483 r3500 60 60 public static void Save(IStorableContent content, string filename, bool compressed) { 61 61 if (instance == null) throw new InvalidOperationException("ContentManager is not initialized."); 62 instance.SaveContent( content, filename, compressed);62 instance.SaveContent((IStorableContent)content.Clone(), filename, compressed); 63 63 content.Filename = filename; 64 64 } 65 65 public static void SaveAsync(IStorableContent content, string filename, bool compressed, Action<IStorableContent, Exception> savingCompletedCallback) { 66 66 if (instance == null) throw new InvalidOperationException("ContentManager is not initialized."); 67 var action = new Action<IStorableContent, string, bool>(instance.SaveContent); 68 action.BeginInvoke(content, filename, compressed, delegate(IAsyncResult result) { 69 Exception error = null; 70 try { 71 action.EndInvoke(result); 72 content.Filename = filename; 73 } 74 catch (Exception ex) { 75 error = ex; 76 } 77 savingCompletedCallback(content, error); 78 }, null); 67 68 IStorableContent clone = null; 69 try { 70 clone = (IStorableContent)content.Clone(); 71 } 72 catch (Exception ex) { 73 savingCompletedCallback(content, ex); 74 } 75 76 if (clone != null) { 77 var action = new Action<IStorableContent, string, bool>(instance.SaveContent); 78 action.BeginInvoke(clone, filename, compressed, delegate(IAsyncResult result) { 79 Exception error = null; 80 try { 81 action.EndInvoke(result); 82 content.Filename = filename; 83 } 84 catch (Exception ex) { 85 error = ex; 86 } 87 savingCompletedCallback(content, error); 88 }, null); 89 } 79 90 } 80 91 protected abstract void SaveContent(IStorableContent content, string filename, bool compressed); -
trunk/sources/HeuristicLab.Common/3.2/Content/IStorableContent.cs
r3483 r3500 23 23 24 24 namespace HeuristicLab.Common { 25 public interface IStorableContent : IContent {25 public interface IStorableContent : IContent, IDeepCloneable { 26 26 string Filename { get; set; } 27 27 -
trunk/sources/HeuristicLab.Common/3.2/Content/StorableContent.cs
r3483 r3500 23 23 24 24 namespace HeuristicLab.Common { 25 public class StorableContent : IStorableContent {25 public class StorableContent : DeepCloneable, IStorableContent { 26 26 private string filename; 27 27 public string Filename { -
trunk/sources/HeuristicLab.Common/3.3/Content/ContentManager.cs
r3483 r3500 60 60 public static void Save(IStorableContent content, string filename, bool compressed) { 61 61 if (instance == null) throw new InvalidOperationException("ContentManager is not initialized."); 62 instance.SaveContent( content, filename, compressed);62 instance.SaveContent((IStorableContent)content.Clone(), filename, compressed); 63 63 content.Filename = filename; 64 64 } 65 65 public static void SaveAsync(IStorableContent content, string filename, bool compressed, Action<IStorableContent, Exception> savingCompletedCallback) { 66 66 if (instance == null) throw new InvalidOperationException("ContentManager is not initialized."); 67 var action = new Action<IStorableContent, string, bool>(instance.SaveContent); 68 action.BeginInvoke(content, filename, compressed, delegate(IAsyncResult result) { 69 Exception error = null; 70 try { 71 action.EndInvoke(result); 72 content.Filename = filename; 73 } 74 catch (Exception ex) { 75 error = ex; 76 } 77 savingCompletedCallback(content, error); 78 }, null); 67 68 IStorableContent clone = null; 69 try { 70 clone = (IStorableContent)content.Clone(); 71 } 72 catch (Exception ex) { 73 savingCompletedCallback(content, ex); 74 } 75 76 if (clone != null) { 77 var action = new Action<IStorableContent, string, bool>(instance.SaveContent); 78 action.BeginInvoke(clone, filename, compressed, delegate(IAsyncResult result) { 79 Exception error = null; 80 try { 81 action.EndInvoke(result); 82 content.Filename = filename; 83 } 84 catch (Exception ex) { 85 error = ex; 86 } 87 savingCompletedCallback(content, error); 88 }, null); 89 } 79 90 } 80 91 protected abstract void SaveContent(IStorableContent content, string filename, bool compressed); -
trunk/sources/HeuristicLab.Common/3.3/Content/IStorableContent.cs
r3483 r3500 23 23 24 24 namespace HeuristicLab.Common { 25 public interface IStorableContent : IContent {25 public interface IStorableContent : IContent, IDeepCloneable { 26 26 string Filename { get; set; } 27 27 -
trunk/sources/HeuristicLab.Common/3.3/Content/StorableContent.cs
r3483 r3500 23 23 24 24 namespace HeuristicLab.Common { 25 public class StorableContent : IStorableContent {25 public class StorableContent : DeepCloneable, IStorableContent { 26 26 private string filename; 27 27 public string Filename { -
trunk/sources/HeuristicLab.Core/3.3/Interfaces/IItem.cs
r3483 r3500 28 28 /// Interface to represent (almost) every HeuristicLab object (an object, an operator,...). 29 29 /// </summary> 30 public interface IItem : IStorableContent , IDeepCloneable{30 public interface IItem : IStorableContent { 31 31 string ItemName { get; } 32 32 string ItemDescription { get; } -
trunk/sources/HeuristicLab.Optimization.Views/3.3/AlgorithmView.cs
r3455 r3500 187 187 openFileDialog.Title = "Open Problem"; 188 188 if (openFileDialog.ShowDialog(this) == DialogResult.OK) { 189 this.Cursor = Cursors.AppStarting;190 189 newProblemButton.Enabled = openProblemButton.Enabled = false; 191 190 problemViewHost.Enabled = false; 192 191 193 var call = new Func<string, object>(XmlParser.Deserialize); 194 call.BeginInvoke(openFileDialog.FileName, delegate(IAsyncResult a) { 195 IProblem problem = null; 192 ContentManager.LoadAsync(openFileDialog.FileName, delegate(IStorableContent content, Exception error) { 196 193 try { 197 problem = call.EndInvoke(a) as IProblem; 198 } catch (Exception ex) { 199 Auxiliary.ShowErrorMessageBox(ex); 200 } 201 Invoke(new Action(delegate() { 194 if (error != null) throw error; 195 IProblem problem = content as IProblem; 202 196 if (problem == null) 203 197 MessageBox.Show(this, "The selected file does not contain a problem.", "Invalid File", MessageBoxButtons.OK, MessageBoxIcon.Error); … … 206 200 else 207 201 Content.Problem = problem; 208 problemViewHost.Enabled = true; 209 newProblemButton.Enabled = openProblemButton.Enabled = true; 210 this.Cursor = Cursors.Default; 211 })); 212 }, null); 202 } 203 catch (Exception ex) { 204 Auxiliary.ShowErrorMessageBox(ex); 205 } 206 finally { 207 Invoke(new Action(delegate() { 208 problemViewHost.Enabled = true; 209 newProblemButton.Enabled = openProblemButton.Enabled = true; 210 })); 211 } 212 }); 213 213 } 214 214 } -
trunk/sources/HeuristicLab.Optimization.Views/3.3/BatchRunView.cs
r3455 r3500 174 174 openFileDialog.Title = "Open Algorithm"; 175 175 if (openFileDialog.ShowDialog(this) == DialogResult.OK) { 176 this.Cursor = Cursors.AppStarting;177 176 newAlgorithmButton.Enabled = openAlgorithmButton.Enabled = false; 178 177 algorithmViewHost.Enabled = false; 179 178 180 var call = new Func<string, object>(XmlParser.Deserialize); 181 call.BeginInvoke(openFileDialog.FileName, delegate(IAsyncResult a) { 182 IAlgorithm algorithm = null; 179 ContentManager.LoadAsync(openFileDialog.FileName, delegate(IStorableContent content, Exception error) { 183 180 try { 184 algorithm = call.EndInvoke(a) as IAlgorithm; 185 } catch (Exception ex) { 186 Auxiliary.ShowErrorMessageBox(ex); 187 } 188 Invoke(new Action(delegate() { 181 if (error != null) throw error; 182 IAlgorithm algorithm = content as IAlgorithm; 189 183 if (algorithm == null) 190 184 MessageBox.Show(this, "The selected file does not contain an algorithm.", "Invalid File", MessageBoxButtons.OK, MessageBoxIcon.Error); 191 185 else 192 186 Content.Algorithm = algorithm; 193 algorithmViewHost.Enabled = true; 194 newAlgorithmButton.Enabled = openAlgorithmButton.Enabled = true; 195 this.Cursor = Cursors.Default; 196 })); 197 }, null); 187 } 188 catch (Exception ex) { 189 Auxiliary.ShowErrorMessageBox(ex); 190 } 191 finally { 192 Invoke(new Action(delegate() { 193 algorithmViewHost.Enabled = true; 194 newAlgorithmButton.Enabled = openAlgorithmButton.Enabled = true; 195 })); 196 } 197 }); 198 198 } 199 199 } -
trunk/sources/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.cs
r3455 r3500 80 80 openFileDialog.Title = "Open Operator Graph"; 81 81 if (openFileDialog.ShowDialog(this) == DialogResult.OK) { 82 this.Cursor = Cursors.AppStarting;83 82 newOperatorGraphButton.Enabled = openOperatorGraphButton.Enabled = false; 84 83 operatorGraphViewHost.Enabled = false; 85 84 86 var call = new Func<string, object>(XmlParser.Deserialize); 87 call.BeginInvoke(openFileDialog.FileName, delegate(IAsyncResult a) { 88 OperatorGraph operatorGraph = null; 85 ContentManager.LoadAsync(openFileDialog.FileName, delegate(IStorableContent content, Exception error) { 89 86 try { 90 operatorGraph = call.EndInvoke(a) as OperatorGraph; 87 if (error != null) throw error; 88 OperatorGraph operatorGraph = content as OperatorGraph; 89 if (operatorGraph == null) 90 MessageBox.Show(this, "The selected file does not contain an operator graph.", "Invalid File", MessageBoxButtons.OK, MessageBoxIcon.Error); 91 else 92 Content.OperatorGraph = operatorGraph; 91 93 } 92 94 catch (Exception ex) { 93 95 Auxiliary.ShowErrorMessageBox(ex); 94 96 } 95 Invoke(new Action(delegate() { 96 if (operatorGraph == null) 97 MessageBox.Show(this, "The selected file does not contain an operator graph.", "Invalid File", MessageBoxButtons.OK, MessageBoxIcon.Error); 98 else 99 Content.OperatorGraph = operatorGraph; 100 operatorGraphViewHost.Enabled = true; 101 newOperatorGraphButton.Enabled = openOperatorGraphButton.Enabled = true; 102 this.Cursor = Cursors.Default; 103 })); 104 }, null); 97 finally { 98 Invoke(new Action(delegate() { 99 operatorGraphViewHost.Enabled = true; 100 newOperatorGraphButton.Enabled = openOperatorGraphButton.Enabled = true; 101 })); 102 } 103 }); 105 104 } 106 105 } -
trunk/sources/HeuristicLab.Optimizer/3.3/FileManager.cs
r3498 r3500 95 95 else { 96 96 ((OptimizerMainForm)MainFormManager.MainForm).SetAppStartingCursor(); 97 ((Form)MainFormManager.MainForm).Enabled = false;98 97 ContentManager.SaveAsync(content, content.Filename, true, SavingCompleted); 99 98 } … … 120 119 if (saveFileDialog.ShowDialog() == DialogResult.OK) { 121 120 ((OptimizerMainForm)MainFormManager.MainForm).SetAppStartingCursor(); 122 ((Form)MainFormManager.MainForm).Enabled = false;123 121 if (saveFileDialog.FilterIndex == 1) { 124 122 ContentManager.SaveAsync(content, saveFileDialog.FileName, false, SavingCompleted); … … 134 132 Invoke(delegate() { 135 133 ((OptimizerMainForm)MainFormManager.MainForm).UpdateTitle(); 136 ((Form)MainFormManager.MainForm).Enabled = true;137 134 }); 138 135 }
Note: See TracChangeset
for help on using the changeset viewer.