protected Image GetImage(object concept, OverlayKind shortcut = OverlayKind.None) { return(_activator.CoreIconProvider.GetImage(concept, shortcut)); }
public CachedOverlayResult(OverlayKind kind, Bitmap result) { Kind = kind; Result = result; }
public override Bitmap GetImage(object concept, OverlayKind kind = OverlayKind.None) { return(null); }
protected virtual Bitmap GetImageImpl(object concept, OverlayKind kind = OverlayKind.None) { if (concept == null) { return(null); } //the only valid strings are "Catalogue" etc where the value exactly maps to an RDMPConcept if (concept is string) { RDMPConcept result; if (RDMPConcept.TryParse((string)concept, true, out result)) { concept = result; } else { return(null); //it's a string but an unhandled one so give them null back } } //if they already passed in an image just return it back (optionally with the overlay). if (concept is Bitmap) { return(GetImage((Bitmap)concept, kind)); } //if there are plugins injecting random objects into RDMP tree views etc then we need the ability to provide icons for them if (_pluginIconProviders != null) { foreach (IIconProvider plugin in _pluginIconProviders) { var img = plugin.GetImage(concept, kind); if (img != null) { return(img); } } } if (concept is RDMPCollection) { return(GetImageImpl(GetConceptForCollection((RDMPCollection)concept), kind)); } if (concept is RDMPConcept) { return(GetImageImpl(ImagesCollection[(RDMPConcept)concept], kind)); } if (concept is LinkedColumnInfoNode) { return(GetImageImpl(ImagesCollection[RDMPConcept.ColumnInfo], OverlayKind.Link)); } if (concept is CatalogueUsedByLoadMetadataNode usedByLmd) { return(GetImageImpl(usedByLmd.ObjectBeingUsed, OverlayKind.Link)); } if (concept is DataAccessCredentialUsageNode) { return(GetImageImpl(ImagesCollection[RDMPConcept.DataAccessCredentials], OverlayKind.Link)); } if (ConceptIs(typeof(IFilter), concept)) { return(GetImageImpl(RDMPConcept.Filter, kind)); } if (ConceptIs(typeof(ISqlParameter), concept)) { return(GetImageImpl(RDMPConcept.ParametersNode, kind)); } if (ConceptIs(typeof(IContainer), concept)) { return(GetImageImpl(RDMPConcept.FilterContainer, kind)); } if (ConceptIs(typeof(JoinableCohortAggregateConfiguration), concept)) { return(GetImageImpl(RDMPConcept.PatientIndexTable)); } if (ConceptIs(typeof(JoinableCohortAggregateConfigurationUse), concept)) { return(GetImageImpl(RDMPConcept.PatientIndexTable, OverlayKind.Link)); } if (concept is PermissionWindowUsedByCacheProgressNode) { return(GetImageImpl(((PermissionWindowUsedByCacheProgressNode)concept).GetImageObject(), OverlayKind.Link)); } if (ConceptIs(typeof(DashboardObjectUse), concept)) { return(GetImageImpl(RDMPConcept.DashboardControl, OverlayKind.Link)); } if (concept is DatabaseType) { return(_databaseTypeIconProvider.GetImage((DatabaseType)concept)); } if (concept is ArbitraryFolderNode) { return(GetImageImpl(RDMPConcept.CatalogueFolder, kind)); } if (concept is DiscoveredDatabase) { return(GetImageImpl(RDMPConcept.Database)); } if (concept is DiscoveredTable) { return(GetImageImpl(RDMPConcept.TableInfo)); } if (concept is DiscoveredColumn) { return(GetImageImpl(RDMPConcept.ColumnInfo)); } if (concept is FlatFileToLoad) { return(GetImageImpl(RDMPConcept.File)); } if (concept is CohortCreationRequest) { return(GetImageImpl(RDMPConcept.ExtractableCohort, OverlayKind.Add)); } //This is special case when asking for icon for the Type, since the node itself is an IMasqueradeAs if (ReferenceEquals(concept, typeof(PipelineCompatibleWithUseCaseNode))) { return(GetImageImpl(RDMPConcept.Pipeline)); } foreach (var stateBasedIconProvider in StateBasedIconProviders) { var bmp = stateBasedIconProvider.GetImageIfSupportedObject(concept); if (bmp != null) { return(GetImageImpl(bmp, kind)); } } string conceptTypeName = concept.GetType().Name; RDMPConcept t; //It is a System.Type, get the name and see if there's a corresponding image if (concept is Type) { if (Enum.TryParse(((Type)concept).Name, out t)) { return(GetImageImpl(ImagesCollection[t], kind)); } } //It is an instance of something, get the System.Type and see if there's a corresponding image if (Enum.TryParse(conceptTypeName, out t)) { return(GetImageImpl(ImagesCollection[t], kind)); } //if the object is masquerading as something else if (concept is IMasqueradeAs) { //get what it's masquerading as var masqueradingAs = ((IMasqueradeAs)concept).MasqueradingAs(); //provided we don't have a circular reference here! if (!(masqueradingAs is IMasqueradeAs)) { return(GetImageImpl(masqueradingAs, kind)); //get an image for what your pretending to be } } return(ImagesCollection[RDMPConcept.NoIconAvailable]); }
public virtual Bitmap GetImage(object concept, OverlayKind kind = OverlayKind.None) { return(null); }