Autor Thema: Java Agent Probleme mit JFrame  (Gelesen 9481 mal)

Offline Loki

  • Frischling
  • *
  • Beiträge: 14
  • Geschlecht: Männlich
Java Agent Probleme mit JFrame
« 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
gruß
Loki

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: Java Agent Probleme mit JFrame
« Antwort #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
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.

Offline Loki

  • Frischling
  • *
  • Beiträge: 14
  • Geschlecht: Männlich
Re: Java Agent Probleme mit JFrame
« Antwort #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?
gruß
Loki

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: Java Agent Probleme mit JFrame
« Antwort #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


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.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz