private void setPreferenceControl(int index) { if (m_openPreference != null) { m_openPreference.Hide(); this.Controls.Remove(m_openPreference); } string tag = modules.Items[index] as string; m_currentModule = tag; if (tag == "General") { m_openPreference = new GeneralPreferences(); } else { Type moduleType = (StateMaster.getModules()[tag]); IModule module = Activator.CreateInstance(moduleType) as IModule; m_openPreference = module.getPreferenceControl(); } m_openPreference.LoadValues(m_currentPreferenceData[tag]); this.Controls.Add(m_openPreference); m_openPreference.Show(); alignWidgets(); }
public static Dictionary <string, object> getPreferenceData(string tag) { Dictionary <string, object> values = new Dictionary <string, object>(); if (tag == "General") { IEnumerator iterator = DataSetManager.Manager.getData(DataSets.Config, DataSetManager.GENERIC_TABLE_NAME); GeneralPreferences gp = new GeneralPreferences(); Dictionary <string, object> dataValues = gp.GetValues(); if (iterator.MoveNext()) { DataRow dr = ((DataRow)iterator.Current); foreach (KeyValuePair <string, object> kv in dataValues) { values[kv.Key] = dr[kv.Key]; } } else { foreach (KeyValuePair <string, object> kv in dataValues) { values[kv.Key] = kv.Value; } } } else { Dictionary <string, Type> modules = getModules(); Type[] types = new Type[0]; object[] parameters = new object[0]; IModule moduleObject = (modules[tag]).GetConstructor(types).Invoke(parameters) as IModule; if (moduleObject.preferencesAvailable()) // Previous Data Never Stored { IEnumerator iterator = DataSetManager.Manager.getData(DataSets.Config, tag); if (iterator == null || !iterator.MoveNext()) // No Table or Empty Table { PreferenceControl preferenceControl = moduleObject.getPreferenceControl(); Dictionary <string, object> mappings = preferenceControl.GetValues(); Dictionary <string, Type> columns = new Dictionary <string, Type>(); foreach (KeyValuePair <string, object> mapping in mappings) { values.Add(mapping.Key, mapping.Value); columns.Add(mapping.Key, mapping.Value.GetType()); } if (iterator == null) { DataSetManager.Manager.addTable(DataSets.Config, tag, columns); } } else// Should only have 1 data element { DataRow dr = iterator.Current as DataRow; foreach (DataColumn column in dr.Table.Columns) { values.Add(column.ColumnName, dr[column]); } } } } return(values); }