private IIcon CreateTaskBandIcon(INode node) { if (taskBandBackgroundIcon == null) { UpdateTaskBandIcon(); } IIcon subStateIcon = null; if (SubState != SubState.None) { subStateIcon = SubState == SubState.Dynamic ? IconFactory.CreateDynamicSubState(node, IconColor) : IconFactory.CreateStaticSubState(SubState, IconColor); } IIcon markerIcon = null; if (loopIcon != null && subStateIcon != null) { markerIcon = IconFactory.CreateLineUpIcon(new List <IIcon>(new [] { loopIcon, subStateIcon }), BpmnConstants.MarkerSize, 5); } else if (loopIcon != null) { markerIcon = loopIcon; } else if (subStateIcon != null) { markerIcon = subStateIcon; } if (markerIcon != null) { var placedMarkers = IconFactory.CreatePlacedIcon(markerIcon, BpmnConstants.ChoreographyMarkerPlacement, BpmnConstants.MarkerSize); return(IconFactory.CreateCombinedIcon(new List <IIcon>(new[] { taskBandBackgroundIcon, placedMarkers }))); } else { return(taskBandBackgroundIcon); } }
internal IIcon CreateIcon(INode node) { var minimumWidth = 10.0; var icons = new List <IIcon>(); if (activityIcon != null) { icons.Add(activityIcon); } if (taskIcon != null) { icons.Add(taskIcon); } var lineUpIcons = new List <IIcon>(); if (loopIcon != null) { minimumWidth += BpmnConstants.MarkerSize.Width + 5; lineUpIcons.Add(loopIcon); } if (AdHoc) { minimumWidth += BpmnConstants.MarkerSize.Width + 5; lineUpIcons.Add(adHocIcon); } if (Compensation) { minimumWidth += BpmnConstants.MarkerSize.Width + 5; lineUpIcons.Add(compensationIcon); } if (SubState != SubState.None) { minimumWidth += BpmnConstants.MarkerSize.Width + 5; if (SubState == SubState.Dynamic) { lineUpIcons.Add(IconFactory.CreateDynamicSubState(node, IconColor)); } else { lineUpIcons.Add(IconFactory.CreateStaticSubState(SubState, IconColor)); } } if (lineUpIcons.Count > 0) { IIcon lineUpIcon = IconFactory.CreateLineUpIcon(lineUpIcons, BpmnConstants.MarkerSize, 5); icons.Add(IconFactory.CreatePlacedIcon(lineUpIcon, BpmnConstants.TaskMarkerPlacement, BpmnConstants.MarkerSize)); } MinimumSize = new SizeD(Math.Max(minimumWidth, 40), 40); if (icons.Count > 1) { return(IconFactory.CreateCombinedIcon(icons)); } else if (icons.Count == 1) { return(icons[0]); } else { return(null); } }