• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Реализация табличной части документа

  • Автор темы Автор темы nvyush
  • Дата начала Дата начала
А как тогда JTable на форме нарисовать? Можно ссылку на базу, плз.

Попутно возник вопрос - а в чём лучше джава-кодить? Я скачал JDK и NetBeans. В jar-проекте NetBeans подключил notes.jar. Взял пример с

На строчке
private Container contentPane;
NetBeans ругается - не знает типа (класса) Container.
swing лучше кодить в NetBeans, там рисовалка есть, для него, для Эклипса есть плага, но глюкавая
зачем вообще открывать форму - всё можно нарисовать в контейнере свинга
 
swing лучше кодить в NetBeans, там рисовалка есть, для него, для Эклипса есть плага, но глюкавая
зачем вообще открывать форму - всё можно нарисовать в контейнере свинга

А можно чуть подробнее? NetBeans можно подключить к Лотусовой jvm? Если java-код помещать в агента, как это должно выглядеть - вызывать агента с передачей ему NoteId, а в агенте рисовать swing-окно со всеми прибамбасами, правильно я понял?
 
-NetBeans неважно - какую жвм подключать (в общем случае) - это в опциях проекта настраивается
-да - можно передавать агенту с параметрами, а можно получить документ "контекст"
типа:
Код:
			session=getSession();
agentContext=session.getAgentContext();
curdoc=agentContext.getDocumentContext();
для тестирования (а ИДЕ) - можно писать ф-цию main, прям в коде и передавать UNID в параметрах запуска
потому как агент эту ф-цию не пользует
-рисовать (как упоминал выше) можно в нетбинсе - добавляем класс в проект с типом JPanel накидываем в него контролы и т.д.
и вот вам демка, я её подправил чуток :) - шобы перемещение по ячейкам изменить и отображение выделенного
Посмотреть вложение demo.zip
 
Imike не сочтите за наглость, просто уже мозги кипят, а спросить больше не знаю у кого. Короче, слил оба файла в агента, закоменнтил package и дописал в "класс по умолчанию" три строки.
Код:
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
SimpleTableSelectionDemo tableDemo = new SimpleTableSelectionDemo();
String[] args = {""};
tableDemo.main(args);
} catch(Exception e) {
e.printStackTrace();
}
}
}
Компилится без ошибок, но работать на отрез отказывается
 
щас нет, под рукой, Нотуса...
вызывайте java console и смотрите ошибки
main вам не нужен вовсе, просто SimpleTableSelectionDemo.createAndShowGUI() (причем объект table создавать не нужно)
ф-ция статическая
 
щас нет, под рукой, Нотуса...
вызывайте java console и смотрите ошибки
main вам не нужен вовсе, просто SimpleTableSelectionDemo.createAndShowGUI() (причем объект table создавать не нужно)
ф-ция статическая

Пробовал вызвать SimpleTableSelectionDemo.createAndShowGUI(), но он Private и вызываться отказывается. Я пока не рискую сильно переделывать код.
Под NetBeansom таблица открывалась, вот я и подумал, что смогу добиться того же результата просто "запихнув" всё в агента.
Java console что-то писала про security, но никаких ограничений на выполнение java я в настройка лотуса не нашёл. Сам сейчас тоже не имею доступа к лотусу, поэтому подробнее написать не могу. Агента я создавал в демо-базке, скачанной с nsftips, там есть три java-агента, которые запускаются, но сделать что-то своё по аналогии у меня пока не получается.
 
секурити зависит от типа агента (там есть типы секурити, у меня рабтает с умолчальным)
тока что проверил (правда под МакОСХ, Notes 8.51) - всё работает
пакедж не было нужды убирать...
-создаем агент
-Edit project, добавляем классы (кот. я выложил)

правим ф-цию с private на public
в начале агента пишем:
import org.swingxml.*;

в коде далее
SimpleTableSelectionDemo.createAndShowGUI()
 
секурити зависит от типа агента (там есть типы секурити, у меня рабтает с умолчальным)
тока что проверил (правда под МакОСХ, Notes 8.51) - всё работает
пакедж не было нужды убирать...
-создаем агент
-Edit project, добавляем классы (кот. я выложил)

правим ф-цию с private на public
в начале агента пишем:
import org.swingxml.*;

в коде далее
SimpleTableSelectionDemo.createAndShowGUI()
Мэни сэнькс, завтра попробую. С меня ++
 
скажу больше - таким "импортом в проект" удобно пользоваться, потому что разработку можно вести в любой ИДЕ, а результат реплейсит код в Нотусах (Edit Porject - кнопка Add/Replace File(s) )
 
скажу больше - таким "импортом в проект" удобно пользоваться, потому что разработку можно вести в любой ИДЕ, а результат реплейсит код в Нотусах (Edit Porject - кнопка Add/Replace File(s) )
Использую NetBeans следующей версии
Product Version: NetBeans IDE 6.7.1 (Build 200907230233)
Java: 1.6.0_16; Java HotSpot(tm) Client VM 14.2-b01
System: Windows XP version 5.1 running on x86; Cp1251; ru_RU (nb)

Под NetBeans'ом всё работает, но Java-файлы получаются с некорректным переводом строки, при импорте в агента лотус их текст "вытягивается" в одну строку, а компилятор выдаёт ошибку, что нехватает '}'. Копированием в ворд и обратно сделал нормальные переводы строк. Импортнул всё без ошибок. При запуске агента окно с таблицей не появляется. Java-консоль содержит следующее:
java.lang.SecurityException: выход с кодом 0
at COM.ibm.JEmpower.applet.AppletSecurity.failSecurity(AppletSecurity.java:602)
at COM.ibm.JEmpower.applet.AppletSecurity.failSecurity(AppletSecurity.java:589)
at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1487)
at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1455)
at java.lang.SecurityManager.checkExit(SecurityManager.java:760)
at javax.swing.JFrame.setDefaultCloseOperation(JFrame.java:393)
at org.swingxml.SimpleTableSelectionDemo.createAndShowGUI(SimpleTableSelectionDemo.
java:145)
at JavaAgent.NotesMain(JavaAgent.java:13)
at lotus.domino.AgentBase.runNotes(Unknown Source)
at lotus.domino.NotesThread.run(Unknown Source)
 
какой Нотус версии?
например для линукс 8.ххх ничего лучше - чем в секурити jvm/lib/security/java.policy написать permission java.security.AllPermission;
не нашёл
типа
grant {
permission java.security.AllPermission;
};

это "нарушит" java секурити, но ИБМ сами виноваты (уроды)

юзать 8.ххх клиентов не рекомендовалбы (очень сырые ещё и тяжёлые)

но мне кажется виной:
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
на него оно и ругаецо
at javax.swing.JFrame.setDefaultCloseOperation(JFrame.java:393)
меняем его на:
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

некорректный перевод каретки - в случ разных платформ
мои файлы, разумеется, писаны в линухах и перевод каретки там соответ. ;), тут пардона прашу (забыл совсем)
 
Ура, заработало!
ЛН версии 8.0.1 (фев 07 2008), клиента поменяли на 8 волевым решением рук-ва.
Возник вопрос по переводу строк - вордом сделал нормальные для винды, но нетбинс упорно меняет их на линуховые. Нет ли там какой настройки, я чего-то никак не найду.
 
не помню где (и вобще возможноли внутри)
для новых файлов - оно само делает как на платформе
а вот утили есть (перед покладеванием файлов, в нетбинс - преобразовать):

могу версию в виндовом формате сделать
 
не помню где (и вобще возможноли внутри)
для новых файлов - оно само делает как на платформе
а вот утили есть (перед покладеванием файлов, в нетбинс - преобразовать):

могу версию в виндовом формате сделать

Imake, спасибо огромное, более-менее стало получаться.
NetBeens упорно делает переводы строк линуксовыми, так что я написал пакетник, который копирует java-файлы в другую папку и утилиткой конвертит виндовые переводы строк. Запускаю пакетник перед импортом файлов в агента Лотус.
Наткнулся на проблему - получаю ошибку "package javax.swing.GroupLayout does not exist". Как я понял, такого пакета в Лотусовом swing нет, но убрать его из кода не получается - в NetBeens данные участки кода нередактируемые. "Выкусывать" вручную в Лотусе все ссылки на него тоже не очень здорово - слишком часто встречается. Можно ли это победить "малой кровью"?
 
ну по поводу пакаджей - надо ВМ для проекта назначить версии 1.4 и придется без этих контролов обходиться
странно что переводы каретки не виндовые...
это для новых файлов?
 
ну по поводу пакаджей - надо ВМ для проекта назначить версии 1.4 и придется без этих контролов обходиться
странно что переводы каретки не виндовые...
это для новых файлов?

ВМ назначен 1.4.
Проблема в том, что пакидж отвечает за выравниевание элементов на форме, код под него NetBeens генерит сам (на голубом фоне) и редактировать не даёт.
Пробовал у формы менять свойство "Layout Generation Style" с "Standard Java 6 code" на "Swing Layout Extensions Library" при этом пакидж поменялся на org.jdesktop.layout.GroupLayout, но Лотус и его не видит. Комментрирую все ссылки на пакидж в Лотусе, тогда компилируется без ошибок, но стоит чуть подправить расположение элементов на форме, приходится импортировать и соответсвенно комментировать по новой.

Проект создвал "с нуля", но NetBeens упорно не удаляет CR. Переводы каретки уже не считаю большой проблемой, борюсь как указал выше.
 
проект д.б. обычный, а не jdesktop
достаточно добывить визуальный класс в проект (новый класс, JFrame типа или JPanel)
и далее накидывать контролы
др. словами не вставлять контейнер, кот. отсут. в Нотусёвой java
и можно подправить темплэйт (в т.ч. генеримый код)

свинг лэйаут - это отдельный jar, совместимость его с jvm 1.4 я не знаю

проверил про темплэйт - действительно низя обойти (иначе визуальность пропадет)
увы - условной компиляции в 1.4 нету :)
можно попробобвать подкласс организовать, но пока не придумал как (типа вынести чать кода, кот. меняется)
 
проверил - библа swing-layout-1.0.3.jar работает (кладем в jvm/lib/ext)
нотуса 7.0.4
тока в темлейте надо исправить на DISPOSE_ON_CLOSE (шоб руками не править в нотусах)
 
проверил - библа swing-layout-1.0.3.jar работает (кладем в jvm/lib/ext)
нотуса 7.0.4
тока в темлейте надо исправить на DISPOSE_ON_CLOSE (шоб руками не править в нотусах)

DISPOSE_ON_CLOSE стоит, контролы использую стандартные swing'овые. Когда выбираю Layout типа Null, код влетает в Лотус на ура (с учётом конвертации, но это мелочи). Одна проблема - в этом случае окно открывается минимального размера, т.е. не свёрнутое в панели задач, а как окно, границы которого уменьшили до нельзя. То же самое впрочем и в NetBeens'е. Нормальный размер только если layout Absolute или Free Design, но их Лотус не понимает. Пытаюсь указать размеры вручную, но пока не соображу как.

Подкладывать библиотеки в jvm/lib/ext пока не научился, а озадачивать этим сервис-деск очень нехочется - юзеров много, сложно отслеживать.
В любом случае премного благодарен за оказанную помощь
 
просто положите в базу (в любой док) jar
при старте агента - проверяйте его присут. в пути ${java.home}/lib/ext
типа: System.getProperty("java.home");
ежели его там нет - детачте туда его и просите юзера передернуть нотес (диалоговое окошко)
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Курс AD