コード例 #1
0
ファイル: Bug76TestCase5.cs プロジェクト: lanicon/DotNetVault
        //should not work
        public void TestExplicitDelegateStatic3()
        {
            var executor = new VaultActionExecutor();
            VaultAction <StringBuilder, string> vaDel = StaticAppendText;

            executor.ExecuteAction(vaDel, "Hi mom!");
        }
コード例 #2
0
ファイル: Bug76TestCase5.cs プロジェクト: lanicon/DotNetVault
        //should not work
        public void TestExplicitDelegateStatic2()
        {
            var executor = new VaultActionExecutor();
            VaultAction <StringBuilder, string> vaDel = (ref StringBuilder sb, in string s) =>
            {
                sb.AppendLine(s);
                //incorrect, references "this" and "_sb"
                StaticStringBuilder = sb;
            };

            executor.ExecuteAction(vaDel, "Hi mom!");
        }
コード例 #3
0
ファイル: Bug76Demo.cs プロジェクト: lanicon/DotNetVault
 //should not work BUT DOES -- BUG 76 FIX -- now DOES NOT WORK (and rightly so)
 public void TestExplicitDelegateStatic()
 {
     using (var vault = CreateSbVault())
     {
         {
             VaultAction <StringBuilder, string> explicitDel = delegate(ref StringBuilder sb, in string s)
             {
                 sb.AppendLine(s);
                 //BUG 76 FIX now correct, -- will not compile bc references STATIC STRING BUILDER
                 //bug 76 following line uncommented now (rightly) causes compilation failure
                 //StaticStringBuilder = sb;
             };
             using var lck = vault.Lock();
             lck.ExecuteAction(explicitDel, "Hi mom!");
         }
     }
 }
コード例 #4
0
ファイル: VaultDialogForm.cs プロジェクト: xeno-by/datavault
        public VaultDialogForm(VaultAction action)
        {
            // Initialize internal state
            Action = action;
            SelectedVault = null;

            // Initialize controls and events
            InitializeComponent();
            _tcTabs.Selected += (o, e) =>
            {
                var virtualTab = e.TabPage.Tag.AssertCast<IVaultDialogTab>();
                this.Text = virtualTab.FullTitle;
                if (TabActivated != null)
                    TabActivated(o, new VaultDialogTabEventArgs(virtualTab));
            };
            _tcTabs.Deselected += (o, e) =>
            {
                var virtualTab = e.TabPage.Tag.AssertCast<IVaultDialogTab>();
                if (TabDeactivated != null)
                    TabDeactivated(o, new VaultDialogTabEventArgs(virtualTab));
            };

            // Load plugins
            var lastSelectedTabType = (Type)AppDomain.CurrentDomain.GetData(this.GetType().FullName);
            lastSelectedTabType = lastSelectedTabType ?? VaultFormats.Default.GetType();
            TabPage tabToSelectNow = null;

            var map = new Dictionary<TabPage, IVaultFormat>();
            foreach (var format in VaultFormats.All)
            {
                format.InjectIntoVaultDialog(this);

                var tab = _tcTabs.TabPages.Cast<TabPage>().Last();
                map.Add(tab, format);

                if (format.GetType() == lastSelectedTabType)
                {
                    tabToSelectNow = tab;
                }
            }

            // Select previously selected page (or a default format)
            tabToSelectNow.AssertNotNull();
            if (tabToSelectNow != null)
            {
                if (tabToSelectNow == _tcTabs.TabPages.Cast<TabPage>().First())
                {
                    // the target tab is already selected, but we need to raise our events
                    if (TabActivated != null)
                        TabActivated(this, new VaultDialogTabEventArgs(Tabs.First()));
                }
                else
                {
                    _tcTabs.SelectedTab = tabToSelectNow;
                }
            }

            // Remember tab selections
            this.TabActivated += (o, e) =>
            {
                var tabType = map[e.Tab.TabPage].GetType();
                AppDomain.CurrentDomain.SetData(this.GetType().FullName, tabType);
            };
        }
コード例 #5
0
 public String TabTitle(VaultAction action)
 {
     return (String)ResourcesClass.GetProperties(BF.All)
         .Single(p => p.Name == TabTitleKey + "_" + action.ToString()).GetValue(null, null);
 }
コード例 #6
0
 public String TabTitle(VaultAction action)
 {
     return((String)ResourcesClass.GetProperties(BF.All)
            .Single(p => p.Name == TabTitleKey + "_" + action.ToString()).GetValue(null, null));
 }
コード例 #7
0
ファイル: VaultFormat.cs プロジェクト: xeno-by/datavault
 public String LocTabTitle(VaultAction action)
 {
     return this.GetType().Attr<VaultFormatLocAttribute>().TabTitle(action);
 }
コード例 #8
0
ファイル: VaultDialogForm.cs プロジェクト: nagyist/datavault
        public VaultDialogForm(VaultAction action)
        {
            // Initialize internal state
            Action        = action;
            SelectedVault = null;

            // Initialize controls and events
            InitializeComponent();
            _tcTabs.Selected += (o, e) =>
            {
                var virtualTab = e.TabPage.Tag.AssertCast <IVaultDialogTab>();
                this.Text = virtualTab.FullTitle;
                if (TabActivated != null)
                {
                    TabActivated(o, new VaultDialogTabEventArgs(virtualTab));
                }
            };
            _tcTabs.Deselected += (o, e) =>
            {
                var virtualTab = e.TabPage.Tag.AssertCast <IVaultDialogTab>();
                if (TabDeactivated != null)
                {
                    TabDeactivated(o, new VaultDialogTabEventArgs(virtualTab));
                }
            };

            // Load plugins
            var lastSelectedTabType = (Type)AppDomain.CurrentDomain.GetData(this.GetType().FullName);

            lastSelectedTabType = lastSelectedTabType ?? VaultFormats.Default.GetType();
            TabPage tabToSelectNow = null;

            var map = new Dictionary <TabPage, IVaultFormat>();

            foreach (var format in VaultFormats.All)
            {
                format.InjectIntoVaultDialog(this);

                var tab = _tcTabs.TabPages.Cast <TabPage>().Last();
                map.Add(tab, format);

                if (format.GetType() == lastSelectedTabType)
                {
                    tabToSelectNow = tab;
                }
            }

            // Select previously selected page (or a default format)
            tabToSelectNow.AssertNotNull();
            if (tabToSelectNow != null)
            {
                if (tabToSelectNow == _tcTabs.TabPages.Cast <TabPage>().First())
                {
                    // the target tab is already selected, but we need to raise our events
                    if (TabActivated != null)
                    {
                        TabActivated(this, new VaultDialogTabEventArgs(Tabs.First()));
                    }
                }
                else
                {
                    _tcTabs.SelectedTab = tabToSelectNow;
                }
            }

            // Remember tab selections
            this.TabActivated += (o, e) =>
            {
                var tabType = map[e.Tab.TabPage].GetType();
                AppDomain.CurrentDomain.SetData(this.GetType().FullName, tabType);
            };
        }
コード例 #9
0
 public String LocTabTitle(VaultAction action)
 {
     return(this.GetType().Attr <VaultFormatLocAttribute>().TabTitle(action));
 }