AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
02.04.20 - 11:00:59
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino Sonstiges
| |-+  Java und .NET mit Notes/Domino (Moderatoren: Axel, m3)
| | |-+  Java Agent Probleme mit JFrame
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Java Agent Probleme mit JFrame  (Gelesen 7698 mal)
Loki
Frischling
*
Offline Offline

Geschlecht: Männlich
Beiträge: 14


« am: 01.02.13 - 14:29:48 »

Hallo liebe Atnotes User,

Ich möchte einen Agenten in Java schreiben, der unter anderem ein JFrame benutzt und habe dabei mehrere Probleme.

Problem 1:
Ich habe die Einsprungklasse&Methode die standardmäßig erzeugt wird, und erzeuge in ihr ein neues Objekt von einer selbstgeschriebenen Klasse, die JFrame erweitert. Dabei übergebe ich unter anderem den AgentContext. Im Konstruktor des JFrames ist der Kontext noch verfügbar (System.out.println(ac) zeigt mir != null). In einer Methode der Klasse, die bei einem Button-Aufruf ausgeführt wird ist der AgentContext jedoch leider wieder null.
Woran könnte das liegen?

Problem 2:
Da der Agent ein eigener Thread ist, und das JFrame nicht in ihm läuft, läuft der Agent schon ab, obwohl das JFrame noch nicht geschlossen wurde. Das kann ich nur kontrollieren, indem ich im Agenten folgenden Code einfüge, was ich persönlich blöd finde:

Code:
while(!myframe.finished)
{
sleep(150);
}

Problem 3:
Ich möchte, dass nachdem der Anwender auf einen Button im JFrame geklickt hat ein neues Document (Form = "test") erstellt wird, welches dann im UI geöffnet wird, damit der Anwender es bearbeiten kann. Java kann jedoch leider nicht auf das UI zugreifen. Deshalb passiert das mit einem LotusScript Agenten ("test3"). Dieser sieht folgendermaßen aus:

Code:
Sub Initialize

Dim ses As New NotesSession
Dim doc As NotesDocument
Dim uiws As New NotesUIWorkspace


Set doc = ses.Currentdatabase.Createdocument()
Call doc.Replaceitemvalue("Form","test")
Call uiws.Editdocument(True,doc)


End Sub

Dieser Agent funktioniert, wenn ich ihn aus einer View über einen Button ausführe.

Wenn in der View jedoch für den ersten (Java)Agenten ein Button ist, der nach einem Klick auf den Button im JFrame den Test3-Agenten ausführt, dann
öffnet sich zwar ein neues Document, das wird aber fehlerhaft im UI angezeigt. (Es sieht aus, als wäre die View auf die Form gescreenshottet). Ich kann das Document dann auch nicht speichern, oder mir seine Eigenschaften anschauen.

Problem 4:
Das ist nichts gravierendes.

Im JFrame wird im Konstruktor ein JButton erzeugt. Dieser wird mit setSize(100,100) auf 100x100 gesetzt und mit setLocation(200,200) an eine Position gesetzt. Trotzdem füllt mir der Button das gesamte JFrame aus. (Location 0,0 und Size 800,600)

Ich hoffe ich habe mich verständlich ausgedrückt. Falls es noch Fragen gibt, dann beantworte ich diese gerne.

Danke für die Hilfe und Gruß
Loki
Gespeichert

gruß
Loki
Ralf_M_Petter
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1879


Jeder ist seines eigenen Glückes Schmied


WWW
« Antworten #1 am: 04.02.13 - 14:05:58 »

Prinzipiell: Java Swing aus Notesagents funktioniert nicht vernünftig und die IBM wird dir Bugs in diesem Bereich nicht fixen. Ich weiß, von was ich spreche, da ich sehr viel mit Swing Dialogen in Notes gemacht habe und alles versucht habe von der IBM die Bugs gefixt zu bekommen. Ich habe sogar mal auf einer DNUG Veranstalung mit Entwicklern von Notes (Niklas Heidloff und Maureen Leeland) versucht eine Lösung für Probleme in diesem Bereich zu finden und wurde nur auf den neuen Standardclient verwiesen.

Bezüglich deinene Problemen müsste ich zuerst wissen, für welche Client Version du entwickelst.

Grüße

Ralf
Gespeichert

Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.
Loki
Frischling
*
Offline Offline

Geschlecht: Männlich
Beiträge: 14


« Antworten #2 am: 05.02.13 - 08:01:18 »

Ich entwickle für 8.5 Clients.

Das Problem mit dem Aufrufen des zweiten Agenten hat sich jedoch schon erledigt. Aus dem Backend kann man einfach kein Frontend aufrufen. So wurde es mir gesagt.

Wenn jedoch Java Swing so buggy ist, dann brauch ich das ja eh nicht weiter zu verfolgen.

Funktioniert nur Java Swing nicht? Heißt das, dass es mit AWT vielleicht besser klappt? Oder muss ich hier ganz auf GUI verzichten?
Gespeichert

gruß
Loki
Ralf_M_Petter
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1879


Jeder ist seines eigenen Glückes Schmied


WWW
« Antworten #3 am: 05.02.13 - 09:58:12 »

Was dir gesagt wurde, ist völliger Unsinn. Natürlich kann man vom Backend Agents aufrufen, die auf das Frontend  zugreifen. Es ist auch Unsinn, dass man von Java nicht auf das UI zugreifen kann. Sieh dir mal http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Notes_Client_Java_UI_APIs-v8.5.2 an. Dort sind die UI Funktionen von Java detailiert beschreiben. Als UI verwendest du unter Notes in Java am besten SWT/Jface. Das ist das UI Toolkit, dass Notes selber verwendet. Wobei am besten ist, wenn du deine Funktionalität nicht in Javaagents verpackst sondern als Eclipse Plugins in Lotus Notes deployest.

Wenn du konkrete Fragen hast, werde ich Sie gerne beantworten. Für eine generelle Einführung in RCP Entwicklung ist ein Forum eher nicht geeignet. Da wäre es sicher besser eine Schulung zu besuchen.

Grüße

Ralf


Gespeichert

Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: