Free cookie consent management tool by TermsFeed Policy Generator

Changeset 2961


Ignore:
Timestamp:
03/08/10 00:20:29 (14 years ago)
Author:
swagner
Message:

Refactored enabling and disabling of save buttons and menu items to prevent saving of running algorithms (#685)

Location:
trunk/sources
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Core.Views/3.3/ItemView.cs

    r2958 r2961  
    3636      set { base.Content = value; }
    3737    }
    38     private bool enableFileOperations;
    39     public bool EnableFileOperations {
    40       get { return enableFileOperations; }
    41       protected set {
    42         if (value != enableFileOperations) {
    43           enableFileOperations = value;
    44           OnChanged();
    45         }
    46       }
    47     }
    4838
    4939    /// <summary>
     
    5343      InitializeComponent();
    5444      Caption = "View";
    55       enableFileOperations = true;
    5645    }
    5746    public ItemView(IItem content)
  • trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/ContentView.cs

    r2916 r2961  
    3131namespace HeuristicLab.MainForm.WindowsForms {
    3232  public partial class ContentView : View, IContentView {
    33     public ContentView()
    34       : base() {
    35       InitializeComponent();
    36     }
    37 
    38     public ContentView(object content)
    39       : this() {
    40       this.content = content;
    41     }
    42 
    4333    private object content;
    4434    public object Content {
     
    5848        }
    5949      }
     50    }
     51    private bool saveEnabled;
     52    public bool SaveEnabled {
     53      get { return saveEnabled; }
     54      protected set {
     55        if (value != saveEnabled) {
     56          saveEnabled = value;
     57          OnChanged();
     58        }
     59      }
     60    }
     61
     62    public ContentView()
     63      : base() {
     64      InitializeComponent();
     65      saveEnabled = true;
     66    }
     67    public ContentView(object content)
     68      : this() {
     69      this.content = content;
    6070    }
    6171
  • trunk/sources/HeuristicLab.MainForm/3.2/Interfaces/IContentView.cs

    r2790 r2961  
    2828  public interface IContentView : IView {
    2929    object Content { get; }
     30    bool SaveEnabled { get; }
    3031  }
    3132}
  • trunk/sources/HeuristicLab.Optimization.Views/3.3/AlgorithmView.cs

    r2958 r2961  
    152152        Invoke(new EventHandler(Content_Started), sender, e);
    153153      else {
    154         EnableFileOperations = false;
     154        SaveEnabled = false;
    155155        parameterCollectionView.Enabled = false;
    156156        newProblemButton.Enabled = openProblemButton.Enabled = saveProblemButton.Enabled = false;
     
    167167        Invoke(new EventHandler(Content_Stopped), sender, e);
    168168      else {
    169         EnableFileOperations = true;
     169        SaveEnabled = true;
    170170        parameterCollectionView.Enabled = true;
    171171        newProblemButton.Enabled = openProblemButton.Enabled = saveProblemButton.Enabled = true;
  • trunk/sources/HeuristicLab.Optimizer/3.3/FileManager.cs

    r2960 r2961  
    2626using System.Threading;
    2727using System.Windows.Forms;
    28 using HeuristicLab.Core;
    2928using HeuristicLab.Core.Views;
    3029using HeuristicLab.MainForm;
     
    108107    }
    109108    private static void Save(IContentView view) {
    110       if ((!files.ContainsKey(view)) || (!File.Exists(files[view].Filename))) {
    111         SaveAs(view);
    112       } else {
    113         if (files[view].Compressed)
    114           SaveItemAsync(view, files[view].Filename, 9);
    115         else
    116           SaveItemAsync(view, files[view].Filename, 0);
     109      if (view.SaveEnabled) {
     110        if ((!files.ContainsKey(view)) || (!File.Exists(files[view].Filename))) {
     111          SaveAs(view);
     112        } else {
     113          if (files[view].Compressed)
     114            SaveItemAsync(view, files[view].Filename, 9);
     115          else
     116            SaveItemAsync(view, files[view].Filename, 0);
     117        }
    117118      }
    118119    }
     
    125126    }
    126127    public static void SaveAs(IContentView view) {
    127       if (saveFileDialog == null) {
    128         saveFileDialog = new SaveFileDialog();
    129         saveFileDialog.Title = "Save Item";
    130         saveFileDialog.DefaultExt = "hl";
    131         saveFileDialog.Filter = "Uncompressed HeuristicLab Files|*.hl|HeuristicLab Files|*.hl|All Files|*.*";
    132         saveFileDialog.FilterIndex = 2;
    133       }
    134 
    135       if (!files.ContainsKey(view)) {
    136         files.Add(view, new FileInfo());
    137         saveFileDialog.FileName = view.Caption;
    138       } else {
    139         saveFileDialog.FileName = files[view].Filename;
    140       }
    141       if (! files[view].Compressed)
    142         saveFileDialog.FilterIndex = 1;
    143       else
    144         saveFileDialog.FilterIndex = 2;
    145 
    146       if (saveFileDialog.ShowDialog() == DialogResult.OK) {
    147         if (saveFileDialog.FilterIndex == 1) {
    148           SaveItemAsync(view, saveFileDialog.FileName, 0);
     128      if (view.SaveEnabled) {
     129        if (saveFileDialog == null) {
     130          saveFileDialog = new SaveFileDialog();
     131          saveFileDialog.Title = "Save Item";
     132          saveFileDialog.DefaultExt = "hl";
     133          saveFileDialog.Filter = "Uncompressed HeuristicLab Files|*.hl|HeuristicLab Files|*.hl|All Files|*.*";
     134          saveFileDialog.FilterIndex = 2;
     135        }
     136
     137        if (!files.ContainsKey(view)) {
     138          files.Add(view, new FileInfo());
     139          saveFileDialog.FileName = view.Caption;
    149140        } else {
    150           SaveItemAsync(view, saveFileDialog.FileName, 9);
     141          saveFileDialog.FileName = files[view].Filename;
     142        }
     143        if (!files[view].Compressed)
     144          saveFileDialog.FilterIndex = 1;
     145        else
     146          saveFileDialog.FilterIndex = 2;
     147
     148        if (saveFileDialog.ShowDialog() == DialogResult.OK) {
     149          if (saveFileDialog.FilterIndex == 1) {
     150            SaveItemAsync(view, saveFileDialog.FileName, 0);
     151          } else {
     152            SaveItemAsync(view, saveFileDialog.FileName, 9);
     153          }
    151154        }
    152155      }
     
    154157
    155158    public static void SaveAll() {
    156       var views = from v in MainFormManager.MainForm.Views
    157                   where v is IContentView
    158                   select v as IContentView;
    159 
    160       foreach (IContentView view in views) {
    161         ItemView itemView = view as ItemView;
    162         if ((itemView == null) || (itemView.EnableFileOperations)) {
    163           Save(view);
    164         }
    165       }
     159      foreach (IContentView view in MainFormManager.MainForm.Views.OfType<IContentView>())
     160        Save(view);
    166161    }
    167162
     
    211206            try {
    212207              SetWaitingCursor();
    213               IItem item = (IItem)XmlParser.Deserialize(filename);
     208              object content = XmlParser.Deserialize(filename);
    214209              Invoke(delegate() {
    215                 IContentView view = MainFormManager.CreateDefaultView(item) as IContentView;
     210                IContentView view = MainFormManager.CreateDefaultView(content) as IContentView;
    216211                if (view == null) {
    217212                  MessageBox.Show("There is no view for the loaded item. It cannot be displayed. ", "No View Available", MessageBoxButtons.OK, MessageBoxIcon.Error);
  • trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/SaveAllMenuItem.cs

    r2960 r2961  
    2525using System.Linq;
    2626using System.Windows.Forms;
    27 using HeuristicLab.Core;
    28 using HeuristicLab.Core.Views;
    2927using HeuristicLab.MainForm;
    3028
     
    4846    }
    4947    protected override void OnActiveViewChanged(object sender, EventArgs e) {
    50       var views = from v in MainFormManager.MainForm.Views
    51                   where v is IContentView
    52                   where ((v is ItemView) && ((ItemView)v).EnableFileOperations) || (!(v is ItemView))
     48      var views = from v in MainFormManager.MainForm.Views.OfType<IContentView>()
     49                  where v.SaveEnabled
    5350                  select v;
    5451      ToolStripItem.Enabled = views.FirstOrDefault() != null;
  • trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/SaveAsMenuItem.cs

    r2960 r2961  
    2323using System.Collections.Generic;
    2424using System.Windows.Forms;
    25 using HeuristicLab.Core;
    26 using HeuristicLab.Core.Views;
    2725using HeuristicLab.MainForm;
    2826
     
    4745    protected override void OnActiveViewChanged(object sender, EventArgs e) {
    4846      IContentView activeView = MainFormManager.MainForm.ActiveView as IContentView;
    49       bool enable = activeView != null;
    50       ItemView itemView = MainFormManager.MainForm.ActiveView as ItemView;
    51       if ((enable) && (itemView != null)) enable = itemView.EnableFileOperations;
    52       ToolStripItem.Enabled = enable;
     47      ToolStripItem.Enabled = (activeView != null) && (activeView.SaveEnabled);
    5348    }
    5449
  • trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/SaveMenuItem.cs

    r2960 r2961  
    2424using System.Drawing;
    2525using System.Windows.Forms;
    26 using HeuristicLab.Core;
    27 using HeuristicLab.Core.Views;
    2826using HeuristicLab.MainForm;
    2927
     
    5149    protected override void OnActiveViewChanged(object sender, EventArgs e) {
    5250      IContentView activeView = MainFormManager.MainForm.ActiveView as IContentView;
    53       bool enable = activeView != null;
    54       ItemView itemView = MainFormManager.MainForm.ActiveView as ItemView;
    55       if ((enable) && (itemView != null)) enable = itemView.EnableFileOperations;
    56       ToolStripItem.Enabled = enable;
     51      ToolStripItem.Enabled = (activeView != null) && (activeView.SaveEnabled);
    5752    }
    5853
  • trunk/sources/HeuristicLab.Optimizer/3.3/ToolBarItems/SaveAllToolBarItem.cs

    r2960 r2961  
    2424using System.Linq;
    2525using System.Windows.Forms;
    26 using HeuristicLab.Core;
    27 using HeuristicLab.Core.Views;
    2826using HeuristicLab.MainForm;
    2927
     
    4745    }
    4846    protected override void OnActiveViewChanged(object sender, EventArgs e) {
    49       var views = from v in MainFormManager.MainForm.Views
    50                   where v is IContentView
    51                   where ((v is ItemView) && ((ItemView)v).EnableFileOperations) || (!(v is ItemView))
     47      var views = from v in MainFormManager.MainForm.Views.OfType<IContentView>()
     48                  where v.SaveEnabled
    5249                  select v;
    5350      ToolStripItem.Enabled = views.FirstOrDefault() != null;
  • trunk/sources/HeuristicLab.Optimizer/3.3/ToolBarItems/SaveToolBarItem.cs

    r2960 r2961  
    2323using System.Drawing;
    2424using System.Windows.Forms;
    25 using HeuristicLab.Core;
    26 using HeuristicLab.Core.Views;
    2725using HeuristicLab.MainForm;
    2826
     
    4745    protected override void OnActiveViewChanged(object sender, EventArgs e) {
    4846      IContentView activeView = MainFormManager.MainForm.ActiveView as IContentView;
    49       bool enable = activeView != null;
    50       ItemView itemView = MainFormManager.MainForm.ActiveView as ItemView;
    51       if ((enable) && (itemView != null)) enable = itemView.EnableFileOperations;
    52       ToolStripItem.Enabled = enable;
     47      ToolStripItem.Enabled = (activeView != null) && (activeView.SaveEnabled);
    5348    }
    5449
Note: See TracChangeset for help on using the changeset viewer.