コード例 #1
0
 /// <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> > >();
 }
コード例 #2
0
        /// <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;
            }
        }
コード例 #3
0
 /// <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;
 }
コード例 #4
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public CollectionModelControl(ModelDiagramPanel panel, Collection model)
     : base(panel, model)
 {
 }
コード例 #5
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public StructureModelControl(ModelDiagramPanel panel, Structure model)
     : base(panel, model)
 {
 }
コード例 #6
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public ActionModelControl(ModelDiagramPanel panel, Action model)
     : base(panel, model)
 {
 }
コード例 #7
0
 /// <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;
 }
コード例 #8
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public ParameterModelControl(ModelDiagramPanel panel, Parameter model)
     : base(panel, model)
 {
 }
コード例 #9
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public PreConditionModelControl(ModelDiagramPanel panel, PreCondition model)
     : base(panel, model)
 {
 }
コード例 #10
0
 /// <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;
 }
コード例 #11
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public StateMachineModelControl(ModelDiagramPanel panel, StateMachine model)
     : base(panel, model)
 {
 }
コード例 #12
0
        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);
                        }
                    }
                }
            }
        }
コード例 #13
0
 /// <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;
 }
コード例 #14
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public InterfaceModelControl(ModelDiagramPanel panel, Structure model)
     : base(panel, model)
 {
     NormalColor = Color.LightGoldenrodYellow;
 }
コード例 #15
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public EnumValueModelControl(ModelDiagramPanel panel, EnumValue model)
     : base(panel, model)
 {
 }
コード例 #16
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public StateMachineModelControl(ModelDiagramPanel panel, StateMachine model)
     : base(panel, model)
 {
 }
コード例 #17
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public RangeModelControl(ModelDiagramPanel panel, Range model)
     : base(panel, model)
 {
 }
コード例 #18
0
 /// <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;
 }
コード例 #19
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public ProcedureModelControl(ModelDiagramPanel panel, Procedure model)
     : base(panel, model)
 {
 }
コード例 #20
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public StructureElementModelControl(ModelDiagramPanel panel, StructureElement model)
     : base(panel, model)
 {
 }
コード例 #21
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public EnumModelControl(ModelDiagramPanel panel, Enum model)
     : base(panel, model)
 {
 }
コード例 #22
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public CaseModelControl(ModelDiagramPanel panel, Case model)
     : base(panel, model)
 {
 }
コード例 #23
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public ParameterModelControl(ModelDiagramPanel panel, Parameter model)
     : base(panel, model)
 {
 }
コード例 #24
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public CollectionModelControl(ModelDiagramPanel panel, Collection model)
     : base(panel, model)
 {
 }
コード例 #25
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 protected TypeModelControl(ModelDiagramPanel panel, Type model)
     : base(panel, model)
 {
     NormalColor = Color.LightSteelBlue;
 }
コード例 #26
0
 /// <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;
 }
コード例 #27
0
 /// <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;
 }
コード例 #28
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public FunctionModelControl(ModelDiagramPanel panel, Function model)
     : base(panel, model)
 {
 }
コード例 #29
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 protected TypeModelControl(ModelDiagramPanel panel, Type model)
     : base(panel, model)
 {
     NormalColor = Color.LightSteelBlue;
 }
コード例 #30
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public PreConditionModelControl(ModelDiagramPanel panel, PreCondition model)
     : base(panel, model)
 {
 }
コード例 #31
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public ProcedureModelControl(ModelDiagramPanel panel, Procedure model)
     : base(panel, model)
 {
     NormalColor = Color.LightCoral;
 }
コード例 #32
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public RangeModelControl(ModelDiagramPanel panel, Range model)
     : base(panel, model)
 {
 }
コード例 #33
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public InterfaceModelControl(ModelDiagramPanel panel, Structure model)
     : base(panel, model)
 {
     NormalColor = Color.LightGoldenrodYellow;
 }
コード例 #34
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public StructureModelControl(ModelDiagramPanel panel, Structure model)
     : base(panel, model)
 {
 }
コード例 #35
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="panel"></param>
 /// <param name="model"></param>
 public StructureElementModelControl(ModelDiagramPanel panel, StructureElement model)
     : base(panel, model)
 {
 }