Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/27/09 18:12:38 (15 years ago)
Author:
epitzer
Message:

Refactor saving into IEditor and provide choice of compressed and uncompressed HeuristicLab archives during saving (#646)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.AdvancedOptimizationFrontend/3.3/MainForm.cs

    r1853 r1921  
    184184        else {
    185185          editor.Filename = task.filename;
     186          editor.SaveFinished += new EventHandler(SaveFinished);
    186187          PluginManager.ControlManager.ShowControl(editor);
    187188        }
     
    193194      }
    194195    }
     196
    195197    private void Save(EditorForm form) {
    196198      if (form.Editor.Filename == null)
    197199        SaveAs(form);
    198200      else {
     201        Cursor = Cursors.AppStarting;
    199202        lock (locker) runningTasks++;
    200         Cursor = Cursors.AppStarting;
    201         ((Control)form.Editor).Enabled = false;
    202203        EnableDisableItems();
    203         Task task = new Task(form.Editor.Filename, form.Editor.Item, form.Editor);
    204         ThreadPool.QueueUserWorkItem(new WaitCallback(AsynchronousSave), task);
     204        form.Editor.Save();
    205205      }
    206206    }
    207207    private void SaveAs(EditorForm form) {
     208      if (form.Editor.Compressed)
     209        saveFileDialog.FilterIndex = 2;
     210      else
     211        saveFileDialog.FilterIndex = 1;
     212
    208213      if (saveFileDialog.ShowDialog(this) == DialogResult.OK) {
    209214        form.Editor.Filename = saveFileDialog.FileName;
     215        form.Editor.Compressed = saveFileDialog.FilterIndex == 2;
    210216        Save(form);
    211217      }
    212 
    213     }
    214     private void AsynchronousSave(object state) {
    215       Task task = (Task)state;
    216       try {
    217         PersistenceManager.Save(task.storable, task.filename);
    218       } catch (Exception e) {
    219         MessageBox.Show(String.Format(
    220           "Sorry couldn't save file \"{0}\".\n The following exception occurred: {1}",
    221           task.filename, e.ToString()),
    222           "Reader Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    223       }
    224       SaveFinished(task);
    225     }
    226     private void SaveFinished(Task task) {
     218    }
     219    private void SaveFinished(object sender, EventArgs e) {
    227220      if (InvokeRequired)
    228         Invoke(new TaskFinishedDelegate(SaveFinished), task);
     221        Invoke(new EventHandler(SaveFinished), sender, e);
    229222      else {
    230         ((Control)task.editor).Enabled = true;
    231223        EnableDisableItems();
    232224        lock (locker) {
     
    255247          MessageBox.Show("The selected item doesn't provide an editor.", "Editor Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    256248        } else {
     249          editor.SaveFinished += new EventHandler(SaveFinished);
    257250          PluginManager.ControlManager.ShowControl(editor);
    258251          EnableDisableItems();
Note: See TracChangeset for help on using the changeset viewer.