GreenQloud.UI.UIManager.LoadExtraItems C# (CSharp) 메소드

LoadExtraItems() 개인적인 메소드

private LoadExtraItems ( ToolStripSeparator separator, ToolStripSeparator finalSeparator, ToolStripMenuItem savings, ToolStripMenuItem recentlyChanged, ToolStripMenuItem stateText ) : void
separator System.Windows.Forms.ToolStripSeparator
finalSeparator System.Windows.Forms.ToolStripSeparator
savings System.Windows.Forms.ToolStripMenuItem
recentlyChanged System.Windows.Forms.ToolStripMenuItem
stateText System.Windows.Forms.ToolStripMenuItem
리턴 void
        private void LoadExtraItems(ToolStripSeparator separator, ToolStripSeparator finalSeparator, ToolStripMenuItem savings, ToolStripMenuItem recentlyChanged, ToolStripMenuItem stateText)
        {
            if (SynchronizerUnit.UnitCount() > 0)
            {
                int itensToSync = SynchronizerUnit.GetTotalEventsToSync();
                if (itensToSync > 0)
                {
                    stateText.Text = itensToSync + " Event"+(itensToSync > 1 ? "s" : "")+" to sync";
                    stateText.Visible = true;
                }
                else
                {
                    if (SynchronizerUnit.AnyRecovering())
                    {
                        stateText.Text = "Looking for changes...";
                        stateText.Visible = true;
                    }
                    else
                    {
                        stateText.Text = "Up to date";
                        stateText.Visible = true;
                    }
                }
            }
            else
            {
                stateText.Text = "Loading Synchronizers...";
                stateText.Visible = true;
            }
            //First load the recently changes
            int begin = this.trayMenu.Items.IndexOf(separator);
            int end = this.trayMenu.Items.IndexOf(finalSeparator);
            while(begin+1 < end) {
                this.trayMenu.Items.RemoveAt(begin + 1);
                begin = this.trayMenu.Items.IndexOf(separator);
                end = this.trayMenu.Items.IndexOf(finalSeparator);
            }

            if (Program.Controller.DatabaseLoaded())
            {
                SQLiteEventDAO eventDao = new SQLiteEventDAO();
                List<Event> events = eventDao.LastEvents;

                bool displayRecentlyChanges = events.Count != 0;
                recentlyChanged.Visible = displayRecentlyChanges;
                separator.Visible = displayRecentlyChanges;
                finalSeparator.Visible = displayRecentlyChanges;

                foreach (Event e in events)
                {
                    end = this.trayMenu.Items.IndexOf(finalSeparator);

                   ToolStripMenuItem current = new ToolStripMenuItem();
                    current.Text = e.ItemName;

                    current.Image = Icons.folder_default;
                    if (e.ItemType == ItemType.IMAGE)
                        current.Image = Icons.folder_pics;
                    if (e.ItemType == ItemType.TEXT)
                        current.Image = Icons.folder_docs;
                    if (e.ItemType == ItemType.VIDEO)
                        current.Image = Icons.folder_movies;
                    if (e.ItemType == ItemType.AUDIO)
                        current.Image = Icons.folder_music;

                    current.Click += (sender, args) =>
                    {
                        Program.Controller.OpenFolder(e.ItemLocalFolderPath);
                    };
                    this.trayMenu.Items.Insert(end, current);
                }

                new Thread(() =>
                {
                    savingstext = GetSavings();
                }).Start();

                if (savingstext.Length > 0)
                {
                    savings.Text = savingstext;
                    savings.Visible = true;
                }
            }
        }