forum.bitel.ru http://forum.bitel.ru/ |
|
"Скрипты" на стороне GUI клиента http://forum.bitel.ru/viewtopic.php?f=22&t=5622 |
Страница 1 из 1 |
Автор: | vdd [ 21 июн 2011, 12:40 ] |
Заголовок сообщения: | "Скрипты" на стороне GUI клиента |
Планируется ли (а может уже есть в 5.2) функционал, позволяющий взаимодействовать с пользователем непосредственно в GUI клиенте? Окошко там открыть с контролами, пункт меню добавить, и т.д. и т.п. |
Автор: | dimOn [ 21 июн 2011, 13:51 ] |
Заголовок сообщения: | Re: "Скрипты" на стороне GUI клиента |
из скриптов не планируется |
Автор: | skyb [ 21 июн 2011, 14:30 ] |
Заголовок сообщения: | Re: "Скрипты" на стороне GUI клиента |
dimOn писал(а): из скриптов не планируется Я из динамических ява класов? ![]() ![]() |
Автор: | vdd [ 21 июн 2011, 16:24 ] |
Заголовок сообщения: | Re: "Скрипты" на стороне GUI клиента |
dimOn писал(а): из скриптов не планируется Не обязательно скрипты. Не зря "скрипты" были в кавычках. Какой-либо механизм планируется? Если планируется, то что за механизм, если не секрет и когда ожидается. А то опять сделаем, а оно уже в 5.2 ![]() |
Автор: | dimOn [ 21 июн 2011, 17:44 ] |
Заголовок сообщения: | Re: "Скрипты" на стороне GUI клиента |
плагины? ![]() |
Автор: | vdd [ 21 июн 2011, 18:40 ] |
Заголовок сообщения: | Re: "Скрипты" на стороне GUI клиента |
Насколько мы видели, плагины работают только строго в определенные моменты. Произвольную активность они либо не могут осуществлять, либо понадобятся дополнительные манипуляции, не подерживаемые инфраструктурой плагинов, а открытие закладки плагина будет использоваться только как инициализация, что может оказаться не приемлимым. Если ошибаемся и современная реализация плагинов более гибкая, то будем только рады. |
Автор: | vdd [ 22 июн 2011, 19:01 ] |
Заголовок сообщения: | Re: "Скрипты" на стороне GUI клиента |
Вложение:
|
Автор: | skyb [ 23 июн 2011, 04:50 ] |
Заголовок сообщения: | Re: "Скрипты" на стороне GUI клиента |
Получилось впихать чтоль? |
Автор: | vdd [ 23 июн 2011, 11:48 ] |
Заголовок сообщения: | Re: "Скрипты" на стороне GUI клиента |
Ну прям "впихать". Это же биллинг все таки. ![]() Все вполне аккуратно. (Есть некоторые "некрасивости", но большинство из них издержки НИОКР и поддаются косметологии). Сейчас сосредоточимся на возможности обработки запросов клиента биллинга и ответов сервера. |
Автор: | Cromeshnic [ 23 июн 2011, 12:12 ] |
Заголовок сообщения: | Re: "Скрипты" на стороне GUI клиента |
Ой, здорово, а на вики потом выложите? |
Автор: | vdd [ 23 июн 2011, 12:18 ] |
Заголовок сообщения: | Re: "Скрипты" на стороне GUI клиента |
Cromeshnic писал(а): Ой, здорово, а на вики потом выложите? Если Бител не забанит. ![]() Пока здесь результаты НИОКР планируем публиковать. Что бы коллективный разум подключился. Код, делающий то, что на картинке будет постом ниже. |
Автор: | focus [ 23 июн 2011, 12:20 ] |
Заголовок сообщения: | Re: "Скрипты" на стороне GUI клиента |
Тоже хочу код. ![]() В соседней ветке пришли к тому, что плагин поможет раскрасить клиентское приложение. |
Автор: | vdd [ 23 июн 2011, 12:24 ] |
Заголовок сообщения: | Re: "Скрипты" на стороне GUI клиента |
Работает на 5.1. Клиент 421 сборки. Запускалось из-под эклипса. Слипы и циклы, кроме первого, вобщем-то лишние (особенно sleep(10000) - это уже совсем от лени), и теоретически могут быть заменены на ActionListenerы: Код: package bgb;
import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Icon; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JOptionPane; import javax.swing.JToggleButton; import javax.swing.SwingUtilities; import javax.swing.plaf.metal.MetalIconFactory; import bitel.billing.module.common.UniToolBar; import bitel.billing.module.contract.ContractTabbedPane; public class PrimeThread extends Thread { public void sleep(int s){ try { Thread.sleep(s); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void printComp(Component cs[]){ for(int i=0;i<cs.length;i++){ System.out.println("cs: "+cs[i].getName()+" "+cs[i].getClass()); } } public void process(final bitel.billing.ShellFrame sf){ JMenuBar mb=null; // ru.bitel.bgbilling.client.common.BGMenuBar bmb=(ru.bitel.bgbilling.client.common.BGMenuBar) mb; while(null==mb){ ContractTabbedPane t=sf.getTabbedPane(); mb=sf.getJMenuBar(); sf.getContentPane().getComponents(); System.out.println("mb: "+mb+" "+t); printComp(sf.getContentPane().getComponents()); sleep(3000); } sleep(10000); final JMenuBar fmb=mb; Runnable doWork = new Runnable() { public void run() { bitel.billing.module.common.UniToolBar bar=getBar(sf.getContentPane().getComponents()); printComp(bar.getRootPane().getComponents()); Icon icon = MetalIconFactory.getFileChooserDetailViewIcon(); JToggleButton button = new JToggleButton(icon); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(new JFrame(), "Наш диалог", "Dialog", JOptionPane.ERROR_MESSAGE); } }); bar.add(button); bar.validate(); // bar.repaint(); fmb.add(new JMenu("Наше меню")); fmb.validate(); } }; SwingUtilities.invokeLater(doWork); } private bitel.billing.module.common.UniToolBar getBar(Component[] cs) { for(int i=0;i<cs.length;i++){ if(cs[i].getClass()==bitel.billing.module.common.UniToolBar.class) return (UniToolBar) cs[i]; } return null; } public void run() { 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); } } |
Автор: | vdd [ 23 июн 2011, 12:28 ] |
Заголовок сообщения: | Re: "Скрипты" на стороне GUI клиента |
Чуть самое главное не забыл ![]() Код: package bgb;
public class BgbStarter { /** * @param args */ public static void main(String[] args) { try { PrimeThread p = new PrimeThread(); p.start(); bitel.billing.ShellFrame.main(args); } catch(Exception ex){System.out.println(ex); } } } |
Автор: | dimOn [ 23 июн 2011, 16:18 ] |
Заголовок сообщения: | Re: "Скрипты" на стороне GUI клиента |
а я не понял это что и зачем ![]() |
Автор: | vdd [ 23 июн 2011, 16:28 ] |
Заголовок сообщения: | Re: "Скрипты" на стороне GUI клиента |
dimOn писал(а): а я не понял это что и зачем ![]() А это мы не дождались ответа на вопросы в начале темы. Цитата: Какой-либо механизм планируется?
Если планируется, то что за механизм, если не секрет и когда ожидается. А то опять сделаем, а оно уже в 5.2 ![]() |
Автор: | dimOn [ 23 июн 2011, 16:50 ] |
Заголовок сообщения: | Re: "Скрипты" на стороне GUI клиента |
так где тут скрипты то? |
Автор: | Phricker [ 23 июн 2011, 16:55 ] |
Заголовок сообщения: | Re: "Скрипты" на стороне GUI клиента |
Мб это окошко будет из скриптов управляться? |
Автор: | vdd [ 23 июн 2011, 17:02 ] |
Заголовок сообщения: | Re: "Скрипты" на стороне GUI клиента |
dimOn писал(а): так где тут скрипты то? vdd писал(а): Не обязательно скрипты. Не зря "скрипты" были в кавычках.
|
Автор: | vdd [ 23 июн 2011, 17:04 ] |
Заголовок сообщения: | Re: "Скрипты" на стороне GUI клиента |
А скрипты, кстати, можно добавить. При желании. |
Автор: | vdd [ 23 июн 2011, 18:15 ] |
Заголовок сообщения: | Re: "Скрипты" на стороне GUI клиента |
Цитата: Сейчас сосредоточимся на возможности обработки запросов клиента биллинга и ответов сервера. Результат сосредоточения (квадратики вместо кирилицы оставлены умышлено): Вложение:
|
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |