예제 #1
0
        public void UpdateControl(MOG_Ini pIni, ToolBox toolBox)
        {
            try
            {
                // Do we need to load this file?
                if (pIni == null)
                {
                    string currentIniFilename = toolBox.GetCurrentIniFilenameFromLocation(Location);
                    pIni = new MOG_Ini(currentIniFilename);
                }

                string type = "";
                // If we can, get the ToolBoxControlType of this control...
                if (pIni.KeyExist(ControlGuid, Type_Key))
                {
                    type = pIni.GetString(ControlGuid, Type_Key);
                }
                // Get the ToolBoxControlType from the ini
                ControlType = (ToolBoxControlType)Enum.Parse(ToolBoxControlType.Button.GetType(), type, true);

                // If we can, get our ToolBoxControlLocation for this control...
                if (pIni.KeyExist(ControlGuid, Location_Key))
                {
                    // Get the location from the ini
                    Location = (ToolBoxControlLocation)Enum.Parse(ToolBoxControlLocation.Project.GetType(), pIni.GetString(ControlGuid, Location_Key), true);
                }

                // If we can, get the HideWindow value...
                if (pIni.KeyExist(ControlGuid, HideWindow_Key))
                {
                    HideOutput = pIni.GetBool(ControlGuid, HideWindow_Key);
                }

                // Get all of our default values: (see ControlDefinition for what these identifiers mean)
                // If we can, get the ControlName...
                if (pIni.KeyExist(ControlGuid, ControlName_Key))
                {
                    ControlName = pIni.GetString(ControlGuid, ControlName_Key);

                    // Should this control have it's text updated?
                    bool bUpdateControlText = false;
                    switch (this.ControlType)
                    {
                    case ToolBoxControlType.Button:                         bUpdateControlText = true;                      break;

                    case ToolBoxControlType.ParameterButton:        bUpdateControlText = true;                      break;

                    case ToolBoxControlType.Label:                          bUpdateControlText = true;                      break;

                    case ToolBoxControlType.LinkLabel:                      bUpdateControlText = true;                      break;

                    case ToolBoxControlType.IniCombo:                       bUpdateControlText = false;                     break;

                    case ToolBoxControlType.FileCombo:                      bUpdateControlText = false;                     break;

                    case ToolBoxControlType.CheckBox:                       bUpdateControlText = true;                      break;

                    case ToolBoxControlType.RadioButton:            bUpdateControlText = true;                      break;
                    }

                    if (bUpdateControlText)
                    {
                        DefButton.Text = ControlName;
                    }
                }
                // If we can, get the Command...
                if (pIni.KeyExist(ControlGuid, Command_Key))
                {
                    Command = pIni.GetString(ControlGuid, Command_Key);
                }
                // If we can, get the Arguments...
                if (pIni.KeyExist(ControlGuid, Arguments_Key))
                {
                    Arguments = pIni.GetString(ControlGuid, Arguments_Key);
                }
                // If we can, get the ArgumentTrue...
                if (pIni.KeyExist(ControlGuid, ArgumentsTrue_Key))
                {
                    ArgumentTrue = pIni.GetString(ControlGuid, ArgumentsTrue_Key);
                }
                // If we can, get the ArgumentFalse...
                if (pIni.KeyExist(ControlGuid, ArgumentsFalse_Key))
                {
                    ArgumentFalse = pIni.GetString(ControlGuid, ArgumentsFalse_Key);
                }

                // If we can, get the TagName...
                if (pIni.KeyExist(ControlGuid, TagName_Key))
                {
                    TagName = pIni.GetString(ControlGuid, TagName_Key);
                }
                // If we can, get the ToolTipString...
                if (pIni.KeyExist(ControlGuid, ToolTip_Key))
                {
                    ToolTipString = pIni.GetString(ControlGuid, ToolTip_Key);
                }
                // If we can, get the FolderName...
                if (pIni.KeyExist(ControlGuid, FolderName_Key))
                {
                    FolderName = pIni.GetString(ControlGuid, FolderName_Key);
                }
                // If we can, get the ComboBoxDepth...
                if (pIni.KeyExist(ControlGuid, ComboBoxDepth_Key))
                {
                    ComboBoxDepth = int.Parse(pIni.GetString(ControlGuid, ComboBoxDepth_Key));
                }
                // If we can, get our Pattern
                if (pIni.KeyExist(ControlGuid, Pattern_Key))
                {
                    Pattern = pIni.GetString(ControlGuid, Pattern_Key);
                }
                // If we can, get our ini filename path
                if (pIni.KeyExist(ControlGuid, IniFilename_Key))
                {
                    IniFilename = pIni.GetString(ControlGuid, IniFilename_Key);
                }
                // If we can, get our ini section name
                if (pIni.KeyExist(ControlGuid, IniSection_Key))
                {
                    IniSectionName = pIni.GetString(ControlGuid, IniSection_Key);
                }
                // If we can, get our DialogStartPath
                if (pIni.KeyExist(ControlGuid, DialogStartPath_Key))
                {
                    DialogStartPath = pIni.GetString(ControlGuid, DialogStartPath_Key);
                }
                // If we can, set our LastSelectedIndex
                // By adding the scope of the user's name to the section key we can retain a user's own settings seperatly from the rest of the team
                string usersLastIndex_Key = MOG_ControllerProject.IsUser() ? LastIndex_Key + SubSectionIndicator_Text + MOG_ControllerProject.GetUserName(): LastIndex_Key;
                if (pIni.KeyExist(ControlGuid, usersLastIndex_Key))
                {
                    LastSelectedIndex = int.Parse(pIni.GetString(ControlGuid, usersLastIndex_Key));
                }

                if (pIni.KeyExist(ControlGuid, ShowFullPaths_Key))
                {
                    ShowFullPaths = Convert.ToBoolean(pIni.GetString(ControlGuid, ShowFullPaths_Key));
                }
                if (pIni.KeyExist(ControlGuid, ShowWorkspaceRelativePaths_Key))
                {
                    ShowWorkspaceRelativePaths = Convert.ToBoolean(pIni.GetString(ControlGuid, ShowWorkspaceRelativePaths_Key));
                }
                if (pIni.KeyExist(ControlGuid, ShowFolderRelativePaths_Key))
                {
                    ShowFolderRelativePaths = Convert.ToBoolean(pIni.GetString(ControlGuid, ShowFolderRelativePaths_Key));
                }
                if (pIni.KeyExist(ControlGuid, ShowBasePaths_Key))
                {
                    ShowBasePaths = Convert.ToBoolean(pIni.GetString(ControlGuid, ShowBasePaths_Key));
                }

                if (pIni.KeyExist(ControlGuid, VisisbleIndex_Key))
                {
                    VisibleIndex = Convert.ToInt32(pIni.GetString(ControlGuid, VisisbleIndex_Key));
                }

                if (pIni.KeyExist(ControlGuid, FullPaths_Key))
                {
                    TagFullPaths = Convert.ToBoolean(pIni.GetString(ControlGuid, FullPaths_Key));
                }

                if (pIni.KeyExist(ControlGuid, WorkspaceRelativePaths_Key))
                {
                    TagWorkspaceRelativePaths = Convert.ToBoolean(pIni.GetString(ControlGuid, WorkspaceRelativePaths_Key));
                }

                if (pIni.KeyExist(ControlGuid, FolderRelativePaths_Key))
                {
                    TagFolderRelativePaths = Convert.ToBoolean(pIni.GetString(ControlGuid, FolderRelativePaths_Key));
                }

                if (pIni.KeyExist(ControlGuid, BasePaths_Key))
                {
                    TagBasePaths = Convert.ToBoolean(pIni.GetString(ControlGuid, BasePaths_Key));
                }

                if (pIni.KeyExist(ControlGuid, RecurseFolders_Key))
                {
                    RecurseFolders = Convert.ToBoolean(pIni.GetString(ControlGuid, RecurseFolders_Key));
                }

                // If we can, get the ComboBoxItems
                // By adding the scope of the user's name to the section key we can retain a user's own settings seperatly from the rest of the team
                string usersSection = MOG_ControllerProject.IsUser() ? ControlGuid + ComboItems_Section + SubSectionIndicator_Text + MOG_ControllerProject.GetUserName(): ControlGuid + ComboItems_Section;
                if (pIni.SectionExist(usersSection))
                {
                    ComboBoxItems = LoadComboBoxItems(usersSection, pIni);
                }

                // If we can, get our RadioButtons
                if (pIni.SectionExist(ControlGuid + RadioButton_Section))
                {
                    RadioButtons = LoadRadioButtons(ControlGuid + RadioButton_Section, pIni);
                }
            }
            catch (Exception e)
            {
                e.ToString();
            }
        }
예제 #2
0
        internal void Remove(ToolBox toolbox)
        {
            // Write out our change
            string  currentIniFilename = toolbox.GetCurrentIniFilenameFromLocation(Location);
            MOG_Ini pIni = new MOG_Ini();

OpenConfigIni:
            if (pIni.Open(currentIniFilename, FileShare.Write))
            {
                // Remove this control from the siblings
                mSiblings.Remove(VisibleIndex);

                // Go thru all of this controls siblings and move their visual index up one so that there is not a break in the chain
                foreach (KeyValuePair <int, ControlDefinition> sibling in mSiblings)
                {
                    // Is this guy visually after the one we are deleting?
                    if (sibling.Value.VisibleIndex > VisibleIndex)
                    {
                        // Then move it up one
                        sibling.Value.VisibleIndex = sibling.Value.VisibleIndex - 1;

                        // Make sure this section actually exists
                        if (pIni.SectionExist(sibling.Value.ControlGuid))
                        {
                            pIni.PutString(sibling.Value.ControlGuid, VisisbleIndex_Key, sibling.Value.VisibleIndex.ToString());
                        }
                    }
                }

                pIni.RemoveSection(ControlGuid);

                // Scan all the sections looking for any related subsections
                ArrayList relatedSubSections = new ArrayList();
                string    subControlGuid     = ControlGuid + SubSectionIndicator_Text;
                foreach (string section in pIni.GetSections(null))
                {
                    if (section.StartsWith(subControlGuid, StringComparison.CurrentCultureIgnoreCase))
                    {
                        // Schedule this subsection for removal
                        relatedSubSections.Add(section);
                    }
                }
                // Remove any subsections related to this control
                foreach (string section in relatedSubSections)
                {
                    pIni.RemoveSection(section);
                }

                pIni.Save();
                pIni.Close();
            }
            else
            {
                if (
                    MOG_Prompt.PromptResponse("Configuration locked!",
                                              "Configuration file for this control is currently in use by another user",
                                              MOGPromptButtons.RetryCancel) == MOGPromptResult.Retry)
                {
                    goto OpenConfigIni;
                }
            }
        }