internal static ActionInfoWithDynamicImageMapCollection GetImageMaps(IEnumerable <MapAreaInfo> mapAreaInfoList, ActionInfoWithDynamicImageMapCollection actions, ReportItem reportItem) { List <ActionInfoWithDynamicImageMap> list = new List <ActionInfoWithDynamicImageMap>(); bool[] array = new bool[actions.Count]; foreach (MapAreaInfo mapAreaInfo in mapAreaInfoList) { int num = AddMapArea(mapAreaInfo, actions, reportItem); if (num > -1 && !array[num]) { list.Add(actions[num]); array[num] = true; } else if (!string.IsNullOrEmpty(mapAreaInfo.ToolTip)) { string href; ActionInfoWithDynamicImageMap actionInfoWithDynamicImageMap = CreateActionInfoDynamic(reportItem, null, mapAreaInfo.ToolTip, out href); if (actionInfoWithDynamicImageMap != null) { actionInfoWithDynamicImageMap.CreateImageMapAreaInstance(mapAreaInfo.MapAreaShape, mapAreaInfo.Coordinates, mapAreaInfo.ToolTip); list.Add(actionInfoWithDynamicImageMap); } } } actions.InternalList.Clear(); actions.InternalList.AddRange(list); if (actions.Count == 0) { return(null); } return(actions); }
internal static ActionInfoWithDynamicImageMap CreateActionInfoDynamic(ReportItem reportItem, ActionInfo actionInfo, string toolTip, out string href, bool applyExpression) { Action actionFromActionInfo = GetActionFromActionInfo(actionInfo); if (actionFromActionInfo == null) { href = null; } else { href = EvaluateHref(actionFromActionInfo, out bool isExpression); if (isExpression && !applyExpression) { href = null; } } bool flag = actionFromActionInfo == null || href == null; bool flag2 = string.IsNullOrEmpty(toolTip); if (flag && flag2) { return(null); } ActionInfoWithDynamicImageMap actionInfoWithDynamicImageMap; if (!flag) { actionInfoWithDynamicImageMap = new ActionInfoWithDynamicImageMap(reportItem.RenderingContext, reportItem, actionInfo.ReportScope, actionInfo.InstancePath, actionInfo.ROMActionOwner, chartConstructor: true); if (actionFromActionInfo.BookmarkLink != null) { actionInfoWithDynamicImageMap.CreateBookmarkLinkAction().Instance.BookmarkLink = href; } else if (actionFromActionInfo.Hyperlink != null) { actionInfoWithDynamicImageMap.CreateHyperlinkAction().Instance.HyperlinkText = href; } else if (actionFromActionInfo.Drillthrough != null) { Action action = actionInfoWithDynamicImageMap.CreateDrillthroughAction(); action.Drillthrough.Instance.ReportName = href; EvaluateActionParameters(actionFromActionInfo.Drillthrough, action.Drillthrough); _ = action.Drillthrough.Instance.DrillthroughID; } } else { actionInfoWithDynamicImageMap = new ActionInfoWithDynamicImageMap(reportItem.RenderingContext, reportItem, reportItem.ReportScope, reportItem.ReportItemDef, null, chartConstructor: true); } return(actionInfoWithDynamicImageMap); }
private static int AddMapArea(MapAreaInfo mapAreaInfo, ActionInfoWithDynamicImageMapCollection actions, ReportItem reportItem) { if (mapAreaInfo.Tag == null) { return(-1); } int num = (int)mapAreaInfo.Tag; ActionInfoWithDynamicImageMap actionInfoWithDynamicImageMap = actions.InternalList[num]; if (actionInfoWithDynamicImageMap.Actions.Count > 0 || !string.IsNullOrEmpty(mapAreaInfo.ToolTip)) { actionInfoWithDynamicImageMap.CreateImageMapAreaInstance(mapAreaInfo.MapAreaShape, mapAreaInfo.Coordinates, mapAreaInfo.ToolTip); return(num); } return(-1); }
public IPersistable CreateRIFObject(Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType objectType, ref IntermediateFormatReader context) { IPersistable persistable; switch (objectType) { case Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType.Null: return(null); case Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType.ImageInstance: persistable = (ImageInstance)m_reportItemInstance; break; case Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType.StyleInstance: persistable = m_reportItemInstance.Style; break; case Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType.ActionInstance: Global.Tracer.Assert(m_currentActionInfo != null && m_currentActionInfo.Actions.Count > m_currentActionIndex, "Ensure m_currentActionInfo is setup properly"); persistable = m_currentActionInfo.Actions[m_currentActionIndex].Instance; m_currentActionIndex++; break; case Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType.ParameterInstance: Global.Tracer.Assert(m_currentParameterCollection != null && m_currentParameterCollection.Count > m_currentParameterIndex, "Ensure m_currentParameterCollection is setup properly"); persistable = m_currentParameterCollection[m_currentParameterIndex].Instance; m_currentParameterIndex++; break; case Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType.ActionInfoWithDynamicImageMap: persistable = new ActionInfoWithDynamicImageMap(m_reportItemInstance.RenderingContext, null, (ReportItem)m_reportItemInstance.ReportElementDef, (IROMActionOwner)m_reportItemInstance.ReportElementDef); break; case Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType.ImageMapAreaInstance: persistable = new ImageMapAreaInstance(); break; default: return(ProcessingRIFObjectCreator.CreateRIFObject(objectType, ref context)); } persistable.Deserialize(context); return(persistable); }