/// <summary> /// Align Label /// </summary> /// <param name="portObj"></param> /// <param name="edge"></param> /// <param name="settingsInterface"></param> private void AlignLabel(DiagramObject portObj, EaExtensionClass.EmbeddedPosition edge, PortAlignmentItem settingsInterface) { switch (edge) { case EaExtensionClass.EmbeddedPosition.Top: ChangeDiagramObjectLabel(portObj, x: settingsInterface.XTop, y: settingsInterface.YTop, rotation: settingsInterface.RotationTop); break; case EaExtensionClass.EmbeddedPosition.Bottom: ChangeDiagramObjectLabel(portObj, x: settingsInterface.XBottom, y: settingsInterface.YBottom, rotation: settingsInterface.RotationBottom); break; case EaExtensionClass.EmbeddedPosition.Right: ChangeDiagramObjectLabel(portObj, x: settingsInterface.XRight, y: settingsInterface.YRight, rotation: settingsInterface.RotationRight); break; case EaExtensionClass.EmbeddedPosition.Left: ChangeDiagramObjectLabel(portObj, x: settingsInterface.XLeft, y: settingsInterface.YLeft, rotation: settingsInterface.RotationLeft); break; } }
/// <summary> /// Set the style of an diagram object. The style is code with enum LabelStyle. /// -HDN Hide Label /// - PType: Output type /// - OX=nn; Label Position, -nn=Left, +nn = Right /// </summary> /// <param name="portObj"></param> /// <param name="style"></param> public void DoChangeLabelStyle(EA.Element el, EA.DiagramObject portObj, LabelStyle style) { Match match; switch (style) { case LabelStyle.IsHidden: ChangeDiagramObjectStyle(portObj, @"HDN=0", "HDN=1"); break; case LabelStyle.IsShown: ChangeDiagramObjectStyle(portObj, @"HDN=1", "HDN=0"); break; case LabelStyle.IsPortResizable: ChangeDiagramObjectStyle(portObj, @"PortResizable=0", "PortResizable=1"); break; case LabelStyle.IsNotPortResizable: ChangeDiagramObjectStyle(portObj, @"PortResizable=1", "PortResizable=0"); break; case LabelStyle.IsTypeHidden: ChangeDiagramObjectStyle(portObj, @"PType=1", "PType=0"); break; case LabelStyle.IsTypeShown: ChangeDiagramObjectStyle(portObj, @"PType=0", "PType=1"); break; case LabelStyle.PositionLeft: ChangeDiagramObjectStyle(portObj, @"OX=[\+\-0-9]*", @"OX=-200"); break; case LabelStyle.PositionRight: ChangeDiagramObjectStyle(portObj, @"OX=[\+\-0-9]*", @"OX=24"); break; case LabelStyle.PositionDownPlus: MoveLabel(portObj, "OY", 15); break; case LabelStyle.PositionUpPlus: MoveLabel(portObj, "OY", -15); break; case LabelStyle.PositionMinus: // get old x position MoveLabel(portObj, "OX", -15); break; // add offset to position case LabelStyle.PositionPlus: MoveLabel(portObj, "OX", +15); break; // Round robin Rotation settings (no, clockwise, anti clockwise) case LabelStyle.RotateLabel: // get old rotation string newRotationValue = ""; match = Regex.Match((string)portObj.Style, @"ROT=(0|-1|1)"); if (match.Success) { string oldRotationValue = match.Value; switch (oldRotationValue) { case "ROT=0": newRotationValue = "ROT=1"; break; case "ROT=-1": newRotationValue = "ROT=0"; break; case "ROT=1": newRotationValue = "ROT=-1"; break; } if (newRotationValue != "") { ChangeDiagramObjectStyle(portObj, oldRotationValue, newRotationValue); } } break; // Align Label to default position case LabelStyle.AlignLabel1: var edge = portObj.Edge(_rep); if (el.Type.Contains("Interface")) { // Required / Provided Interface PortAlignmentItem settingsInterface = _portAlignmentItems.Find(x => x.Type == "Interface"); AlignLabel(portObj, edge, settingsInterface); } else { // Ports, Pins,.. PortAlignmentItem settingsPort = _portAlignmentItems.Find(x => x.Type == "Port"); AlignLabel(portObj, edge, settingsPort); } break; // Align Label to default position 2 case LabelStyle.AlignLabel2: edge = portObj.Edge(_rep); if (el.Type.Contains("Interface")) { // Required / Provided Interface PortAlignmentItem settingsInterface = _portAlignmentItems.Find(x => x.Type == "Interface1"); AlignLabel(portObj, edge, settingsInterface); } else { // Ports, Pins,.. PortAlignmentItem settingsPort = _portAlignmentItems.Find(x => x.Type == "Port1"); AlignLabel(portObj, edge, settingsPort); } break; } //string style = (string)portObj.Style; //if (isHidden) style = style.Replace("HDN=0", "HDN=1"); //else style = style.Replace("HDN=1", "HDN=0"); //portObj.Style = style; }