Seite 1 von 1
Funktionalität an Knopf dranhängen - in Java
Verfasst: Fr, 07.03.2008 19:11
von reibi
Hallo zusammen
ich hab mir ne schöne Methode gebaut, welche auch prima funktioniert, solange ich sie an einer Stelle explizit aufrufe.
Code: Alles auswählen
public static void storeAsDoc(XStorable myStorable) throws Exception{
PropertyValue[] storeProps = new PropertyValue[2];
storeProps[0] = new PropertyValue();
storeProps[0].Name = "FilterName";
//storeProps[0].Value = "MS Word 97";
storeProps[0].Value = "MS Word 97";
storeProps[1] = new PropertyValue();
storeProps[1].Name = "CompressMode";
storeProps[1].Value = "0";
myStorable.storeToURL("file:///c:/myTemp/mydoc.doc", storeProps);
}
Mein Problem ist, dass ich dies ausführen will wenn ich einen Kopf auf der Toolbar gedrückt habe. zB einen mit einem "Sternchen"-Symbol.
Wie mache ich einen Knopf, welcher dann diese Methode ausführt, wenn man ihn drückt?
vielen Dank im Voraus

Re: Funktionalität an Knopf dranhängen - in Java
Verfasst: Fr, 07.03.2008 19:19
von turtle47
Hallo Reibi,
schau mal
hier nach.
Jürgen
Re: Funktionalität an Knopf dranhängen - in Java
Verfasst: Mo, 10.03.2008 10:15
von reibi
Hallo Jürgen
also ich möchte das gerne mit Java lösen, da ich Funktionalität einbauen möchte die sich nur unter Java realisieren lässt.
Gibts denn da keine Möglichkeit?
Danke und Gruss
reibi
Re: Funktionalität an Knopf dranhängen - in Java
Verfasst: Mo, 10.03.2008 11:03
von hol.sten
reibi hat geschrieben:Gibts denn da keine Möglichkeit?
Klar geht das. Mehr über das Schreiben von Skripten in Java, und wie du diese aus OOo aufrufen kannst, findest du in diesen Threads:
- [Java] OOo Writer and Calc macro examples:
http://user.services.openoffice.org/en/ ... =45&t=1844
- [Java, BSH and JS Script examples] Display a message box:
http://user.services.openoffice.org/en/ ... =45&t=2721
- [Java] Remote debugging of scripts in Java:
http://user.services.openoffice.org/en/ ... =45&t=3145
Ich hoffe, du verstehst das ganze auch in englisch. Es geht dort tatsächlich darum, Java zu programmieren und das Ergebnis direkt aus OOo als Macro aufzurufen. Genau so wie ein OOo Basic, BeanShell oder JavaScript Macro. Und wenn das Macro in Java fertig ist, kannst du es in ein Menü hängen, einer Taste zuordenen, über die Toolbar aufrufen oder einem OOo Ereignis zuweisen.
Re: Funktionalität an Knopf dranhängen - in Java
Verfasst: Mo, 10.03.2008 19:00
von reibi
Das ist genau der Punkt:
wie häng ich etwas an einen Knopf in der Toolbar zb.
Meinetwegen will ich folgendeMethode aufrufen:
Code: Alles auswählen
public static void sayHello(){
system.out.println("hello");
}
Im Quelltext habe ich das ContainerObjekt wo der Knopf drin liegt und die Properties des Knopes selber,.
Wie stell ich das denn an. Meine Beispielmethode mit dem Knopf zu verknüpfen?
Danke und gruss

Re: Funktionalität an Knopf dranhängen - in Java
Verfasst: Mo, 10.03.2008 21:45
von hol.sten
reibi hat geschrieben:Das ist genau der Punkt: wie häng ich etwas an einen Knopf in der Toolbar zb.
Das ist erst der zweite Schritt. Zuerst einmal musst du deinen Java Code in eine Form bringen, dass du ihn aus OOo aufrufen kannst. Und dazu muss du Methoden mit einer vorgegebenen Signatur schreiben und OOo über eine entsprechende
parcel-descriptor.xml mitteilen, wie du deine Methoden genannt hast und über welchen CLASSPATH OOo deine Klasse und die zugehörigen JAR-Dateien finden kann. All das ist in den bereits genannten Links ausführlich und mit mehreren lauffähigen Beispielen erklärt.
Wenn du dann dein Java Skript über "Tools" (in deutsch "Extras") > "Run Macro..." (keine Ahnung, wie dieser Punkt in deutsch heißt) findest und ohne Fehler ausführen kannst, dann kannst du dich daran machen, es über "Tools" > "Customize..." deiner Toolbar zuzuweisen. Aber eins nach dem anderen.
reibi hat geschrieben:Im Quelltext habe ich das ContainerObjekt wo der Knopf drin liegt und die Properties des Knopes selber,.
Wie stell ich das denn an. Meine Beispielmethode mit dem Knopf zu verknüpfen?
Programmiere erst mal dein Java Skript, schreibe deinen parcel-descriptor.xml und installiere dann das Ganze unter OOo.