Første |
|
|
Java Beans - dag 4 serie, Planche nr. 41 |
 |
Udskrift af : Java Beans - dag 4
|
Planche 1 : Java Beans - dag 4
Mini-workshop i Java Beans
- Javabeans intro
- Visual Age (VAJ) intro
- Øvelse i VAJ
- BeanInfo-klasser
- En praktisk anvendelse
Planche 2 : Definitioner
JavaBeans er en API, der gør det muligt at skrive kode, der kan
genbruges, er "selfcontained" og som kan bruges i visuelle værktøj
JavaBeans-komponenter kaldes Beans (bønner)
BDK - Bean Developers Kit - er et demoprogram, der viser hvad man
kan men bønner i et visuelt værktøj.
Men Visual Age for Java (VAJ) er et professionelt værktøj, der også i høj grad er bønnebaseret.
Planche 3 : Nøglekoncepter for bønner
- Instrospektion
- Properties
- Kommunikerer med hændelser
- Persistens
- public metoder
Planche 4 : Bønner: Introspektion
Værktøj kan "se" ind i bønnen (introspektion) uden kildetekst
2 måder:
- Signaturmetode
- Navnekonvention
- getXX, setXX m.m.
- Standard API'er i java.lang.Objekt
- BeanInfo-klasse
- Navnekonvention
- XXXXBeanInfo
- Udvider eller begrænser standard API
Planche 5 : Bønner: Properties
Properties er ting ved bønnen, der kan ændres
- på oversættertidspunkt
- på designtidspunkt
Introspektionen returnerer (definerer) properties
Planche 6 : Event-kommunikation
- Kommunikation via events
- Implementere
- Listener-metoder
- addXXXX-metoder
Planche 7 : Persistens
- Bønner kan gemmes i ændret tilstand.
- Bønner implementere Serializeable
- (eller arver egenskaben fra en Superklasse)
Planche 8 : Brug af bønner
Uden for visuelle værktøjer bruges bruges
bønner som alle andre klasser. Properties-metoderne er alle
erklæret public
Planche 9 : En simpel bønne (gennemgang)
En simpel bønne, der kan lægges ind i BDK
(Kode og vejledning er taget fra java tutorial, Java Bean Trail)
- Opret folderen
beans/demo/sunw/demo/simple
.
Det vil lægge SimpleBean sammen med de andre bønner i BDK
- Skriv SimpleBean koden
Her er koden:
package sunw.demo.simple;
import java.awt.*;
import java.io.Serializable;
public class SimpleBean extends Canvas
implements Serializable{
//Constructor sets inherited properties
public SimpleBean(){
setSize(60,40);
setBackground(Color.red);
}
}
Planche 10 : Bønne-makefile
- Lav en Makefile (simple.mak)
CLASSFILES= \
sunw\demo\simple\simplebean.class \
JARFILE= ..\jars\simplebean.jar
all: $(JARFILE)
$(JARFILE): $(CLASSFILES) $(DATAFILES)
jar cfm $(JARFILE) << manifest.tmp sunw\demo\simple\*.class
Name: sunw/demo/simple/SimpleBean.class
Java-Bean: True
<<
.SUFFIXES: .java .class
{sunw\demo\simple}.java{sunw\demo\simple}.class :
set CLASSPATH=.
javac $<
clean:
-del sunw\demo\simple\*.class
-del $(JARFILE)
Planche 11 : Lav en bønne
nmake -f simple.mak
Det skaber en jar-fil: simple.jar
- i BDK: Toolbox -> Loadjar
- Flyt SimpleBean til arbejdsareal
men VAJ er bedre...
Planche 12 : Visual Age for Java
Spiseseddel:
- 1. Demo af GUI-eksempel
- 2. Øvelse - Huskelisteprogram (ToDo)
- 3. Særlige funktioner
- Debug
- BeanInfo
- Workbench vs. Repository
- Professionel Edition
- Enterprise Edition
- Programstafetter
- 4. SU-projektet
Planche 13 : Introduktion til VAJ
Visual Age for Java er et IBM produkt, som er et integreret, visuelt miljø til uudvikling og vedligehold af java-programmer
- Hurtig programmeludvikling (RAD)
- Visuel Composition Editor (VCE)
- Wizards ("SmartGuides")
- Projektstyring
- Projekter (Projects)
- Pakker (Packages)
- Klasser / Interfaces (Class)
- Metoder / Variable (Methods / Fields)
Planche 14 : Nøglekoncepter
Repository og Workspace
- Repository
- En database i internt format
- Indeholder alt og alle versioner
- Workbench
- En database i internt format
- Indeholder kun en version
- Ændringer i workspace
- gemmes automatisk i repository
- Begge er filer
- ..IDE\REPOSITORY\IVJ.DAT
- ..IDE\PROGRAMMER\IDE.ICX
- Backup!!!!
Planche 15 : Ind og ud af VAJ
Alt gemmes i VAJ i et internt databaseformat - der findes ikke kildetekstfiler e.l.
- Export
- Eksporterer til omgivelser
- Import
- Importerer fra omgivelser
- Virker på (versionerede):
- Projekter, Pakker, Klasser
- Formater
- VAJ-intern (repository), jar-filer eller direktory
- Vælg
- bytecode (class), kildetekst (java), resources eller alt.
Planche 16 : VAJ symboler
De forskellige elementer vises som ikoner:
project
package
class or
interface
public,
default,
protected,
private methods
Planche 17 : Workbench-vindue

Menu-linie, Page Tabs, Text-pane, Status area.
Planche 18 : Workbench-vindue
Workbench er et vindue til Workspace!
- Projekter
- Et eller flere pakker (komplet)
- Pakker
- Et javaelement
- En eller flere klasser
- Klasser/Interfaces
- Et javaelement
- Indeholder metoder og variable
- Metoder (Methods)
- Variable (Fields)
Der kan åbnes projektvinduer, pakkevinduer og klassevinduer
Planche 19 : Visuel Composition Editor
En del af et klassevindue
- Manipulerer javabønner
- Visuelle bønner
- Ikke-visuelle bønner
- Bønner i VAJ har
- Egenskaber (properties)
- Hændelser (Events)
- Metoder (Methods)
- Bønner kan forbindes (connections)
Planche 20 : VCE-vindue

Bønnepalet (Beans Palette) og friareal (Free form surface)
Planche 21 : Demonstration
Den simple swing-applet fra Java-Intro:

Planche 22 : Øvelse - "Kapitel 3"
Papir-kopi
Online version i VAJ: Help -> Getting Started
Lav ToDo-listen designmæssigt (visuelt design)
- Giv alle synlige tekster dansk indhold
- (Men bebehold de engelske navne på klasser, metoder og variable)
frem til s. 23 øverst.
Planche 23 : VAJ - Forbindelser
Bønner i VAJ kan forbindes på forskellige måder:
- Property-to-property
- Event-to-method
- Event-to-code
- Parameter-from-property
- Parameter-from-code
- Parameter-from-method
En forbindelse starter i
og slutter i
Planche 24 : Øvelse - "Kapitel 3 fortsat"
Forbind knapperne "Tilføj" og "Slet" og test om det virker.
... og versioner.
Planche 25 : Øvelse - "Kapitel 4"
Tilføj tilstandscheck
- bruger Event-to-code
- Test og versioner
Planche 26 : Øvelse - "Kapitel 5"
Tilføj funktioner for
- Hente huskelister
- Gemme huskelister
- Gør billedet pænt
Planche 27 : Visual Age for Java
Særlige funktioner
- Debug
- BeanInfo-klasser
- Workbench vs. Repository
- Professionel Edition
- Enterprise Edition
- Programstafetter
SU-projektet
Plus det ekstra...
Planche 28 : Udvikling af Beans
- BeanInfo-klassen
- VAJ-demo af tæller-bønne
Planche 29 : 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 30 : "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 31 : 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 32 : Customizer
Der er to måder at ændre en klasse på designtidspunktet
- Med property editorer
- Med customizers
Planche 33 : Property Editor
Hvert visuelt værktøj har et sæt editorer, som kan bruges:

Denne er fra Beans Developers Kit (BDK)
Planche 34 : 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 35 : 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 36 : 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 37 : 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 38 : Demo
Der vises, hvordan man laver en tæller-bean til den simple knap-tekst
applet.
Planche 39 : US2000
Et javabeans-baseret projekt, der skal erstatte en 3270-baseret legacy-application med internet-teknologi.
- Projektansvarlig: SU-styrelsen
- Udviklerstab: SU-styrelsen (2), CSC Danmark (10)
- Kontraktform: "Time and material"
- Produktionsklar: November 1999 - foråret 2000 (løbende)
- Projektstart: august 1998
- Legacy-server: IBM VSE og CICS, SAG Adabas Natural
- Webserver: AIX
- Klienter: Browsere med java plugin-support
- Brugermodel (GUI):
- 1. Trælignende menustruktur
- 2. MDI-lignedne arbejdsareal med arbejdsvinduer
Planche 40 : US2000 arkitektur

Planche 41 : US2000 "beans"

© 2000 BLA*net - Leif E. Andersen,
leander@blanet.dk
Første |
|
|
Java Beans - dag 4 serie, Planche nr. 41 |