Beispiel #1
0
        /// <summary>
        /// Loads or reloads a project by filename
        /// </summary>
        /// <param name="activeProjectFilename"></param>
        public void LoadProject(string activeProjectFilename)
        {
            var proj = DocProject.LoadProject(activeProjectFilename);

            TopicsTree.LoadProject(proj);
            ActiveProject = proj;
        }
Beispiel #2
0
        public void OpenProject(string projectFile, bool noErrorDisplay = false)
        {
            Window.ShowStatus("Opening project file...");
            ActiveProject = null;

            DocProject project = null;

            if (string.IsNullOrEmpty(projectFile))
            {
                /// TODO: Need Wizard here
                project = DocProjectManager.CreateProject(new DocProjectCreator()
                {
                    Filename      = System.IO.Path.GetFileName(projectFile),
                    ProjectFolder = System.IO.Path.GetDirectoryName(projectFile),
                    Title         = "New Project",
                    Owner         = "West Wind Technologies"
                });
            }
            else
            {
                project = DocProject.LoadProject(projectFile);
                if (project == null)
                {
                    if (!noErrorDisplay)
                    {
                        MessageBox.Show("Failed to load project.",
                                        KavaApp.ApplicationName,
                                        MessageBoxButton.OK,
                                        MessageBoxImage.Warning);
                    }
                    else
                    {
                        Window.ShowStatus("Failed to load project: " + projectFile,
                                          KavaApp.Configuration.StatusMessageTimeout);
                        Window.SetStatusIcon(FontAwesomeIcon.Warning, Colors.Red);
                    }

                    Window.ShowStatus();
                    return;
                }
            }

            Window.ShowStatus("Generating project tree...");

            ActiveProject = project;
            TopicsTree.LoadProject(project);

            PreviewTopic();

            Window.ShowStatus($"Project '{project.Title}' opened.", KavaApp.Configuration.StatusMessageTimeout);
        }
        /// <summary>
        /// Attach the addin to Markdown Monster
        /// </summary>
        public void InitializeKavaDocs()
        {
            if (!IsAddinInitialized)
            {
                kavaUi.Addin = this;

                KavaDocsModel               = kavaUi.AddinModel;
                KavaDocsModel.Addin         = this;
                Configuration               = kavaUi.Configuration;
                KavaDocsModel.Configuration = Configuration;


                // Set up the KavaDocs Topic Tree in the Left Sidebar
                var tabItem = new MetroTabItem()
                {
                    Name = "KavaDocsTree"
                };

                // Create the tab content user control
                KavaDocsTopicTreeTab = tabItem;
                Tree            = new TopicsTree();
                tabItem.Content = Tree;

                var icons     = new AssociatedIcons();
                var imgSource = icons.GetIconFromFile("t.kavadocs");  // image source

                Model.Window.AddLeftSidebarPanelTabItem(tabItem, "Topics", imgSource);

                // Kava Docs Topic Editor Tab
                tabItem = new MetroTabItem()
                {
                    Name = "KavaDocsTopic"
                };
                KavaDocsTopicEditorTab = tabItem;

                TopicEditor     = new TopicEditor();
                tabItem.Content = TopicEditor;

                Model.Window.AddRightSidebarPanelTabItem(tabItem, "Topic", imgSource);


                KavaDocsMenu = new KavaDocsMenuHandler();
                KavaDocsMenu.CreateKavaDocsMainMenu();

                if (Configuration.OpenLastProject)
                {
                    KavaDocsModel.ActiveProject = DocProjectManager.Current.LoadProject(Configuration.LastProjectFile);
                    if (KavaDocsModel.ActiveProject != null)
                    {
                        Model.Window.Dispatcher.Delay(10, p => Tree.LoadProject(KavaDocsModel.ActiveProject));
                    }
                }
                IsAddinInitialized = true;

                // Activate the Tab
                Model.Window.ShowFolderBrowser();
                Model.Window.SidebarContainer.SelectedItem = KavaDocsTopicTreeTab;

                // If no project is open try to open one
                if (KavaDocsModel.ActiveProject == null)
                {
                    KavaDocsModel.Commands.OpenProjectCommand.Execute(null);
                }
            }
        }