Ejemplo n.º 1
0
        private void toolStripLabelRemove_Click(object sender, EventArgs e)
        {
            if (tabControlExperts.SelectedIndex > -1)
            {
                ExpertInformation info = ((ExpertEditorControl)tabControlExperts.SelectedTab.Controls[0]).ExpertInformation;
                if (info.IsSavedLocally == false)
                {
                    DialogResult result = MessageBox.Show("Expert [" + info.Name + "] not saved. Save changes now?", "Warning", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);
                    if (result == DialogResult.Yes)
                    {// Yes.
                        info.SaveLocal();
                    }
                    else if (result == DialogResult.No)
                    {// No, just continue.
                    }
                    else
                    {// Cancel operation.
                        return;
                    }
                }

                ExpertEditorControl control = (ExpertEditorControl)tabControlExperts.SelectedTab.Controls[0];
                control.ExpertUpdateEvent -= new ExpertEditorControl.ExpertUpdatedDelegate(editorControl_ExpertUpdateEvent);
                tabControlExperts.TabPages.Remove(tabControlExperts.SelectedTab);
            }
        }
Ejemplo n.º 2
0
        private void toolStripButtonEdit_Click(object sender, EventArgs e)
        {
            if (listViewExperts.SelectedItems.Count != 1)
            {
                return;
            }

            ExpertInformation info = (ExpertInformation)listViewExperts.SelectedItems[0].Tag;

            foreach (TabPage page in tabControlExperts.TabPages)
            {
                ExpertEditorControl control = (ExpertEditorControl)page.Controls[0];
                if (control.ExpertInformation == info)
                {// Already editting it.
                    tabControlExperts.SelectedTab = page;
                    return;
                }
            }

            ExpertEditorControl editorControl = new ExpertEditorControl();

            editorControl.ExpertInformation  = info;
            editorControl.ExpertUpdateEvent += new ExpertEditorControl.ExpertUpdatedDelegate(editorControl_ExpertUpdateEvent);
            TabPage newPage = new TabPage(info.Name);

            editorControl.Dock = DockStyle.Fill;
            newPage.Controls.Add(editorControl);
            tabControlExperts.TabPages.Add(newPage);
            tabControlExperts.SelectedTab = newPage;
        }
Ejemplo n.º 3
0
        void expertManager_AddedExpertContainerEvent(ExpertInformation container)
        {
            WinFormsHelper.BeginFilteredManagedInvoke(this, TimeSpan.FromMilliseconds(250), new GeneralHelper.GenericDelegate <bool>(UpdateUI), true);

            GeneralHelper.DefaultDelegate newDelegate = delegate()
            {
                // Select the newly created expert.
                this.listViewExperts.SelectedIndices.Clear();
                if (listViewExperts.VirtualListSize > 0)
                {
                    this.listViewExperts.SelectedIndices.Add(listViewExperts.VirtualListSize - 1);
                }
            };

            WinFormsHelper.BeginManagedInvoke(this, newDelegate);
        }
Ejemplo n.º 4
0
        private void toolStripButtonDeleteExpert_Click(object sender, EventArgs e)
        {
            if (listViewExperts.SelectedItems.Count != 1)
            {
                return;
            }

            ExpertInformation expertInfo = (ExpertInformation)listViewExperts.SelectedItems[0].Tag;

            if (MessageBox.Show("Delete expert [" + expertInfo.Name + "]. Are you sure?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) != DialogResult.Yes)
            {
                return;
            }

            // Remove page if in edit.
            foreach (TabPage page in tabControlExperts.TabPages)
            {
                ExpertEditorControl control = (ExpertEditorControl)page.Controls[0];
                control.ExpertUpdateEvent -= new ExpertEditorControl.ExpertUpdatedDelegate(editorControl_ExpertUpdateEvent);

                if (control.ExpertInformation == expertInfo)
                {// Already editting it.
                    tabControlExperts.TabPages.Remove(page);
                    break;
                }
            }

            if (expertInfo.IsExternal == false)
            {
                if (MessageBox.Show("Delete expert local (" + Path.GetFileName(expertInfo.FilePath) + ") file?", "Delete file?", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                {
                    expertInfo.DeleteLocal();
                }
            }

            ExpertManager.RemoveExpert(expertInfo);
            UpdateUI(true);
        }
Ejemplo n.º 5
0
        private void runStandaloneToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (listViewExperts.SelectedItems.Count != 1)
            {
                return;
            }

            ExpertInformation info = (ExpertInformation)listViewExperts.SelectedItems[0].Tag;

            string operationMessage = string.Empty;
            Type   expertType       = info.GetExpertType(ref operationMessage);

            if (expertType == null)
            {
                MessageBox.Show("Failed to create expert [" + operationMessage + "]", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            LocalExpertHost expertHost = new LocalExpertHost(info.Name, expertType);

            expertHost.Name = expertHost.Name;
            ExpertManager.Platform.RegisterComponent(expertHost);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Update user interface based on the underlying information.
        /// </summary>
        void UpdateUI(bool updateExpertList)
        {
            if (ExpertManager == null)
            {
                listViewExperts.Enabled = false;
                listViewExperts.Items.Clear();
                virtualListViewExAssemblies.VirtualListSize = 0;
                virtualListViewExAssemblies.Enabled         = false;
                return;
            }

            toolStripButtonEditExpert.Enabled        = false;
            toolStripButtonDeleteExpert.Enabled      = false;
            toolStripDropDownButtonRunExpert.Enabled = false;

            ExpertInformation expertContainer = null;

            if (listViewExperts.SelectedIndices.Count != 0)
            {
                expertContainer = (ExpertInformation)listViewExperts.SelectedItems[0].Tag;
                toolStripButtonEditExpert.Enabled        = !expertContainer.IsExternal;
                toolStripDropDownButtonRunExpert.Enabled = true;
                toolStripButtonDeleteExpert.Enabled      = true;
            }

            if (updateExpertList)
            {
                int index = 0;
                foreach (ExpertInformation container in ExpertManager.ExpertInfosArray)
                {
                    ListViewItem item;
                    if (listViewExperts.Items.Count <= index)
                    {
                        item = listViewExperts.Items.Add("");
                    }
                    else
                    {
                        item = listViewExperts.Items[index];
                    }

                    item.Name = container.Name;
                    item.Text = container.Name;
                    item.Tag  = container;
                    if (container.IsExternal)
                    {
                        item.Group = listViewExperts.Groups["Imported"];
                    }
                    else
                    {
                        item.Group = listViewExperts.Groups["Local"];
                    }

                    index++;
                }

                while (listViewExperts.Items.Count > index)
                {
                    listViewExperts.Items.RemoveAt(listViewExperts.Items.Count - 1);
                }
            }

            virtualListViewExAssemblies.VirtualListSize = ExpertManager.ExpertsAssembliesArray.Length;
            virtualListViewExAssemblies.Refresh();
            virtualListViewExAssemblies.UpdateColumnWidths();
        }
Ejemplo n.º 7
0
 void expertManager_RemovedExpertContainerEvent(ExpertInformation container)
 {
     WinFormsHelper.BeginFilteredManagedInvoke(this, TimeSpan.FromMilliseconds(250), new GeneralHelper.GenericDelegate <bool>(UpdateUI), true);
 }