Første |
|
|
Udvikling af Beans serie, Planche nr. 13 |
 |
Udskrift af : Udvikling af Beans
|
Planche 1 : Udvikling af Beans
- BeanInfo-klassen
- VAJ-demo af tæller-bønne
- Øvelse
Planche 2 : BeanInfo-klassen
Ved at tilknytte en BeanInfo-klasse til en klasse kan man
- Vælge hvilke egenskaber (properties) bønne-brugere kan se
- Tilknytte en ikon til klassen
- Angive rette-klasser (customizer-class)
- Lade egenskaber være reserveret eksperter
- Give mere sigende vejledning til bønne-bruger
Bønne-bruger er visuelle designer, der anvender javabeans.
Planche 3 : "Feature Descriptors"
Beskriver præcis klassens egenskaber
- BeanDescriptor
- klassens navn og type, samt evt. customzirs
- PropertyDescriptor
- IndexedPropeteriesDescriptor
- klassens properties, hvis det er arrays
- EventSetDesdriptor
- klassens hændelser (events)
- MethodDescriptor
- ParameterDescriptor
- parametrene til klassens metoder
Alle XXXDescriptor-klasser nedarver fra FeatureDiscriptor-klassen
BeanInfo-klasser implementerer metoder, der returnerer objekt af ovennævnte typer.
Planche 4 : Definer BeanInfo-klasse
- 1. Giv den navn XXXXBeanInfo
- hvis klassens navn er XXXX
- 2. Implementer BeanInfo interface
- Eller udvid f.eks. SimpleBeanInfo
- 3. Definer eller overskriv BeanInfo-metoderne
- Ikke implementerede metoder betyder ingen adgang!
- 4. Tilknyt evt. en ikon-fil
- 5. Angiv klassen og evt. customizer
- metoder getBeanDescriptor()
BeanInfo-klassen søges i samme pakke, som klassen - eller i den særlig BeanInfo-søgesti.
Planche 5 : Customizer
Der er to måder at ændre en klasse på designtidspunktet
- Med property editorer
- Med customizers
Planche 6 : Property Editor
Hvert visuelt værktøj har et sæt editorer, som kan bruges:

Denne er fra Beans Developers Kit (BDK)
Planche 7 : Tilknytning
Hvilke editor man ønsker at bruges bestemmes af, hvilke metoder man implementerer fra PropertyEditor.
PropertyEditorer tilknyttes
- Direkte i BeanInfo-klassen
- Via en klassemetode
- java.Beans.PropertyEditorManager.registerEditor
- parametre typenavn og editorklasse
- Opslag med XXXXEditor navn
Planche 8 : Customizer
Beans-udvikleren kan få fuld kontrol ved at medsende en customizer-klasse
Den skal
- Udvides direkte eller indirekte fra Component-klassen
- Dvs. er et visuelt komponent
- Implementere java.beans.Customizer interface
- Definere en default konstruktør
- Tilknyttes via BeanInfo-klassens getBeanDescriptor metode
Planche 9 : Persistens
Beans-udvikleren kan også kontrolere omfanget af persistens (gemning)
- Angiv 'transient' for variable, der IKKE skal gemmes
- Implementer (overskriv) metoderne
- private void writeObject(java.io.ObjectOutputStream out)
- private void readObject(java.io.ObjectInputStream in)
Eller implementer Externalizable-interfacet
- Total kontrol af persistens
Planche 10 : Fremtiden?
- Java Activation Framework (JAF)
- Automatisk start, svarer til MIME
- beancontext
- Udvidede muligheder for at få oplysninger om JavaBeans-miljøet
- Drag and Drop
- Mulighed for at trække og slippe ind og ud af javamiljøet
Planche 11 : Demo
Der vises, hvordan man laver en tæller-bean til den simple knap-tekst
applet.
Planche 12 : Opgave
Lav en ikke-visuel bean klasse, der beskriver status i en
badmintonkamp. Som minimum skal den indeholde properties, der beskriver
- Navne på spillerne
- Den nuværende stilling
- Hvem der har serven
Bønnen vil blive kaldt (via metode) når
- En bold er vundet af hold1 eller hold2
- Feljindtastning
- Sættet starter
- Sættet slutter
Implementer bønnen og en testapplet (jvf OVPM-oplæg).
Planche 13 : Opgave (avanceret)
I OVPM-oplægget var der også en list-box med historik.
Udvid status-bønne til også at vise tidligere stillinger i sættet.
Hvorfor er det en god ide at gøre det, fremfor at benytte en separat
DefaultListModel?
© 2000 BLA*net - Leif E. Andersen,
leander@blanet.dk