Beispiel #1
0
        /// <summary>
        /// Display a file
        /// </summary>
        /// <param name="path">Full filename</param>
        /// <param name="previewType">Type of file</param>
        public void Display(string path, PreviewType previewType)
        {
            if (path == null)
            {
                return;
            }
            if (!File.Exists(path))
            {
                throw new FileNotFoundException(path);
            }

            switch (previewType)
            {
            case PreviewType.WindowMacro:
                WindowMacro = new WindowMacro();
                WindowMacro.Open(path, EplanProject);
                SetVariantCombinations(WindowMacro);
                break;

            case PreviewType.SymbolMacro:
                SymbolMacro = new SymbolMacro();
                SymbolMacro.Open(path, EplanProject);
                SetVariantCombinations(SymbolMacro);
                break;

            case PreviewType.PageMacro:
                PageMacro = new PageMacro();
                PageMacro.Open(path, EplanProject);
                SetVariantCombinations(PageMacro);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(previewType), previewType, null);
            }
        }
Beispiel #2
0
        private void SetVariantCombinations(PageMacro pageMacro)
        {
            _previewControl.VariantsCombinations = new ObservableCollection <VariantCombination>();
            _previewControl.PreviewType          = PreviewType.PageMacro;

            VariantCombination variantCombination = new VariantCombination(PreviewType.PageMacro);

            variantCombination.PreviewObject = pageMacro;
            for (int index = 0; index < pageMacro.Pages.Length; index++)
            {
                var page = pageMacro.Pages[index];

                variantCombination.RepresentationType = WindowMacro.Enums.RepresentationType.Default;
                Variant variant = new Variant(variantCombination);
                if (!page.Properties.PAGE_NOMINATIOMN.IsEmpty)
                {
                    variant.Description = page.Properties.PAGE_NOMINATIOMN.ToMultiLangString()
                                          .GetStringToDisplay(MultiLanguage.GuiLanguage);
                    variant.Description = Regex.Replace(variant.Description, @"\r\n?|\n", " ");
                }
                variant.Index = index;
                variantCombination.Variants.Add(variant);
            }
            _previewControl.VariantsCombinations.Add(variantCombination);

            _previewControl.SelectedVariantCombination = _previewControl.VariantsCombinations.FirstOrDefault();
            _previewControl.CheckControls();
        }
        private void Draw()
        {
            if (SelectedVariant != null)
            {
                switch (PreviewType)
                {
                case PreviewType.WindowMacro:
                    WindowMacro windowMacro = (WindowMacro)SelectedVariantCombination.PreviewObject;
                    windowMacro.ChangeCurrentVariant(SelectedVariantCombination.RepresentationType, SelectedVariant.Index);
                    Preview.DrawingService.CreateDisplayList(windowMacro);
                    Preview.DrawEplan();
                    break;

                case PreviewType.SymbolMacro:
                    SymbolMacro symbolMacro = (SymbolMacro)SelectedVariantCombination.PreviewObject;
                    symbolMacro.ChangeCurrentVariant(SelectedVariantCombination.RepresentationType, SelectedVariant.Index);
                    Preview.DrawingService.CreateDisplayList(symbolMacro);
                    Preview.DrawEplan();
                    symbolMacro.Dispose();
                    break;

                case PreviewType.PageMacro:
                    PageMacro pageMacro = (PageMacro)SelectedVariantCombination.PreviewObject;
                    Preview.DrawingService.CreateDisplayList(pageMacro.Pages[SelectedVariant.Index]);
                    Preview.DrawEplan();
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
        }
        /// <summary>
        /// Generates a project with the given GenerateablePageMacros
        /// </summary>
        /// <param name="projectLinkFilePath">EPLAN project file (*.elk)</param>
        /// <param name="projectTemplateFilePath">EPLAN template project (*.zw9)</param>
        /// <param name="generatablePageMacros">List of GeneratablePageMaros</param>
        public static void Generate(string projectLinkFilePath, string projectTemplateFilePath,
                                    List <GeneratablePageMacro> generatablePageMacros)
        {
            var project = Create(projectLinkFilePath, projectTemplateFilePath, false);

            project.RemoveAllPages();

            Insert insert    = new Insert();
            var    pageCount = project.Pages.Length; // needed cause of overwrite

            foreach (var generatablePageMacro in generatablePageMacros)
            {
                // Load pages from macro
                PageMacro pageMacro = new PageMacro();
                pageMacro.Open(generatablePageMacro.Filename, project);
                foreach (var page in pageMacro.Pages)
                {
                    // Rename
                    pageCount++;

                    PagePropertyList pagePropertyList = page.NameParts;
                    if (generatablePageMacro.LocationIdentifierIdentifier != null)
                    {
                        pagePropertyList[Properties.Page.DESIGNATION_FUNCTIONALASSIGNMENT] =
                            generatablePageMacro.LocationIdentifierIdentifier.FunctionAssignment;
                        pagePropertyList[Properties.Page.DESIGNATION_PLANT] =
                            generatablePageMacro.LocationIdentifierIdentifier.Plant;
                        pagePropertyList[Properties.Page.DESIGNATION_PLACEOFINSTALLATION] =
                            generatablePageMacro.LocationIdentifierIdentifier.PlaceOfInstallation;
                        pagePropertyList[Properties.Page.DESIGNATION_LOCATION] =
                            generatablePageMacro.LocationIdentifierIdentifier.Location;
                        pagePropertyList[Properties.Page.DESIGNATION_USERDEFINED] =
                            generatablePageMacro.LocationIdentifierIdentifier.UserDefinied;
                    }

                    pagePropertyList[Properties.Page.PAGE_COUNTER] = pageCount;
                    page.NameParts = pagePropertyList;

                    new NameService(page).EvaluateAndSetAllNames();
                }

                // Insert pagemacro
                insert.PageMacro(pageMacro, project, null, PageMacro.Enums.NumerationMode.Number);
            }
        }
Beispiel #5
0
        public static void ExportPageMacro(Project project, string pageMacroFile, string fullFilename, bool isFrameVisible = true)
        {
            using (PageMacro pageMacro = new PageMacro())
            {
                // Have to insert pages into project because its not working with pageMacro.Pages.First()
                pageMacro.Open(pageMacroFile, project);

                // Set temp structure
                for (var index = 0; index < pageMacro.Pages.Length; index++)
                {
                    var pageMacroPage = pageMacro.Pages[index];
                    pageMacroPage.NameParts[Properties.Page.PAGE_COUNTER] = "SvgExportUtility" + index;
                }

                var storableObjects = new Insert().PageMacro(pageMacro, project, null, PageMacro.Enums.NumerationMode.None);
                var newPages        = storableObjects.OfType <Page>().ToList();

                for (var index = 0; index < newPages.Count; index++)
                {
                    var newPage  = newPages[index];
                    var path     = Path.GetDirectoryName(fullFilename);
                    var filename = Path.GetFileNameWithoutExtension(fullFilename) + "_" + (index + 1) + ".svg";

                    // ReSharper disable once AssignNullToNotNullAttribute
                    filename = Path.Combine(path, filename);

                    if (File.Exists(fullFilename))
                    {
                        File.Delete(fullFilename);
                    }

                    ExportPage(newPage, filename, isFrameVisible);

                    // Remove pages after export
                    newPage.Remove();
                }
            }
        }
Beispiel #6
0
        /// <summary>
        /// Init Preview object for WPF
        /// </summary>
        /// <param name="border">Border which should inhert the UserControl</param>
        /// <param name="projectFile">EPLAN project file to preview (*.elk)</param>
        public Preview(Border border, string projectFile)
        {
            // Clean
            WindowMacro = null;
            SymbolMacro = null;
            PageMacro   = null;

            if (!File.Exists(projectFile))
            {
                throw new FileNotFoundException(projectFile);
            }

            // Check if project is open
            var projectManager = new ProjectManager();

            projectManager.LockProjectByDefault = false;
            //EplanProject = ProjectUtility.OpenProject(projectFile);
            foreach (var openProject in projectManager.OpenProjects)
            {
                if (openProject.ProjectLinkFilePath.Equals(projectFile))
                {
                    EplanProject = openProject;
                    break;
                }
            }
            if (EplanProject == null)
            {
                EplanProject = projectManager.OpenProject(projectFile, ProjectManager.OpenMode.Exclusive);
            }

            DrawingService = new DrawingService();
            DrawingService.DrawConnections = true;

            border.Child            = _previewControl;
            _previewControl.Preview = this;
        }
Beispiel #7
0
 /// <summary>
 /// Displays the given PageMacro
 /// </summary>
 /// <param name="pageMacro">EPLAN PageMacro</param>
 public void Display(PageMacro pageMacro)
 {
     PageMacro = pageMacro;
     SetVariantCombinations(PageMacro);
 }
      /// <summary>
      /// Generates a project with the given GenerateablePageMacros
      /// </summary>
      /// <param name="projectLinkFilePath">EPLAN project file (*.elk)</param>
      /// <param name="projectTemplateFilePath">EPLAN template project (*.zw9)</param>
      /// <param name="generatablePageMacros">List of GeneratablePageMaros</param>
      public static void Generate(string projectLinkFilePath, string projectTemplateFilePath,
         List<GeneratablePageMacro> generatablePageMacros)
      {
         var project = Create(projectLinkFilePath, projectTemplateFilePath, false);
         project.RemoveAllPages();

         Insert insert = new Insert();
         var pageCount = project.Pages.Length; // needed cause of overwrite
         foreach (var generatablePageMacro in generatablePageMacros)
         {
            // Load pages from macro
            PageMacro pageMacro = new PageMacro();
            pageMacro.Open(generatablePageMacro.Filename, project);
            foreach (var page in pageMacro.Pages)
            {
               // Rename
               pageCount++;

               PagePropertyList pagePropertyList = page.NameParts;
               if (generatablePageMacro.LocationIdentifierIdentifier != null)
               {
                  pagePropertyList[Properties.Page.DESIGNATION_FUNCTIONALASSIGNMENT] =
                     generatablePageMacro.LocationIdentifierIdentifier.FunctionAssignment;
                  pagePropertyList[Properties.Page.DESIGNATION_PLANT] =
                     generatablePageMacro.LocationIdentifierIdentifier.Plant;
                  pagePropertyList[Properties.Page.DESIGNATION_PLACEOFINSTALLATION] =
                     generatablePageMacro.LocationIdentifierIdentifier.PlaceOfInstallation;
                  pagePropertyList[Properties.Page.DESIGNATION_LOCATION] =
                     generatablePageMacro.LocationIdentifierIdentifier.Location;
                  pagePropertyList[Properties.Page.DESIGNATION_USERDEFINED] =
                     generatablePageMacro.LocationIdentifierIdentifier.UserDefinied;
               }

               pagePropertyList[Properties.Page.PAGE_COUNTER] = pageCount;
               page.NameParts = pagePropertyList;

               new NameService(page).EvaluateAndSetAllNames();
            }

            // Insert pagemacro
            insert.PageMacro(pageMacro, project, null, PageMacro.Enums.NumerationMode.Number);
         }
      }