14 - JavaBeans. 2 NOEA2009Java-kursus – JavaBeans Content What is a Java Bean? BDK What makes Bean possible? Support for Java Bean References.

Slides:



Advertisements
Lignende præsentationer
SPBG.  Test driven development  Unit test frameworks  MOSS TDD  Mocking  Design patterns.
Advertisements

C# introduktion. using System; Namespace MyFirst { class eks1 { public static void Main() { Console.WriteLine("Hej!"); Console.Write("Skriv dit navn her:
Dagens program  Emne: Tim Berners-Lees WWW koncept og deraf følgende innovationer Forbered hver for sig Præsenter og diskutér i grupper Fremlæggelse med.
Når en applikation går i fejl… … er det interessant, at vide noget om: Hvornår gik applikationen i fejl Hvilken applikation gik i fejl Hvad er fejlen.
Februar 2005Sprog-nyheder i C# og VB1 Captator Tlf: Henrik Lykke Nielsen Softwarearkitekt, Microsoft Regional Director for Denmark.
J2EE Java Server Pages (JSP) Introduktion Internetteknologi 2 (ITNET2)
C#: Data Typer. Indhold: “.NET is designed around the CTS, or Common Type System. The CTS is what allows assemblies, written in different languages, to.
07 – Kort om OO Introduktion.
RT Speciale Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende ”Java Optimized Processor” (JOP) Speciale – efterår.
Distribueret programmering, specielt Web Services Rasmus D. Lehrmann DM
T1 – OPGAVE 14.2 LINETT & SABRINA Klasse Varer namespace Opgave_14._2 { class Varer { private string vare; private string farve; private double.
Tekst starter uden punktopstilling For at få punkt- opstilling på teksten, brug forøg indrykning For at få venstre- stillet tekst uden punktopstilling,
Array og ArrayList Et slideshow. Som er sødt.. Hvordan virker ArrayList?  ArrayList NAVN = new ArrayList ();  NAVN.add(”Værdi”);  NAVN.add(index, ”værdi”)
13 – Database med JDBC. 2 NOEA2009Java-kursus – JDBC JDBC JDBC er et standard bibliotek til at tilgå relational databaser API’et er en standardiseret.
Arkitektur Embedded SQL Tema Persistens
1 JavaServer Faces Copyright © Lund & Bendsen Dynamikken i JSF.
C#: Udtryk og metoder. Indhold “With regards to programming statements and methods, C# offers what you would come to expect from a modern OOPL…” Udtryk.
Datastrukturer og Collections Oversigt og forskel imellem Jave og.net Collections library Collection interfaces ArrayList IList interface Hashtable Hashtable.
1 Nedarvning. 2 Plan Overlæsning af metoder og konstruktører Nedarvning fra klasser Implementering af grænseflader Retningslinjer for design af klasser.
06 – Java Packages Packages og ClassPath. 2 NOEA2009Java-kursus – Packages og class path Hvad er Packages? En package er en gruppering af relaterede typer.
Item gennemgang  Item: 01 – Static factory methods  Item: 09 – Override hashCode  Item: 17 – Design & document inheritence  Item: 25 – Lists over arrays.
Object-Orienteret Programmering og Design. 2 Nordjyllands Erhvervakademi – 2009 Indhold “Classes, objects and object-oriented programming (OOP) play a.
Collectionklasser Klassifikation og anvendelse. Collections Motivation –hvorfor bruge collections? Realisering af en-til-mange relationer –Importer, erklær,
Arne Winther Et værdifuldt samarbejde mellem hospital og produktudvikler.
View Procedures Trigger og Function Jesper Tørresø DAB1 E07 1. november 2007.
// Semaphore.java package semaphore; public class Semaphore { int resources = 1; // Constructors Semaphore() {} Semaphore(int i) { resources = i; } synchronized.
Database Normalization without Mathmatics
Objekter og klasser Applikationsdesign Code Namespace Value og reference typer Reference type Rasmus D. Lehrmann1.
12 – GUI med Swing. 2 NOEA2009Java-kursus – GUI med Swing Designer view Komponenter Frame Properties Inspector.
09 – Arv og polymorfi i java
Hvordan man skriver koden.
01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
WCF service Hostet på website x. Opret tomt web applikations projekt.
Masterpages/Otto Knudsen 1 Master Pages Master Pages i ASP.NET 2.0.
Distribution af funktionalitet Webservice med WCF x.
Distribution af funktionalitet Webservice med WCF x.
ASP.NET Custom Web Controls Deployment. Agenda – ASP.NET Web User Controls Composite Control Rendered Custom Control Deploy en Web Applikation.
Abstrakte klasser og interfaces i Java
Object-Orienteret Programmering og Design Kilde: Joe Hummel.
Programering af mobile enheder Windows Phone Storage.
Agenda 1.Informationer 1.Excel i fb.m. projekt 2 2.Reserver tid til projekt 2 3.Øvelse: a / b = c 2.Opsamling fra sidst 3.Estimation (konfidensintervaller)
Begreber og Redskaber 9. Plan for idag I dag: Datastrukturer Tabeller Lister, mængder, maps, grafer Hægtede lister.
Gruppe sort Morten, Peter, Jesper, Spencer & Støving.
Begreber og Redskaber 5. Collections i Java 1.2 Framework: samling af datastrukturer og algoritmer som generelt værktøj. En ramme til at arbejde med søgning.
Reliable Architecture Ved Henrik Bærbak Christensen Reflective Architectures Emne: reflective architecture overview 11 december 2009.
Begreber og Redskaber 5. Plan for idag Overblik over klasser,objekter,nedarvning –Repetition fra Dat A/Indledende programmering –Centrale begreber om.
J2EE Java Server Pages (JSP) Avanceret Internetteknologi 2 (ITNET2)
Globaliseringsredegørelsen 24.mar. 14 Figurer fra Danmark tiltrækker for få udenlandske investeringer i Sådan ligger landet
1 Tråde 2 Plan Trådbegrebet Synkronisering Koordinering Eksempel: et flertrådet spil.
Grunde til at jeg elsker dig
Items 4, 14, 24, 34, 44, 54 Orange gruppe Liv, Jonas, Thorkil, Søren S og Martin D.
Fundamentale datastrukturer
Objekter og klasser Rasmus D. Lehrmann DM
10. Datastrukturer. 2 Nordjyllands Erhvervakademi Collections library Datastrukturer i.NET kaldes normalt Collections Findes i namespace System.Collections.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
11 - Exceptions. 2 NOEA2009Java-kursus – Exceptions Hvad er en exception? En undtagelse. Typisk en fejl der opstår runtime Afbryder det normale programflow.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
Fremstilling af Simple WEB steder [ITPL] Foråret 2004
KF04 GRAY Item 2, 12, 22, 32, 42, 52. Consider a builder when faced with many constructor parameters Item 2.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Effective Java Blå gruppe. Item 18: Interfaces frem for abstrakte klasser Kan implementeres i klasser der ikke nedarver Eksisterende klasser kan nemt.
 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler.
 Jens Bennedsen 2002Objektorienteret systemudvikling Persistens.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
Objektorienteret analyse og design Ó Bennedsen 2001 Design - part Programmering og systemudvikling Lektion 7 Design - part 2.
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
Software Testing Software testing.
Præsentationens transcript:

14 - JavaBeans

2 NOEA2009Java-kursus – JavaBeans Content What is a Java Bean? BDK What makes Bean possible? Support for Java Bean References

3 NOEA2009Java-kursus – JavaBeans Hvad er Java Beans? Software komponent –Specificerede interfaces. –Uafhængig deployment Definition: “ A Java bean is a reusable software component that can be visually manipulated in builder tools. ” Java Bean Tutorials

4 NOEA2009Java-kursus – JavaBeans What is JavaBeans? JavaBeans er en portable, platform-uafhængig komponent model, som er skrevet i Java. Den giver udviklere mulighed for at skrive genbrugelige komponenter “once and run them anywhere”. Målet for JavaBeans er oprette et system hvor udviklere kan tage et sæt beans fra et bibliotek og strikke dem sammen til en applikation

5 NOEA2009Java-kursus – JavaBeans Software Komponenter “A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties.” Szyperski ECOOP96

6 NOEA2009Java-kursus – JavaBeans Composition not Inheritance In OO languages, new objects are created from old using the inheritance mechanism. Pluggable components are connected together by composition rather than inheritance. Most of the flexibility of inheritance can be gained from various compositional tactics.

7 NOEA2009Java-kursus – JavaBeans Features i JavaBeans –Understøtter introspection så udviklingsværktøjer kan undersøge hvordan en bean virker –Understøtter customization så brugeren vha. udv.værktøj kan tilpasse udseende og opførsel af en bean –Understøtter events som en simpel måde til at forbinde bean’en resten af applikationen –Understøtter properties dels til tilpasning og dels til programmerings formål –Understøtter persistence så en bean kan tilpasses i et IDE og have sin tilstand gemt, så den kan hentes frem senere

8 NOEA2009Java-kursus – JavaBeans Persistent lager Formål: –at bruge eksisterende data formater og f.eks bruge OLE eller OpenDoc documents –at være triviel for i den normale situation med en lille bean (ved at gemme dens interne tilstand) Solutions –Externalization: giver en Bean med fuld kontrol over det resulterende data layout. –Serialization: giver mulighed for automatisk at gemme og læse den interne tilstand af samling af Java objekter Alle beans skal understøtte Serialization eller Externalization

9 NOEA2009Java-kursus – JavaBeans Software komponenter Buttons Text Fields List Boxes Scroll Bars Dialogs VBX, OLE

10 NOEA2009Java-kursus – JavaBeans Properties Attributes. Kan være read/write, read-only eller write-only. Flere typer af properties: –Simple –Indexed –Bound –Constrained

11 NOEA2009Java-kursus – JavaBeans Design Pattern rules Constructors En bean har kun default konstruktør Simple Properties public T getN() public void setN ( T value) Boolean Properties public boolean isN() public boolean getN() public void setN(boolean value) Indexed Properties public T getN(int index) public T[] getN() public void setN(int index, T value) public void setN(T[] values)

12 NOEA2009Java-kursus – JavaBeans Properties eksempel public class alden2 extends Canvas { String ourString = “Hello”; public alden2() { setBackground (Color.red); setForeground (Color.blue); } public void setString (String newString) { ourString = newString; } public String getString() { return ourString; } public Dimension getMinimunSize() { return new Dimension (50, 50); }

13 NOEA2009Java-kursus – JavaBeans Bound Properties Genererer notification når en property ændres. public class propertDemo extends Canvas { String ourString = “ Hello ” ; private PropertyChangeSupport changes = new PropertyChangeSupport(this);... public void setString (String newString) { String oldString = ourString; ourString = newString; changes.firePropertyChange( “ string ”, oldString, newString); }...

14 NOEA2009Java-kursus – JavaBeans Bound Properties public void addPropertyChangeListener (PropertyChangeListener l) { changes.addPropertyChangeListener (l); } public void removePropertyChangeListener (PropertyChangeListener l) { changes.removePropertyChangeListener(l); }

15 NOEA2009Java-kursus – JavaBeans Constrained Property Konceptet er en vagt, der kan nedlægge veto –abonner på ‘ VetoableChange ’ kan nedlægge veto til en property ændring ved at kaste en PropertyVetoException. public class JellyBean extends Canvas { private PropertyChangeSupport changes = new PropertyChangeSupport (this); private VetoableChangeSupport vetos = new VetoableChangeSupport (this);... public void setColor (int newColor) throws PropertyVetoException { int oldColor = currentColor; vetos.fireVetoableChange( “ setColor ”, newInteger(oldColor), newInteger(newColor)); currentColor = newColor;

16 NOEA2009Java-kursus – JavaBeans Constrained Property... changes.firePropertyChange( “ setColor ”, new Integer(oldColor),new Integer(newColor)); } public void addVetoableChangeListener (VetoableChangeListener l) { vetos.addVetoableChangeListener(l); } public void removeVetoableChangeListener(VetoableChangeListener l) { vetos.removeVetoableChangeListener(l); }

17 NOEA2009Java-kursus – JavaBeans Bean Events Definer en ny Event klasse som arver fra EventObject. XEvent Definer et nyt interface som arver fra EventListener og som listeners skal implementere. XEventListener Det skal være muligt at registrere og afregistrere listeners f.eks addXListener(), removeXListener(). Observable skal have kode til at genere event’et og sende det til alle registrerede listeners. fireXEvent() Listeneren skal implementere interfacet for at modtage event.changeX() Listeneren skal registrere sig for at kunne modtage eventet.

18 NOEA2009Java-kursus – JavaBeans Events public class eventSource extends GenericEventGenerator {... private Vector myListeners = new Vector();... public synchronized void addMyEventListeners ( MyEventListener l) { myListeners.addElement(l); } public synchronized void removeMyEventListeners ( MyEventListener l) { myListeners.removeElement(l); }...

19 NOEA2009Java-kursus – JavaBeans Events... private void notifyEvents() { Vector l; synchronized (this) { l = (Vector) myListener.clone(); } for (int i = 0; i < l.size(); i++) { MyEventListener mel = (MyEventListener) l.elementAt(i); mel.handleThisEvent (this); }

20 NOEA2009Java-kursus – JavaBeans Persistens Giver IDE’et mulighed for at genskabe en beans tilstand public class Button implements java.io.Serializable {... } Attributter kan bypass’e serialisation ved bruge keywords transient eller static.

21 NOEA2009Java-kursus – JavaBeans Persistens... writeObject og readObject private void writeObject (java.io.ObjectOutputStream s) throws java.io.IOException{} private void readObject (java.io.ObjectInputStream s) throws java.io.IOException, java.lang.ClassNotFoundException {} Giver mulighed for tilpasning af objekter. Udseende og opførsel kan gemmes og genskabes Gem ikke referencer til andre beans

22 NOEA2009Java-kursus – JavaBeans Introspection En mekanisme der giver IDE’et mulighed for at analysere en bean To måder til analysere en bean: –low-level reflection APIs. F.eks Class.getSuperclass() –eksplicit information fra udbyder Eksplicit information gives via BeanInfo klassen BeanInfo.

23 NOEA2009Java-kursus – JavaBeans BDK Example package acme.beans; import java.awt.*; import java.io.Serializable; public class Acme04Bean extends Canvas implements Serializable { public Acme04Bean() { resize(60,40); this.label="Bean"; setFont(new Font("Dialog", Font.PLAIN, 12)); }

24 NOEA2009Java-kursus – JavaBeans Tilpasning af bean Lav din egen BeanInfo klasse som arver fra SimpleBeanInfo. Lav evt. din egen Editor klasse som arver fra PropertyEditorSupport for lave en tilpasset property editor.

25 NOEA2009Java-kursus – JavaBeans Customization... BeanInfo package sun.beanbox.beans; import java.beans.*; public class NervousText07BeanInfo extends SimpleBeanInfo { private final static Class beanClass = NervousText07.class; public BeanDescriptor getBeanDescriptor() { BeanDescriptor bd = new BeanDescriptor(beanClass); bd.setDisplayName("Uneasy Text 07"); return bd; }

26 NOEA2009Java-kursus – JavaBeans Customization... public PropertyDescriptor[] getPropertyDescriptors() { try { PropertyDescriptor textPD = new PropertyDescriptor("text", beanClass); PropertyDescriptor rv[] = {textPD}; textPD.setPropertyEditorClass(NervousText07TextPropertyEditor.c lass); return rv; } catch (IntrospectionException e) { throw new Error(e.toString()); }

27 NOEA2009Java-kursus – JavaBeans Customization... Editor package sun.beanbox.beans; import java.beans.*; public class NervousText07TextPropertyEditor extends PropertyEditorSupport { public String[] getTags() { String values[] = { "Nervous Text", "Anxious Text", "Funny Text", "Wobbly Text"}; return values; }

28 NOEA2009Java-kursus – JavaBeans BDK Output