Пример #1
0
        private void CategorieListeZeichnen(PaintEventArgs e, ref int x, ref int y, List <AIMLCategory> liste, PfeilArten pfeilArt, Point dockPunktAnAktKategorie)
        {
            Pen    pen             = null;
            Pen    pen2            = null;
            Color  backgroundColor = Color.White;
            string kontext         = "";

            switch (pfeilArt)
            {
            case PfeilArten.VorgaengerTHAT:
            case PfeilArten.NachfolgerTHAT:
                kontext         = "THAT";
                backgroundColor = Color.FromArgb(240, 240, 255);
                break;

            case PfeilArten.VorgaengerSRAI:
            case PfeilArten.NachfolgerSRAI:
                kontext         = "SRAI";
                backgroundColor = Color.FromArgb(210, 210, 230);
                break;

            case PfeilArten.Redundanz:
                kontext         = "IDENT";
                backgroundColor = Color.FromArgb(250, 250, 255);
                break;
            }
            switch (pfeilArt)
            {
            case PfeilArten.VorgaengerTHAT:
            case PfeilArten.VorgaengerSRAI:
            case PfeilArten.NachfolgerTHAT:
            case PfeilArten.NachfolgerSRAI:
                pen         = new Pen(Color.Gray, 1f);
                pen2        = new Pen(Color.Gray, 1f);
                pen2.EndCap = LineCap.ArrowAnchor;
                break;

            case PfeilArten.Redundanz:
                pen         = new Pen(Color.LightBlue, 1f);
                pen2        = new Pen(Color.LightBlue, 1f);
                pen2.EndCap = LineCap.ArrowAnchor;
                break;
            }
            foreach (AIMLCategory item in liste)
            {
                WorkflowElementCategory workflowElementCategory = new WorkflowElementCategory(kontext, item, this._teilBreite, this._teilHoehe);
                workflowElementCategory.X = x;
                workflowElementCategory.Y = y;
                workflowElementCategory.BackgroundColor = backgroundColor;
                workflowElementCategory.Paint(e);
                this._klickbereiche.Add(new WorkflowKlickbereich(workflowElementCategory.Category, new Rectangle(workflowElementCategory.X, workflowElementCategory.Y, workflowElementCategory.Breite, workflowElementCategory.Hoehe)));
                switch (pfeilArt)
                {
                case PfeilArten.NachfolgerTHAT:
                case PfeilArten.NachfolgerSRAI:
                {
                    Point pt    = new Point(x, y + this._teilHoehe / 2);
                    Point pt2   = new Point(x - this._strichLaenge / 3, y + this._teilHoehe / 2);
                    Point point = new Point(x - this._strichLaenge / 3, dockPunktAnAktKategorie.Y);
                    e.Graphics.DrawLine(pen2, pt2, pt);
                    e.Graphics.DrawLine(pen, pt2, point);
                    e.Graphics.DrawLine(pen, point, dockPunktAnAktKategorie);
                    break;
                }

                case PfeilArten.Redundanz:
                {
                    Point pt     = new Point(x, y + this._teilHoehe / 2);
                    Point pt2    = new Point(x - this._strichLaenge / 4, y + this._teilHoehe / 2);
                    Point point  = new Point(x - this._strichLaenge / 4, dockPunktAnAktKategorie.Y + 10);
                    Point point2 = new Point(dockPunktAnAktKategorie.X, dockPunktAnAktKategorie.Y + 10);
                    e.Graphics.DrawLine(pen2, pt2, pt);
                    e.Graphics.DrawLine(pen, pt2, point);
                    e.Graphics.DrawLine(pen, point, point2);
                    e.Graphics.DrawLine(pen2, point2, dockPunktAnAktKategorie);
                    break;
                }

                case PfeilArten.VorgaengerTHAT:
                case PfeilArten.VorgaengerSRAI:
                {
                    Point pt    = new Point(x + this._teilBreite, y + this._teilHoehe / 2);
                    Point pt2   = new Point(x + this._teilBreite + this._strichLaenge / 2, y + this._teilHoehe / 2);
                    Point point = new Point(x + this._teilBreite + this._strichLaenge / 2, dockPunktAnAktKategorie.Y);
                    e.Graphics.DrawLine(pen, pt2, pt);
                    e.Graphics.DrawLine(pen, pt2, point);
                    e.Graphics.DrawLine(pen2, point, dockPunktAnAktKategorie);
                    break;
                }
                }
                y += this._teilHoehe + this._abstand;
            }
            if (pen != null)
            {
                pen.Dispose();
            }
            if (pen2 != null)
            {
                pen2.Dispose();
            }
        }
Пример #2
0
        private void CategorieListeZeichnen(
            PaintEventArgs e,
            ref int x,
            ref int y,
            List <AIMLCategory> liste,
            ucWorkflow.PfeilArten pfeilArt,
            Point dockPunktAnAktKategorie)
        {
            Pen    pen1    = (Pen)null;
            Pen    pen2    = (Pen)null;
            Color  color   = Color.White;
            string kontext = "";

            switch (pfeilArt)
            {
            case ucWorkflow.PfeilArten.VorgaengerTHAT:
            case ucWorkflow.PfeilArten.NachfolgerTHAT:
                kontext = "THAT";
                color   = Color.FromArgb(240, 240, (int)byte.MaxValue);
                break;

            case ucWorkflow.PfeilArten.VorgaengerSRAI:
            case ucWorkflow.PfeilArten.NachfolgerSRAI:
                kontext = "SRAI";
                color   = Color.FromArgb(210, 210, 230);
                break;

            case ucWorkflow.PfeilArten.Redundanz:
                kontext = "IDENT";
                color   = Color.FromArgb(250, 250, (int)byte.MaxValue);
                break;
            }
            switch (pfeilArt)
            {
            case ucWorkflow.PfeilArten.VorgaengerTHAT:
            case ucWorkflow.PfeilArten.VorgaengerSRAI:
            case ucWorkflow.PfeilArten.NachfolgerTHAT:
            case ucWorkflow.PfeilArten.NachfolgerSRAI:
                pen1        = new Pen(Color.Gray, 1f);
                pen2        = new Pen(Color.Gray, 1f);
                pen2.EndCap = LineCap.ArrowAnchor;
                break;

            case ucWorkflow.PfeilArten.Redundanz:
                pen1        = new Pen(Color.LightBlue, 1f);
                pen2        = new Pen(Color.LightBlue, 1f);
                pen2.EndCap = LineCap.ArrowAnchor;
                break;
            }
            foreach (AIMLCategory category in liste)
            {
                WorkflowElementCategory workflowElementCategory = new WorkflowElementCategory(kontext, category, this._teilBreite, this._teilHoehe);
                workflowElementCategory.X = x;
                workflowElementCategory.Y = y;
                workflowElementCategory.BackgroundColor = color;
                workflowElementCategory.Paint(e);
                this._klickbereiche.Add((object)new WorkflowKlickbereich(workflowElementCategory.Category, new Rectangle(workflowElementCategory.X, workflowElementCategory.Y, workflowElementCategory.Breite, workflowElementCategory.Hoehe)));
                switch (pfeilArt)
                {
                case ucWorkflow.PfeilArten.VorgaengerTHAT:
                case ucWorkflow.PfeilArten.VorgaengerSRAI:
                    Point pt2_1  = new Point(x + this._teilBreite, y + this._teilHoehe / 2);
                    Point pt1_1  = new Point(x + this._teilBreite + this._strichLaenge / 2, y + this._teilHoehe / 2);
                    Point point1 = new Point(x + this._teilBreite + this._strichLaenge / 2, dockPunktAnAktKategorie.Y);
                    e.Graphics.DrawLine(pen1, pt1_1, pt2_1);
                    e.Graphics.DrawLine(pen1, pt1_1, point1);
                    e.Graphics.DrawLine(pen2, point1, dockPunktAnAktKategorie);
                    break;

                case ucWorkflow.PfeilArten.Redundanz:
                    Point pt2_2  = new Point(x, y + this._teilHoehe / 2);
                    Point pt1_2  = new Point(x - this._strichLaenge / 4, y + this._teilHoehe / 2);
                    Point point2 = new Point(x - this._strichLaenge / 4, dockPunktAnAktKategorie.Y + 10);
                    Point point3 = new Point(dockPunktAnAktKategorie.X, dockPunktAnAktKategorie.Y + 10);
                    e.Graphics.DrawLine(pen2, pt1_2, pt2_2);
                    e.Graphics.DrawLine(pen1, pt1_2, point2);
                    e.Graphics.DrawLine(pen1, point2, point3);
                    e.Graphics.DrawLine(pen2, point3, dockPunktAnAktKategorie);
                    break;

                case ucWorkflow.PfeilArten.NachfolgerTHAT:
                case ucWorkflow.PfeilArten.NachfolgerSRAI:
                    Point pt2_3  = new Point(x, y + this._teilHoehe / 2);
                    Point pt1_3  = new Point(x - this._strichLaenge / 3, y + this._teilHoehe / 2);
                    Point point4 = new Point(x - this._strichLaenge / 3, dockPunktAnAktKategorie.Y);
                    e.Graphics.DrawLine(pen2, pt1_3, pt2_3);
                    e.Graphics.DrawLine(pen1, pt1_3, point4);
                    e.Graphics.DrawLine(pen1, point4, dockPunktAnAktKategorie);
                    break;
                }
                y += this._teilHoehe + this._abstand;
            }
            if (pen1 != null)
            {
                pen1.Dispose();
            }
            if (pen2 == null)
            {
                return;
            }
            pen2.Dispose();
        }