/// <summary> /// Constructor /// </summary> protected ModelControl(ModelDiagramPanel panel, IGraphicalDisplay model) : base(panel, model) { Bold = new Font(Font, FontStyle.Bold); Italic = new Font(Font, FontStyle.Italic); BoxMode = BoxModeEnum.Custom; Texts = new List <TextPosition>(); ProcessedWords = new List <List <List <TextPosition> > >(); }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> public ModelArrowControl(ModelDiagramPanel panel, ModelArrow model) : base(panel, model) { DefaultArrowLength = 30; if (model is VariableTypeArrow) { ArrowFill = ArrowFillEnum.Fill; ArrowMode = ArrowModeEnum.Full; } else if (model is OthewiseArrow) { ArrowFill = ArrowFillEnum.Line; ArrowMode = ArrowModeEnum.Full; } else { ArrowFill = ArrowFillEnum.Line; ArrowMode = ArrowModeEnum.Half; } }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> public CaseModelControl(ModelDiagramPanel panel, Case model) : base(panel, model) { BoxMode = BoxModeEnum.RoundedCorners; NormalColor = Color.LightBlue; }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> public CollectionModelControl(ModelDiagramPanel panel, Collection model) : base(panel, model) { }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> public StructureModelControl(ModelDiagramPanel panel, Structure model) : base(panel, model) { }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> public ActionModelControl(ModelDiagramPanel panel, Action model) : base(panel, model) { }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> public RuleModelControl(ModelDiagramPanel panel, Rule model) : base(panel, model) { BoxMode = BoxModeEnum.RoundedCorners; NormalColor = Color.LightBlue; }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> public ParameterModelControl(ModelDiagramPanel panel, Parameter model) : base(panel, model) { }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> public PreConditionModelControl(ModelDiagramPanel panel, PreCondition model) : base(panel, model) { }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> public VariableModelControl(ModelDiagramPanel panel, Variable model) : base(panel, model) { BoxMode = BoxModeEnum.RoundedCorners; NormalColor = Color.BlanchedAlmond; }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> public StateMachineModelControl(ModelDiagramPanel panel, StateMachine model) : base(panel, model) { }
public override void PaintInBoxArrowPanel(Graphics graphics) { base.PaintInBoxArrowPanel(graphics); if (BoxMode == BoxModeEnum.Custom) { Pen pen = SelectPen(); // Create the box Brush innerBrush = new SolidBrush(NormalColor); graphics.FillRectangle(innerBrush, Location.X, Location.Y, Width, Height); graphics.DrawRectangle(pen, Location.X, Location.Y, Width, Height); } if (Texts.Count == 0) { // Write the title string typeName = GuiUtils.AdjustForDisplay(ModelName, Width - 4, Bold); Brush textBrush = new SolidBrush(Color.Black); graphics.DrawString(typeName, Bold, textBrush, Location.X + 2, Location.Y + 2); graphics.DrawLine(NormalPen, new Point(Location.X, Location.Y + Font.Height + 2), new Point(Location.X + Width, Location.Y + Font.Height + 2)); // Write the text in the box // Center the element name string name = GuiUtils.AdjustForDisplay(TypedModel.GraphicalName, Width, Font); SizeF textSize = graphics.MeasureString(name, Font); int boxHeight = Height - Bold.Height - 4; graphics.DrawString(name, Font, textBrush, Location.X + Width / 2 - textSize.Width / 2, Location.Y + Bold.Height + 4 + boxHeight / 2 - Font.Height / 2); } else { // Draw the line between the title and the rest of the box graphics.DrawLine( NormalPen, new Point(Location.X, Location.Y + Font.Height + 2), new Point(Location.X + Width, Location.Y + Font.Height + 2)); // Display the pre computed text at their corresponding locaations foreach (TextPosition textPosition in Texts) { if (textPosition.Color != Color.Transparent) { graphics.DrawString( textPosition.Text, textPosition.Font, new SolidBrush(textPosition.Color), textPosition.Location.X, textPosition.Location.Y); } else { // Syntax highlighting ModelDiagramPanel panel = (ModelDiagramPanel)Panel; string[] lines = textPosition.Text.Split('\n'); PointF location = textPosition.Location; foreach (string line in lines) { List <TextPart> parts = panel.Recognizer.TokenizeLine(TypedModel as DataDictionary.ModelElement, line); foreach (TextPart part in parts) { string str = line.Substring(part.Start, part.Length); SizeF size; if (str == " ") { size = new SizeF(2.0F, Font.Height); } else { StringFormat sf = StringFormat.GenericTypographic; sf.FormatFlags = StringFormatFlags.MeasureTrailingSpaces; size = GuiUtils.Graphics.MeasureString(str, part.Font, location, sf); } graphics.DrawString(str, part.Font, new SolidBrush(part.Color), location.X, location.Y); // Measure string does not handle spaces correctly int increment = 1; if (str.StartsWith(" ")) { increment += 1; } if (str.EndsWith(" ")) { increment += 1; } if (part.Font.Bold) { increment += 3; } location = new PointF(location.X + size.Width + increment, location.Y); } location = new PointF(textPosition.Location.X, location.Y + Font.Height); } } } } }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> public RuleConditionModelControl(ModelDiagramPanel panel, RuleCondition model) : base(panel, model) { BoxMode = BoxModeEnum.RoundedCorners; NormalColor = Color.LightBlue; }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> public InterfaceModelControl(ModelDiagramPanel panel, Structure model) : base(panel, model) { NormalColor = Color.LightGoldenrodYellow; }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> public EnumValueModelControl(ModelDiagramPanel panel, EnumValue model) : base(panel, model) { }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> public RangeModelControl(ModelDiagramPanel panel, Range model) : base(panel, model) { }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> public NameSpaceModelControl(ModelDiagramPanel panel, NameSpace model) : base(panel, model) { NormalColor = Color.LightGreen; BoxMode = BoxModeEnum.RoundedCorners; }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> public ProcedureModelControl(ModelDiagramPanel panel, Procedure model) : base(panel, model) { }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> public StructureElementModelControl(ModelDiagramPanel panel, StructureElement model) : base(panel, model) { }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> public EnumModelControl(ModelDiagramPanel panel, Enum model) : base(panel, model) { }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> public CaseModelControl(ModelDiagramPanel panel, Case model) : base(panel, model) { }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> protected TypeModelControl(ModelDiagramPanel panel, Type model) : base(panel, model) { NormalColor = Color.LightSteelBlue; }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> public FunctionModelControl(ModelDiagramPanel panel, Function model) : base(panel, model) { }
/// <summary> /// Constructor /// </summary> /// <param name="panel"></param> /// <param name="model"></param> public ProcedureModelControl(ModelDiagramPanel panel, Procedure model) : base(panel, model) { NormalColor = Color.LightCoral; }