/// <summary> /// Wrapper to change DiagramObject style /// - Selected Diagramobjects /// - Package (Diagrams and their DiagramObjects in package and below Elements) /// - Element (Diagrams and their DiagramObjects below Elements) /// </summary> /// <param name="rep"></param> /// <param name="type"></param> /// <param name="style"></param> /// <param name="property"></param> /// <param name="changeScope"></param> public static void DiagramObjectStyleWrapper(Repository rep, string type, string style, string property, ChangeScope changeScope) { EaDiagram eaDia = new EaDiagram(rep, getAllDiagramObject: true); if (eaDia.Dia != null) { rep.SaveDiagram(eaDia.Dia.DiagramID); foreach (var diaObj in eaDia.SelObjects) { var a = new DiagramObjectStyle(rep, diaObj, type, style, property); var objectStyle = new DiagramObjectStyle(rep, diaObj, type, style, property); if (objectStyle.IsToProcess()) { objectStyle.UpdateStyles(); objectStyle.SetProperties(); objectStyle.SetEaLayoutStyles(); objectStyle.SetCompleteNessMarker(); } } eaDia.ReloadSelectedObjectsAndConnector(saveDiagram: false); } else { var liParameter = new string[4]; liParameter[0] = type; liParameter[1] = style; liParameter[2] = property; switch (rep.GetContextItemType()) { case ObjectType.otPackage: Package pkg = (Package)rep.GetContextObject(); RecursivePackages.DoRecursivePkg(rep, pkg, null, null, SetDiagramObjectStyle, liParameter, changeScope); break; case ObjectType.otElement: Element el = (Element)rep.GetContextObject(); RecursivePackages.DoRecursiveEl(rep, el, null, SetDiagramObjectStyle, liParameter, changeScope); break; } } }
/// <summary> /// Update all DiagramObjects of diagram /// - liParameter[0] = type; /// - liParameter[1] = style; /// - liParameter[2] = property; /// </summary> /// <param name="rep"></param> /// <param name="dia"></param> /// <param name="liParameter"></param> private static void SetDiagramObjectStyle(EA.Repository rep, EA.Diagram dia, string[] liParameter) { rep.SaveDiagram(dia.DiagramID); string types = liParameter[0]; string styles = liParameter[1]; string properties = liParameter[2]; foreach (EA.DiagramObject obj in dia.DiagramObjects) { var objStyle = new DiagramObjectStyle(rep, obj, types, styles, properties); if (objStyle.IsToProcess()) { objStyle.UpdateStyles(); objStyle.SetProperties(); objStyle.SetEaLayoutStyles(); objStyle.SetCompleteNessMarker(); } } rep.ReloadDiagram(dia.DiagramID); }