SqlTabPagesCntrl creates and handles TabPages of a ControlTab to work with *.sql files. - Create Menu Items -- Templates SQL -- Templates Macros - Events - SQL File properties
        /// <summary>
        /// Constructor. If the file is persistent then register a Watcher
        /// <para/>- Initialize file system watcher
        /// </summary>
        /// <param name="fullName"></param>
        /// <param name="isChanged">Default=true</param>
        /// <param name="sqlTabPagesCntrl"></param>
        public SqlFile(SqlTabPagesCntrl sqlTabPagesCntrl,  string fullName, bool isChanged = true)
        {
            _sqlTabPagesCntrl = sqlTabPagesCntrl;
            InitTabPageCaption(fullName, isChanged);
            ReadTime = DateTime.Now;

            // create FileMonitor
            _fileMonitor = new FileMonitor(_fullName);
            _fileMonitor.Change += OnChanged;
            if (IsPersistant)
            {

                _fileMonitor.Start();
            }

        }
        /// <summary>
        /// Initialize setting. Only call after
        /// <para/>- Tag (
        /// <para/>- Model
        /// <para/>- Settings
        /// updated
        /// </summary>
        /// <returns></returns>
        bool InitializeSettings()
        {
            // default 
            _addinType = AddinType.Sql;
            _addinTabName = TabulatorSql;
            if ((string) Tag != TabulatorSql)
            {
                _addinType = AddinType.Script;
                _addinTabName = TabulatorScript;
            }
            // set title
            lblTitle.Text = _addinTabName;

            // Tab Pages for *.sql queries update
            // Make sure the Container is initialized
            if (components == null)
            {
                components = new System.ComponentModel.Container();
            }
            // the sql tabulators might already be available
            if (_sqlTabCntrls == null)
            {
                _sqlTabCntrls = new SqlTabPagesCntrl(Model, AddinSettings, components, tabControlSql, txtSearchTerm,
                    _newTabFromRecentToolStripMenuItem,
                    _loadTabFromRecentToolStripMenuItem, _addinTabName);
            }

            if (tabControlSql.TabPages.Count == 0)
            {
                // first tab with Element Template
                _sqlTabCntrls.AddTab(SqlTemplates.GetTemplateText(SqlTemplates.SqlTemplateId.ElementTemplate));
            }


            // run for SQL / Query
            if (_addinType == AddinType.Sql)
            {
                // don't show Script container
                splitContainer.Panel2Collapsed = true;
                // don't show Menu item LoadScripts
                //loadStandardScriptsToolStripMenuItem.Visible = false;
            }
            else // run for Script (includes SQL / Query)
            {
                splitContainer.SplitterDistance = 330;
                // available script updates
                ReloadScripts();
            }

            return true;
        }