Пример #1
0
 //-------------------------------------------
 #endregion
 #region Arrow
 public void ArrowSelect(object obj)
 {
     if (obj != текущаяСвязь && obj is Связь)
     {
         текущаяСвязь = obj as Связь;
     }
 }
Пример #2
0
 // данный сценарий нужен когда неизвестно нужно Вам сообщение или нет, забирать или нет решать ВАм
 // Есть категория активностей,типа данных температуры, которые можно только скопировать, стереть невозможно
 // данные для многократного забора
 void Забери()
 {
     Связь.СигналОПоступленииСообщения(); // это для забора из адреса исходщего сообщения вызови метод Забрать()
                                          // вставка своих методов
     // ЗабратьСообщение можно путем 1.простого копирования 2. забор адреса и очистка удаленногоИсходящего
     //3.запуска удаленного метода
 }
        Адрес СоздайНовуюАктивность()
        {
            var активностьНовая = new АктивностьЗначение();

            var адресАктивности = АктивностьЗначение.СоздайАктивность(ВнутреннееПространство);

            //Хранилище.Добавить(активностьНовая);//это создать активность во внешнем пространстве

            var новаяСвязь = new Связь()
            {
                Канал = new КаналПамятьПсевдо(), ЯвляетсяКлиентом = true
            };
            var адрессвязи = ДобавьСвязь(новаяСвязь);

            var ещеАдресСвязи = ВнутреннееПространство.Добавить(новаяСвязь);


            var связьНовойАктивности = new Связь()
            {
                Канал = new КаналПамятьПсевдо(), ЯвляетсяСервером = true,
                АдресУдаленнойСвязи = адрессвязи
            };                                    // можно адрес не укзывать при первом соединении, адрес определиться и запомниться

            var адресСвязиНовойАктивности = ВнутреннееПространство.Добавить(связьНовойАктивности);
            var адресНовойСвязиАктивности = активностьНовая.ДобавьСвязь(связьНовойАктивности);

            новаяСвязь.АдресУдаленнойСвязи = адресНовойСвязиАктивности;
            return(адресАктивности.адрес);
        }
        public override void ПолучиСообщение(Связь связь, АМОбъект сообщение)
        {
            var строка = (СтрокаЮникода)сообщение;

            СтрокаЮникода.Создать(строка);
            ОкноХранилища.окноХранилища.ОбновитьОкно();
        }
Пример #5
0
 private void ArrowEnd()
 {
     if (текущаяСвязь != null && объектВыбранный != null)
     {
         текущаяСвязь.ОбъектПредыдущий.Opacity = 1;
         текущаяСвязь = null;
     }
 }
Пример #6
0
 void ОставитьИСообщитьВТекущемПотоке(ПримитивИлиАдрес объект) // с прерыванием ожидания
 {
     _ВходящееСообщение = объект;
     Связь.СигналОПоступленииСообщения();// здесь происходит аренда потока, Связь или Активность сама решает
     // связь  должна взять входящее сооьщение передать в активность
     // активность должна быстро что-то сделать, (возможно вызвать передатьИсходящее=ОставитьИ уйти)
     // и вернуть поток
     // либо запустить обработку входящих в собственном потоке
 }
Пример #7
0
        private void ArrowAddMoreLink()
        {
            Связь newArrow = new Связь();
            Point mousePos = Mouse.GetPosition(this);

            newArrow.X1 = mousePos.X;
            //  newArrow.Y1=current_arrow.Margin.Top+
            //(x-x3)/[-(у2-y1)]=(y-y3)/(x2-x1)
        }
Пример #8
0
        public override void ПолучиСообщение(Связь связь, АМОбъект сообщение)
        {
            строка = (СтрокаЮникода)сообщение;

            if (окно.Dispatcher.Thread == Thread.CurrentThread)
            {
                Обработать();
            }               //отправить сообщение
            else
            {
                окно.Dispatcher.Invoke(Обработать);   //для вывода из другого потока
            }
        }
Пример #9
0
 private void ArrowMove(bool move)
 {
     if (текущаяСвязь != null)
     {
         if (move)
         {
             ArrowEndChange();
         }
         else
         {
             текущаяСвязь = null;
         }
     }
 }
Пример #10
0
 public void DeleteLinks(Связь current_arrow)
 {
     if (current_arrow != null)
     {
         if (current_arrow.ОбъектПредыдущий != null && current_arrow.ОбъектПредыдущий != this)
         {
             current_arrow.ОбъектПредыдущий.DeleteLinksEnd(current_arrow);
         }
         if (current_arrow.ОбъектСледующий != null && current_arrow.ОбъектСледующий != this)
         {
             current_arrow.ОбъектСледующий.DeleteLinksStart(current_arrow);
         }
     }
 }
Пример #11
0
 public void ArrowBreak()
 {
     if (текущаяСвязь != null)
     {
         if (текущаяСвязь.ОбъектПредыдущий != null)
         {
             текущаяСвязь.ОбъектПредыдущий.DeleteArrow(текущаяСвязь);
         }
         if (текущаяСвязь.ОбъектСледующий != null)
         {
             текущаяСвязь.ОбъектСледующий.DeleteArrow(текущаяСвязь);
         }
         AreaGrid.Children.Remove(текущаяСвязь); текущаяСвязь = null;
     }
 }
Пример #12
0
        public void AddArrows(Связь current_arrow)
        {
            if (current_arrow != null)
            {
                Связи.Add(current_arrow);

                if (current_arrow.ОбъектСледующий == this && current_arrow.ОбъектПредыдущий != null)
                {
                    ОбъектыПредыдущие.Add(current_arrow.ОбъектПредыдущий);
                    current_arrow.ОбъектПредыдущий.AddObjectEnd(current_arrow.ОбъектСледующий);
                }

                ЕстьСвязи = true;
            }
        }
        public Связь ДайСвязьСЭлементом(int номер)
        {
            var адрес = new АдресАбсолютный()
            {
                АдресРегистратора  = СобственныйАдресПримитива,
                АдресОтносительный = new АдресВГруппе {
                    НомерВГруппе = номер
                }
            };
            var связь = new Связь {
                АдресУдаленнойСвязи = адрес
            };

            var активность = new АктивностьУдаленноеЗначение();

            активность.ДобавьСвязь(связь);

            return(связь);
        }
Пример #14
0
        public void ArrowBegin()
        {
            if (объектТекущий != null)
            {
                объектВыбранный =о бъектТекущий; объектТекущий = null;
            }
            if (объектВыбранный != null)
            {
                текущаяСвязь                 = new Связь();
                offset.X                     = объектВыбранный.Margin.Left + объектВыбранный.Width; offset.Y = объектВыбранный.Margin.Top + объектВыбранный.Height / 2;
                текущаяСвязь.Stroke          = Brushes.Red;
                текущаяСвязь.StrokeThickness = 3;
                текущаяСвязь.X1              = offset.X;
                текущаяСвязь.Y1              = offset.Y;
                ArrowEndChange();

                AreaGrid.Children.Add(текущаяСвязь);
                Panel.SetZIndex(текущаяСвязь, -1);
                текущаяСвязь.ОбъектПредыдущий = объектВыбранный;
                объектВыбранный.AddArrows(текущаяСвязь);
            }
        }
Пример #15
0
 public void DeleteArrow(Связь arrow)
 {
     Связи.Remove(arrow);
 }
Пример #16
0
 // внешние команды , но настройка внутренняя путем присвоения делегату Получи
 void ПередатьНапрямую(ПримитивИлиАдрес сообщение)
 {
     Связь.ПолучиСообщение(сообщение);
 }
Пример #17
0
 protected void DeleteLinksEnd(Связь arrow)
 {
     ОбъектыСледующие.Remove(arrow.ОбъектСледующий);
     arrow.ОбъектПредыдущий.DeleteArrow(arrow);
 }