Esempio n. 1
0
        public ОбщийВид ВыбратьВид(АМОбъект объект)
        {
            // если это группа то выбрать свернутый вариант
            var тип = ВыборВидов.ContainsKey(объект.GetType()) ? ВыборВидов[объект.GetType()] : typeof(ОбщийВид);
            var вид = (ОбщийВид)тип.GetConstructor(Type.EmptyTypes).Invoke(null);

            вид.ВыборВидов  = ВыборВидов;
            вид.ВидРодитель = this;

            вид.ДобавьСодержание(объект);
            return(вид);
        }
Esempio n. 2
0
        public override void ПолучиСообщение(Связь связь, АМОбъект сообщение)
        {
            строка = (СтрокаЮникода)сообщение;

            if (окно.Dispatcher.Thread == Thread.CurrentThread)
            {
                Обработать();
            }               //отправить сообщение
            else
            {
                окно.Dispatcher.Invoke(Обработать);   //для вывода из другого потока
            }
        }
Esempio n. 3
0
        public virtual void ДобавьСодержание(АМОбъект объект)
        {
            _объект = объект;

            Focusable = true;

            BorderThickness = new Thickness(4);
            BorderBrush     = Brushes.Azure;

            //MouseRightButtonUp += ПраваяКнопкаМышиВВерх;
            //AddHandler(UIElement.PreviewMouseRightButtonUpEvent, new MouseButtonEventHandler(ПраваяКнопкаМышиВВерх), true);
            //Content = null;

            Content = Объект;
        }
Esempio n. 4
0
 //этот метод лучше убрать из функции преобразовать в список действий т.к. их всего 2 вызова
 private ЦелоеЧисло ПреобразоватьСлогаемое(План вызывающееДействие, АМОбъект параметр)
 {
     if (параметр is План)
     {
         return((ЦелоеЧисло)((План)слогаемое1).Выполнить(this));
     }
     else if (слогаемое1 is СтрокаЮникода) // это должно быть действие ПолучитьЗначениеПеременной
     {
         return((ЦелоеЧисло)вызывающееДействие.СловарьВнутреннихПеременных[((СтрокаЮникода)параметр).Значение]);
     }
     else
     {
         return((ЦелоеЧисло)параметр);
     }
 }
Esempio n. 5
0
        public override void ДобавьСодержание(АМОбъект объект)
        {
            var эл = объект as ПроксиОбъекта;

            if (эл == null)
            {
                return;
            }
            _объект = эл;
            var значение = эл.УдаленныйПримитив;

            var вид = ВыбратьВид(значение);

            Content = вид;
        }
Esempio n. 6
0
        public ОбщийВид ВыбратьВид(АМОбъект объект)
        {
            // если это группа то выбрать свернутый вариант
            var тип = ВыборВидов.ContainsKey(объект.GetType()) ? ВыборВидов[объект.GetType()] : typeof(ОбщийВид);
            var вид = (ОбщийВид)тип.GetConstructor(Type.EmptyTypes).Invoke(null);

            if (тип == typeof(ВидГруппаОбъектов))
            {
                ((ВидГруппаОбъектов)вид).ВыборВидов = ВыборВидов;
            }

            вид.Объект = объект;

            return(вид);
        }
Esempio n. 7
0
        public override void ДобавьСодержание(АМОбъект объект)
        {
            var с = объект as Символ;

            if (с == null)
            {
                return;
            }
            _объект = с;

            ТекстБлок.Text = символ.Значение.ToString();
            var связь = new Binding()
            {
                Source = ВидРодитель, Path = new PropertyPath("Background")
            };

            this.SetBinding(BackgroundProperty, связь);
        }
Esempio n. 8
0
    public void ПолучитьКопию()
    {
        var адрес = new Команда("ДайОбъект", new АдресВХранилище()
        {
            НомерВХранилище = 10
        });                                                                                            // команда Хранилищу

        var команда2 = new Команда("ПередайКомандуОбъекту", ПолныйАдресОбъекта);                       // команда серверу это связь на стороне приемника

        var команда = new Команда("ПередатьИПолучить", команда2);                                      // команда ТСПСвязи клиенту это и есть адрес связь на стороне передадчика

        АдресВКучеКопияУдаленногоОбъекта = ТспСвязь.ВыполнитьКоманду(команда);                         // создается новый объект и его адрес помещается в поле, старый объект в мусорку
        var старыйАдресВХрнилище = АдресВХранилище_КопииУдаленногоОбъекта;                             // что-то надо с ним сделать, пометить на удаление

        АдресВХранилище_КопииУдаленногоОбъекта = Хранилище.Добавить(АдресВКучеКопияУдаленногоОбъекта); // добавляется в конец, старый адрес забывается


        АдресВКучеКопияУдаленногоОбъекта = ТспСвязь.ВыполнитьКоманду(new Команда("ДайОбъект")); //это для получения самого объекта  примитива группы
        АдресВКучеКопияУдаленногоОбъекта.СобственныйАдресПримитива = ПолныйАдресОбъекта;        // обращение по команде Выполнить(команда) должно содержать
        // обработка Копии объекта
        // если Копия это адрес, то его надо дополнить адресом ПолнымАдресомОбъекта
    }
        public АдресУРегистратора ЗарегистрируйНаСвободныйАдрес(АМОбъект адресВкуче, Guid пароль)
        {
            var свободныйномер = 0;

            foreach (var пара in Словарь)
            {
                if (пара.Key > свободныйномер)
                {
                    break;
                }
                свободныйномер++;
            }
            Словарь[свободныйномер] = new Клиент(адресВкуче, пароль);
            var адрес = new АдресУРегистратора
            {
                АдресРегистратора      = СобственныйАдресПримитива,
                АдресРегистратораВкуче = this,
                НомерУРегистратора     = свободныйномер,
            };

            return(адрес);
        }
Esempio n. 10
0
 public void ПередайСообщениеВПоток(АМОбъект сообщение)
 {
     сообщение.СохранисьВ(ИсходящийПоток);
 }
 АМОбъект НаЗначение(АМОбъект объект)
 {
     Значение = объект;
     return(Пустота.Статик);
 }
 public Клиент(АМОбъект п, Guid пар)
 {
     АдресВКуче = п;
     Пароль     = пар;
 }
Esempio n. 13
0
 public ГруппаОбъектов Варианты;   //именованная группа
 // Группа может содержать только адреса следующих шаблонов
 // возможен цикл
 // если группа именована "рус буква" выбор = а, то получается типизированая переменная
 public void Присвоить(АМОбъект па)
 {
     Выбор = па; //если есть вариант
 }
Esempio n. 14
0
        public void ДобавитьАдресКСобытию(АМОбъект адрес, string ИмяСобытия)
        {
            var номер = СписокСобытий.IndexOf(ИмяСобытия);

            АдресаПодписчиковНаСобытие[номер].Add(адрес);
        }