/// <summary> /// 资源树的双击事件 /// </summary> void OnTreeListDoubleClick(object sender, MouseEventArgs e) { TreeList tree = sender as TreeList; TreeListHitInfo treeListHitInfo = tree.CalcHitInfo(e.Location); if (treeListHitInfo.HitInfoType == HitInfoType.Cell) { tree.SetFocusedNode(treeListHitInfo.Node); } if (tree.FocusedNode != null) { var item = navigationTreeList.GetRow(tree.FocusedNode.Id); if (item is ResourceItem) { ResourceItem _item = item as ResourceItem; IResource resource = _item.Resource; if (resource.ResourceMetaData != null && resource.ResourceMetaData.DoubleClickResourceActionType != null) { IType <IResourceAction> resourceActionType = resource.ResourceMetaData.DoubleClickResourceActionType; IResourceAction resourceAction = IocManager.Instance.Resolve(resourceActionType.Type) as IResourceAction; resourceAction.Resource = resource; resourceAction.Excute(); } } else if (item is FileItem) { IResourceMetaDataProvider resourceMetaDataProvider = IocManager.Instance.Resolve <IResourceMetaDataProvider>(); ITypeList <IDocumentResourceMetaData> resourceMetaDatas = resourceMetaDataProvider.DocumentResourceMetaDataProviders; if (resourceMetaDatas.Count > 0) { foreach (var mt in resourceMetaDatas) { var m = IocManager.Instance.Resolve(mt); if (m is ISingleFileDocumentResourceMetaData) { if (((ISingleFileDocumentResourceMetaData)m).Identified(((FileItem)item).FullName)) { ISingleFileDocumentResource singleFileDocumentResource = IocManager.Instance.Resolve(((ISingleFileDocumentResourceMetaData)m).ResourceType.Type) as ISingleFileDocumentResource; singleFileDocumentResource.FullName = ((FileItem)item).FullName; singleFileDocumentResource.Open(); } } } } } } }
public void LoadFromResource(IDocumentResource documentResource, params object[] otherParams) { this.DocumentResource = documentResource; if (documentResource.ResourceMetaData.ResourceStorageMode == ResourceStorageMode.SingleFile) { ISingleFileDocumentResource singleFileDocumentResource = documentResource as ISingleFileDocumentResource; LoadFromFile(singleFileDocumentResource.FullName, otherParams); } else if (documentResource.ResourceMetaData.ResourceStorageMode == ResourceStorageMode.FromWebGet) { IWebDocumentResource webDocumentResource = documentResource as IWebDocumentResource; LoadFromWeb(webDocumentResource.Url, otherParams); } else if (documentResource.ResourceMetaData.ResourceStorageMode == ResourceStorageMode.StreamResource) { IStreamDocumentResource streamDocumentResource = documentResource as IStreamDocumentResource; LoadFromStream(streamDocumentResource.Stream, otherParams); } }