コード例 #1
0
        public bool CanHandle(FilePath fileName, string mimeType, MonoDevelop.Projects.Project ownerProject)
        {
            if (excludeThis)
            {
                return(false);
            }

            if (fileName.IsNullOrEmpty)
            {
                return(false);
            }

            if (!IdeApp.Workspace.IsOpen)
            {
                return(false);
            }

            if (GetActionGroup(fileName) == null)
            {
                return(false);
            }

            excludeThis = true;
            var db = DisplayBindingService.GetDefaultViewBinding(fileName, mimeType, ownerProject);

            excludeThis = false;
            return(db != null);
        }
コード例 #2
0
        public virtual bool CanCreateUnsavedFiles(FileDescriptionTemplate newfile, SolutionFolderItem policyParent, Project project, string directory, string language, string name)
        {
            if (project != null)
            {
                return(true);
            }
            else
            {
                var singleFile = newfile as SingleFileDescriptionTemplate;
                if (singleFile == null)
                {
                    return(false);
                }

                if (directory != null)
                {
                    return(true);
                }
                else
                {
                    string fileName = singleFile.GetFileName(policyParent, project, language, directory, name);
                    string mimeType = GuessMimeType(fileName);
                    return(DisplayBindingService.GetDefaultViewBinding(null, mimeType, null) != null);
                }
            }
        }
コード例 #3
0
        static bool FillViewers(CustomCommonFileDialogComboBox combo, string fileName)
        {
            combo.Items.Clear();

            if (String.IsNullOrEmpty(fileName) || Directory.Exists(fileName))
            {
                combo.Enabled = false;
                return(false);
            }

            bool hasBench       = false;
            var  projectService = IdeApp.Services.ProjectService;

            if (projectService.IsWorkspaceItemFile(fileName) || projectService.IsSolutionItemFile(fileName))
            {
                hasBench = true;
                combo.Items.Add(new ViewerComboItem(null, GettextCatalog.GetString("Solution Workbench")));
            }

            foreach (var vw in DisplayBindingService.GetFileViewers(fileName, null))
            {
                if (!vw.IsExternal)
                {
                    combo.Items.Add(new ViewerComboItem(vw, vw.Title));
                }
            }

            combo.Enabled = combo.Items.Count >= 1;
            return(hasBench);
        }
コード例 #4
0
        // Sort of ported from the MacSupport addin
        static void FillViewers(List <FileViewer> currentViewers, ComboBox viewerBox, string fileName)
        {
            currentViewers.Clear();
            viewerBox.Items.Clear();

            if (String.IsNullOrEmpty(fileName) || Directory.Exists(fileName))
            {
                viewerBox.Enabled = false;
                return;
            }

            var projectService = IdeApp.Services.ProjectService;

            if (projectService.IsWorkspaceItemFile(fileName) || projectService.IsSolutionItemFile(fileName))
            {
                viewerBox.Items.Add(GettextCatalog.GetString("Solution Workbench"));
                currentViewers.Add(null);
            }

            foreach (var vw in DisplayBindingService.GetFileViewers(fileName, null))
            {
                if (!vw.IsExternal)
                {
                    viewerBox.Items.Add(vw.Title);
                    currentViewers.Add(vw);
                }
            }

            viewerBox.Enabled       = currentViewers.Count > 1;
            viewerBox.SelectedIndex = 0;
        }
コード例 #5
0
        public virtual bool CanHandle(FilePath fileName, string mimeType, Project ownerProject)
        {
            if (excludeThis)
            {
                return(false);
            }

            var dprj = ownerProject as AbstractDProject;

            if (dprj == null)
            {
                return(false);
            }

            var mod = GlobalParseCache.GetModule(fileName.ToString());

            if (GetGtkDMainClass(mod) == null)
            {
                return(false);
            }

            excludeThis = true;
            var db = DisplayBindingService.GetDefaultViewBinding(fileName, mimeType, ownerProject);

            excludeThis = false;
            return(db != null);
        }
コード例 #6
0
        public void SetAsDefault(FilePath fileName, string mimeType, OpenWithFileViewer fileViewer)
        {
            ClearDefault(fileName, mimeType);

            if (fileViewer == null)
            {
                return;
            }

            var key = GetKey(fileName, mimeType);

            var userDefinedFileViewer = fileViewer as UserDefinedOpenWithFileViewer;

            if (userDefinedFileViewer != null)
            {
                defaultDisplayBindings [key] = userDefinedFileViewer.DisplayBinding;
                userDefinedFileViewer.SetAsDefault();
                return;
            }

            key.IsApplication    = fileViewer.IsApplication;
            key.IsDisplayBinding = fileViewer.IsDisplayBinding;

            mappings [key] = fileViewer.GetMappingKey();

            var displayBinding = DisplayBindingFactory.CreateDisplayBinding(fileName, mimeType, fileViewer);

            defaultDisplayBindings [key] = displayBinding;
            DisplayBindingService.RegisterRuntimeDisplayBinding(displayBinding);
        }
コード例 #7
0
        public override bool CanCreateContentForUri(string fileName)
        {
            Project       project = IdeApp.Workspace.GetProjectContainingFile(fileName);
            GtkDesignInfo info    = GtkDesignInfo.FromProject((DotNetProject)project);

            if (excludeThis)
            {
                return(false);
            }

            if (fileName.Contains(info.BuildFileExtension))
            {
                return(false);
            }

            if (!IdeApp.Workspace.IsOpen)
            {
                return(false);
            }

            if (GetActionGroup(fileName) == null)
            {
                return(false);
            }


            excludeThis = true;
            var db = DisplayBindingService.GetDefaultBindingForUri(fileName);

            excludeThis = false;
            return(db != null);
        }
コード例 #8
0
        internal static void PopulateOpenWithViewers(CommandArrayInfo info, Project project, string filePath)
        {
            var viewers = DisplayBindingService.GetFileViewers(filePath, project).ToList();

            //show the default viewer first
            var def = viewers.FirstOrDefault(v => v.CanUseAsDefault) ?? viewers.FirstOrDefault(v => v.IsExternal);

            if (def != null)
            {
                CommandInfo ci = info.Add(def.Title, def);
                ci.Description = GettextCatalog.GetString("Open with '{0}'", def.Title);
                if (viewers.Count > 1)
                {
                    info.AddSeparator();
                }
            }

            //then the builtins, followed by externals
            FileViewer prev = null;

            foreach (FileViewer fv in viewers)
            {
                if (def != null && fv.Equals(def))
                {
                    continue;
                }
                if (prev != null && fv.IsExternal != prev.IsExternal)
                {
                    info.AddSeparator();
                }
                CommandInfo ci = info.Add(fv.Title, fv);
                ci.Description = GettextCatalog.GetString("Open with '{0}'", fv.Title);
                prev           = fv;
            }
        }
コード例 #9
0
        /// <summary>
        /// Ensures that all possible secondary view contents are attached.
        /// This is primarily used to add the FormsDesigner view content for files
        /// containing partial classes after the designer file has been parsed if
        /// the view content has been created too early on startup.
        /// </summary>
        void RefreshSecondaryViewContents()
        {
            if (content == null)
            {
                return;
            }
            int oldSvcCount = content.SecondaryViewContents.Count;

            DisplayBindingService.AttachSubWindows(content, true);
            if (content.SecondaryViewContents.Count > oldSvcCount)
            {
                LoggingService.Debug("Attaching new secondary view contents to '" + this.Title + "'");
                if (viewTabControl == null)
                {
                    // The tab control needs to be created first.
                    Controls.Remove(content.Control);
                    CreateViewTabControl();
                    AttachSecondaryViewContent(content);
                    Controls.Add(viewTabControl);
                }
                foreach (ISecondaryViewContent svc in content.SecondaryViewContents)
                {
                    if (svc.WorkbenchWindow == null)
                    {
                        AttachSecondaryViewContent(svc);
                    }
                }
            }
        }
コード例 #10
0
        /// <summary>
        /// Shows the OpenWith dialog for the specified files.
        /// </summary>
        public static void OpenFilesWith(string[] fileNames)
        {
            if (fileNames.Length == 0)
            {
                return;
            }

            List <DisplayBindingDescriptor> codons = DisplayBindingService.GetCodonsPerFileName(fileNames[0]).ToList();

            for (int i = 1; i < fileNames.Length; i++)
            {
                var codonsForThisFile = DisplayBindingService.GetCodonsPerFileName(fileNames[i]);
                codons.RemoveAll(c => !codonsForThisFile.Contains(c));
            }
            if (codons.Count == 0)
            {
                return;
            }

            int defaultCodonIndex = codons.IndexOf(DisplayBindingService.GetDefaultCodonPerFileName(fileNames[0]));

            if (defaultCodonIndex < 0)
            {
                defaultCodonIndex = 0;
            }
            //using (OpenWithDialog dlg = new OpenWithDialog(codons, defaultCodonIndex, Path.GetExtension(fileNames[0]))) {
            //    if (dlg.ShowDialog(WorkbenchSingleton.MainWin32Window) == DialogResult.OK) {
            //        foreach (string fileName in fileNames) {
            //            FileUtility.ObservedLoad(new FileService.LoadFileWrapper(dlg.SelectedBinding.Binding, true).Invoke, fileName);
            //        }
            //    }
            //}
        }
        Document DoShow()
        {
            Document result = null;

            foreach (var view in Ide.IdeApp.Workbench.Documents)
            {
                if (view.GetContent <AssemblyBrowserViewContent> () != null)
                {
                    view.Window.SelectWindow();
                    result = view;
                    break;
                }
            }

            if (result == null)
            {
                var binding             = DisplayBindingService.GetBindings <AssemblyBrowserDisplayBinding> ().FirstOrDefault();
                var assemblyBrowserView = binding != null?binding.GetViewContent() : new AssemblyBrowserViewContent();

                assemblyBrowserView.FillWidget();
                result = Ide.IdeApp.Workbench.OpenDocument(assemblyBrowserView, true);
            }
            if (idString != null)
            {
                var view = result.GetContent <AssemblyBrowserViewContent> ();
                view.Widget.suspendNavigation = true;
                view.EnsureDefinitionsLoaded(definitions);
                view.Open(idString, expandNode: false);
            }
            return(result);
        }
コード例 #12
0
        void FillViewers()
        {
            ((Gtk.ListStore)viewerSelector.Model).Clear();
            currentViewers.Clear();

            if (Filenames.Length == 0 || Filename.Length == 0 || System.IO.Directory.Exists(Filename))
            {
                return;
            }

            if (IdeApp.Services.ProjectService.IsWorkspaceItemFile(Filename) || IdeApp.Services.ProjectService.IsSolutionItemFile(Filename))
            {
                viewerSelector.AppendText(GettextCatalog.GetString("Solution Workbench"));
                currentViewers.Add(null);
            }
            foreach (FileViewer vw in DisplayBindingService.GetFileViewers(Filename, null))
            {
                if (!vw.IsExternal)
                {
                    viewerSelector.AppendText(vw.Title);
                    currentViewers.Add(vw);
                }
            }
            viewerSelector.Active = 0;
            viewerLabel.Sensitive = viewerSelector.Sensitive = currentViewers.Count > 1;
        }
コード例 #13
0
        static bool FillViewers(CustomCommonFileDialogComboBox combo, string fileName)
        {
            combo.Items.Clear();

            if (String.IsNullOrEmpty(fileName) || Directory.Exists(fileName))
            {
                combo.Enabled = false;
                return(false);
            }

            int  selected       = -1;
            int  i              = 0;
            bool hasBench       = false;
            var  projectService = IdeApp.Services.ProjectService;

            if (projectService.IsWorkspaceItemFile(fileName) || projectService.IsSolutionItemFile(fileName))
            {
                hasBench = true;
                combo.Items.Add(new ViewerComboItem(null, GettextCatalog.GetString("Solution Workbench")));
                if (!CanBeOpenedInAssemblyBrowser(fileName))
                {
                    selected = 0;
                }
                i++;
            }

            foreach (var vw in DisplayBindingService.GetFileViewers(fileName, null))
            {
                if (!vw.IsExternal)
                {
                    combo.Items.Add(new ViewerComboItem(vw, vw.Title));

                    if (vw.CanUseAsDefault && selected == -1)
                    {
                        selected = i;
                    }

                    i++;
                }
            }

            if (selected == -1)
            {
                selected = 0;
            }

            combo.Enabled = combo.Items.Count >= 1;
            if (selected > 0)
            {
                // Unable to set SelectedIndex until ApplyControlPropertyChange called for Items
                // which causes the combo box selection to visibly change selection twice. Instead just
                // make the default item the first one in the combo.
                var item = combo.Items[selected];
                combo.Items.RemoveAt(selected);
                combo.Items.Insert(0, item);
            }
            return(hasBench);
        }
コード例 #14
0
 void RemoveButtonClick(object sender, EventArgs e)
 {
     DisplayBindingService.RemoveExternalProcessDisplayBinding((ExternalProcessDisplayBinding)SelectedBinding.GetLoadedBinding());
     if (defaultBindingIndex == programListBox.SelectedIndex)
     {
         defaultBindingIndex = -1;
     }
     programListBox.Items.RemoveAt(programListBox.SelectedIndex);
 }
コード例 #15
0
        public override IViewContent CreateContentForUri(string fileName)
        {
            excludeThis = true;
            var            db   = DisplayBindingService.GetDefaultBindingForUri(fileName);
            GuiBuilderView view = new GuiBuilderView(db.CreateContentForUri(fileName), GetWindow(fileName));

            excludeThis = false;
            return(view);
        }
コード例 #16
0
        void FillViewers()
        {
            ((Gtk.ListStore)viewerSelector.Model).Clear();
            currentViewers.Clear();

            if (Filenames.Length == 0 || Filename.Length == 0 || System.IO.Directory.Exists(Filename))
            {
                return;
            }

            int selected = -1;
            int i        = 0;

            if (IdeApp.Services.ProjectService.IsWorkspaceItemFile(Filename) || IdeApp.Services.ProjectService.IsSolutionItemFile(Filename))
            {
                viewerSelector.AppendText(GettextCatalog.GetString("Solution Workbench"));
                currentViewers.Add(null);

                if (closeWorkspaceCheck.Visible)
                {
                    closeWorkspaceCheck.Active = true;
                }

                // Default exe/dll to AssemblyBrowser, solutions/projects to Solution Workbench.
                // HACK: Couldn't make it a generic SolutionItemFile based conditional, .csproj fits under this category also.
                if (!(Filename.EndsWith(".exe", StringComparison.OrdinalIgnoreCase) || Filename.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)))
                {
                    selected = 0;
                }
                i++;
            }

            foreach (FileViewer vw in DisplayBindingService.GetFileViewers(Filename, null))
            {
                if (!vw.IsExternal)
                {
                    viewerSelector.AppendText(vw.Title);
                    currentViewers.Add(vw);

                    if (vw.CanUseAsDefault && selected == -1)
                    {
                        selected = i;
                    }

                    i++;
                }
            }

            if (selected == -1)
            {
                selected = 0;
            }

            viewerSelector.Active = selected;
            viewerLabel.Sensitive = viewerSelector.Sensitive = currentViewers.Count > 1;
        }
コード例 #17
0
ファイル: DisplayBinding.cs プロジェクト: philstopford/Eto
        ViewContent IViewDisplayBinding.CreateContent(FilePath fileName, string mimeType, Project ownerProject)
        {
            exclude = true;
            var defaultViewBinding = DisplayBindingService.GetDefaultViewBinding(fileName, mimeType, ownerProject);
            var content            = defaultViewBinding.CreateContent(fileName, mimeType, ownerProject);
            var result             = new EditorView(content);

            exclude = false;
            return(result);
        }
コード例 #18
0
        public virtual IViewContent CreateContent(FilePath fileName, string mimeType, Project ownerProject)
        {
            excludeThis = true;
            var db      = DisplayBindingService.GetDefaultViewBinding(fileName, mimeType, ownerProject);
            var content = db.CreateContent(fileName, mimeType, ownerProject);
            var view    = new GuiBuilderView(content, GetWindow(fileName));

            excludeThis = false;
            return(view);
        }
コード例 #19
0
        public IViewContent CreateContent(FilePath fileName, string mimeType, Project ownerProject)
        {
            excludeThis = true;
            var           db   = DisplayBindingService.GetDefaultViewBinding(fileName, mimeType, ownerProject);
            GtkDesignInfo info = GtkDesignInfo.FromProject((DotNetProject)ownerProject);

            var             content = db.CreateContent(fileName, mimeType, ownerProject);
            ActionGroupView view    = new ActionGroupView(content, GetActionGroup(fileName), info.GuiBuilderProject);

            excludeThis = false;
            return(view);
        }
コード例 #20
0
        /// <summary>
        /// Shows the OpenWith dialog for the specified file.
        /// </summary>
        static void OpenWith(string fileName)
        {
            var codons            = DisplayBindingService.GetCodonsPerFileName(fileName);
            int defaultCodonIndex = codons.IndexOf(DisplayBindingService.GetDefaultCodonPerFileName(fileName));

            using (OpenWithDialog dlg = new OpenWithDialog(codons, defaultCodonIndex, Path.GetExtension(fileName))) {
                if (dlg.ShowDialog(WorkbenchSingleton.MainForm) == DialogResult.OK)
                {
                    FileUtility.ObservedLoad(new FileService.LoadFileWrapper(dlg.SelectedBinding.Binding, true).Invoke, fileName);
                }
            }
        }
コード例 #21
0
        public static void InitializeWorkbench(IWorkbench workbench, IWorkbenchLayout layout)
        {
            WorkbenchSingleton.workbench = workbench;

            LanguageService.ValidateLanguage();

            DisplayBindingService.InitializeService();
            LayoutConfiguration.LoadLayoutConfiguration();
            FileService.InitializeService();

            //by hanz
            //DomHostCallback.Register(); // must be called after StatusBarService.Initialize()
            //ParserService.InitializeParserService();
            //TaskService.Initialize();
            //Bookmarks.BookmarkManager.Initialize();
            //Project.CustomToolsService.Initialize();
            //Project.BuildModifiedProjectsOnlyService.Initialize();

            var messageService = ICSharpCode.Core.Services.ServiceManager.Instance.MessageService as IDialogMessageService;

            if (messageService != null)
            {
                messageService.DialogOwner = workbench.MainWin32Window;
                Debug.Assert(messageService.DialogOwner != null);
                messageService.DialogSynchronizeInvoke = workbench.SynchronizingObject;
            }

            workbench.Initialize();
            workbench.SetMemento(PropertyService.Get(workbenchMemento, new Properties()));
            workbench.WorkbenchLayout = layout;

            ApplicationStateInfoService.RegisterStateGetter(activeContentState, delegate { return(WorkbenchSingleton.Workbench.ActiveContent); });

            OnWorkbenchCreated();

            // initialize workbench-dependent services:
            //Project.ProjectService.InitializeService();//by hanz
            NavigationService.InitializeService();

            workbench.ActiveContentChanged += delegate {
                Debug.WriteLine("ActiveContentChanged to " + workbench.ActiveContent);
                LoggingService.Debug("ActiveContentChanged to " + workbench.ActiveContent);
            };
            workbench.ActiveViewContentChanged += delegate {
                Debug.WriteLine("ActiveViewContentChanged to " + workbench.ActiveViewContent);
                LoggingService.Debug("ActiveViewContentChanged to " + workbench.ActiveViewContent);
            };
            workbench.ActiveWorkbenchWindowChanged += delegate {
                Debug.WriteLine("ActiveWorkbenchWindowChanged to " + workbench.ActiveWorkbenchWindow);
                LoggingService.Debug("ActiveWorkbenchWindowChanged to " + workbench.ActiveWorkbenchWindow);
            };
        }
コード例 #22
0
        public override IViewContent CreateContentForUri(string fileName)
        {
            excludeThis = true;
            var db = DisplayBindingService.GetDefaultBindingForUri(fileName);

            Project       project = IdeApp.Workspace.GetProjectContainingFile(fileName);
            GtkDesignInfo info    = GtkDesignInfo.FromProject((DotNetProject)project);

            ActionGroupView view = new ActionGroupView(db.CreateContentForUri(fileName), GetActionGroup(fileName), info.GuiBuilderProject);

            excludeThis = false;
            return(view);
        }
コード例 #23
0
        void FillViewers()
        {
            ((Gtk.ListStore)viewerSelector.Model).Clear();
            currentViewers.Clear();

            if (Filenames.Length == 0 || Filename.Length == 0 || System.IO.Directory.Exists(Filename))
            {
                return;
            }

            int selected = -1;
            int i        = 0;

            if (IdeApp.Services.ProjectService.IsWorkspaceItemFile(Filename) || IdeApp.Services.ProjectService.IsSolutionItemFile(Filename))
            {
                viewerSelector.AppendText(GettextCatalog.GetString("Solution Workbench"));
                currentViewers.Add(null);

                if (closeWorkspaceCheck.Visible)
                {
                    closeWorkspaceCheck.Active = true;
                }

                selected = 0;
                i++;
            }

            foreach (FileViewer vw in DisplayBindingService.GetFileViewers(Filename, null))
            {
                if (!vw.IsExternal)
                {
                    viewerSelector.AppendText(vw.Title);
                    currentViewers.Add(vw);

                    if (vw.CanUseAsDefault && selected == -1)
                    {
                        selected = i;
                    }

                    i++;
                }
            }

            if (selected == -1)
            {
                selected = 0;
            }

            viewerSelector.Active = selected;
            viewerLabel.Sensitive = viewerSelector.Sensitive = currentViewers.Count > 1;
        }
コード例 #24
0
 void SetAsDefaultButtonClick(object sender, EventArgs e)
 {
     if (defaultBindingIndex >= 0)
     {
         programListBox.Items[defaultBindingIndex] = new ListEntry(
             ((ListEntry)programListBox.Items[defaultBindingIndex]).desc,
             false);
     }
     defaultBindingIndex = programListBox.SelectedIndex;
     programListBox.Items[defaultBindingIndex] = new ListEntry(
         ((ListEntry)programListBox.Items[defaultBindingIndex]).desc,
         true);
     DisplayBindingService.SetDefaultCodon(fileExtension, SelectedBinding);
 }
コード例 #25
0
 void AddButtonClick(object sender, EventArgs e)
 {
     using (AddOpenWithEntryDialog dlg = new AddOpenWithEntryDialog()) {
         if (dlg.ShowDialog(this) == DialogResult.OK)
         {
             ExternalProcessDisplayBinding binding = new ExternalProcessDisplayBinding {
                 FileExtension = fileExtension,
                 CommandLine   = dlg.ProgramName,
                 Title         = dlg.DisplayName,
                 Id            = Guid.NewGuid().ToString()
             };
             programListBox.Items.Add(new ListEntry(DisplayBindingService.AddExternalProcessDisplayBinding(binding), false));
         }
     }
 }
        public ViewContent CreateContent(MonoDevelop.Core.FilePath fileName, string mimeType, Project ownerProject)
        {
            excludeThis = true;
            var db      = DisplayBindingService.GetDefaultViewBinding(fileName, mimeType, ownerProject);
            var content = db.CreateContent(fileName, mimeType, ownerProject);
            var window  = GetWindow(fileName, ownerProject);

            if (window == null)
            {
                throw new InvalidOperationException("GetWindow == null");
            }
            GuiBuilderView view = new GuiBuilderView(content, window);

            excludeThis = false;
            return(view);
        }
コード例 #27
0
        protected override void Run()
        {
            foreach (var view in IdeApp.Workbench.Documents)
            {
                if (view.GetContent <AssemblyBrowserViewContent> () != null)
                {
                    view.Window.SelectWindow();
                    return;
                }
            }
            var binding             = DisplayBindingService.GetBindings <AssemblyBrowserDisplayBinding> ().FirstOrDefault();
            var assemblyBrowserView = binding != null?binding.GetViewContent() : new AssemblyBrowserViewContent();

            assemblyBrowserView.FillWidget();

            IdeApp.Workbench.OpenDocument(assemblyBrowserView, true);
        }
コード例 #28
0
        public static void InitializeWorkbench(IWorkbench workbench, IWorkbenchLayout layout)
        {
            WorkbenchSingleton.workbench = workbench;

            DisplayBindingService.InitializeService();
            LayoutConfiguration.LoadLayoutConfiguration();
            FileService.InitializeService();
            StatusBarService.Initialize();
            DomHostCallback.Register();             // must be called after StatusBarService.Initialize()
            ParserService.InitializeParserService();
            Bookmarks.BookmarkManager.Initialize();
            Project.CustomToolsService.Initialize();
            Project.BuildModifiedProjectsOnlyService.Initialize();

            workbench.Initialize();
            workbench.SetMemento(PropertyService.Get(workbenchMemento, new Properties()));

            caller = new STAThreadCaller(workbench.MainForm);
            WinFormsMessageService.DialogOwner             = workbench.MainForm;
            WinFormsMessageService.DialogSynchronizeInvoke = workbench.MainForm;

            PropertyService.PropertyChanged += new PropertyChangedEventHandler(TrackPropertyChanges);
            ResourceService.LanguageChanged += delegate { workbench.RedrawAllComponents(); };

            ApplicationStateInfoService.RegisterStateGetter(activeContentState, delegate { return(WorkbenchSingleton.Workbench.ActiveContent); });

            // attach workbench layout -> load pads
            workbench.WorkbenchLayout = layout;

            OnWorkbenchCreated();

            // initialize workbench-dependent services:
            Project.ProjectService.InitializeService();
            NavigationService.InitializeService();

            workbench.ActiveContentChanged += delegate {
                LoggingService.Debug("ActiveContentChanged to " + workbench.ActiveContent);
            };
            workbench.ActiveViewContentChanged += delegate {
                LoggingService.Debug("ActiveViewContentChanged to " + workbench.ActiveViewContent);
            };
            workbench.ActiveWorkbenchWindowChanged += delegate {
                LoggingService.Debug("ActiveWorkbenchWindowChanged to " + workbench.ActiveWorkbenchWindow);
            };
        }
コード例 #29
0
        public override bool CanCreateContentForUri(string fileName)
        {
            if (excludeThis)
            {
                return(false);
            }

            if (GetWindow(fileName) == null)
            {
                return(false);
            }

            excludeThis = true;
            var db = DisplayBindingService.GetDefaultBindingForUri(fileName);

            excludeThis = false;
            return(db != null);
        }
コード例 #30
0
        protected override void Run()
        {
            foreach (var view in IdeApp.Workbench.Documents)
            {
                if (view.GetContent <AssemblyBrowserViewContent> () != null)
                {
                    view.Window.SelectWindow();
                    return;
                }
            }
            var binding             = DisplayBindingService.GetBindings <AssemblyBrowserDisplayBinding> ().FirstOrDefault();
            var assemblyBrowserView = binding != null?binding.GetViewContent() : new AssemblyBrowserViewContent();

            if (Ide.IdeApp.ProjectOperations.CurrentSelectedSolution == null)
            {
                foreach (var assembly in defaultAssemblies)
                {
                    assemblyBrowserView.Widget.AddReferenceByAssemblyName(assembly, assembly == defaultAssemblies [0]);
                }
            }
            else
            {
                foreach (var project in Ide.IdeApp.ProjectOperations.CurrentSelectedSolution.GetAllProjects())
                {
                    assemblyBrowserView.Widget.AddProject(project, false);

                    var netProject = project as DotNetProject;
                    if (netProject == null)
                    {
                        continue;
                    }
                    foreach (string file in netProject.GetReferencedAssemblies(ConfigurationSelector.Default, false))
                    {
                        if (!File.Exists(file))
                        {
                            continue;
                        }
                        assemblyBrowserView.Widget.AddReferenceByFileName(file, false);
                    }
                }
            }

            Ide.IdeApp.Workbench.OpenDocument(assemblyBrowserView, true);
        }