Пример #1
0
        public override void TerminatePlugin()
        {
            base.TerminatePlugin();
            IStartupContextSupplier s = (IStartupContextSupplier)_poderosaWorld.GetAdapter(typeof(IStartupContextSupplier));

            Flush(); //ファイルの有無に関わらず内部のStorageNodeは更新しとく

            if (s.PreferenceFileName != null)
            {
                string preferenceFileName     = s.PreferenceFileName;
                string tempPreferenceFileName = preferenceFileName + ".tmp";
                string prevPreferenceFileName = preferenceFileName + ".prev";

                try {
                    using (TextWriter writer = new StreamWriter(tempPreferenceFileName, false, System.Text.Encoding.Default)) {
                        WritePreference(writer);
                    }
                    if (File.Exists(preferenceFileName))
                    {
                        File.Delete(prevPreferenceFileName);
                        File.Move(preferenceFileName, prevPreferenceFileName);
                    }
                    File.Move(tempPreferenceFileName, preferenceFileName);
                }
                catch (Exception ex) {
                    RuntimeUtil.ReportException(ex);
                }
            }
        }
Пример #2
0
        public void InitializeExtension()
        {
            IStartupContextSupplier s = (IStartupContextSupplier)_poderosaWorld.GetAdapter(typeof(IStartupContextSupplier));

            int index = 0;

            foreach (IPreferenceSupplier supplier in _extensionPoint.GetExtensions())
            {
                PlugInHost ph = new PlugInHost(this, supplier, s.Preferences, index++);
                ph.Build(); //Note 遅延読み込みをしてもいいかも
                _idToHosts[ph.PreferenceSupplier.PreferenceID] = ph;
            }
        }
Пример #3
0
        public void WritePreference(TextWriter writer)
        {
            IStartupContextSupplier s = (IStartupContextSupplier)_poderosaWorld.GetAdapter(typeof(IStartupContextSupplier));

            new TextStructuredTextWriter(writer).Write(s.Preferences);
        }