• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Popup menu из Ноутсвого клиента

imendan

Green Team
22.09.2010
159
4
BIT
0
Приветствую, господа! В целях модернизации UI-компонентов для клиентского Ноутса, начал искать возможности создать всплывающее меню из Хотспота. В начале пытался подружиться с функцией TrackPopupMenuEx из "user32.dll". Но потанцевав с бубнами, решил эти окна запускать используя Swing-компоненты (кусочек неработающего кода ниже).

У меня к вам несколько вопросов:
1. Стоит ли использовать этот подход? Если нет, то какие в нем недостатки? Есть ли альтернативы?
2. В примере, найденном в просторах нета, используется MouseAdapter. И соот-но, его компонент (e.getComponent() в popup.show). Я указал null, поскольку вызов идет уже через нативного клиента лотус (button click). Что я могу делать не так?

JMenuItem menuItem;
java.awt.Point point = MouseInfo.getPointerInfo().getLocation();

int x = (int) point.getX();
int y = (int) point.getY();

JPopupMenu popup = new JPopupMenu();
menuItem = new JMenuItem("A popup menu item");
popup.add(menuItem);
menuItem = new JMenuItem("Another popup menu item");
popup.add(menuItem);

popup.show(null, x, y);
 

oshmianski

Достойный программист
Lotus Team
25.04.2012
711
59
BIT
3
Когда-то баловался WindowsAPI . Вроде даже работало. Как сейчас не знаю.

Но, если честно, все, что касается UI для Notes, лучше использовать нативное.
Всякие Swing'и, WinAPI от версии к версии и на разных ОС будет очень проблематично поддерживать.
 
  • Нравится
Реакции: garrick

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 949
609
BIT
260
1. Стоит ли использовать этот подход? Если нет, то какие в нем недостатки? Есть ли альтернативы?
стоит забыть про нотусневое UI ;) и использовать хэпаги, там нет подобных заморочек
 
  • Нравится
Реакции: imendan и garrick

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 949
609
BIT
260
ох был бы я осторожен с изучением и использованием XPages.
очень уж туманна их судьба в следующих релизах Notes.
весь интерфейс нотусни туманен (а местами очень ограничен), хэпаги выпилить - не выпилят, java стек будут обновлять (к тому же будет уход от оракловой на OpenJDK), не вижу причин для тревоги ;)
 

savl

Lotus Team
28.10.2011
2 610
313
BIT
293
Спасибо за ссылку. Но мне хотелось Swing использовать.
с java будет проблема, это только Агент.
Далее popup не может жить без кнопки/диалога или чего-то еще, именно на java.
А диалог/кнопка или что-то еще на java не может жить без application.
Итого: надо запускать агент, который покажет скрытое приложение, которое покажет скрытый диалог, который покажет уже popup.
Одно могу сказать точно: на win работать будет, на mac - нет.
Лично проверял.
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
38
с java будет проблема, это только Агент.
Далее popup не может жить без кнопки/диалога или чего-то еще, именно на java.
А диалог/кнопка или что-то еще на java не может жить без application.
Итого: надо запускать агент, который покажет скрытое приложение, которое покажет скрытый диалог, который покажет уже popup.
Одно могу сказать точно: на win работать будет, на mac - нет.
Лично проверял.
Подобный вопрос уж раз 10 поднимался)
И ответ был один - хэпага и Леер
Других норм вариантов нет
 
  • Нравится
Реакции: lmike

savl

Lotus Team
28.10.2011
2 610
313
BIT
293
Подобный вопрос уж раз 10 поднимался)
И ответ был один - хэпага и Леер
Других норм вариантов нет
на basic клиенте =)
но в целом да, с другой стороны если есть xpage, то классике не долго осталось, только критичным приложениям - ИМХО.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!