private Tuple <PageEditor.PageEditorItem, PageItem, RuntimeApplicationItem> FindParentPageEditorItemPageItemAndRuntimeAppItem(INodeWrapper requester) { PageEditor.PageEditorItem pageEditorItem; if (requester is PageEditor.PageEditorItem) { pageEditorItem = requester as PageEditor.PageEditorItem; } else { pageEditorItem = requester.FindAncestorOfType(typeof(PageEditor.PageEditorItem)) as PageEditor.PageEditorItem; } PageItem pageItem; if (requester is PageItem) { pageItem = requester as PageItem; } else { pageItem = requester.FindAncestorOfType(typeof(PageItem)) as PageItem; } RuntimeApplicationItem runtimeAppItem; if (pageEditorItem == null) { // we're outside of a page editor runtimeAppItem = requester.FindAncestorOfType(typeof(RuntimeApplicationItem)) as RuntimeApplicationItem; } else { // inside a page editor, we have to do some fancy footwork var pageEditor = pageEditorItem.PageEditorParent; if (pageEditor.PageItemParent != null) { pageItem = pageEditor.PageItemParent; runtimeAppItem = pageItem.FindAncestorOfType(typeof(RuntimeApplicationItem)) as RuntimeApplicationItem; } else { runtimeAppItem = null; } } return(new Tuple <PageEditor.PageEditorItem, PageItem, RuntimeApplicationItem>(pageEditorItem, pageItem, runtimeAppItem)); }
private Tuple<PageEditor.PageEditorItem, PageItem, RuntimeApplicationItem> FindParentPageEditorItemPageItemAndRuntimeAppItem(INodeWrapper requester) { PageEditor.PageEditorItem pageEditorItem; if (requester is PageEditor.PageEditorItem) { pageEditorItem = requester as PageEditor.PageEditorItem; } else { pageEditorItem = requester.FindAncestorOfType(typeof(PageEditor.PageEditorItem)) as PageEditor.PageEditorItem; } PageItem pageItem; if (requester is PageItem) { pageItem = requester as PageItem; } else { pageItem = requester.FindAncestorOfType(typeof(PageItem)) as PageItem; } RuntimeApplicationItem runtimeAppItem; if (pageEditorItem == null) { // we're outside of a page editor runtimeAppItem = requester.FindAncestorOfType(typeof(RuntimeApplicationItem)) as RuntimeApplicationItem; } else { // inside a page editor, we have to do some fancy footwork var pageEditor = pageEditorItem.PageEditorParent; if (pageEditor.PageItemParent != null) { pageItem = pageEditor.PageItemParent; runtimeAppItem = pageItem.FindAncestorOfType(typeof(RuntimeApplicationItem)) as RuntimeApplicationItem; } else { runtimeAppItem = null; } } return new Tuple<PageEditor.PageEditorItem, PageItem, RuntimeApplicationItem>(pageEditorItem, pageItem, runtimeAppItem); }