BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 21 июн 2025, 05:21

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 25 ] 
Автор Сообщение
СообщениеДобавлено: 12 июл 2011, 13:09 
Не в сети

Зарегистрирован: 16 ноя 2007, 16:11
Сообщения: 829
Карма: 49
Просим предоставить нам (пользователям биллинга) возможность в GUI клиенте добавлять свои GUI элементы и обрабатывать запросы/ответы сервера.
Для этого предлагаем обеспечить низкоуровневый интерфейс (например, в виде callback) для получения точки входа в иерархию swing и фильтрации запросов и ответов сервера, что бы не приходилось делать "фокусы" как в http://forum.bgbilling.ru/viewtopic.php?f=22&t=5622

Создание высокоуровнего интерфейса (например, возможность использования динамической подгрузки классов и/или скриптов) берем на себя.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 июл 2011, 13:29 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Поддерживаю.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 июл 2011, 13:31 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
+

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 июл 2011, 15:56 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Предложите более-менее подробную архитектуру этого. Ибо
Цитата:
получения точки входа в иерархию swing и фильтрации запросов и ответов сервера
читается как каля-баля. Что такое по-вашему точка входа в иерархию swing :lupa:

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 июл 2011, 16:01 
Не в сети

Зарегистрирован: 16 ноя 2007, 16:11
Сообщения: 829
Карма: 49
dimOn писал(а):
Ибо
Цитата:
получения точки входа в иерархию swing и фильтрации запросов и ответов сервера
читается как каля-баля. Что такое по-вашему точка входа в иерархию swing :lupa:


Надо полагать это провокация. Не будем отвечать на провокацию и продолжим диалог в позитивном ключе. :roll:


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 июл 2011, 16:04 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
vdd писал(а):
dimOn писал(а):
Ибо
Цитата:
получения точки входа в иерархию swing и фильтрации запросов и ответов сервера
читается как каля-баля. Что такое по-вашему точка входа в иерархию swing :lupa:


Надо полагать это провокация. Не будем отвечать на провокацию и продолжим диалог в позитивном ключе. :roll:

:mrgreen: :mrgreen: :mrgreen:

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 июл 2011, 16:05 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
vdd писал(а):
dimOn писал(а):
Ибо
Цитата:
получения точки входа в иерархию swing и фильтрации запросов и ответов сервера
читается как каля-баля. Что такое по-вашему точка входа в иерархию swing :lupa:


Надо полагать это провокация. Не будем отвечать на провокацию и продолжим диалог в позитивном ключе. :roll:

не, я хочу чтобы вы описали как вы вообще видите возможность дать универсальную точку входа куда угодно в уже скомпилированном коде. Имхо, это невозможно. Но ведь всякое может быть, вот и хочу узнать как так :facepalm:

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 июл 2011, 16:06 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
dimOn писал(а):
vdd писал(а):
dimOn писал(а):
Ибо
Цитата:
получения точки входа в иерархию swing и фильтрации запросов и ответов сервера
читается как каля-баля. Что такое по-вашему точка входа в иерархию swing :lupa:


Надо полагать это провокация. Не будем отвечать на провокацию и продолжим диалог в позитивном ключе. :roll:

не, я хочу чтобы вы описали как вы вообще видите возможность дать универсальную точку входа куда угодно в уже скомпилированном коде. Имхо, это невозможно. Но ведь всякое может быть, вот и хочу узнать как так :facepalm:

js ???

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 июл 2011, 16:10 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
wtf? :shock: речь о gui вообще, не?

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 июл 2011, 16:19 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
dimOn писал(а):
wtf? :shock: речь о gui вообще, не?

да я фиг знает, вот в 3-ем гноме(в 15 RFRemix) на js написано много аплетов......не, я канеш не исключаю что я нуб в этом и чегота не догоняю )))))

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 июл 2011, 16:29 
Не в сети

Зарегистрирован: 16 ноя 2007, 16:11
Сообщения: 829
Карма: 49
dimOn писал(а):
Предложите более-менее подробную архитектуру этого.

Например, это может выглядеть так:

Код:
interface GUIClientCB{
 void ready(bitel.billing.ShellFrame);  // вызывается после готовности GUI к работе, т.е. ShellFrame и все статичные элементы GUI созданы.
 Outcome handleRequest(Exchange ex); //вызывается перед отправкой запроса на сервер. Класс Exchange обеспечивает возможность изменить содержание запроса
 Outcome handleResponse(Exchange ex);  //вызывается после получения ответа от сервера, но до передачи данных на дальнейшую обработку. Класс Exchange обеспечивает возможность изменения содержимого ответа до дальнейшей обработки
}
....
class GUIExt implement GUIClientCB{
...
public Outcome handleRequest(Exchange ex) throws Exception {
...
      return Outcome.CONTINUE;
   }
   public Outcome handleResponse(Exchange ex) throws Exception {
...
      return Outcome.CONTINUE;
   }
}
....
 public static void main(String[] args) {
         GUIExt ge=new GUIExt();
         bitel.billing.ShellFrame.main(args,ge);



GUIClientCB:ready() вызывается после того, как пользователь залогинился и создались все "основные элементы GUI"


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 июл 2011, 16:38 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Как вы собираетесь вставлять любые контролы (вкладки, кнопки, меню итд) в любое место таким вот образом - вот что интересно.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 июл 2011, 16:42 
Не в сети

Зарегистрирован: 16 ноя 2007, 16:11
Сообщения: 829
Карма: 49
dimOn писал(а):
Как вы собираетесь вставлять любые контролы (вкладки, кнопки, меню итд) в любое место таким вот образом - вот что интересно.

Вот тут я это показывал:
http://forum.bgbilling.ru/viewtopic.php?f=22&t=5622
В эту тему куски кода скопировать?

В боевом варианте будут вешаться обработчики событий на контейнеры, что бы ловить появление нужных GUI контролов. (Например, появление закладки поиска договоров)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 июл 2011, 17:54 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
То что там в той теме, как мне кажется, недостаточно для решения описанной вами проблемы. Как вы себе это представляете в коде самого клиента будет работать? Тот ваш код понятен - вы из подгруженного класса своего какого-то вытаскиваете иерархию компонентов, роетесь в ней, доходите до нужного, чего-то там вставляете итд. Это всё ясно и так можно сделать, вот сделали же, но КАК это оформить в более красивом виде то по-вашему. Чтобы было удобнее, чем в том коде и чтобы это было настолько же универсально. Вот что хочется увидеть. Цепочки связей GUI-компонентов мы и сами не знаем, контролировать и описывать каждый диалог в клиенте что-ле нужто? Это нереально. Или вы хотите чтобы плагин взял и вытащил просто указатель на шелфрейм, а потом уже сам всюду пихал что хочет такими хакерскими методами? Так оно и щас можно также сделать, это будет почти то же самое что вы сделали. Вот и опишите, что не хватает вам в этом варианте и что надо от нас, понимаете? :umnik:

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 июл 2011, 18:33 
Не в сети

Зарегистрирован: 16 ноя 2007, 16:11
Сообщения: 829
Карма: 49
От вас нужно:
1) обеспечить гарантию получения указателя на шелфрейм и доступа к меню, тулбару и TabPane.
2) обеспечить перехват запросов-ответов, что бы не нужно было это делать через локальный прокси.

Можно начать с 1 пункта.

Зачем нужен низкоуровневый API, когда можно и так подцепится?
1. Цикл подхвата указателя на шелфрейм просто не красив, но основная проблема в определении момента готовности GUI (то есть момента, когда пользователь залогинился и проинициализировались все "базовые контролы") - делать это в цикле не только не красиво, но и не надежно.
2. Наличие API означает, что мы можем создавать свои "довески" не боясь, что при очередном апдейте все придется выкинуть, так как что-то поменялось и "хакерские трюки поверх хакерских трюков" больше не работают.

Как и что добавлять - что бы предложить что-то конкретное, нужно начать, например (кроме собственных плагинов), собрать пожелания других пользователей биллинга. Для того, что бы начать, нужен низкоуровневый API, потому как без этого минимума никто не будет тратить время на бесплодные фантазии. Вспомним API сервера версии 4.0.

Поэтому и просим минимум, потому что понятно, что никакой специальной поддержки в GUI никто добавлять не будет, так как это осложняет программирование этого самого GUI и не нужно самим разработчикам (в отличие от серверного API). Создать вокруг низкоуровнего API библиотеку, представляющую GUI, например, в виде дерева, или позволяющую регистрировать фильтры на высокоуровневые события - уже дело техники и вкуса.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 июл 2011, 10:58 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
vdd писал(а):
От вас нужно:
1) обеспечить гарантию получения указателя на шелфрейм и доступа к меню, тулбару и TabPane.
[/quote="vdd"]
шелфрейм - сингелтон ShellFrame.getFrame
меню - вам нужна возможность добавить свой item в общее меню окна ?
TabPane - поконкретнее можно ?

vdd писал(а):
2) обеспечить перехват запросов-ответов, что бы не нужно было это делать через локальный прокси.


Это есть.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 июл 2011, 11:39 
Не в сети

Зарегистрирован: 16 ноя 2007, 16:11
Сообщения: 829
Карма: 49
stark писал(а):
vdd писал(а):
От вас нужно:
1) обеспечить гарантию получения указателя на шелфрейм и доступа к меню, тулбару и TabPane.

шелфрейм - сингелтон ShellFrame.getFrame
меню - вам нужна возможность добавить свой item в общее меню окна ?
TabPane - поконкретнее можно ?


ShellFrame.getFrame - не гарантирует получение указателя. Поэтому и просим что-то типа callback после залогинивания пользователя.
Меню - не только добавление своего элемента, но и, например, добавление ActionHandlerа, что бы поймать нужное событие меню.
TabPane - я не точно выразился, не посмотрел в eclipse точное название класса, пример ниже. Речь идет как о добавлении своих "закладок", например, как в во втором скриншоте в теме про "скрипты в клиенте", так и о возможности добавления своих обработчиков для обнаружения нужных
"закладок".
stark писал(а):
vdd писал(а):
2) обеспечить перехват запросов-ответов, что бы не нужно было это делать через локальный прокси.

Это есть.

Как этим воспользоваться? (Иными словами - озвучте API, пожалуйста)

Код:
               ContractTabbedPane t=sf.getTabbedPane();
           BGTabPanel dump= new BGTabPanel(null, null);
      dump.setLayout(new BoxLayout(dump, BoxLayout.PAGE_AXIS));
      textArea=new JTextArea();
      textArea.setLineWrap(true);
      textArea.setWrapStyleWord(true);
      textArea.setEditable(false);
      JScrollPane editorScrollPane = new JScrollPane(textArea);
      editorScrollPane.setVerticalScrollBarPolicy(
                JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
      editorScrollPane.setPreferredSize(new Dimension(250, 145));
      editorScrollPane.setMinimumSize(new Dimension(10, 10));
      dump.add(editorScrollPane);
      dump.validate();
      t.addTab("Dump",dump);
      t.validate();


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 июл 2011, 12:16 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Цитата:
ShellFrame.getFrame - не гарантирует получение указателя. Поэтому и просим что-то типа callback после залогинивания пользователя.
как так не гарантирует? очень даже гарантирует, оно ВСЕГДА содержит ссылку на главный frame , это в коде используется в 100500 мест. Калбак КУДА после залогинивания? Чтобы сделать калбак, нужно как минимум какую-то инфраструктуру развернуть вокруг всего этого, не так ли? О чём лично я и спрашиваю сейчас. Вот сейчас есть какой-никакой механизм плагина, оттуда делать такое надо? Или что-то новое придумать? Если что-то новое, то в каком виде? Как вы хотите видеть э... ну распространение/поддержку/работу своего кода, в каком виде? В виде отдельной jar или как?

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 июл 2011, 12:32 
Не в сети

Зарегистрирован: 16 ноя 2007, 16:11
Сообщения: 829
Карма: 49
dimOn писал(а):
Цитата:
ShellFrame.getFrame - не гарантирует получение указателя. Поэтому и просим что-то типа callback после залогинивания пользователя.
как так не гарантирует? очень даже гарантирует, оно ВСЕГДА содержит ссылку на главный frame ,

Гарантировал бы, то не пришлось бы делать так:
Код:
bitel.billing.ShellFrame sf=null;
       while(null==sf){
          try {
             sf=bitel.billing.ShellFrame.getFrame();
              System.out.println("sf: "+sf);
             Thread.sleep(1000);
         } catch (InterruptedException e) {
            e.printStackTrace();
         }
       }
       process(sf);

dimOn писал(а):
это в коде используется в 100500 мест.

Только весь этот код этот получает управление уже после инициализации swinga....

dimOn писал(а):
Калбак КУДА после залогинивания? Чтобы сделать калбак, нужно как минимум какую-то инфраструктуру развернуть вокруг всего этого, не так ли? О чём лично я и спрашиваю сейчас. Вот сейчас есть какой-никакой механизм плагина, оттуда делать такое надо? Или что-то новое придумать? Если что-то новое, то в каком виде?

Нужна какая-то серьезная инфраструктура, что бы вызвать ready() после залогинивания пользователя?
Код:
interface GUIClientCB{
void ready(bitel.billing.ShellFrame);  // вызывается после готовности GUI к работе, т.е. ShellFrame и все статичные элементы GUI созданы.
...
}
....
class GUIExt implement GUIClientCB{
...
public static void main(String[] args) {
         GUIExt ge=new GUIExt();
         bitel.billing.ShellFrame.main(args,ge);


dimOn писал(а):
Как вы хотите видеть э... ну распространение/поддержку/работу своего кода, в каком виде? В виде отдельной jar или как?


Нашего кода? Вроде предполагалось, что вы предоставляете только низкоуровневый API, а всем остальным занимаются пользователи. Поэтому какая разница? Вас же не беспокоит, как пользователи распространяют свои скрипты, или те же manadы? Скрипты, например, можно вообще будет брать из тех же библиотек скриптов, что и для сервера. Или вы хотите включить созданный пользователями верхнеуровневый API в стандартный дистрибутив?

dimOn писал(а):
Вот сейчас есть какой-никакой механизм плагина, оттуда делать такое надо?

Он где-то описан в свободном доступе?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 июл 2011, 11:05 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
vdd писал(а):
dimOn писал(а):
Цитата:
ShellFrame.getFrame - не гарантирует получение указателя. Поэтому и просим что-то типа callback после залогинивания пользователя.
как так не гарантирует? очень даже гарантирует, оно ВСЕГДА содержит ссылку на главный frame ,

Гарантировал бы, то не пришлось бы делать так:
Код:
bitel.billing.ShellFrame sf=null;
       while(null==sf){
          try {
             sf=bitel.billing.ShellFrame.getFrame();
              System.out.println("sf: "+sf);
             Thread.sleep(1000);
         } catch (InterruptedException e) {
            e.printStackTrace();
         }
       }
       process(sf);

dimOn писал(а):
это в коде используется в 100500 мест.

Только весь этот код этот получает управление уже после инициализации swinga....


А зачем вам так рано вклиниваться ? Я думал что встраивают обычно свою tab на куда-нибудь из уже существующих, которая открывается намного позже чем происходит инициализация ShellFrame.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 июл 2011, 11:42 
Не в сети

Зарегистрирован: 16 ноя 2007, 16:11
Сообщения: 829
Карма: 49
Почему рано? (Это сейчас пришлось делать свой поток с самого начала и ловить в цикле появление рабочего шела - управление то больше никак не получить.)
Просим после залогинивания пользователя. Например, что бы можно было свои менюшки и кнопочки добавить. Или ActionHandlerы вовремя повесить, что бы пользователь не успел открыть нужное окно раньше, чем мы готовы это поймать и обработать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 июл 2011, 18:18 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Вы, похоже, не понимаете меня :facepalm: КУДА вы хотите писать этот код? Типа вот написали вы класс, итд и что дальше то? Вызывать ready надо ГДЕ? Для этого должна быть какая-то инфраструктура итд итп, которая даст понять что ваш код существует и там в нём (где?) надо вызвать этот ваш реади итд итп. Клиент должен в некоторых местах дёрнуть всё это как минимум. это где-то должно лежать и где-то внутри нашей проги должно быть зарегистрировано, что вот такой кусок кода имеет место быть и надо его дёрнуть. Понимаете?

Так вот есть механизм плагинов, собираете определённым образом, они так же ложатся в БД в прописанные модули, сервер их отдаёт клиенту, он эти jar кладёт и знает про них и периодически их дёргает. Если вы напишете внутри плагина ShellFrame.getFrame() то оно точно уже есть и делайте вы там чо хотите точно так же, это всё уже есть. Нет, в паблик доступе подробной документации нет, у меня это есть в TODO описать и плагин-рыбу я тоже дописал, просто сейчас у меня срочное ТЗ в работе и мне типа некогда это заняться снова.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 июл 2011, 18:36 
Не в сети

Зарегистрирован: 16 ноя 2007, 16:11
Сообщения: 829
Карма: 49
dimOn писал(а):
Вы, похоже, не понимаете меня :facepalm: КУДА вы хотите писать этот код? Типа вот написали вы класс, итд и что дальше то? Вызывать ready надо ГДЕ? Для этого должна быть какая-то инфраструктура итд итп, которая даст понять что ваш код существует и там в нём (где?) надо вызвать этот ваш реади итд итп. Клиент должен в некоторых местах дёрнуть всё это как минимум. это где-то должно лежать и где-то внутри нашей проги должно быть зарегистрировано, что вот такой кусок кода имеет место быть и надо его дёрнуть. Понимаете?


Прекрасно понимаю. Поэтому и показал код, который эту задачу решает другим способом. Вам не нравится, что ваш main будет не настоящим main - пусть будет определенный файл с определенным названием и определенным классом внутри - ваш код его загрузит (если он есть) и вызовет определенный метод. :roll:
dimOn писал(а):
Так вот есть механизм плагинов, собираете определённым образом, они так же ложатся в БД в прописанные модули, сервер их отдаёт клиенту, он эти jar кладёт и знает про них и периодически их дёргает. Если вы напишете внутри плагина ShellFrame.getFrame() то оно точно уже есть и делайте вы там чо хотите точно так же, это всё уже есть. Нет, в паблик доступе подробной документации нет, у меня это есть в TODO описать и плагин-рыбу я тоже дописал, просто сейчас у меня срочное ТЗ в работе и мне типа некогда это заняться снова.

Хорошо, раз плагин имеет фазу инициализации и не надо требовать от пользователя для этого выбора пункта меню, давайте подождем опубликования интерфеса плагинов.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 июл 2011, 22:55 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
а как такой вариант, мы в ShellFrame добавляем вызов класса указанного в конфиге, если он существует он будет вызван если нет, то ни чего не будет.
хотя такой вариант вы сами можете реализвать создав класс расширяющий наш ShellFrame... и вызывать его при старте клиента... и не нужны ни какие потоки, и проверки в цикле.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 июл 2011, 11:54 
Не в сети

Зарегистрирован: 16 ноя 2007, 16:11
Сообщения: 829
Карма: 49
skn писал(а):
а как такой вариант, мы в ShellFrame добавляем вызов класса указанного в конфиге, если он существует он будет вызван если нет, то ни чего не будет.

Хороший вариант. Фиксируйте это как API и мы это используем.
skn писал(а):
хотя такой вариант вы сами можете реализвать создав класс расширяющий наш ShellFrame... и вызывать его при старте клиента... и не нужны ни какие потоки, и проверки в цикле.

Ваш ShellFrame реализует поведение типа "Шаблонный метод" (Метод родительского класса вызывает метод, который может/должен быть переопределен в дочернем классе) или что-то подобное? Хорошо, зафиксируйте это как api и мы это используем.
(Ничего не понадобится делать дополнительно, что бы в 100500 местах вызова ShellFrame.getFrame все было хорошо?)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 25 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.063s | 66 Queries | GZIP : On ]