public void InitializeFormatter()
        {
            string formatterPath = formatingStrategyPath + "/" + Document.HighlightingStrategy.Name;

            if (AddInTree.ExistsTreeNode(formatterPath))
            {
                IFormattingStrategy[] formatter = (IFormattingStrategy[])(AddInTree.GetTreeNode(formatterPath).BuildChildItems(this)).ToArray(typeof(IFormattingStrategy));
                if (formatter != null && formatter.Length > 0)
                {
                    Document.FormattingStrategy = formatter[0];
                }
            }
        }
        public static List <SearchItem> BuildSearchItems()
        {
            List <SearchItem> result = new List <SearchItem>();

            if (!AddInTree.ExistsTreeNode(SDSearchPath))
            {
                return(result);
            }

            List <SearchPathDescriptor> descriptors = AddInTree.BuildItems <SearchPathDescriptor>(SDSearchPath, null);

            foreach (SearchPathDescriptor descriptor in descriptors)
            {
                List <SearchItem> descriptorList = BuildSearchItems(descriptor);
                result.AddRange(descriptorList);
            }
            return(result);
        }
예제 #3
0
        public ProjectBrowserPanel()
        {
            projectBrowserControl      = new ProjectBrowserControl();
            projectBrowserControl.Dock = DockStyle.Fill;
            Controls.Add(projectBrowserControl);

            if (AddInTree.ExistsTreeNode("/SharpDevelop/Pads/ProjectBrowser/ToolBar/Standard"))
            {
                toolStrip = ToolbarService.CreateToolStrip(this, "/SharpDevelop/Pads/ProjectBrowser/ToolBar/Standard");
                toolStrip.ShowItemToolTips = true;
                toolStrip.Dock             = DockStyle.Top;
                toolStrip.GripStyle        = System.Windows.Forms.ToolStripGripStyle.Hidden;
                toolStrip.Stretch          = true;
                standardItems = new ToolStripItem[toolStrip.Items.Count];
                toolStrip.Items.CopyTo(standardItems, 0);
                Controls.Add(toolStrip);
            }
            projectBrowserControl.TreeView.BeforeSelect += TreeViewBeforeSelect;
        }
예제 #4
0
        private void ActivateView(ActivateViewMessage message)
        {
            var viewName = message.ViewName;

            if (_views.ContainsKey(viewName))
            {
                var view = (Control)_views[viewName];
                if (Controls.Contains(view))
                {
                    view.BringToFront();
                    ActiveView = _views[viewName];
                    UpdateRibbonItems();
                }
            }
            else
            {
                var viewPath = BasePath + "/DockPanels/" + viewName;
                if (!AddInTree.ExistsTreeNode(viewPath))
                {
                    return;
                }
                var viewDescriptor = (DockPanelDescriptor)AddInTree.BuildItem(viewPath, null);
                if (viewDescriptor == null)
                {
                    throw new Exception(string.Format("{0} doesn't exist in addin file, please check it.", viewPath));
                }
                var controller = ControllerFactory.CreateController(viewDescriptor.ControllerId);
                this._controllers[viewDescriptor.ControllerId] = controller;
                var result = new ActionInvoker().Invoke(controller, null, message.Parameters) as IPartialViewResult;
                if (result != null)
                {
                    result.View.ViewName = viewDescriptor.Codon.Id;
                    AddView(result.View);
                    var view = (Control)result.View;
                    view.Dock = DockStyle.Fill;
                    this.Controls.Add(view);
                    view.BringToFront();
                    ActiveView = result.View;
                    InitObjectWidget(controller);
                    UpdateRibbonItems();
                }
            }
        }
예제 #5
0
        public void LoadViews(ActionParameters parameters)
        {
            var dockPath = BasePath + "/DockPanels";

            if (AddInTree.ExistsTreeNode(dockPath))
            {
                LoadMainView(dockPath, parameters);

                var descriptors = AddInTree.BuildItems <object>(dockPath, this, false).OfType <DockPanelDescriptor>().ToList();

                foreach (var descriptor in descriptors)
                {
                    bool isLazy = false;
                    bool.TryParse(descriptor.Codon.Properties["lazy"], out isLazy);
                    if (isLazy)
                    {
                        continue;
                    }
                    var controller = ControllerFactory.CreateController(descriptor.ControllerId);
                    controller.WorkSpaceID = this.ID;
                    controller.Context     = this._workspaceContext;
                    _controllers[descriptor.ControllerId] = controller;
                    InitObjectWidget(controller);
                    var result = new ActionInvoker().Invoke(controller, null, parameters) as IPartialViewResult;
                    if (result != null)
                    {
                        result.View.ViewName = descriptor.Codon.Id;
                        AddView(result.View);
                        CreateDockPanel(descriptor, result.View);
                    }
                }
            }
            else
            {
                throw new Exception("Config path not found:" + dockPath);
            }

            WorkSpaceTextLoader txtLoader = new WorkSpaceTextLoader();
            string mainText = string.Empty;

            Title = txtLoader.GetListWorkSpaceTitle(ObjectName, out mainText);
            this.UpdateRibbonItems();
        }
        public void InitializeAdvancedHighlighter()
        {
            if (advancedHighlighter != null)
            {
                advancedHighlighter.Dispose();
                advancedHighlighter = null;
            }
            string highlighterPath = advancedHighlighterPath + "/" + Document.HighlightingStrategy.Name;

            if (AddInTree.ExistsTreeNode(highlighterPath))
            {
                IList <IAdvancedHighlighter> highlighter = AddInTree.BuildItems <IAdvancedHighlighter>(highlighterPath, this);
                if (highlighter != null && highlighter.Count > 0)
                {
                    advancedHighlighter = highlighter[0];
                    advancedHighlighter.Initialize(this);
                    Document.HighlightingStrategy = new AdvancedHighlightingStrategy((DefaultHighlightingStrategy)Document.HighlightingStrategy, advancedHighlighter);
                }
            }
        }
예제 #7
0
 public static void SwitchToMenu(System.Collections.ICollection menus, System.Collections.ICollection toolBars, string[] addInTreePaths)
 {
     foreach (object obj in menus)
     {
         if (obj is RibbonPage)
         {
             RibbonPage page  = obj as RibbonPage;
             bool       bHave = false;
             foreach (string addInTreePath in addInTreePaths)
             {
                 if (AddInTree.ExistsTreeNode(addInTreePath + "/" + page.Name))
                 {
                     page.Visible = true;
                     if (page.Text.Contains("temp"))
                     {
                         page.Text = page.Text.Substring(0, page.Text.Count() - 4);
                     }
                     bHave = true;
                     break;
                 }
             }
             if (!bHave)
             {
                 page.Visible = false;
                 if (!page.Text.Contains("temp"))
                 {
                     page.Text = page.Text + "temp";
                 }
             }
             SwitchToMenu(page.Groups, toolBars, addInTreePaths);
         }
         else if (obj is RibbonPageGroup)
         {
             RibbonPageGroup pageGroup = obj as RibbonPageGroup;
             bool            bHave     = false;
             foreach (string addInTreePath in addInTreePaths)
             {
                 if (AddInTree.ExistsTreeNode(addInTreePath + "/" + pageGroup.Page.Name + "/" + pageGroup.Name))
                 {
                     pageGroup.Visible = true;
                     foreach (object obj2 in toolBars)
                     {
                         if (!(obj2 is BarItemLink))
                         {
                             continue;
                         }
                         BarItemLink bil = obj2 as BarItemLink;
                         for (int i = 0; i < pageGroup.ItemLinks.Count; i++)
                         {
                             BarItemLink itemLink = pageGroup.ItemLinks.GetRecentLink(i);
                             if (itemLink.Item.Name == bil.Item.Name)
                             {
                                 bil.Visible = true;
                                 break;
                             }
                         }
                     }
                     bHave = true;
                     break;
                 }
             }
             if (!bHave)
             {
                 pageGroup.Visible = false;
             }
         }
     }
 }
예제 #8
0
        private void InitApplicationButton()
        {
            string notificationPath = "/Notification/StartNotification";

            if (AddInTree.ExistsTreeNode(notificationPath))
            {
                var descriptor = AddInTree.BuildItems <IReceiveNotification>(notificationPath, null);
                if (descriptor != null && descriptor.Count() > 0)
                {
                    descriptor.First().StartReceiveNotification(this);
                }
            }

            //send sys msg
            var sysMsgItem = new BarButtonItem();

            sysMsgItem.Caption = StringParser.Parse("SendSysMessage");
            sysMsgItem.Glyph   = (Bitmap)WinFormsResourceService.GetIcon("notification1").ToBitmap();
            Ribbon.Items.Add(sysMsgItem);
            sysMsgItem.ItemClick += (s, e) =>
            {
                var parameters = new ActionParameters(string.Empty, Guid.Empty, ViewShowType.Show);
                _application.Invoke("NotificationDetail", "NotificationAction", parameters);
            };

            //??CLEAR SET
            var clearSettingButton = new BarButtonItem();

            clearSettingButton.Caption = StringParser.Parse("ClearSetting");
            clearSettingButton.Glyph   = (Bitmap)WinFormsResourceService.GetBitmap("clear");

            Ribbon.Items.Add(clearSettingButton);
            clearSettingButton.ItemClick += delegate
            {
                string message = StringParser.Parse("ClearSettingConfirm");
                var    result  = XtraMessageBox.Show(message, StringParser.Parse("Katrin"), MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
                if (result == DialogResult.OK)
                {
                    //restore default layout.
                    var oldParameter = PropertyService.Get <UserLoginParameter>("Document.ParameterSettingName", null);
                    this._application.ViewManager.RestoreAllViewDefaultLayout();
                    PropertyService.Clean();
                    PropertyService.Set <UserLoginParameter>("Document.ParameterSettingName", oldParameter);
                    PropertyService.Save();
                }
            };

            //set language
            BarSubItem languageSettingButton = new BarSubItem();

            languageSettingButton.Caption = StringParser.Parse("languageSetting");
            languageSettingButton.Glyph   = WinFormsResourceService.GetIcon("edit").ToBitmap();
            Ribbon.Items.Add(languageSettingButton);

            //CMP Lista de Lenguajes Hardcodeado
            List <string> languages = new List <string>();

            languages.Add("zh-CN");
            languages.Add("en-US");
            languages.Add("es-ES");

            foreach (string language in languages)
            {
                BarButtonItem itemLanguage = new BarButtonItem();
                itemLanguage.Caption    = StringParser.Parse(language);
                itemLanguage.ItemClick += itemZh_ItemClick;
                languageSettingButton.ItemLinks.Add(itemLanguage);
                itemLanguage.Tag = language;
                Ribbon.Items.Add(itemLanguage);
            }
            pmAppMain.ItemLinks.AddRange(new BarItem[] { sysMsgItem, clearSettingButton, languageSettingButton });
        }
        private static List <SearchItem> HandleMenuCodon(SearchPathDescriptor descriptor, Codon codon, string path, List <string> pathChain)
        {
            List <SearchItem> result = new List <SearchItem>();

            if (codon.Name != "MenuItem")
            {
                return(result);
            }

            List <string> nextPathChain = new List <string>(pathChain);
            string        nextPath      = string.Format("{0}/{1}", path, codon.Id);

            if (codon.Properties.Contains("type") && codon.Properties["type"] == "Menu")
            {
                nextPathChain.Add(AddNextPathChainString(codon));
                if (AddInTree.ExistsTreeNode(nextPath))
                {
                    AddInTreeNode node = AddInTree.GetTreeNode(nextPath);
                    foreach (Codon innerCodon in node.Codons)
                    {
                        result.AddRange(HandleMenuCodon(descriptor, innerCodon, nextPath, nextPathChain));
                    }
                }
            }

            if (!codon.Properties.Contains("type") || (codon.Properties.Contains("type") && (codon.Properties["type"] == "Item" || codon.Properties["type"] == "Command")))
            {
                HandleItemMenuType(descriptor, codon, nextPath, nextPathChain, result);
            }

            if (codon.Properties.Contains("type") && codon.Properties["type"] == "Builder")
            {
                try
                {
                    IMenuItemBuilder builder = codon.AddIn.CreateObject(codon.Properties["class"]) as IMenuItemBuilder;
                    if (builder == null)
                    {
                        return(result);
                    }
                    ICollection collection = builder.BuildItems(codon, null);
                    foreach (MenuItem menuItem in collection)
                    {
                        SearchItem item = GenerateSearchItem(descriptor, codon, nextPath, nextPathChain);
                        item.Label            = menuItem.Header.ToString();
                        item.Command          = menuItem.Command;
                        item.CommandParameter = menuItem.CommandParameter;
                        item.Shortcut         = menuItem.InputGestureText;

                        if (String.IsNullOrWhiteSpace(item.CommandTypeString) && item.Command == null)
                        {
                            continue;
                        }

                        item.Id = path + "/" + item.Label;
                        result.Add(item);
                    }
                }
                catch (Exception ex)
                {
                    LoggingService.Warn(String.Format("Could not load search item from builder at {0} - {1}", codon.Id, codon.AddIn.FileName), ex);
                }
            }
            return(result);
        }