• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Confirm-сообщение для Notes

  • Автор темы StarikStarik2705
  • Дата начала
S

StarikStarik2705

всем здраствуйте, создал в лотус клиенте на ява такой класс
Код:
import javax.swing.JOptionPane;
public class JavaMessagebox {
public void Messagebox (String message) {
JOptionPane.showMessageDialog(null, message);
}
}
и потом в Лотусе сделал кнопку
Код:
Use "LS2J"
Use "JavaMessagebox"
Uselsx "*javacon"
Dim mySession As JavaSession
Dim myClass As JavaClass
Dim myObject As JavaObject
Set mySession = New JavaSession()
Set myClass = mySession.GetClass("JavaMessagebox")
Set myObject = myClass.CreateObject()
myObject.Messagebox ("Это Msgbox на ЯВЕ!!!!!!")
в результате увидел красивый меседж явы.
но столкнулся с проблемой, а как сделать конфирм для лотуса на яве?
нашёл в инете код
Код:
import javax.swing.JOptionPane;
public class JavaMessagebox {
public void msgConfirm (String message){
int option = JOptionPane.showConfirmDialog(null,
message,
"Confirm",
JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE);
if (option == JOptionPane.NO_OPTION ) {
return;
}
}
}
переписал под себя добавил myObject.msgConfirm ("Это Msgbox на ЯВЕ!!!!!!"), и по нажатию летит ошибка "instanse member msgConfirm does not exist". кто то сталкивался с таким? что не правильно написано? и как вообще это запустить
 
Последнее редактирование модератором:
T

turumbay

переписал под себя

...

что не правильно написано? и как вообще это запустить

Дык кто ж вас знает, что у вас неправильно написано :) Вы запостили рабочие куски, но почему-то забыли (постеснялись?) привести неработающий код.

Работающий вариант:

Код:
"(java library)MsgBoxExample"

import javax.swing.JOptionPane;
public class MsgBoxExample {
public void confirmMessage(String msg){
JOptionPane.showConfirmDialog( null , msg, "confirm", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
}
}
"(ls library)MsgBoxExample.LS2J"
Uselsx "*javacon"
Use "MsgBoxExample"
Function showConfirmMessage( msg As String )
Dim jsession As New JavaSession
Dim msgBoxExampleClass As JavaClass
Set msgBoxExampleClass = jsession.GetClass("MsgBoxExample")
Dim msgBoxExampleInstance As JavaObject
Set msgBoxExampleInstance = msgBoxExampleClass.createObject()
Call msgBoxExampleInstance.confirmMessage(msg)
End Function
"(view action)"
Код:
Use "MsgBoxExample.LS2J"
Sub Click(Source As Button)
Call showConfirmMessage("Bugaga")
End Sub
 
Последнее редактирование модератором:

VladSh

начинающий
Lotus Team
11.12.2009
1 783
157
BIT
53
CтарыйStarik
1. Темы по Java и LS2J обсуждаются в форуме link removed.
2. Заворачивайте код в code соответсвующего типа и spoiler! Зайдите в редактирование своего сообщения и увидите, как это сделано.
Пожалуйста, придерживайтесь правил.
 
S

StarikStarik2705

CтарыйStarik
1. Темы по Java и LS2J обсуждаются в форуме link removed.
2. Заворачивайте код в code соответсвующего типа и spoiler! Зайдите в редактирование своего сообщения и увидите, как это сделано.
Пожалуйста, придерживайтесь правил.
благодарю учту, просто не внимательно посмотрел
 

garrick

Lotus Team
26.10.2009
1 349
151
BIT
165
Просто интересно... Зачем вызывать явовский JOptionPane через Lotus Script? Разве MessageBox недостаточно?
 

VladSh

начинающий
Lotus Team
11.12.2009
1 783
157
BIT
53
garrick
Мне тоже это было интересно :) Предположу, что просто для теста.
 

VladSh

начинающий
Lotus Team
11.12.2009
1 783
157
BIT
53
Не LS2J, но решил запостить, чтобы где-то запомнилось.

Попался агент, запускаемый пользователем из меню, написанный на Java (там идёт сбор данных и экспорт в другие системы), и в нём был вывод сообщения пользователю на Java кодом:
Java:
JOptionPane.showMessageDialog(null, "Текст сообщения", "", JOptionPane.PLAIN_MESSAGE);

Это сообщение скрывалось бесследно, если кликнуть мимо окошка сообщения либо переключиться на другое приложение, а потом вернуться в Notes, и в этом случае в статусной строке до бесконечности бегал бегунок, нажатие на крестик которого иногда роняло Клиента с такой ошибкой:
Java:
ThreadDeath: 'java.lang.ThreadDeath'
java.lang.Thread.stop(Thread.java:918)
java.lang.ThreadGroup.stopHelper(ThreadGroup.java:696)
java.lang.ThreadGroup.stopHelper(ThreadGroup.java:701)
java.lang.ThreadGroup.stop(ThreadGroup.java:678)
lotus.domino.AgentLoader.runAgent(Unknown Source)

Сделал так:
Java:
import javax.swing.JDialog;
import javax.swing.JOptionPane;

public class ToolsUI {
   
    /**
     * свой messageBox, т.к. JOptionPane.showMessageDialog не делает отдельного процесса под Lotus - при клике вне окна сообщения найти его потом невозможно
     */
    static public void messageBox(String sMessage, int messageType, String sTitle) {
        try {
            JOptionPane opt = new JOptionPane(sMessage, messageType, JOptionPane.OK_CANCEL_OPTION, null, new Object[]{"OK"});
            final JDialog dlg = opt.createDialog(sTitle);
            new Thread(
                new Runnable() {
                    public void run() {
                        try {
                            Thread.sleep(10000);        // через 10 сек закрываем программно, чтобы клиент не вис
                            dlg.dispose();
                        }
                        catch (Throwable th) {
                            th.printStackTrace();
                        }
                    }
                }
            ).start();
            dlg.setVisible(true);
            }
        catch (java.lang.ThreadDeath e) {
            // пользователь завершил агент вручную, нажав на крестик в статусбаре.
            // если не делать этой обработки, то клиент в этом случае просто сносит...
        }
    }
   
}
 

garrick

Lotus Team
26.10.2009
1 349
151
BIT
165
SWT в 9-ке нормально будет инициализироваться или все "заблочит"?
По теории там сломаться нечему. Уже, честно говоря, и не помню использовал ли я SWT в 9-ке, но в 8-ке в полный рост. А сейчас на новой работе в основном XPages.
 
Мы в соцсетях:

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