public void LoadAllChildrenWidgets(bool bIsNail) { if (items == null) { items = new ObservableCollection <WidgetPreViewModeBase>(); } items.Clear(); if (!_page.IsOpened) { _page.Open(); } IPageView view = _page.PageViews.GetPageView(_styleGuid); if (view == null) { _page.Close(); return; } foreach (IWidget wdg in _page.Widgets) { WidgetPreViewModeBase preItem = ReadOnlyWidgetFactory.CreateWidget(wdg, bIsNail); preItem.ChangeCurrentPageView(view); if (preItem == null) { continue; } items.Add(preItem); } //_page.Close(); }
public void ClosePage() { if (_page != null) { _page.Close(); } }
private void DeletePage(ITreeNode treeNodeObject, bool isRecursive = true) { IDocumentService doc = ServiceLocator.Current.GetInstance <IDocumentService>(); if (doc.Document != null && treeNodeObject != null) { if (treeNodeObject.NodeType == TreeNodeType.MasterPage) { IEnumerable <IWidget> extendPageWidget = null; IPage page = null; if (doc.Document.MasterPages.Contains(treeNodeObject.Guid) && doc.Document.MasterPages[treeNodeObject.Guid] != null) { page = doc.Document.MasterPages[treeNodeObject.Guid]; bool isOpened = page.IsOpened; if (isOpened == false) { page.Open(); } extendPageWidget = page.Widgets.OfType <IWidget>().Where(x => x is Naver.Compass.Service.Document.IDynamicPanel || x is Naver.Compass.Service.Document.IHamburgerMenu || x is Naver.Compass.Service.Document.IToast); if (extendPageWidget != null) { foreach (var extendpage in extendPageWidget) { _ListEventAggregator.GetEvent <ClosePageEvent>().Publish(extendpage.Guid); } } if (!isOpened) { page.Close(); } } doc.Document.DeleteMasterPage(treeNodeObject.Guid); _ListEventAggregator.GetEvent <ClosePageEvent>().Publish(treeNodeObject.Guid); _ListEventAggregator.GetEvent <FocusSitemapEvent>().Publish(null); RefreshInfoCount(-1); } if (isRecursive) { foreach (ITreeNode child in treeNodeObject.ChildNodes) { DeletePage(child, isRecursive); } } } }
private async Task AsyncConvertChildlPage(IPage ChildPage, IDocument document) { bool isClosedPage = false; if (!ChildPage.IsOpened) { isClosedPage = true; ChildPage.Open(); } Debug.WriteLine("----->HtmlGen----->Start Loading Child Page"); await UpdateChildPage(ChildPage); //load widgets await Task.Factory.StartNew(ConvertPage); //update layout Guid BaseViewID = document.AdaptiveViewSet.Base.Guid; foreach (IPageView pageView in ChildPage.PageViews) { Guid CurViewID = pageView.Guid; if (CurViewID == BaseViewID) { CurViewID = Guid.Empty; } else { foreach (var wdg in items) { wdg.ChangeCurrentPageView(pageView); } } await Task.Factory.StartNew(ConvertPage); //update layout await Task.Factory.StartNew(() => CreateImg(CurViewID)); } if (isClosedPage) { ChildPage.Close(); } Debug.WriteLine("----->HtmlGen----->Exit Loading Child Page"); }
private async Task AsyncConvertAllPages(IDocument document = null) { if (document == null) { #region Normal Page IDocumentService doc = ServiceLocator.Current.GetInstance <IDocumentService>(); if (doc == null || doc.Document == null || doc.Document.Pages.Count <= 0) { return; } int nDiv = 90 / doc.Document.Pages.Count; int nProgress = nDiv; Debug.WriteLine("----->HtmlGen----->Enter Async Convert All Pages()"); //IPage CurrentPage = doc.Document.Pages.GetPage(_pageGID); Guid SelPageGID = doc.Document.GeneratorConfigurationSet.DefaultHtmlConfiguration.CurrentPage; if (SelPageGID == Guid.Empty) { List <IPage> TopPages = new List <IPage>(); TopPages.AddRange(doc.Document.Pages); TopPages.AddRange(doc.Document.MasterPages); foreach (IPage CurrentPage in TopPages) { if (_busyIndicator.IsContinue == false) { break; } _busyIndicator.Progress = nProgress; _busyIndicator.Content = @"Convert the Image from Page:" + "\n" + CurrentPage.Name; nProgress += nDiv; bool isClosedPage = false; if (!CurrentPage.IsOpened) { isClosedPage = true; CurrentPage.Open(); } //Convert Current Page Self if (CurrentPage is IMasterPage) { await AsyncConvertNormalPage(CurrentPage.Guid, doc.Document, true); List <IPage> Chidlren = new List <IPage>(); GetAllChildrenPage(Chidlren, CurrentPage); foreach (IPage ChildPage in Chidlren) { await AsyncConvertChildlPage(ChildPage, doc.Document); } } else { await AsyncConvertNormalPage(CurrentPage.Guid, doc.Document, false); //Convert All Children Pages(Dynamic/Hamburg) List <IPage> Chidlren = new List <IPage>(); GetAllChildrenPage(Chidlren, CurrentPage); foreach (IPage ChildPage in Chidlren) { await AsyncConvertChildlPage(ChildPage, doc.Document); } } if (isClosedPage) { CurrentPage.Close(); } } } else { IPage CurrentPage = doc.Document.Pages.GetPage(SelPageGID); if (CurrentPage == null) { return; } bool isClosedPage = false; if (!CurrentPage.IsOpened) { isClosedPage = true; CurrentPage.Open(); } _busyIndicator.Progress = 90; _busyIndicator.Content = @"Convert the Image from Page:" + "\n" + CurrentPage.Name; //Convert Current Page Self await AsyncConvertNormalPage(CurrentPage.Guid, doc.Document, false); //Convert All Children Pages(Dynamic/Hamburg) List <IPage> Chidlren = new List <IPage>(); GetAllChildrenPage(Chidlren, CurrentPage); foreach (IPage ChildPage in Chidlren) { await AsyncConvertChildlPage(ChildPage, doc.Document); } if (isClosedPage) { CurrentPage.Close(); } } Debug.WriteLine("----->HtmlGen----->Exit Async Convert All Pages()"); #endregion } else { #region MD5 Page if (document.IsOpened == false) { return; } List <IPage> TopPages = new List <IPage>(); TopPages.AddRange(document.Pages); TopPages.AddRange(document.MasterPages); foreach (IPage CurrentPage in TopPages) { if (_busyIndicator.IsContinue == false) { break; } CurrentPage.Open(); //Convert Current Page Self if (CurrentPage is IMasterPage) { await AsyncConvertNormalPage(CurrentPage.Guid, document, true); List <IPage> Chidlren = new List <IPage>(); GetAllChildrenPage(Chidlren, CurrentPage); foreach (IPage ChildPage in Chidlren) { await AsyncConvertChildlPage(ChildPage, document); } } else { await AsyncConvertNormalPage(CurrentPage.Guid, document, false); //Convert All Children Pages(Dynamic/Hamburg) List <IPage> Chidlren = new List <IPage>(); GetAllChildrenPage(Chidlren, CurrentPage); foreach (IPage ChildPage in Chidlren) { await AsyncConvertChildlPage(ChildPage, document); } } } #endregion } }
private void AddMasterToPage(IPage page, Guid baseGuid) { try { bool isOpened = page.IsOpened; if (!isOpened) { page.Open(); } var baseView = page.PageViews.GetPageView(baseGuid); IMaster master = baseView.CreateMaster(_masterPage.Guid); if (master != null) { if (IsLockLocation) { bool isMasterOpen = _masterPage.IsOpened; if (!isMasterOpen) { _masterPage.Open(); } //Keep added master the same location as in masterpage views. foreach (var pageview in page.PageViews) { var masterInView = pageview.Masters[master.Guid]; if (null == masterInView) { break; } double initX, initY; var masterPageView = _masterPage.PageViews.GetPageView(pageview.Guid); if (masterPageView.Widgets.Count <= 0) { initX = initY = 0; } else { var regionStyle = _masterPage.PageViews.GetPageView(pageview.Guid).RegionStyle; initX = regionStyle.X; initY = regionStyle.Y; } masterInView.GetMasterStyle(pageview.Guid).X = initX; masterInView.GetMasterStyle(pageview.Guid).Y = initY; } if (!isMasterOpen) { _masterPage.Close(); } master.IsLocked = true; master.IsLockedToMasterLocation = true; } else { master.MasterStyle.X = _left; master.MasterStyle.Y = _top; } if (_isSendBack) { foreach (var widget in page.Widgets) { widget.WidgetStyle.Z += 1; } foreach (var item in page.Masters) { item.MasterStyle.Z += 1; } master.MasterStyle.Z = 0; } else { master.MasterStyle.Z = page.WidgetsAndMasters.Count; } } if (!isOpened) { page.Close(); } } catch (Exception e) { NLogger.Error("Add Master to pages failed: " + e.Message); } }
protected override void RunInternal() { // Create a new document. Program.Service.NewDocument(DocumentType.Standard); IDocument document = Program.Service.Document; document.WidgetAnnotationFieldSet.CreateAnnotationField("CreatedTime", AnnotationFieldType.Text); // Create a new page. IDocumentPage closePage = document.CreatePage("Close Page"); ITreeNode node1 = document.DocumentSettings.LayoutSetting.PageTree.AddChild(TreeNodeType.Page); node1.AttachedObject = closePage; closePage.Open(); // Get the page view for base adaptive view. IPageView baseView1 = closePage.PageViews[document.AdaptiveViewSet.Base.Guid]; // Create a image in the new page. IImage image = baseView1.CreateWidget(WidgetType.Image) as IImage; image.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); image.WidgetStyle.Height = 267; image.WidgetStyle.Width = 116; image.Name = "4.png"; image.Tooltip = "A png image has 116 x 267 in size"; string imageFile = Path.Combine(Program.WORKING_IMAGES_DIRECTORY, "HangGame", "4.png"); if (File.Exists(imageFile)) { using (FileStream fileStream = new FileStream(imageFile, FileMode.Open, FileAccess.Read)) { MemoryStream imageStream = new MemoryStream(); fileStream.CopyTo(imageStream); image.ImageStream = imageStream; } } // Create a hamburger menu in the new page. IHamburgerMenu hamburgerMenu = baseView1.CreateWidget(WidgetType.HamburgerMenu) as IHamburgerMenu; hamburgerMenu.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); hamburgerMenu.WidgetStyle.Height = 280; hamburgerMenu.WidgetStyle.Width = 150; hamburgerMenu.WidgetStyle.X = 200; hamburgerMenu.WidgetStyle.Y = 200; hamburgerMenu.WidgetStyle.Z = 14; hamburgerMenu.Name = "HamburgerMenu 1"; hamburgerMenu.Tooltip = "A hamburger menu."; // Menu botton hamburgerMenu.MenuButton.WidgetStyle.Height = 50; hamburgerMenu.MenuButton.WidgetStyle.Width = 50; hamburgerMenu.MenuButton.WidgetStyle.X = 600; hamburgerMenu.MenuButton.WidgetStyle.Y = 450; hamburgerMenu.MenuButton.WidgetStyle.Z = 0; // Menu page, add a shape IPage menuPage = hamburgerMenu.MenuPage; menuPage.Open(); // Open page to edit. // Get the base view of menu page. IPageView menuBaseView = menuPage.PageViews[document.AdaptiveViewSet.Base.Guid]; IShape diamond = menuBaseView.CreateWidget(WidgetType.Shape) as IShape; diamond.ShapeType = ShapeType.Diamond; diamond.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); diamond.WidgetStyle.Height = 100; diamond.WidgetStyle.Width = 100; diamond.Name = "Diamond 1"; diamond.Tooltip = "A Diamond."; diamond.SetRichText("Diamond"); menuPage.Close(); // Close Page to release resources. // Close the new page. closePage.Close(); // Duplication the closed new page. then the document has two pages, they are the same except for // the guids of page, widgets and groups. IDocumentPage newClosePage = document.DuplicatePage(closePage.Guid); newClosePage.Name = closePage.Name + "_Duplicated"; ITreeNode node11 = document.DocumentSettings.LayoutSetting.PageTree.AddChild(TreeNodeType.Page); node11.AttachedObject = newClosePage; // Create another new page. IDocumentPage openPage = document.CreatePage("Open Page"); ITreeNode node2 = document.DocumentSettings.LayoutSetting.PageTree.AddChild(TreeNodeType.Page); node2.AttachedObject = openPage; openPage.Open(); // Get the page view for base adaptive view. IPageView baseView2 = openPage.PageViews[document.AdaptiveViewSet.Base.Guid]; // Create a button. IButton button = baseView2.CreateWidget(WidgetType.Button) as IButton; button.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); button.WidgetStyle.Height = 30; button.WidgetStyle.Width = 100; button.WidgetStyle.X = 0; button.WidgetStyle.Y = 0; button.WidgetStyle.Z = 0; button.Name = "Button 1"; button.Text = "Button"; button.Tooltip = "Html button."; // Create a toast. IToast toast = baseView2.CreateWidget(WidgetType.Toast) as IToast; toast.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); toast.WidgetStyle.Height = 146; toast.WidgetStyle.Width = 298; toast.WidgetStyle.X = 650; toast.WidgetStyle.Y = 450; toast.WidgetStyle.Z = 15; toast.Name = "Toast 1"; toast.Tooltip = "A ExposureTime toast."; toast.ExposureTime = 3; toast.DisplayPosition = ToastDisplayPosition.Top; toast.CloseSetting = ToastCloseSetting.ExposureTime; IPage toastPage = toast.ToastPage; toastPage.Open(); // Open page to edit. // Get the base view of toast page. IPageView toastBaseView = toastPage.PageViews[document.AdaptiveViewSet.Base.Guid]; IShape ellipse = toastBaseView.CreateWidget(WidgetType.Shape) as IShape; ellipse.ShapeType = ShapeType.Ellipse; ellipse.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); ellipse.WidgetStyle.Height = 100; ellipse.WidgetStyle.Width = 100; ellipse.Name = "Ellipse 1"; ellipse.Tooltip = "A Ellipse."; ellipse.SetRichText("Ellipse"); toastPage.Close(); // Close Page to release resources. // Duplicate the opened page. IDocumentPage newOpenPage = document.DuplicatePage(openPage.Guid); newOpenPage.Name = openPage.Name + "_Duplicated"; ITreeNode node22 = document.DocumentSettings.LayoutSetting.PageTree.AddChild(TreeNodeType.Page); node22.AttachedObject = newOpenPage; // Close the page. openPage.Close(); // Save document to pn file. string fileName = Path.Combine(Program.WORKING_DIRECTORY, _caseName + ".pn"); Program.Service.Save(fileName); // CLose document. Program.Service.Close(); }
protected override void RunInternal() { Program.Service.NewDocument(DocumentType.Standard); IDocument document = Program.Service.Document; IMasterPage masterPage = document.CreateMasterPage("Master 1"); ITreeNode masterPageNode = document.DocumentSettings.LayoutSetting.MasterPageTree.AddChild(TreeNodeType.MasterPage); masterPageNode.AttachedObject = masterPage; masterPage.Open(); IPageView masterBaseView = masterPage.PageViews[document.AdaptiveViewSet.Base.Guid]; IButton button = masterBaseView.CreateWidget(WidgetType.Button) as IButton; button.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); // Size button.WidgetStyle.Height = 30; button.WidgetStyle.Width = 100; // Location button.WidgetStyle.X = 0; button.WidgetStyle.Y = 0; button.WidgetStyle.Z = 0; // Text things button.Name = "Button 1"; button.Text = "Button"; button.Tooltip = "Html button."; IImage image = masterBaseView.CreateWidget(WidgetType.Image) as IImage; image.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); image.WidgetStyle.Height = 267; image.WidgetStyle.Width = 116; image.WidgetStyle.X = 150; image.WidgetStyle.Y = 100; image.WidgetStyle.Z = 5; image.Name = "4.png"; image.Tooltip = "A png image has 116 x 267 in size"; // It is a png image by default. Set image stream string imageFile = Path.Combine(Program.WORKING_IMAGES_DIRECTORY, "HangGame", "4.png"); if (File.Exists(imageFile)) { using (FileStream fileStream = new FileStream(imageFile, FileMode.Open, FileAccess.Read)) { MemoryStream imageStream = new MemoryStream(); fileStream.CopyTo(imageStream); image.ImageStream = imageStream; } } IShape lable = masterBaseView.CreateWidget(WidgetType.Shape) as IShape; lable.ShapeType = ShapeType.Paragraph; lable.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); lable.WidgetStyle.Height = 100; lable.WidgetStyle.Width = 200; lable.WidgetStyle.X = 150; lable.WidgetStyle.Y = 300; lable.WidgetStyle.Z = 9; lable.Name = "Label 1"; lable.Tooltip = "A label."; lable.SetRichText("Label"); lable.WidgetStyle.LineColor = new StyleColor(ColorFillType.Solid, -16777216); lable.WidgetStyle.LineWidth = 0; // No border lable.WidgetStyle.FillColor = new StyleColor(ColorFillType.Solid, 16777215); // Transparent lable.WidgetStyle.HorzAlign = Alignment.Left; lable.WidgetStyle.VertAlign = Alignment.Top; IDocumentPage page = document.CreatePage("Page 1"); ITreeNode pageNode = document.DocumentSettings.LayoutSetting.PageTree.AddChild(TreeNodeType.Page); pageNode.AttachedObject = page; page.Open(); IPageView baseView = page.PageViews[document.AdaptiveViewSet.Base.Guid]; IMaster master = baseView.CreateMaster(masterPage.Guid); IDocumentPage page2 = document.CreatePage("Page 2"); ITreeNode pageNode2 = document.DocumentSettings.LayoutSetting.PageTree.AddChild(TreeNodeType.Page); pageNode2.AttachedObject = page2; page2.Open(); IPageView baseView2 = page2.PageViews[document.AdaptiveViewSet.Base.Guid]; IMaster master2 = baseView2.CreateMaster(masterPage.Guid); IHamburgerMenu hamburgerMenu = baseView2.CreateWidget(WidgetType.HamburgerMenu) as IHamburgerMenu; hamburgerMenu.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); hamburgerMenu.WidgetStyle.Height = 280; hamburgerMenu.WidgetStyle.Width = 150; hamburgerMenu.WidgetStyle.X = 0; hamburgerMenu.WidgetStyle.Y = 700; hamburgerMenu.WidgetStyle.Z = 14; hamburgerMenu.Name = "HamburgerMenu 1"; hamburgerMenu.Tooltip = "A hamburger menu."; // Menu botton hamburgerMenu.MenuButton.WidgetStyle.Height = 50; hamburgerMenu.MenuButton.WidgetStyle.Width = 50; hamburgerMenu.MenuButton.WidgetStyle.X = 0; hamburgerMenu.MenuButton.WidgetStyle.Y = 700; hamburgerMenu.MenuButton.WidgetStyle.Z = 0; // Menu page, add a shape IPage menuPage = hamburgerMenu.MenuPage; menuPage.Open(); // Open page to edit. // Get the base view of menu page. IPageView menuBaseView = menuPage.PageViews[document.AdaptiveViewSet.Base.Guid]; // Create widgts on the base view in the menu page. IShape diamond = menuBaseView.CreateWidget(WidgetType.Shape) as IShape; diamond.ShapeType = ShapeType.Diamond; diamond.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); diamond.WidgetStyle.Height = 100; diamond.WidgetStyle.Width = 100; diamond.Name = "Diamond 1"; diamond.Tooltip = "A Diamond."; diamond.SetRichText("Diamond"); menuPage.Close(); // Close Page to release resources. page2.Close(); // Save the document to a pn file. string before = Path.Combine(Program.WORKING_DIRECTORY, _caseName + "_Before.pn"); Program.Service.Save(before); // Delete master page. document.DeleteMasterPage(masterPage.Guid); document.DocumentSettings.LayoutSetting.MasterPageTree.RemoveChild(masterPageNode); string after = Path.Combine(Program.WORKING_DIRECTORY, _caseName + "_After_DeleteFromOpenedPage.pn"); Program.Service.Save(after); page2.Open(); string after2 = Path.Combine(Program.WORKING_DIRECTORY, _caseName + "_After_DeleteFromClosedPage.pn"); Program.Service.Save(after2); // Close this document when you don't work on it anymore. Program.Service.Close(); }
protected override void RunInternal() { // Create a new document. Program.Service.NewDocument(DocumentType.Standard); IDocument document = Program.Service.Document; // Create a page. IDocumentPage page1 = document.CreatePage("Page 1"); // Create the page node in page tree. ITreeNode node = document.DocumentSettings.LayoutSetting.PageTree.AddChild(TreeNodeType.Page); node.AttachedObject = page1; // Must open the page before you read and modify it. page1.Open(); // Get the page view for base adaptive view. IPageView baseView = page1.PageViews[document.AdaptiveViewSet.Base.Guid]; IHamburgerMenu hamburgerMenu = baseView.CreateWidget(WidgetType.HamburgerMenu) as IHamburgerMenu; hamburgerMenu.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); hamburgerMenu.WidgetStyle.Height = 280; hamburgerMenu.WidgetStyle.Width = 150; hamburgerMenu.WidgetStyle.X = 0; hamburgerMenu.WidgetStyle.Y = 700; hamburgerMenu.WidgetStyle.Z = 14; hamburgerMenu.Name = "HamburgerMenu 1"; hamburgerMenu.Tooltip = "A hamburger menu."; // Menu botton hamburgerMenu.MenuButton.WidgetStyle.Height = 50; hamburgerMenu.MenuButton.WidgetStyle.Width = 50; hamburgerMenu.MenuButton.WidgetStyle.X = 0; hamburgerMenu.MenuButton.WidgetStyle.Y = 700; hamburgerMenu.MenuButton.WidgetStyle.Z = 0; // Menu page, add a shape IPage menuPage = hamburgerMenu.MenuPage; menuPage.Open(); // Open page to edit. // Get the base view of menu page. IPageView menuBaseView = menuPage.PageViews[document.AdaptiveViewSet.Base.Guid]; // Create widgts on the base view in the menu page. IShape diamond = menuBaseView.CreateWidget(WidgetType.Shape) as IShape; diamond.ShapeType = ShapeType.Diamond; diamond.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); diamond.WidgetStyle.Height = 100; diamond.WidgetStyle.Width = 100; diamond.Name = "Diamond 1"; diamond.Tooltip = "A Diamond."; diamond.SetRichText("Diamond"); menuPage.Close(); // Close Page to release resources. // Close the page if you don't want to work on it. page1.Close(); // Create a page. IDocumentPage page2 = document.CreatePage("Page 2"); // Create the page node in page tree. ITreeNode node2 = document.DocumentSettings.LayoutSetting.PageTree.AddChild(TreeNodeType.Page); node2.AttachedObject = page2; // Must open the page before you read and modify it. page2.Open(); // Get the page view for base adaptive view. IPageView baseView2 = page2.PageViews[document.AdaptiveViewSet.Base.Guid]; IToast toast = baseView2.CreateWidget(WidgetType.Toast) as IToast; toast.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); toast.WidgetStyle.Height = 146; toast.WidgetStyle.Width = 298; toast.WidgetStyle.X = 200; toast.WidgetStyle.Y = 700; toast.WidgetStyle.Z = 15; toast.Name = "Toast 1"; toast.Tooltip = "A ExposureTime toast."; toast.ExposureTime = 3; toast.DisplayPosition = ToastDisplayPosition.UserSetting; toast.CloseSetting = ToastCloseSetting.CloseButton; IPage toastPage = toast.ToastPage; toastPage.Open(); // Open page to edit. // Get the base view of toast page. IPageView toastBaseView = toastPage.PageViews[document.AdaptiveViewSet.Base.Guid]; IShape ellipse = toastBaseView.CreateWidget(WidgetType.Shape) as IShape; ellipse.ShapeType = ShapeType.Ellipse; ellipse.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); ellipse.WidgetStyle.Height = 100; ellipse.WidgetStyle.Width = 100; ellipse.Name = "Ellipse 1"; ellipse.Tooltip = "A Ellipse."; ellipse.SetRichText("Ellipse"); toastPage.Close(); // Close Page to release resources. // Close the page if you don't want to work on it. page2.Close(); // Create a page. IDocumentPage page3 = document.CreatePage("Page 3"); // Create the page node in page tree. ITreeNode node3 = document.DocumentSettings.LayoutSetting.PageTree.AddChild(TreeNodeType.Page); node3.AttachedObject = page3; // Must open the page before you read and modify it. page3.Open(); // Get the page view for base adaptive view. IPageView baseView3 = page3.PageViews[document.AdaptiveViewSet.Base.Guid]; IDynamicPanel dynamicPanel = baseView3.CreateWidget(WidgetType.DynamicPanel) as IDynamicPanel; dynamicPanel.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); dynamicPanel.WidgetStyle.Height = 198; dynamicPanel.WidgetStyle.Width = 152; dynamicPanel.WidgetStyle.X = 500; dynamicPanel.WidgetStyle.Y = 700; dynamicPanel.WidgetStyle.Z = 16; dynamicPanel.IsAutomatic = true; // Set start panel page as the first created page. dynamicPanel.StartPanelStatePage = dynamicPanel.CreatePanelStatePage("Panel 1"); dynamicPanel.CreatePanelStatePage("Panel 2"); dynamicPanel.CreatePanelStatePage("Panel 3"); int imageFileName = 1; foreach (IPage statePage in dynamicPanel.PanelStatePages) { statePage.Open(); // Open page to edit. // Get the base view of state page. IPageView stateBaseView = statePage.PageViews[document.AdaptiveViewSet.Base.Guid]; IImage statePageImage = stateBaseView.CreateWidget(WidgetType.Image) as IImage; statePageImage.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); statePageImage.WidgetStyle.Height = 198; statePageImage.WidgetStyle.Width = 152; string statePageImageFile = Path.Combine(Program.WORKING_IMAGES_DIRECTORY, "HangGame", imageFileName + ".png"); if (File.Exists(statePageImageFile)) { using (FileStream fileStream = new FileStream(statePageImageFile, FileMode.Open, FileAccess.Read)) { MemoryStream imageStream = new MemoryStream(); fileStream.CopyTo(imageStream); statePageImage.ImageStream = imageStream; } } statePage.Close(); // Close Page to release resources. imageFileName++; } // Close the page if you don't want to work on it. page3.Close(); document.DeletePage(page3.Guid); document.DocumentSettings.LayoutSetting.PageTree.RemoveChild(node3); // Save the document to a pn file. string fileName = Path.Combine(Program.WORKING_DIRECTORY, _caseName + ".pn"); Program.Service.Save(fileName); // Close this document when you don't work on it anymore. Program.Service.Close(); }
protected override void RunInternal() { // Create a new document. Program.Service.NewDocument(DocumentType.Standard); IDocument document = Program.Service.Document; // Create a new page 1. IDocumentPage page1 = document.CreatePage("Page 1"); ITreeNode node1 = document.DocumentSettings.LayoutSetting.PageTree.AddChild(TreeNodeType.Page); node1.AttachedObject = page1; page1.Open(); // Get the page view for base adaptive view. IPageView baseView1 = page1.PageViews[document.AdaptiveViewSet.Base.Guid]; // Create a image. IImage image = baseView1.CreateWidget(WidgetType.Image) as IImage; image.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); image.WidgetStyle.Height = 267; image.WidgetStyle.Width = 116; image.Name = "4.png"; image.Tooltip = "A png image has 116 x 267 in size"; string imageFile = Path.Combine(Program.WORKING_IMAGES_DIRECTORY, "HangGame", "4.png"); if (File.Exists(imageFile)) { using (FileStream fileStream = new FileStream(imageFile, FileMode.Open, FileAccess.Read)) { MemoryStream imageStream = new MemoryStream(); fileStream.CopyTo(imageStream); image.ImageStream = imageStream; } } // Create a hamburger menu. IHamburgerMenu hamburgerMenu = baseView1.CreateWidget(WidgetType.HamburgerMenu) as IHamburgerMenu; hamburgerMenu.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); hamburgerMenu.WidgetStyle.Height = 280; hamburgerMenu.WidgetStyle.Width = 150; hamburgerMenu.WidgetStyle.X = 200; hamburgerMenu.WidgetStyle.Y = 200; hamburgerMenu.WidgetStyle.Z = 1; hamburgerMenu.Name = "HamburgerMenu 1"; hamburgerMenu.Tooltip = "A hamburger menu."; // Menu botton hamburgerMenu.MenuButton.WidgetStyle.Height = 50; hamburgerMenu.MenuButton.WidgetStyle.Width = 50; hamburgerMenu.MenuButton.WidgetStyle.X = 200; hamburgerMenu.MenuButton.WidgetStyle.Y = 200; hamburgerMenu.MenuButton.WidgetStyle.Z = 0; // Menu page, add a shape IPage menuPage = hamburgerMenu.MenuPage; menuPage.Open(); // Open page to edit. // Get the base view of menu page. IPageView menuBaseView = menuPage.PageViews[document.AdaptiveViewSet.Base.Guid]; IShape diamond = menuBaseView.CreateWidget(WidgetType.Shape) as IShape; diamond.ShapeType = ShapeType.Diamond; diamond.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); diamond.WidgetStyle.Height = 100; diamond.WidgetStyle.Width = 100; diamond.Name = "Diamond 1"; diamond.Tooltip = "A Diamond."; diamond.SetRichText("Diamond"); menuPage.Close(); // Close Page to release resources. // Create a serialize writer first. ISerializeWriter writer = document.CreateSerializeWriter(document.AdaptiveViewSet.Base.Guid); // Add the new page 1 to the writer. writer.AddPage(page1); // Serialize page 1 to a stream. Stream stream = writer.WriteToStream(); // The data of page is already in stream, so close the page will not change anything in stream. page1.Close(); // Add pages in stream. IObjectContainer container = document.AddPages(stream); stream.Close(); foreach (IStandardPage page in container.StandardPageList) { ITreeNode node22 = document.DocumentSettings.LayoutSetting.PageTree.AddChild(TreeNodeType.Page); node22.AttachedObject = page; } // Save document. string fileName = Path.Combine(Program.WORKING_DIRECTORY, _caseName + ".pn"); Program.Service.Save(fileName); // Close document. Program.Service.Close(); }
public void Render(IDocument doc, string outputFolder, bool ByMD5 = false) { if (doc == null) { throw new ArgumentException("Document is null!"); } _doc = doc; _bByMD5 = ByMD5; if (!String.IsNullOrEmpty(outputFolder)) { InitializeOutputFolder(outputFolder); } else { InitializeOutputFolder(_doc.GeneratorConfigurationSet.DefaultHtmlConfiguration.OutputFolder); } if (ByMD5 == false) { #region create html without md5 // Set the image output directory based on output folder if it is invalid path. if (!Directory.Exists(_imagesStreamManager.WorkingDirectory)) { _imagesStreamManager.WorkingDirectory = Path.Combine(_outputFolder, "images"); } // Set the start html file. _startHtmlFile = _outputFolder + START_PAGE_NAME; CopyTemplateFilesToOutputFolder(); // Generate document_data.js JsDocument jsDoc = new JsDocument(this); jsDoc.SaveToJsFile(); Guid currentPageGuid = _doc.GeneratorConfigurationSet.DefaultHtmlConfiguration.CurrentPage; if (currentPageGuid != Guid.Empty) { // Only generate current page. IPage currentPage = _doc.Pages[currentPageGuid]; if (currentPage != null) { bool isClosedPage = false; if (!currentPage.IsOpened) { isClosedPage = true; currentPage.Open(); } JsPage jsPage = new JsPage(this, currentPage); jsPage.SaveToJsFile(); if (isClosedPage) { currentPage.Close(); } } } else { // Generate all pages. foreach (IPage page in _doc.Pages) { bool isClosedPage = false; if (!page.IsOpened) { isClosedPage = true; page.Open(); } JsPage jsPage = new JsPage(this, page); jsPage.SaveToJsFile(); if (isClosedPage) { page.Close(); } } } // Generate all master pages. foreach (IPage page in _doc.MasterPages) { bool isClosedPage = false; if (!page.IsOpened) { isClosedPage = true; page.Open(); } JsPage jsPage = new JsPage(this, page); jsPage.SaveToJsFile(); if (isClosedPage) { page.Close(); } } #endregion } else { // Set the start Html file. _startHtmlFile = _outputFolder + START_PAGE_NAME; // Generate all pages. foreach (IPage page in _doc.Pages) { //this is just for debug test, delete it later Debug.WriteLine("===========================page md5 hash==========================="); string szhash = MD5HashManager.GetHash(page, true); Debug.WriteLine("====page md5:" + szhash + " ==========================="); bool isClosedPage = false; if (!page.IsOpened) { isClosedPage = true; page.Open(); } JsPage jsPage = new JsPage(this, page, _bByMD5); jsPage.SaveToJsFile(); if (isClosedPage) { page.Close(); } } // Generate all master pages. foreach (IPage page in _doc.MasterPages) { bool isClosedPage = false; if (!page.IsOpened) { isClosedPage = true; page.Open(); } //this is just for debug test, delete it later Debug.WriteLine("===========================page md5 hash==========================="); string szhash = MD5HashManager.GetHash(page, true); Debug.WriteLine("====page md5:" + szhash + " ==========================="); JsPage jsPage = new JsPage(this, page, true); jsPage.SaveToJsFile(); if (isClosedPage) { page.Close(); } } } if (ByMD5 == true) { _doc.ImagesStreamManager.ClearCachedStream(); } // Don't hold the document any more. _doc = null; // Reset image working directory. // _imagesStreamManager.WorkingDirectory = String.Empty; }
protected override void RunInternal() { // Create a new document. Program.Service.NewDocument(DocumentType.Standard); IDocument document = Program.Service.Document; // Create a page note field. document.PageAnnotationFieldSet.CreateAnnotationField("Default", AnnotationFieldType.Text); // Create some widget note fields. document.WidgetAnnotationFieldSet.CreateAnnotationField("Description", AnnotationFieldType.Text); document.WidgetAnnotationFieldSet.CreateAnnotationField("CreatedTime", AnnotationFieldType.Text); // Create a device. IDevice devide = document.DeviceSet.CreateDevice("iPhone 6 Plus"); devide.Width = 1024; devide.Height = 768; devide.IsChecked = true; // Create a page. IDocumentPage page = document.CreatePage("Home"); // Create the page node in page tree. ITreeNode node = document.DocumentSettings.LayoutSetting.PageTree.AddChild(TreeNodeType.Page); node.AttachedObject = page; // Must open the page before you read and modify it. page.Open(); // Set page note. page.Annotation.SetTextValue("Default", "This Home page."); // Get the page view for base adaptive view. IPageView baseView = page.PageViews[document.AdaptiveViewSet.Base.Guid]; // Create widgets on the base view in this page. IButton button = baseView.CreateWidget(WidgetType.Button) as IButton; button.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); // Size button.WidgetStyle.Height = 30; button.WidgetStyle.Width = 100; // Location button.WidgetStyle.X = 0; button.WidgetStyle.Y = 0; button.WidgetStyle.Z = 0; // Text things button.Name = "Button 1"; button.Text = "Button"; button.Tooltip = "Html button."; ICheckbox checkbox = baseView.CreateWidget(WidgetType.Checkbox) as ICheckbox; checkbox.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); checkbox.WidgetStyle.Height = 18; checkbox.WidgetStyle.Width = 120; checkbox.WidgetStyle.X = 150; checkbox.WidgetStyle.Y = 0; checkbox.WidgetStyle.Z = 1; checkbox.Name = "CheckBox 1"; checkbox.Text = "CheckBox"; checkbox.Tooltip = "Left align check box."; IDroplist dropList = baseView.CreateWidget(WidgetType.DropList) as IDroplist; dropList.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); dropList.WidgetStyle.Height = 22; dropList.WidgetStyle.Width = 200; dropList.WidgetStyle.X = 300; dropList.WidgetStyle.Y = 0; dropList.WidgetStyle.Z = 2; dropList.Name = "Droplist 1"; dropList.Tooltip = "A droplist has 3 item and item 3 is seleted."; // Create list items. dropList.CreateItem("Droplist Item 1"); dropList.CreateItem("Droplist Item 2"); IListItem item3 = dropList.CreateItem("Droplist Item 3"); item3.IsSelected = true; /* * IFlowShape flowShap = baseView.CreateWidget(WidgetType.FlowShape) as IFlowShape; // Here flow shape type is none. * // You must set specific flow shape type, then the flowshape is a valid flowshape. * flowShap.FlowShapeType = FlowShapeType.Database; * flowShap.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); * flowShap.Height = 80; * flowShap.Width = 60; * flowShap.X = 550; * flowShap.Y = 0; * flowShap.Z = 3; * flowShap.Name = "FlowShape 1"; * flowShap.Tooltip = "A Database flow shape."; * flowShap.SetRichText("Database"); // FlowShape support rich text. */ IHotSpot hotSpot = baseView.CreateWidget(WidgetType.HotSpot) as IHotSpot; hotSpot.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); hotSpot.WidgetStyle.Height = 100; hotSpot.WidgetStyle.Width = 100; hotSpot.WidgetStyle.X = 0; hotSpot.WidgetStyle.Y = 100; hotSpot.WidgetStyle.Z = 4; hotSpot.Name = "HotSpot 1"; hotSpot.Tooltip = "A hot sport link to Baidu"; // Create a link action to open www.baidu.com in new window. IInteractionEvent clickEvent = hotSpot.Events[EventType.OnClick]; IInteractionCase case1 = clickEvent.CreateCase("clickCase"); IInteractionOpenAction openAction = case1.CreateAction(ActionType.OpenAction) as IInteractionOpenAction; openAction.LinkType = LinkType.LinkToUrl; openAction.ExternalUrl = @"www.baidu.com"; openAction.OpenIn = ActionOpenIn.NewWindowOrTab; IImage image = baseView.CreateWidget(WidgetType.Image) as IImage; image.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); image.WidgetStyle.Height = 267; image.WidgetStyle.Width = 116; image.WidgetStyle.X = 150; image.WidgetStyle.Y = 100; image.WidgetStyle.Z = 5; image.Name = "4.png"; image.Tooltip = "A png image has 116 x 267 in size"; // It is a png image by default. Set image stream string imageFile = Path.Combine(Program.WORKING_IMAGES_DIRECTORY, "HangGame", "4.png"); if (File.Exists(imageFile)) { using (FileStream fileStream = new FileStream(imageFile, FileMode.Open, FileAccess.Read)) { MemoryStream imageStream = new MemoryStream(); fileStream.CopyTo(imageStream); image.ImageStream = imageStream; } } ILine line = baseView.CreateWidget(WidgetType.Line) as ILine; line.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); line.Orientation = Orientation.Vertical; line.WidgetStyle.Height = 200; line.WidgetStyle.Width = 10; line.WidgetStyle.X = 300; line.WidgetStyle.Y = 100; line.WidgetStyle.Z = 6; line.Name = "Line"; line.Tooltip = "A Vertical line with"; IListBox listBox = baseView.CreateWidget(WidgetType.ListBox) as IListBox; listBox.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); listBox.WidgetStyle.Height = 100; listBox.WidgetStyle.Width = 200; listBox.WidgetStyle.X = 350; listBox.WidgetStyle.Y = 100; listBox.WidgetStyle.Z = 7; listBox.Tooltip = "A multiple-selected listBox which has 5 itmes. Item 1 and item 4 is selcted."; listBox.AllowMultiple = true; IListItem item1 = listBox.CreateItem("ListBox Item 1"); item1.IsSelected = true; listBox.CreateItem("ListBox Item 2"); listBox.CreateItem("ListBox Item 3"); IListItem item4 = listBox.CreateItem("ListBox Item 4"); item4.IsSelected = true; listBox.CreateItem("ListBox Item 5"); IRadioButton radioButton = baseView.CreateWidget(WidgetType.RadioButton) as IRadioButton; radioButton.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); radioButton.WidgetStyle.Height = 18; radioButton.WidgetStyle.Width = 120; radioButton.WidgetStyle.X = 0; radioButton.WidgetStyle.Y = 300; radioButton.WidgetStyle.Z = 8; radioButton.AlignButton = AlignButton.Right; radioButton.Text = "Radio Button"; radioButton.Tooltip = "A right aligned radio button"; IShape lable = baseView.CreateWidget(WidgetType.Shape) as IShape; lable.ShapeType = ShapeType.Paragraph; lable.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); lable.WidgetStyle.Height = 100; lable.WidgetStyle.Width = 200; lable.WidgetStyle.X = 150; lable.WidgetStyle.Y = 300; lable.WidgetStyle.Z = 9; lable.Name = "Label 1"; lable.Tooltip = "A label."; lable.SetRichText("Label"); lable.WidgetStyle.LineColor = new StyleColor(ColorFillType.Solid, -16777216); lable.WidgetStyle.LineWidth = 0; // No border lable.WidgetStyle.FillColor = new StyleColor(ColorFillType.Solid, 16777215); // Transparent lable.WidgetStyle.HorzAlign = Alignment.Left; lable.WidgetStyle.VertAlign = Alignment.Top; IShape roundedRectangle = baseView.CreateWidget(WidgetType.Shape) as IShape; roundedRectangle.ShapeType = ShapeType.RoundedRectangle; roundedRectangle.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); roundedRectangle.WidgetStyle.Height = 100; roundedRectangle.WidgetStyle.Width = 200; roundedRectangle.WidgetStyle.X = 400; roundedRectangle.WidgetStyle.Y = 300; roundedRectangle.WidgetStyle.Z = 10; roundedRectangle.Name = "RoundedRectangle 1"; roundedRectangle.Tooltip = "A Rounded Rectangle."; roundedRectangle.SetRichText("RoundedRectangle"); IShape triangle = baseView.CreateWidget(WidgetType.Shape) as IShape; triangle.ShapeType = ShapeType.Triangle; triangle.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); triangle.WidgetStyle.Height = 100; triangle.WidgetStyle.Width = 100; triangle.WidgetStyle.X = 650; triangle.WidgetStyle.Y = 300; triangle.WidgetStyle.Z = 11; triangle.Name = "Triangle 1"; triangle.Tooltip = "A Triangle."; triangle.SetRichText("Triangle"); ISvg svg = baseView.CreateWidget(WidgetType.SVG) as ISvg; svg.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); svg.WidgetStyle.Height = 117; svg.WidgetStyle.Width = 150; svg.WidgetStyle.X = 0; svg.WidgetStyle.Y = 450; svg.WidgetStyle.Z = 12; svg.Name = "airplane 03"; svg.Tooltip = "A airplane svg"; string svgFile = Path.Combine(Program.WORKING_IMAGES_DIRECTORY, "Svg", "airplane 03.svg"); if (File.Exists(svgFile)) { using (FileStream fileStream = new FileStream(svgFile, FileMode.Open, FileAccess.Read)) { MemoryStream svgStream = new MemoryStream(); fileStream.CopyTo(svgStream); svg.XmlStream = svgStream; } } ITextArea textArea = baseView.CreateWidget(WidgetType.TextArea) as ITextArea; textArea.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); textArea.WidgetStyle.Height = 100; textArea.WidgetStyle.Width = 200; textArea.WidgetStyle.X = 250; textArea.WidgetStyle.Y = 450; textArea.WidgetStyle.Z = 12; textArea.Name = "TextArea 1"; textArea.Tooltip = "A hidden border text area with max length is 10."; textArea.HintText = "Password"; textArea.MaxLength = 10; textArea.HideBorder = true; ITextField textField = baseView.CreateWidget(WidgetType.TextField) as ITextField; textField.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); textField.WidgetStyle.Height = 50; textField.WidgetStyle.Width = 100; textField.WidgetStyle.X = 500; textField.WidgetStyle.Y = 450; textField.WidgetStyle.Z = 13; textField.Name = "TextField 1"; textField.Tooltip = "A TextField"; textField.TextFieldType = TextFieldType.Email; textField.HintText = "emial"; IHamburgerMenu hamburgerMenu = baseView.CreateWidget(WidgetType.HamburgerMenu) as IHamburgerMenu; hamburgerMenu.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); hamburgerMenu.WidgetStyle.Height = 280; hamburgerMenu.WidgetStyle.Width = 150; hamburgerMenu.WidgetStyle.X = 0; hamburgerMenu.WidgetStyle.Y = 700; hamburgerMenu.WidgetStyle.Z = 14; hamburgerMenu.Name = "HamburgerMenu 1"; hamburgerMenu.Tooltip = "A hamburger menu."; // Menu botton hamburgerMenu.MenuButton.WidgetStyle.Height = 50; hamburgerMenu.MenuButton.WidgetStyle.Width = 50; hamburgerMenu.MenuButton.WidgetStyle.X = 0; hamburgerMenu.MenuButton.WidgetStyle.Y = 700; hamburgerMenu.MenuButton.WidgetStyle.Z = 0; // Menu page, add a shape IPage menuPage = hamburgerMenu.MenuPage; menuPage.Open(); // Open page to edit. // Get the base view of menu page. IPageView menuBaseView = menuPage.PageViews[document.AdaptiveViewSet.Base.Guid]; // Create widgts on the base view in the menu page. IShape diamond = menuBaseView.CreateWidget(WidgetType.Shape) as IShape; diamond.ShapeType = ShapeType.Diamond; diamond.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); diamond.WidgetStyle.Height = 100; diamond.WidgetStyle.Width = 100; diamond.Name = "Diamond 1"; diamond.Tooltip = "A Diamond."; diamond.SetRichText("Diamond"); menuPage.Close(); // Close Page to release resources. IToast toast = baseView.CreateWidget(WidgetType.Toast) as IToast; toast.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); toast.WidgetStyle.Height = 146; toast.WidgetStyle.Width = 298; toast.WidgetStyle.X = 200; toast.WidgetStyle.Y = 700; toast.WidgetStyle.Z = 15; toast.Name = "Toast 1"; toast.Tooltip = "A ExposureTime toast."; toast.ExposureTime = 3; toast.DisplayPosition = ToastDisplayPosition.Top; toast.CloseSetting = ToastCloseSetting.CloseButton; IPage toastPage = toast.ToastPage; toastPage.Open(); // Open page to edit. // Get the base view of toast page. IPageView toastBaseView = toastPage.PageViews[document.AdaptiveViewSet.Base.Guid]; IShape ellipse = toastBaseView.CreateWidget(WidgetType.Shape) as IShape; ellipse.ShapeType = ShapeType.Ellipse; ellipse.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); ellipse.WidgetStyle.Height = 100; ellipse.WidgetStyle.Width = 100; ellipse.Name = "Ellipse 1"; ellipse.Tooltip = "A Ellipse."; ellipse.SetRichText("Ellipse"); toastPage.Close(); // Close Page to release resources. IDynamicPanel dynamicPanel = baseView.CreateWidget(WidgetType.DynamicPanel) as IDynamicPanel; dynamicPanel.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); dynamicPanel.WidgetStyle.Height = 198; dynamicPanel.WidgetStyle.Width = 152; dynamicPanel.WidgetStyle.X = 500; dynamicPanel.WidgetStyle.Y = 700; dynamicPanel.WidgetStyle.Z = 16; dynamicPanel.IsAutomatic = true; // Set start panel page as the first created page. dynamicPanel.StartPanelStatePage = dynamicPanel.CreatePanelStatePage("Panel 1"); dynamicPanel.CreatePanelStatePage("Panel 2"); dynamicPanel.CreatePanelStatePage("Panel 3"); int imageFileName = 1; foreach (IPage statePage in dynamicPanel.PanelStatePages) { statePage.Open(); // Open page to edit. // Get the base view of state page. IPageView stateBaseView = statePage.PageViews[document.AdaptiveViewSet.Base.Guid]; IImage statePageImage = stateBaseView.CreateWidget(WidgetType.Image) as IImage; statePageImage.Annotation.SetTextValue("CreatedTime", DateTime.Now.ToString()); statePageImage.WidgetStyle.Height = 198; statePageImage.WidgetStyle.Width = 152; string statePageImageFile = Path.Combine(Program.WORKING_IMAGES_DIRECTORY, "HangGame", imageFileName + ".png"); if (File.Exists(statePageImageFile)) { using (FileStream fileStream = new FileStream(statePageImageFile, FileMode.Open, FileAccess.Read)) { MemoryStream imageStream = new MemoryStream(); fileStream.CopyTo(imageStream); statePageImage.ImageStream = imageStream; } } statePage.Close(); // Close Page to release resources. imageFileName++; } // Close the page if you don't want to work on it. page.Close(); // Save the document to a pn file. string fileName = Path.Combine(Program.WORKING_DIRECTORY, _caseName + ".pn"); Program.Service.Save(fileName); // Close this document when you don't work on it anymore. Program.Service.Close(); }