/// <exclude/> public static IContentReplaceableView AsContentReplaceableViewOrLastActivatedView(ICommandTarget target) { if (target == null) { return(null); } IContentReplaceableViewSite view = (IContentReplaceableViewSite)target.GetAdapter(typeof(IContentReplaceableViewSite)); if (view != null) { return(view.CurrentContentReplaceableView); //成功 } else { IContentReplaceableView view2 = (IContentReplaceableView)target.GetAdapter(typeof(IContentReplaceableView)); if (view2 != null) { return(view2); } else { IPoderosaMainWindow window = AsWindow(target); if (window != null) { return(window.LastActivatedView); } else { return(null); } } } }
public SplittableViewPane(SplittableViewManager parent, IPoderosaView content) { _parent = parent; Debug.Assert(content != null); _content = content; IContentReplaceableViewSite site = (IContentReplaceableViewSite)_content.GetAdapter(typeof(IContentReplaceableViewSite)); if (site != null) { site.CurrentContentReplaceableView = this; } }
private static IPoderosaView AdjustToOuterView(IPoderosaView view) { //ContentReplaceableSiteがあればその親を使用する IContentReplaceableViewSite s = (IContentReplaceableViewSite)view.GetAdapter(typeof(IContentReplaceableViewSite)); if (s != null) { return(s.CurrentContentReplaceableView); } else { return(view); } }
public IPoderosaView AssureViewClass(Type viewclass) { if (viewclass == _content.GetType()) { return(_content); //ダイナミックな置換は不要、OK! } IContentReplaceableViewSite site = (IContentReplaceableViewSite)_content.GetAdapter(typeof(IContentReplaceableViewSite)); Control p = _content.AsControl().Parent; p.SuspendLayout(); if (site != null) { site.CurrentContentReplaceableView = null; //IContentReplaceableViewSiteが取れるかどうかはオプショナル } Debug.WriteLineIf(DebugOpt.ViewManagement, String.Format("Replace ViewClass {0} => {1}", _content.GetType().Name, viewclass.Name)); IPoderosaView newview = CreateView(viewclass); UIUtil.ReplaceControl(p, _content.AsControl(), newview.AsControl()); //旧コントロールにドキュメントがくっついていたら、それを外さないと不整合生じる if (_content.Document != null) { SessionManagerPlugin.Instance.FindDocumentHost(_content.Document).DetachView(); } _content.AsControl().Dispose(); _content = newview; site = (IContentReplaceableViewSite)newview.GetAdapter(typeof(IContentReplaceableViewSite)); if (site != null) { site.CurrentContentReplaceableView = this; } p.ResumeLayout(true); return(newview); }
private IContentReplaceableView AsControlReplaceableView() { IContentReplaceableViewSite site = (IContentReplaceableViewSite)this.GetAdapter(typeof(IContentReplaceableViewSite)); return(site == null ? null : site.CurrentContentReplaceableView); }