Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino
Notesdocument vorhanden - daraus das NotesUIDocument erhalten
Ralf_M_Petter:
Ok, nächste Frage wo steht dieser Code. Ist er in einer Eclipse Aktion, oder ? Sind in dem Plugin die Abhängikeiten richtig gesetzt?
Grüße
Ralf
DaHias:
Ich hab den Code in einem Java Agenten im Notes Designer erstellt und starte den Agenten dann manuell über die Aktionsleiste im Lotus Client.
Der Code wäre der folgende:
--- Code: ---package com.esg.print.pdf;
import lotus.domino.*;
import java.io.*;
import com.ibm.notes.java.ui.NotesUIWorkspace;
import com.ibm.notes.java.ui.documents.NotesUIDocument;
import com.ibm.notes.java.api.*;
import com.ibm.notes.java.api.data.NotesDocumentData;
import com.ibm.notes.java.api.data.NotesDocumentKeyData;
import org.eclipse.ui.IWindowListener;
import org.osgi.*;
public class PDFPrinter extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
NotesUIWorkspace ws = new NotesUIWorkspace();
lotus.domino.Document doc = null;
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {
System.out.println(e);
}
System.out.println(ws.toString());
//Holt sich alle markierten Dokumente
DocumentCollection dc = agentContext.getUnprocessedDocuments();
System.out.println("Count = " + dc.getCount());
doc = dc.getFirstDocument();
while (doc != null)
{
NotesDocumentData docData = new NotesDocumentData(doc);
ws.openDocument(true, docData);
NotesUIDocument uidoc = ws.getCurrentDocument();
uidoc.print();
doc = dc.getNextDocument(doc);
}
} catch (Exception e) {
//e.printStackTrace();
System.err.println(e.getClass().getName() + ": " + e.getMessage());
}
}
}
--- Ende Code ---
Was genau meinst du mit Abhängigkeiten?
Ralf_M_Petter:
Schurke, gib zu, dass du das JAR File der UI Classes in deinen Agent reingetrickst hast ;-)
Die Java UI Classes sind in Agents meines Wissens nach nicht supported und wenn du nichts an dem Agent rumgedreht hättest würde er Sie dir gar nicht zur Auswahl geben.
Zum Hintergrund. Java in Notes Agenten und auch Applets läuft in einer ganz anderen JVM Instanz, als das ganze Eclipse drumherum. Deshalb hast du von einem Agenten prinzipiell keinen Zugriff auf die ganzen tollen Eclipsefunktionen. Das einzige was man machen kann ist in Eclipse einen Hintergrundthread zu programmieren, der über IP Kommunikation von deinem Agent angesprochen wird. Das ermöglicht es von Notesagenten aus Eclipse Aktionen durchzuführen.
Grüße
Ralf
DaHias:
Moin Moin,
Hm... ok ich glaub da hast du nicht ganz unrecht. Hab tatsächlich die UI Classes da eingebunden ::)
Eigentlich soll das ganze am Ende gar nicht in einem Agenten laufen, sondern in einem Sidebar Plugin, das ich über Eclipse dann stricken wollte. Ich wollte nur die Funktionen erst einmal ein einem Agenten testen.
Aber demnach sollte ich in diesem Sidebar Plugin keine Probleme haben oder?
Danke! :)
Ralf_M_Petter:
In einem Sidebar plugin sollte es problemlos funktionieren. Wie ich schon gesagt habe, sind die Umgebung von Java Agents komplett etwas anderes als Eclipse Plugins. Ein Mustersidebarview zum testen von Code ist aber in Eclipse eine Sache von unter 2 Minuten.
Grüsse Ralf
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln