Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Forms und JavaBeans Enhanced JavaBean Support in Forms 9i | Dr. Gudrun Pabst | Trivadis GmbH |

Ähnliche Präsentationen


Präsentation zum Thema: "Forms und JavaBeans Enhanced JavaBean Support in Forms 9i | Dr. Gudrun Pabst | Trivadis GmbH |"—  Präsentation transkript:

1 Forms und JavaBeans Enhanced JavaBean Support in Forms 9i | Dr. Gudrun Pabst | Trivadis GmbH |

2 2 © Copyright Trivadis GmbH Inhalt:  Einführung  Einfaches Beispiel  Setzen und Abfragen von Properties  Indexed Properties  Aufruf von JavaBean-Methoden  JavaBean-Events  Eigene Datentyp-Encoder Forms und JavaBeans – Inhalt

3 3 © Copyright Trivadis GmbH Einführung Wofür JavaBeans?  ab Forms9i: Forms nur noch im Web  Problem: Aufruf von Client-Programmen funktioniert mit Forms-Mitteln nicht mehr  JavaBeans:  Standardisierte Java-Komponenten  Enhanced JavaBean-Support von Forms unterstützt die JavaBean- Methoden  Beans von Drittanbietern können genutzt werden Dr. Gudrun Pabst: Struktur der JavaBeans: siehe JavaBean-Spezifikation, Kapitel 8.3/8.4/8.5: Design Patterns for Properties/for Events/for Methods Dr. Gudrun Pabst: Struktur der JavaBeans: siehe JavaBean-Spezifikation, Kapitel 8.3/8.4/8.5: Design Patterns for Properties/for Events/for Methods

4 4 © Copyright Trivadis GmbH Einführung Eine JavaBean umfasst:  Properties  d.h. get -, set -Methoden  Indexed Properties  d.h. get -, set -Methoden für die gesamte Property und für einen einzelnen Index  Methoden  Events Der Enhanced JavaBean-Support kann diese Elemente ansprechen.

5 5 © Copyright Trivadis GmbH Einführung Erweiterter Java-Support in Forms 9i:  Bisher:  statische Zuordnung der JavaBean zur BeanArea  set_custom_property  Jetzt:  JavaBean wird zur Laufzeit zugeordnet  direktes Ansprechen von Properties und Methoden  eigene Datentyp- und Listener-Encoder

6 6 © Copyright Trivadis GmbH Grundlage: einfache JavaBean  JavaBean: import oracle.forms.ui.VBean; public class SimpleBean1 extends VBean { public SimpleBean1() { super(); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } private void jbInit() throws Exception { System.out.println ("Hallo!"); } Dr. Gudrun Pabst: Datei SimpleBean1.java Dr. Gudrun Pabst: Datei SimpleBean1.java

7 7 © Copyright Trivadis GmbH Grundlage: zugehöriges Forms-Modul  Forms-Modul:  BeanArea TEST_BEAN  Button BT_REGISTER  WHEN-BUTTON-PRESSED -Trigger: FBean.Register_Bean ( 'CTL.TEST_BEAN', 1, 'SimpleBean1' ); Dr. Gudrun Pabst: Modul simple_bean1.fmb Dr. Gudrun Pabst: Modul simple_bean1.fmb

8 8 © Copyright Trivadis GmbH Setzen und Abfragen von Properties  JavaBean:  Aus Forms-Sicht: Property Fortschritt public void setFortschritt (int Fortschritt) { progBar.setValue(Fortschritt); } public int getFortschritt () { return progBar.getValue(); } Dr. Gudrun Pabst: Datei SimpleBean2.java Dr. Gudrun Pabst: Datei SimpleBean2.java

9 9 © Copyright Trivadis GmbH Setzen und Abfragen von Properties  Forms-Modul:  Button zum Setzen des Fortschritts, Code: FBean.set_property ( 'CTL.TEST_BEAN', 1, 'Fortschritt', :ctl.ti_wert );  Button zum Abfragen des Fortschritts, Code: :ctl.ti_wert := FBean.get_property ( 'CTL.TEST_BEAN', 1, 'Fortschritt' ); Dr. Gudrun Pabst: Modul simple_bean2.fmb Dr. Gudrun Pabst: Modul simple_bean2.fmb

10 10 © Copyright Trivadis GmbH Indexed Properties  JavaBean:  2 set-Methoden: public void setListe (String[] pTest) public void setListe (int pIndex, String pTest)  2 get-Methoden: public String[] getListe () public String getListe (int pIndex)  ACHTUNG: Index startet mit 0!  Aus Forms-Sicht: Indexed Property Liste

11 11 © Copyright Trivadis GmbH Indexed Properties  Forms-Modul:  Setzen aller Werte der Indexed Property: FBean.set_indexed_property ( 'CTL.TEST_BEAN', 1, 'Liste', fbean.all_rows, :ctl.ti_item1 || ',' || :ctl.ti_item2 || ',' || :ctl.ti_item3 || ',' || :ctl.ti_item4 );  Setzen eines bestimmten Werts der Indexed Property: FBean.set_indexed_property ( 'CTL.TEST_BEAN', 1, 'Liste', :ctl.ti_index, :ctl.ti_wert );

12 12 © Copyright Trivadis GmbH Aufruf von JavaBean-Methoden  JavaBean: Die Methode potenziert den Wert pBasis mit dem Exponenten pExponent und gibt den ermittelten Wert zurück. public double potenzieren( double pBasis, double pExp ) { double vErgebnis; vErgebnis = StrictMath.pow( pBasis,pExp ); return vErgebnis; } Dr. Gudrun Pabst: Datei SimpleBean4.java Dr. Gudrun Pabst: Datei SimpleBean4.java

13 13 © Copyright Trivadis GmbH Aufruf von JavaBean-Methoden  Forms-Modul:  Übergabe der Argumente als String: :ctl.ti_ergebnis := FBean.invoke_num ( 'CTL.TEST_BEAN', 1, 'potenzieren', :ctl.ti_basis || ',' || :ctl.ti_exponent ); Dr. Gudrun Pabst: Modul simple_bean4.fmb Dr. Gudrun Pabst: Modul simple_bean4.fmb

14 14 © Copyright Trivadis GmbH Argument-Übergabe als String Regeln:  Der String beginnt und endet mit ' (einfaches Anführungs- zeichen).  Die Argumente sind durch Kommas getrennt.  Strings im String müssen in " (doppelte Anführungszeichen) eingeschlossen werden.  " in Strings werden als \" übergeben, \ als \\.  Werte vom Typ Boolean werden als true oder false übergeben.  Zahlen werden als Zahlen übergeben.

15 15 © Copyright Trivadis GmbH Argument-Übergabe als Argumentliste  Forms-Modul:  Übergabe der Argumente als Argumentliste: declare v_arglist fbean.arglist; begin v_arglist := fbean.create_arglist; -- fbean.add_arg ( v_arglist, :ctl.ti_basis ); fbean.add_arg ( v_arglist, :ctl.ti_exponent ); -- :ctl.ti_ergebnis := FBean.invoke_num ( 'CTL.TEST_BEAN', 1, 'potenzieren', v_arglist ); -- end;

16 16 © Copyright Trivadis GmbH JavaBean-Events Forms-Modul:  Registrieren des Events: fbean.enable_event  Anlegen eines WHEN-CUSTOM-ITEM-EVENT -Triggers  SYSTEM.CUSTOM_ITEM_EVENT : Name des Events  SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERS : Parameterliste des Events  Event-Parameter: siehe "Working with Data Type and Event Encoders" Dr. Gudrun Pabst: simple_bean5.fmb Beim Mausklick werden die Event-Parameter abgefragt und angezeigt. Dr. Gudrun Pabst: simple_bean5.fmb Beim Mausklick werden die Event-Parameter abgefragt und angezeigt.

17 17 © Copyright Trivadis GmbH Eigene Datentyp-Encoder  zur Übergabe von Daten an komplexe Java-Objekttypen  extends oracle.forms.beans.FormsEncoder  zwei Methoden:  fromString : konvertiert den übergebenen String in das Objekt  toString : erzeugt aus den Objekt-Daten einen String  muss mittels BeanManager.registerEncoder beim Initialisieren der Bean registriert werden Dr. Gudrun Pabst: simple_bean6.fmb und SimpleBean6 Dr. Gudrun Pabst: simple_bean6.fmb und SimpleBean6

18 18 © Copyright Trivadis GmbH Eigene Datentyp-Encoder  JavaBean: import oracle.forms.ui.BeanManager; public class BruchEncoder extends FormsEncoder { public BruchEncoder() { super(Bruch.class); } public Object fromString ( String pBruchText ) {... return new Bruch ( vZaehlerNeu, vNennerNeu ); } public String toString ( Object pBruch ) { return new String ( pBruch.toString() ); }

19 19 © Copyright Trivadis GmbH Eigene Datentyp-Encoder  JavaBean: Methode bruchMult: nimmt zwei Objekte vom Typ Bruch entgegen und gibt das Multiplikationsergebnis als Objekt vom Typ Bruch zurück  Forms-Modul: :ctl.ti_ergebnis := fbean.invoke_char ( 'CTL.TEST_BEAN', 1, 'bruchMult', '"3/4","4/5"' ); public Bruch bruchMult(Bruch pBruch1, Bruch pBruch2)

20 20 © Copyright Trivadis GmbH Eigene Event-Encoder  zur Übergabe von selbstdefinierten Events in der JavaBean an Forms  extends oracle.forms.beans.EventEncoder  Methoden:  toString : erzeugt aus den Event-Daten einen String  getParameters : erzeugt Liste, die ausgewertet werden kann über :system.custom_item_event_parameters  muss mittels BeanManager.registerEncoder beim Initialisieren der Bean registriert werden

21 21 © Copyright Trivadis GmbH Dokumentation  JavaBeans:  Spezifikation, Tutorials:  Forms:  Online-Hilfe: "Accessing JavaBeans from a Forms Application"  Technet: "Oracle9i Forms Demos" content.html


Herunterladen ppt "Forms und JavaBeans Enhanced JavaBean Support in Forms 9i | Dr. Gudrun Pabst | Trivadis GmbH |"

Ähnliche Präsentationen


Google-Anzeigen