Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/15/09 12:29:13 (15 years ago)
Author:
epitzer
Message:

Namespace refactoring: rename formatters & decomposers -> primitive and composite serializers. (#603)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Persistence.GUI/3.3/PersistenceConfigurationForm.cs

    r1703 r1823  
    99using HeuristicLab.Persistence.Interfaces;
    1010using System.Text;
    11 using HeuristicLab.Persistence.Default.Decomposers;
     11using HeuristicLab.Persistence.Default.CompositeSerializers;
    1212using HeuristicLab.PluginInfrastructure;
    13 using HeuristicLab.Persistence.Default.Decomposers.Storable;
     13using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    1414
    1515namespace HeuristicLab.Persistence.GUI {
     
    1717  public partial class PersistenceConfigurationForm : Form {
    1818
    19     private readonly Dictionary<string, IFormatter> formatterTable;
    20     private readonly Dictionary<string, bool> simpleFormatterTable;
    21     private readonly Dictionary<IFormatter, string> reverseFormatterTable;
     19    private readonly Dictionary<string, IPrimitiveSerializer> primitiveSerializersTable;
     20    private readonly Dictionary<string, bool> simplePrimitiveSerializersTable;
     21    private readonly Dictionary<IPrimitiveSerializer, string> reversePrimitiveSerializersTable;
    2222    private readonly Dictionary<string, Type> typeNameTable;
    2323    private readonly Dictionary<Type, string> reverseTypeNameTable;
     
    2626    public PersistenceConfigurationForm() {
    2727      InitializeComponent();
    28       formatterTable = new Dictionary<string, IFormatter>();
    29       simpleFormatterTable = new Dictionary<string, bool>();
    30       reverseFormatterTable = new Dictionary<IFormatter, string>();
     28      primitiveSerializersTable = new Dictionary<string, IPrimitiveSerializer>();
     29      simplePrimitiveSerializersTable = new Dictionary<string, bool>();
     30      reversePrimitiveSerializersTable = new Dictionary<IPrimitiveSerializer, string>();
    3131      typeNameTable = new Dictionary<string, Type>();
    3232      reverseTypeNameTable = new Dictionary<Type, string>();
     
    3838        ConfigurationService.Instance.LoadSettings(true);
    3939        UpdateFromConfigurationService();
    40       } catch (PersistenceException e) {
     40      } catch (PersistenceException) {
    4141        MessageBox.Show(
    4242          "Persistence settings could not be loaded.\r\n" +
     
    6666    }
    6767
    68     private void UpdateFormatterGrid(DataGridView formatterGrid, Configuration config) {
    69       foreach (DataGridViewRow row in formatterGrid.Rows) {
     68    private void UpdatePrimitiveSerializersGrid(DataGridView primitiveSerializersGrid, Configuration config) {
     69      foreach (DataGridViewRow row in primitiveSerializersGrid.Rows) {
    7070        if (row.Cells["Type"] != null) {
    71           IFormatter formatter = config.GetFormatter(typeNameTable[(string)row.Cells["Type"].Value]);
    72           if (formatter == null) {
     71          IPrimitiveSerializer primitiveSerializer = config.GetPrimitiveSerializer(typeNameTable[(string)row.Cells["Type"].Value]);
     72          if (primitiveSerializer == null) {
    7373            row.Cells["Active"].Value = false;
    7474          } else {
    75             foreach (var pair in formatterTable) {
    76               if (pair.Value.GetType().VersionInvariantName() == formatter.GetType().VersionInvariantName()) {
    77                 row.Cells["Formatter"].Value = pair.Key;
     75            foreach (var pair in primitiveSerializersTable) {
     76              if (pair.Value.GetType().VersionInvariantName() == primitiveSerializer.GetType().VersionInvariantName()) {
     77                row.Cells["Primitive Serializer"].Value = pair.Key;
    7878                row.Cells["Active"].Value = true;
    7979                break;
     
    8585    }
    8686
    87     private void UpdateDecomposerList(ListView decomposerList, Configuration config) {
    88       decomposerList.SuspendLayout();
    89       decomposerList.Items.Clear();
    90       var availableDecomposers = new Dictionary<string, IDecomposer>();
    91       foreach (IDecomposer d in ConfigurationService.Instance.Decomposers) {
    92         availableDecomposers.Add(d.GetType().VersionInvariantName(), d);
    93       }
    94       foreach (IDecomposer decomposer in config.Decomposers) {
    95         var item = decomposerList.Items.Add(decomposer.GetType().Name);
     87    private void UpdateCompositeSerializersList(ListView compositeSerializersList, Configuration config) {
     88      compositeSerializersList.SuspendLayout();
     89      compositeSerializersList.Items.Clear();
     90      var availableCompositeSerializers = new Dictionary<string, ICompositeSerializer>();
     91      foreach (ICompositeSerializer d in ConfigurationService.Instance.CompositeSerializers) {
     92        availableCompositeSerializers.Add(d.GetType().VersionInvariantName(), d);
     93      }
     94      foreach (ICompositeSerializer compositeSerializer in config.CompositeSerializers) {
     95        var item = compositeSerializersList.Items.Add(compositeSerializer.GetType().Name);
    9696        item.Checked = true;
    97         item.Tag = decomposer;
    98         availableDecomposers.Remove(decomposer.GetType().VersionInvariantName());
    99       }
    100       foreach (KeyValuePair<string, IDecomposer> pair in availableDecomposers) {
    101         var item = decomposerList.Items.Add(pair.Value.GetType().Name);
     97        item.Tag = compositeSerializer;
     98        availableCompositeSerializers.Remove(compositeSerializer.GetType().VersionInvariantName());
     99      }
     100      foreach (KeyValuePair<string, ICompositeSerializer> pair in availableCompositeSerializers) {
     101        var item = compositeSerializersList.Items.Add(pair.Value.GetType().Name);
    102102        item.Checked = false;
    103103        item.Tag = pair.Value;
    104104      }
    105       decomposerList.ResumeLayout();
     105      compositeSerializersList.ResumeLayout();
    106106    }
    107107
     
    110110      foreach (IFormat format in ConfigurationService.Instance.Formats) {
    111111        Configuration config = ConfigurationService.Instance.GetConfiguration(format);
    112         UpdateFormatterGrid(
     112        UpdatePrimitiveSerializersGrid(
    113113          (DataGridView)GetControlsOnPage(format.Name, "GridView"),
    114114          config);
    115         UpdateDecomposerList(
    116           (ListView)GetControlsOnPage(format.Name, "DecomposerList"),
     115        UpdateCompositeSerializersList(
     116          (ListView)GetControlsOnPage(format.Name, "CompositeSerializersList"),
    117117          config);
    118118      }
     
    124124      configurationTabs.TabPages.Clear();
    125125      foreach (IFormat format in ConfigurationService.Instance.Formats) {
    126         List<IFormatter> formatters = ConfigurationService.Instance.Formatters[format.SerialDataType];
     126        List<IPrimitiveSerializer> primitiveSerializers = ConfigurationService.Instance.PrimitiveSerializers[format.SerialDataType];
    127127        TabPage page = new TabPage(format.Name) {
    128128          Name = format.Name,
     
    145145        horizontalSplit.SuspendLayout();
    146146        verticalSplit.Panel1.Controls.Add(horizontalSplit);
    147         ListView decomposerList = createDecomposerList();
    148         horizontalSplit.Panel1.Controls.Add(decomposerList);
     147        ListView compositeSerializersList = createCompsiteSerializersList();
     148        horizontalSplit.Panel1.Controls.Add(compositeSerializersList);
    149149        DataGridView gridView = createGridView();
    150150        verticalSplit.Panel2.Controls.Add(gridView);
    151         fillDataGrid(gridView, formatters);
     151        fillDataGrid(gridView, primitiveSerializers);
    152152        ListBox checkBox = new ListBox {
    153153          Name = "CheckBox",
     
    185185      });
    186186      gridView.Columns.Add(new DataGridViewComboBoxColumn {
    187         Name = "Formatter",
     187        Name = "Primitive Serializer",
    188188        AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
    189189      });
     
    192192    }
    193193
    194     private ListView createDecomposerList() {
    195       ListView decomposerList = new ListView {
     194    private ListView createCompsiteSerializersList() {
     195      ListView compositeSerializersList = new ListView {
    196196        Activation = ItemActivation.OneClick,
    197197        AllowDrop = true,
     
    201201        GridLines = true,
    202202        HeaderStyle = ColumnHeaderStyle.Nonclickable,
    203         Name = "DecomposerList",
     203        Name = "CompositeSerializersList",
    204204        ShowGroups = false,
    205205        View = View.Details
    206206      };
    207       decomposerList.SuspendLayout();
    208       decomposerList.Resize += decomposerList_Resize;
    209       decomposerList.ItemChecked += decomposerList_ItemChecked;
    210       decomposerList.DragDrop += decomposerList_DragDrop;
    211       decomposerList.DragEnter += decomposerList_DragEnter;
    212       decomposerList.ItemDrag += decomposerList_ItemDrag;
    213       decomposerList.Columns.Add(
     207      compositeSerializersList.SuspendLayout();
     208      compositeSerializersList.Resize += compositeSerializersList_Resize;
     209      compositeSerializersList.ItemChecked += compositeSerializersList_ItemChecked;
     210      compositeSerializersList.DragDrop += compositeSerializersList_DragDrop;
     211      compositeSerializersList.DragEnter += compositeSerializersList_DragEnter;
     212      compositeSerializersList.ItemDrag += compositeSerializersList_ItemDrag;
     213      compositeSerializersList.Columns.Add(
    214214        new ColumnHeader {
    215           Name = "DecomposerColumn", Text = "Decomposers",
     215          Name = "CompositeSerializersColumn", Text = "Composite Serializer",
    216216        });
    217       foreach (IDecomposer decomposer in ConfigurationService.Instance.Decomposers) {
    218         var item = decomposerList.Items.Add(decomposer.GetType().Name);
     217      foreach (ICompositeSerializer compositeSerializer in ConfigurationService.Instance.CompositeSerializers) {
     218        var item = compositeSerializersList.Items.Add(compositeSerializer.GetType().Name);
    219219        item.Checked = true;
    220         item.Tag = decomposer;
    221       }
    222       decomposerList.ResumeLayout();
    223       return decomposerList;
    224     }
    225 
    226     private void fillDataGrid(DataGridView gridView, IEnumerable<IFormatter> formatters) {
     220        item.Tag = compositeSerializer;
     221      }
     222      compositeSerializersList.ResumeLayout();
     223      return compositeSerializersList;
     224    }
     225
     226    private void fillDataGrid(DataGridView gridView, IEnumerable<IPrimitiveSerializer> primitiveSerializers) {
    227227      gridView.SuspendLayout();
    228       Dictionary<string, List<string>> formatterMap = createFormatterMap(formatters);
    229       foreach (var formatterMapping in formatterMap) {
     228      Dictionary<string, List<string>> primitiveSerializersMap = createPrimitiveSerializersMap(primitiveSerializers);
     229      foreach (var primitiveSerializersMapping in primitiveSerializersMap) {
    230230        var row = gridView.Rows[gridView.Rows.Add()];
    231         row.Cells["Type"].Value = formatterMapping.Key;
    232         row.Cells["Type"].ToolTipText = formatterMapping.Key;
     231        row.Cells["Type"].Value = primitiveSerializersMapping.Key;
     232        row.Cells["Type"].ToolTipText = primitiveSerializersMapping.Key;
    233233        row.Cells["Active"].Value = true;
    234         var comboBoxCell = (DataGridViewComboBoxCell)row.Cells["Formatter"];
    235         foreach (var formatter in formatterMapping.Value) {
    236           comboBoxCell.Items.Add(formatter);
     234        var comboBoxCell = (DataGridViewComboBoxCell)row.Cells["Primitive Serializer"];
     235        foreach (var primitiveSerializer in primitiveSerializersMapping.Value) {
     236          comboBoxCell.Items.Add(primitiveSerializer);
    237237        }
    238238        comboBoxCell.Value = comboBoxCell.Items[0];
     
    246246    }
    247247
    248     private Dictionary<string, List<string>> createFormatterMap(IEnumerable<IFormatter> formatters) {
    249       var formatterMap = new Dictionary<string, List<string>>();
    250       foreach (var formatter in formatters) {
    251         string formatterName = reverseFormatterTable[formatter];
    252         string typeName = reverseTypeNameTable[formatter.SourceType];
    253         if (!formatterMap.ContainsKey(typeName))
    254           formatterMap.Add(typeName, new List<string>());
    255         formatterMap[typeName].Add(formatterName);
    256       }
    257       return formatterMap;
     248    private Dictionary<string, List<string>> createPrimitiveSerializersMap(IEnumerable<IPrimitiveSerializer> primitiveSerializers) {
     249      var primitiveSerializersMap = new Dictionary<string, List<string>>();
     250      foreach (var primitiveSerializer in primitiveSerializers) {
     251        string primitiveSerializerName = reversePrimitiveSerializersTable[primitiveSerializer];
     252        string typeName = reverseTypeNameTable[primitiveSerializer.SourceType];
     253        if (!primitiveSerializersMap.ContainsKey(typeName))
     254          primitiveSerializersMap.Add(typeName, new List<string>());
     255        primitiveSerializersMap[typeName].Add(primitiveSerializerName);
     256      }
     257      return primitiveSerializersMap;
    258258    }
    259259
    260260    private void InitializeNameTables() {
    261       foreach (var serialDataType in ConfigurationService.Instance.Formatters.Keys) {
    262         foreach (var formatter in ConfigurationService.Instance.Formatters[serialDataType]) {
    263           string formatterName = formatter.GetType().Name;
    264           if (simpleFormatterTable.ContainsKey(formatterName)) {
    265             IFormatter otherFormatter = formatterTable[formatterName];
    266             formatterTable.Remove(formatterName);
    267             reverseFormatterTable.Remove(otherFormatter);
    268             formatterTable.Add(otherFormatter.GetType().VersionInvariantName(), otherFormatter);
    269             reverseFormatterTable.Add(otherFormatter, otherFormatter.GetType().VersionInvariantName());
    270             formatterName = formatter.GetType().VersionInvariantName();
     261      foreach (var serialDataType in ConfigurationService.Instance.PrimitiveSerializers.Keys) {
     262        foreach (var primtiveSerializer in ConfigurationService.Instance.PrimitiveSerializers[serialDataType]) {
     263          string primitiveSerializerName = primtiveSerializer.GetType().Name;
     264          if (simplePrimitiveSerializersTable.ContainsKey(primitiveSerializerName)) {
     265            IPrimitiveSerializer otherPrimitiveSerializer = primitiveSerializersTable[primitiveSerializerName];
     266            primitiveSerializersTable.Remove(primitiveSerializerName);
     267            reversePrimitiveSerializersTable.Remove(otherPrimitiveSerializer);
     268            primitiveSerializersTable.Add(otherPrimitiveSerializer.GetType().VersionInvariantName(), otherPrimitiveSerializer);
     269            reversePrimitiveSerializersTable.Add(otherPrimitiveSerializer, otherPrimitiveSerializer.GetType().VersionInvariantName());
     270            primitiveSerializerName = primtiveSerializer.GetType().VersionInvariantName();
    271271          }
    272           simpleFormatterTable[formatter.GetType().Name] = true;
    273           formatterTable.Add(formatterName, formatter);
    274           reverseFormatterTable.Add(formatter, formatterName);
    275 
    276           string typeName = formatter.SourceType.IsGenericType ?
    277             formatter.SourceType.SimpleFullName() :
    278             formatter.SourceType.Name;
     272          simplePrimitiveSerializersTable[primtiveSerializer.GetType().Name] = true;
     273          primitiveSerializersTable.Add(primitiveSerializerName, primtiveSerializer);
     274          reversePrimitiveSerializersTable.Add(primtiveSerializer, primitiveSerializerName);
     275
     276          string typeName = primtiveSerializer.SourceType.IsGenericType ?
     277            primtiveSerializer.SourceType.SimpleFullName() :
     278            primtiveSerializer.SourceType.Name;
    279279          if (typeNameTable.ContainsKey(typeName)) {
    280280            Type otherType = typeNameTable[typeName];
    281             if (otherType != formatter.SourceType) {
     281            if (otherType != primtiveSerializer.SourceType) {
    282282              typeNameTable.Remove(typeName);
    283283              reverseTypeNameTable.Remove(otherType);
    284284              typeNameTable.Add(otherType.VersionInvariantName(), otherType);
    285285              reverseTypeNameTable.Add(otherType, otherType.VersionInvariantName());
    286               typeName = formatter.SourceType.VersionInvariantName();
    287               typeNameTable.Add(typeName, formatter.SourceType);
    288               reverseTypeNameTable.Add(formatter.SourceType, typeName);
     286              typeName = primtiveSerializer.SourceType.VersionInvariantName();
     287              typeNameTable.Add(typeName, primtiveSerializer.SourceType);
     288              reverseTypeNameTable.Add(primtiveSerializer.SourceType, typeName);
    289289            }
    290290          } else {
    291             typeNameTable.Add(typeName, formatter.SourceType);
    292             reverseTypeNameTable.Add(formatter.SourceType, typeName);
     291            typeNameTable.Add(typeName, primtiveSerializer.SourceType);
     292            reverseTypeNameTable.Add(primtiveSerializer.SourceType, typeName);
    293293          }
    294294        }
     
    305305        checkBox.Items.Clear();
    306306        Configuration activeConfig = GetActiveConfiguration();
    307         foreach (var formatter in activeConfig.Formatters) {
    308           checkBox.Items.Add(formatter.GetType().Name + " (F)");
    309         }
    310         foreach (var decomposer in activeConfig.Decomposers)
    311           checkBox.Items.Add(decomposer.GetType().Name + " (D)");
     307        foreach (var primitveSerializer in activeConfig.PrimitiveSerializers) {
     308          checkBox.Items.Add(primitveSerializer.GetType().Name + " (F)");
     309        }
     310        foreach (var compositeSerializer in activeConfig.CompositeSerializers)
     311          checkBox.Items.Add(compositeSerializer.GetType().Name + " (D)");
    312312      }
    313313      checkBox.ResumeLayout();
     
    319319    }
    320320
    321     private void decomposerList_ItemDrag(object sender, ItemDragEventArgs e) {
    322       ListView decomposerList = (ListView)sender;
    323       decomposerList.DoDragDrop(decomposerList.SelectedItems, DragDropEffects.Move);
    324     }
    325 
    326     private void decomposerList_DragEnter(object sender, DragEventArgs e) {
     321    private void compositeSerializersList_ItemDrag(object sender, ItemDragEventArgs e) {
     322      ListView compositeSerializersList = (ListView)sender;
     323      compositeSerializersList.DoDragDrop(compositeSerializersList.SelectedItems, DragDropEffects.Move);
     324    }
     325
     326    private void compositeSerializersList_DragEnter(object sender, DragEventArgs e) {
    327327      if (e.Data.GetDataPresent(typeof(ListView.SelectedListViewItemCollection).FullName)) {
    328328        e.Effect = DragDropEffects.Move;
     
    330330    }
    331331
    332     private void decomposerList_DragDrop(object sender, DragEventArgs e) {
    333       ListView decomposerList = (ListView)sender;
    334       if (decomposerList.SelectedItems.Count == 0) {
     332    private void compositeSerializersList_DragDrop(object sender, DragEventArgs e) {
     333      ListView compositeSerializersList = (ListView)sender;
     334      if (compositeSerializersList.SelectedItems.Count == 0) {
    335335        return;
    336336      }
    337       Point cp = decomposerList.PointToClient(new Point(e.X, e.Y));
    338       ListViewItem targetItem = decomposerList.GetItemAt(cp.X, cp.Y);
     337      Point cp = compositeSerializersList.PointToClient(new Point(e.X, e.Y));
     338      ListViewItem targetItem = compositeSerializersList.GetItemAt(cp.X, cp.Y);
    339339      if (targetItem == null)
    340340        return;
    341341      int targetIndex = targetItem.Index;
    342       var selectedItems = new List<ListViewItem>(decomposerList.SelectedItems.Cast<ListViewItem>());
     342      var selectedItems = new List<ListViewItem>(compositeSerializersList.SelectedItems.Cast<ListViewItem>());
    343343      int i = 0;
    344344      foreach (ListViewItem dragItem in selectedItems) {
     
    346346          return;
    347347        if (dragItem.Index < targetIndex) {
    348           decomposerList.Items.Insert(targetIndex + 1, (ListViewItem)dragItem.Clone());
     348          compositeSerializersList.Items.Insert(targetIndex + 1, (ListViewItem)dragItem.Clone());
    349349        } else {
    350           decomposerList.Items.Insert(targetIndex + i, (ListViewItem)dragItem.Clone());
    351         }
    352         decomposerList.Items.Remove(dragItem);
     350          compositeSerializersList.Items.Insert(targetIndex + i, (ListViewItem)dragItem.Clone());
     351        }
     352        compositeSerializersList.Items.Remove(dragItem);
    353353        i++;
    354354      }
     
    356356    }
    357357
    358     private void decomposerList_Resize(object sender, EventArgs e) {
    359       ListView decomposerList = (ListView)sender;
    360       decomposerList.Columns["DecomposerColumn"].Width = decomposerList.Width - 4;
    361     }
    362 
    363 
    364     private void decomposerList_ItemChecked(object sender, ItemCheckedEventArgs e) {
     358    private void compositeSerializersList_Resize(object sender, EventArgs e) {
     359      ListView compositeSerializersList = (ListView)sender;
     360      compositeSerializersList.Columns["CompositeSerializersColumn"].Width = compositeSerializersList.Width - 4;
     361    }
     362
     363
     364    private void compositeSerializersList_ItemChecked(object sender, ItemCheckedEventArgs e) {
    365365      UpdatePreview();
    366366    }
     
    384384    }
    385385
    386     private Configuration GenerateConfiguration(IFormat format, DataGridView formatterGrid, ListView decomposerList) {
    387       if (formatterGrid == null || decomposerList == null)
     386    private Configuration GenerateConfiguration(IFormat format, DataGridView primitiveSerializersGrid, ListView compositeSerializersList) {
     387      if (primitiveSerializersGrid == null || compositeSerializersList == null)
    388388        return null;
    389       var formatters = new List<IFormatter>();
    390       foreach (DataGridViewRow row in formatterGrid.Rows) {
     389      var primitiveSerializers = new List<IPrimitiveSerializer>();
     390      foreach (DataGridViewRow row in primitiveSerializersGrid.Rows) {
    391391        if (row.Cells["Type"].Value != null &&
    392392             row.Cells["Active"].Value != null &&
    393              row.Cells["Formatter"].Value != null &&
     393             row.Cells["Primitive Serializer"].Value != null &&
    394394             (bool)row.Cells["Active"].Value == true) {
    395           formatters.Add(formatterTable[(string)row.Cells["Formatter"].Value]);
    396         }
    397       }
    398       var decomposers = new List<IDecomposer>();
    399       foreach (ListViewItem item in decomposerList.Items) {
     395          primitiveSerializers.Add(primitiveSerializersTable[(string)row.Cells["Primitive Serializer"].Value]);
     396        }
     397      }
     398      var compositeSerializers = new List<ICompositeSerializer>();
     399      foreach (ListViewItem item in compositeSerializersList.Items) {
    400400        if (item != null && item.Checked)
    401           decomposers.Add((IDecomposer)item.Tag);
    402       }
    403       return new Configuration(format, formatters, decomposers);
     401          compositeSerializers.Add((ICompositeSerializer)item.Tag);
     402      }
     403      return new Configuration(format, primitiveSerializers, compositeSerializers);
    404404    }
    405405
     
    408408      return GenerateConfiguration(format,
    409409        (DataGridView)GetActiveControl("GridView"),
    410         (ListView)GetActiveControl("DecomposerList"));
     410        (ListView)GetActiveControl("CompositeSerializersList"));
    411411    }
    412412
     
    414414      return GenerateConfiguration(format,
    415415       (DataGridView)GetControlsOnPage(format.Name, "GridView"),
    416        (ListView)GetControlsOnPage(format.Name, "DecomposerList"));
     416       (ListView)GetControlsOnPage(format.Name, "CompositeSerializersList"));
    417417    }
    418418
Note: See TracChangeset for help on using the changeset viewer.