Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/DeleteColumnGroupCommand.cs @ 6133

Last change on this file since 6133 was 6133, checked in by gkronber, 13 years ago

#1471: imported generic parts of DataImporter from private code base

File size: 1.9 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using HeuristicLab.DataImporter.Data;
6using HeuristicLab.DataImporter.Data.CommandBase;
7using HeuristicLab.DataImporter.Data.Model;
8using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
9
10namespace HeuristicLab.DataImporter.Command {
11  [StorableClass]
12  [ViewableCommandInfoAttribute("Delete ColumnGroup", 1, ColumnGroupState.Active, "ColumnGroup Commands", Position = 1)]
13  public class DeleteColumnGroupCommand : DataSetCommandWithAffectedColumnGroupsBase {
14    private List<KeyValuePair<int, ColumnGroup>> deletedColumnGroups;
15
16    private DeleteColumnGroupCommand()
17      : base(null, null) {
18      deletedColumnGroups = new List<KeyValuePair<int, ColumnGroup>>();
19    }
20
21    public DeleteColumnGroupCommand(DataSet dataSet, List<string> affectedColumnGroupNames)
22      : base(dataSet, affectedColumnGroupNames) {
23      deletedColumnGroups = new List<KeyValuePair<int, ColumnGroup>>();
24    }
25
26    public override string Description {
27      get { return "Delete ColumnGroup"; }
28    }
29
30    public override void Execute() {
31      base.Execute();
32      ColumnGroup columnGroup;
33      foreach (string columnGroupName in AffectedColumnGroupNames) {
34        columnGroup = this.DataSet.GetColumnGroup(columnGroupName);
35        deletedColumnGroups.Add(new KeyValuePair<int, ColumnGroup>(this.DataSet.IndexOfColumnGroup(columnGroup), columnGroup));
36        this.DataSet.RemoveColumnGroup(columnGroup);
37      }
38      this.DataSet.FireChanged();
39    }
40
41    public override void UndoExecute() {
42      base.UndoExecute();
43      for (int i = 0; i < deletedColumnGroups.Count; i++)
44        this.DataSet.InsertColumnGroup(deletedColumnGroups[i].Key, deletedColumnGroups[i].Value);
45      deletedColumnGroups.Clear();
46      this.DataSet.FireChanged();
47    }
48  }
49}
Note: See TracBrowser for help on using the repository browser.