コード例 #1
0
        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();
        }
コード例 #2
0
        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);
        }