Free cookie consent management tool by TermsFeed Policy Generator

source: branches/2457_ExpertSystem/HeuristicLab.OptimizationExpertSystem/3.3/Menu/900_Tools/930_SaveCSharpScriptMenuItem.cs

Last change on this file was 13720, checked in by abeham, 9 years ago

#2457: worked on expert-system

File size: 2.4 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
4 *
5 * This file is part of HeuristicLab.
6 *
7 * HeuristicLab is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * HeuristicLab is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
19 */
20#endregion
21
22using HeuristicLab.Common;
23using HeuristicLab.Common.Resources;
24using HeuristicLab.MainForm;
25using HeuristicLab.Scripting;
26using System;
27using System.Collections.Generic;
28using System.Drawing;
29using System.IO;
30using System.Windows.Forms;
31
32namespace HeuristicLab.OptimizationExpertSystem.Menu {
33  internal class SaveCSharpScriptMenuItem : MenuItemBase {
34    public override Image Image { get { return VSImageLibrary.Save; } }
35
36    public override string Name {
37      get { return "Save"; }
38    }
39
40    public override IEnumerable<string> Structure {
41      get { return new[] { "Tools", "C# Script" }; }
42    }
43
44    public override int Position {
45      get { return 930; }
46    }
47
48    public override string ToolTipText { get { return "Save an open script."; } }
49
50    public override void Execute() {
51      var script = (CSharpScript)((IContentView)MainForm.ActiveView).Content;
52      if (!string.IsNullOrEmpty(script.Filename) && File.Exists(script.Filename)) {
53        try {
54          ContentManager.Save(script, script.Filename, true);
55          return;
56        } catch { }
57      }
58      using (var dialog = new SaveFileDialog()) {
59        dialog.Filter = "HL Files|*.hl";
60        if (dialog.ShowDialog(MainForm) != DialogResult.OK) return;
61        ContentManager.Save(script, dialog.FileName, true);
62      }
63    }
64
65    protected override void OnActiveViewChanged(object sender, EventArgs e) {
66      base.OnActiveViewChanged(sender, e);
67      var contentView = MainForm.ActiveView as IContentView;
68      ToolStripItem.Enabled = (contentView != null && contentView.Content is CSharpScript);
69    }
70  }
71}
Note: See TracBrowser for help on using the repository browser.