예제 #1
0
        public PageEditor(PageItem pageItem)
        {
            if (pageItem == null)
            {
                throw new ArgumentNullException();
            }
            Name = Extensions.Workbench.Documents.PageEditor;

            m_pageItem   = pageItem;
            m_EditorRoot = new PageEditorItem(this, pageItem.Page);
            m_EditorRoot.UndoableAction += new UndoableActionHandler(EditorRoot_UndoableAction);
            m_EditorRoot.Edited         += new EditedHandler(EditorRoot_Edited);
            m_EditorRoot.ContextMenu     = extensionService.Sort(contextMenu);

            m_pageItem.PropertyChanged += new PropertyChangedEventHandler(m_pageItem_PropertyChanged);
            OnNodeChanged();

            solutionPad.Saving += new EventHandler(solutionPad_Saving);
        }
예제 #2
0
        private void setItems()
        {
            if (PageCollection.LogicRoot.BoolValue)
            {
                HeaderIsEditable = false;
                Header           = Resources.Strings.Solution_Pad_PageCollectionItem_LogicRootName;
            }
            else
            {
                HeaderIsEditable = true;
                Header           = PageCollection.PageCollectionName.ToString();
            }

            var newCollection = new ObservableCollection <INodeWrapper>();

            foreach (var nPageCollection in PageCollection.NodePageCollectionChildren.Items)
            {
                var pageCollection = FindItemByNodeId(nPageCollection.ID) as PageCollectionItem;
                if (pageCollection == null)
                {
                    pageCollection = new PageCollectionItem(this, nPageCollection);
                    HookupHandlers(pageCollection);
                }
                newCollection.Add(pageCollection);
            }
            foreach (var nPage in PageCollection.NodePageChildren.Items)
            {
                var page = FindItemByNodeId(nPage.ID) as PageItem;
                if (page == null)
                {
                    page = new PageItem(this, nPage);
                    HookupHandlers(page);
                }
                newCollection.Add(page);
            }
            Items = newCollection;
        }
예제 #3
0
        public Tuple <NodePage, NodeRuntimeApplication> FindParentPageAndRuntimeApp(INodeWrapper requester)
        {
            var tpl = FindParentPageEditorItemPageItemAndRuntimeAppItem(requester);

            PageEditor.PageEditorItem pageEditorItem = tpl.Item1;
            PageItem pageItem = tpl.Item2;
            RuntimeApplicationItem runtimeAppItem = tpl.Item3;
            NodePage pg = null;
            NodeRuntimeApplication rta = null;

            if (pageEditorItem != null)
            {
                pg = pageEditorItem.WorkingCopy;
            }
            else if (pageItem != null)
            {
                pg = pageItem.Page;
            }
            if (runtimeAppItem != null)
            {
                rta = runtimeAppItem.RuntimeApplication;
            }
            return(new Tuple <NodePage, NodeRuntimeApplication>(pg, rta));
        }
예제 #4
0
        private void setItems()
        {
            if (PageCollection.LogicRoot.BoolValue)
            {
                HeaderIsEditable = false;
                Header = Resources.Strings.Solution_Pad_PageCollectionItem_LogicRootName;
            }
            else
            {
                HeaderIsEditable = true;
                Header = PageCollection.PageCollectionName.ToString();
            }

            var newCollection = new ObservableCollection<INodeWrapper>();
            foreach (var nPageCollection in PageCollection.NodePageCollectionChildren.Items)
            {
                var pageCollection = FindItemByNodeId(nPageCollection.ID) as PageCollectionItem;
                if (pageCollection == null)
                {
                    pageCollection = new PageCollectionItem(this, nPageCollection);
                    HookupHandlers(pageCollection);
                }
                newCollection.Add(pageCollection);
            }
            foreach (var nPage in PageCollection.NodePageChildren.Items)
            {
                var page = FindItemByNodeId(nPage.ID) as PageItem;
                if (page == null)
                {
                    page = new PageItem(this, nPage);
                    HookupHandlers(page);
                }
                newCollection.Add(page);
            }
            Items = newCollection;
        }
예제 #5
0
 void HookupHandlers(PageItem page)
 {
     page.Parent = this;
     page.Edited += new EditedHandler(Page_Edited);
     page.Deleted += new DeletedHandler(Page_Deleted);
     page.InsertAfter += new InsertAfterHandler(Page_InsertAfter);
     page.MoveDownRequest += new EventHandler(page_MoveDownRequest);
     page.MoveUpRequest += new EventHandler(page_MoveUpRequest);
 }