- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
public const string Message = "messagebox";
public const string Message_Error = "messagebox.error";
public const string Message_Question = "messagebox.question";
public void ProcessUrl(string url, object urlContext, EventHandler<ProcessUrlArgs> callback)
{
switch (url)
{
case Url.Message:
urlArgs.Result = XtraMessageBox.Show((string) urlContext, captionText, MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
callback(this, urlArgs);
return;
case Url.Message_Error:
urlArgs.Result = XtraMessageBox.Show((string) urlContext, captionText, MessageBoxButtons.OK,
MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
callback(this, urlArgs);
return;
case Url.Message_Question:
urlArgs.Result = XtraMessageBox.Show((string) urlContext, captionText, MessageBoxButtons.OKCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
callback(this, urlArgs);
return;
}
// дальше идет уже ручная разборка Url
Человек изобрел своего диспетчера контролов внутри формы. Вместо специфических методов вызывающий формирует строку вида
"command.subcommand.parameter1.parameter 2", передается диспетчеру а он уже парсит это обратно.
К примеру "prefix.persons.view.23.all" означает что нужно создать юзер контрол PersonDetail для персоны с id 23 и показать все опции. Но можно передать и "message" тогда покажется messagebox. Все это происходит внутри одного UI модуля, и все классы internal. более того, этих usercontrols всего 4 разных и все это говно можно заменить на 4 метода с парой параметров в каждом. Но там было бы слишком просто и легко отслеживать что откуда вызывается. А в случае единственного метода ProcessUrl (который не url :) ) все гораздо веселее.
guest 02.04.2011 15:05 # +1
bugmenot 02.04.2011 15:41 # 0
guest 02.04.2011 17:47 # 0
bugmenot 02.04.2011 19:01 # 0
glilya 10.04.2011 12:57 # 0