public ОбщийВид ВыбратьВид(АМОбъект объект) { // если это группа то выбрать свернутый вариант var тип = ВыборВидов.ContainsKey(объект.GetType()) ? ВыборВидов[объект.GetType()] : typeof(ОбщийВид); var вид = (ОбщийВид)тип.GetConstructor(Type.EmptyTypes).Invoke(null); вид.ВыборВидов = ВыборВидов; вид.ВидРодитель = this; вид.ДобавьСодержание(объект); return(вид); }
public override void ПолучиСообщение(Связь связь, АМОбъект сообщение) { строка = (СтрокаЮникода)сообщение; if (окно.Dispatcher.Thread == Thread.CurrentThread) { Обработать(); } //отправить сообщение else { окно.Dispatcher.Invoke(Обработать); //для вывода из другого потока } }
public virtual void ДобавьСодержание(АМОбъект объект) { _объект = объект; Focusable = true; BorderThickness = new Thickness(4); BorderBrush = Brushes.Azure; //MouseRightButtonUp += ПраваяКнопкаМышиВВерх; //AddHandler(UIElement.PreviewMouseRightButtonUpEvent, new MouseButtonEventHandler(ПраваяКнопкаМышиВВерх), true); //Content = null; Content = Объект; }
//этот метод лучше убрать из функции преобразовать в список действий т.к. их всего 2 вызова private ЦелоеЧисло ПреобразоватьСлогаемое(План вызывающееДействие, АМОбъект параметр) { if (параметр is План) { return((ЦелоеЧисло)((План)слогаемое1).Выполнить(this)); } else if (слогаемое1 is СтрокаЮникода) // это должно быть действие ПолучитьЗначениеПеременной { return((ЦелоеЧисло)вызывающееДействие.СловарьВнутреннихПеременных[((СтрокаЮникода)параметр).Значение]); } else { return((ЦелоеЧисло)параметр); } }
public override void ДобавьСодержание(АМОбъект объект) { var эл = объект as ПроксиОбъекта; if (эл == null) { return; } _объект = эл; var значение = эл.УдаленныйПримитив; var вид = ВыбратьВид(значение); Content = вид; }
public ОбщийВид ВыбратьВид(АМОбъект объект) { // если это группа то выбрать свернутый вариант var тип = ВыборВидов.ContainsKey(объект.GetType()) ? ВыборВидов[объект.GetType()] : typeof(ОбщийВид); var вид = (ОбщийВид)тип.GetConstructor(Type.EmptyTypes).Invoke(null); if (тип == typeof(ВидГруппаОбъектов)) { ((ВидГруппаОбъектов)вид).ВыборВидов = ВыборВидов; } вид.Объект = объект; return(вид); }
public override void ДобавьСодержание(АМОбъект объект) { var с = объект as Символ; if (с == null) { return; } _объект = с; ТекстБлок.Text = символ.Значение.ToString(); var связь = new Binding() { Source = ВидРодитель, Path = new PropertyPath("Background") }; this.SetBinding(BackgroundProperty, связь); }
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(адрес); }
public void ПередайСообщениеВПоток(АМОбъект сообщение) { сообщение.СохранисьВ(ИсходящийПоток); }
АМОбъект НаЗначение(АМОбъект объект) { Значение = объект; return(Пустота.Статик); }
public Клиент(АМОбъект п, Guid пар) { АдресВКуче = п; Пароль = пар; }
public ГруппаОбъектов Варианты; //именованная группа // Группа может содержать только адреса следующих шаблонов // возможен цикл // если группа именована "рус буква" выбор = а, то получается типизированая переменная public void Присвоить(АМОбъект па) { Выбор = па; //если есть вариант }
public void ДобавитьАдресКСобытию(АМОбъект адрес, string ИмяСобытия) { var номер = СписокСобытий.IndexOf(ИмяСобытия); АдресаПодписчиковНаСобытие[номер].Add(адрес); }