Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

This

...

document

...

discusses

...

some

...

of

...

the

...

major

...

functional

...

changes

...

between

...

Pivot

...

1.5.x

...

and

...

Pivot

...

2.0.

...

Core

...

  • Rename

...

  • org.apache.pivot.wtkx.WTKXSerializer

...

  • to

...

  • org.apache.pivot.beans.

...

  • BXMLSerializer
    Despite

...

  • its

...

  • name

...

  • and

...

  • inclusion

...

  • in

...

  • the

...

  • WTK

...

  • library,

...

  • WTKXSerializer

...

  • never

...

  • had

...

  • any

...

  • actual

...

  • dependency

...

  • on

...

  • WTK.

...

  • In

...

  • Pivot

...

  • 2.0,

...

  • this

...

  • class

...

  • has

...

  • been

...

  • renamed

...

  • to

...

  • BXMLSerializer

...

  • and

...

  • moved

...

  • to

...

  • the

...

  • Core

...

  • library

...

  • to

...

  • reflect

...

  • its

...

  • more

...

  • general

...

  • nature.

...

  • It

...

  • has

...

  • also

...

  • recieved

...

  • a

...

  • number

...

  • of

...

  • updates

...

  • and

...

  • improvements,

...

  • discussed

...

  • below.

...

...

  • Create

...

  • an

...

  • annotation

...

  • to

...

  • specify

...

  • the

...

  • default

...

  • "child"

...

  • property

...

  • of

...

  • a

...

  • component

...


  • Classes

...

  • can

...

  • now

...

  • specifiy

...

  • a

...

  • default

...

  • property

...

  • using

...

  • the

...

  • new

...

  • @DefaultProperty

...

  • annotation.

...

  • For

...

  • example,

...

  • the

...

  • org.apache.pivot.wtk.Window

...

  • class

...

  • declares

...

  • a

...

  • default

...

  • property

...

  • of

...

  • "content",

...

  • making

...

  • the

...

  • <content>

...

  • element

...

  • in

...

  • markup

...

  • optional.

...

  • Taking

...

  • advantage

...

  • of

...

  • default

...

  • properties

...

  • can

...

  • significantly

...

  • reduce

...

  • the

...

  • verbosity

...

  • (and

...

  • indent

...

  • depth)

...

  • of

...

  • BXML

...

  • markup.

...

...

  • Add

...

  • support

...

  • for

...

  • dynamic

...

  • data

...

  • binding

...


  • Pivot

...

  • 1.5

...

  • and

...

  • earlier

...

  • supported

...

  • data

...

  • binding

...

  • via

...

  • a

...

  • load/store

...

  • model

...

  • that

...

  • maps

...

  • well

...

  • to

...

  • client/server

...

  • applications

...

  • such

...

  • as

...

  • REST

...

  • clients.

...

  • However,

...

  • a

...

  • more

...

  • dynamic

...

  • model,

...

  • where

...

  • a

...

  • property

...

  • of

...

  • a

...

  • target

...

  • element

...

  • is

...

  • automatically

...

  • updated

...

  • whenever

...

  • a

...

  • source

...

  • value

...

  • changes,

...

  • is

...

  • also

...

  • useful

...

  • in

...

  • many

...

  • circumstances.

...



  • Pivot

...

  • 2.0

...

  • adds

...

  • support

...

  • for

...

  • declaratively

...

  • creating

...

  • such

...

  • dynamic

...

  • binding

...

  • relationships

...

  • as

...

  • well

...

  • as

...

  • the

...

  • ability

...

  • to

...

  • define

...

  • them

...

  • in

...

  • code.

...

  • For

...

  • example,

...

  • the

...

  • following

...

  • markup

...

  • creates

...

  • a

...

  • binding

...

  • association

...

  • between

...

  • a

...

  • page

...

  • variable

...

  • named

...

  • "myText"

...

  • and

...

  • the

...

  • "text"

...

  • property

...

  • of

...

  • a

...

  • Label

...

  • instance. Any time the value of "myText"

...

  • changes,

...

  • the

...

  • value

...

  • of

...

  • the

...

  • label's

...

  • "text"

...

  • property

...

  • is

...

  • also

...

  • updated:
Code Block
xml
xml
<Label text="${myText}"/>
  • PIVOT-546 Bindable improvements
    The Bindable interface allows a caller to easily associate Java code with markup defined in BXML. It defines a single method, initialize(), that is called on the root element of a BXML document once the document has been completely loaded.

    Though Bindable was actually introduced in Pivot 1.5, it did not provide all of the information an implementing class might need. Pivot 2.0 adds arguments containing the serializer's namespace, resources, and location, to the initialize() method. Any @BXML annotations defined on the Bindable class are also processed prior to the call to initialize(). This allows the implementing class to get access to the document's namespace (i.e. page variables), the resources that were used to load it, and the location it was loaded from, to perform any necessary post-processing (for example, registering event listeners).
  • PIVOT-537 Move message processing functionality to pivot-core
    Pivot 1.5 included a pub/sub messaging API as part of the org.apache.pivot.wtk.ApplicationContext

...

  • class.

...

  • However,

...

  • like

...

  • WTKXSerializer,

...

  • this

...

  • API

...

  • didn't

...

  • actually

...

  • have

...

  • a

...

  • dependency

...

  • on

...

  • WTK.

...

  • It

...

  • has

...

  • been

...

  • moved

...

  • to

...

  • org.apache.pivot.util.MessageBus

...

  • to

...

  • reflect

...

  • this.

...

...

  • Allow

...

  • serializers

...

  • to

...

  • fire

...

  • events

...

  • as

...

  • data

...

  • is

...

  • read

...


  • The

...

  • org.apache.pivot.json.JSONSerializer

...

  • ,

...

  • org.apache.pivot.serialization.CSVSerializer

...

  • ,

...

  • and

...

  • org.apache.pivot.xml.XMLSerializer

...

  • classes

...

  • allow

...

  • an

...

  • application

...

  • to

...

  • read

...

  • structured

...

  • content

...

  • from

...

  • an

...

  • input

...

  • stream.

...

  • In

...

  • Pivot

...

  • 1.5

...

  • and

...

  • earlier,

...

  • callers

...

  • had

...

  • to

...

  • wait

...

  • until

...

  • the

...

  • Serializer#readObject()

...

  • method

...

  • returned

...

  • in

...

  • order

...

  • to

...

  • access

...

  • the

...

  • deserialized

...

  • data.

...

  • Pivot

...

  • 2.0

...

  • allows

...

  • developers

...

  • to

...

  • hook

...

  • into

...

  • the

...

  • serialization

...

  • process

...

  • and

...

  • be

...

  • notified

...

  • as

...

  • data

...

  • is

...

  • read.

...

  • For

...

  • example,

...

  • JSONSerializer

...

  • now

...

  • fires

...

  • events

...

  • whenever

...

  • a

...

  • string,

...

  • number,

...

  • boolean,

...

  • list,

...

  • or

...

  • map

...

  • is

...

  • read,

...

  • and

...

  • XMLSerializer

...

  • fires

...

  • events

...

  • as

...

  • elements

...

  • and

...

  • text

...

  • nodes

...

  • are

...

  • read.

...

  • This

...

  • allows

...

  • a

...

  • caller

...

  • to

...

  • update

...

  • the

...

  • UI

...

  • incrementally

...

  • rather

...

  • than

...

  • waiting

...

  • until

...

  • the

...

  • entire

...

  • stream

...

  • is

...

  • read,

...

  • making

...

  • an

...

  • application

...

  • seem

...

  • considerably

...

  • more

...

  • responsive.

...

WTK

...

  • Add

...

  • support

...

  • for

...

  • named

...

  • styles

...


  • While

...

  • Pivot

...

  • has

...

  • always

...

  • provided

...

  • support

...

  • for

...

  • modifying

...

  • the

...

  • appearance

...

  • and

...

  • behavior

...

  • of

...

  • components

...

  • via

...

  • CSS-like

...

  • styles,

...

  • it

...

  • did

...

  • not

...

  • include

...

  • support

...

  • for

...

  • "named

...

  • styles"

...

  • (aka

...

  • "style

...

  • classes").

...

  • Pivot

...

  • 2.0

...

  • adds

...

  • this

...

  • capability,

...

  • including

...

  • support

...

  • for

...

  • both

...

  • typed

...

  • and

...

  • untyped

...

  • style

...

  • selectors.

...

...

  • Add

...

  • platform

...

  • support

...

  • for

...

  • SVG

...

  • images

...


  • Pivot

...

  • 1.5

...

  • and

...

  • earlier

...

  • included

...

  • a

...

  • set

...

  • of

...

  • classes

...

  • for

...

  • declaratively

...

  • constructing

...

  • drawings

...

  • using

...

  • a

...

  • "shape

...

  • DOM"

...

  • or

...

  • "scene

...

  • graph",

...

  • which

...

  • mirrored

...

  • the

...

  • equivalent

...

  • drawing

...

  • primitives

...

  • in

...

  • the

...

  • java.awt.geom

...

  • package

...

  • .

...

  • While

...

  • these

...

  • classes

...

  • provided

...

  • a

...

  • convenient

...

  • way

...

  • to

...

  • implement

...

  • retained

...

  • mode

...

  • drawing,

...

  • they

...

  • were

...

  • of

...

  • little

...

  • practical

...

  • use,

...

  • since

...

  • such

...

  • drawings

...

  • had

...

  • to

...

  • be

...

  • constructed

...

  • by

...

  • hand

...

  • -

...

  • no

...

  • support

...

  • was

...

  • provided

...

  • for

...

  • reading

...

  • standard

...

  • image

...

  • formats

...

  • such

...

  • as

...

  • SVG

...

  • or

...

  • Adobe

...

  • Illustrator

...

  • documents.

...



  • In

...

  • Pivot

...

  • 2.0,

...

  • the

...

  • "shape

...

  • DOM"

...

  • classes

...

  • have

...

  • been

...

  • eliminated

...

  • and

...

  • replaced

...

  • with

...

  • a

...

  • new

...

  • SVG-based

...

  • Drawing

...

  • class.

...

  • This

...

  • allows

...

  • developers

...

  • to

...

  • freely

...

  • interchange

...

  • bitmap-based

...

  • images

...

  • (such

...

  • as

...

  • JPEG,

...

  • PNG,

...

  • or

...

  • GIF)

...

  • and

...

  • scalable

...

  • vector

...

  • images

...

  • in

...

  • a

...

  • Pivot

...

  • application.

...

  • SVG

...

  • support

...

  • in

...

  • Pivot

...

  • 2.0

...

  • is

...

  • provided

...

  • by

...

  • the

...

...

...

  • project.

...

  • Re-implement

...

  • TextArea

...


  • The

...

  • TextArea

...

  • component

...

  • was

...

  • completely

...

  • overhauled

...

  • in

...

  • Pivot

...

  • 2.0.

...

  • It

...

  • now

...

  • supports

...

  • common

...

  • text

...

  • editing

...

  • features

...

  • including

...

  • word

...

  • navigation

...

  • and

...

  • undo/redo,

...

  • and

...

  • cut/paste

...

  • behavior

...

  • has

...

  • been

...

  • improved.

...

  • Word

...

  • navigation

...

  • and

...

  • undo/redo

...

  • has

...

  • also

...

  • been

...

  • added

...

  • to

...

  • TextInput

...

  • (PIVOT-372

...

  • and

...

  • PIVOT-639).

...

...

  • Add

...

  • rich

...

  • text

...

  • support

...

  • to

...

  • TextPane

...

  • (formerly

...

  • TextArea)

...


  • The

...

  • previous

...

  • TextArea

...

  • component

...

  • has

...

  • been

...

  • renamed

...

  • to

...

  • TextPane

...

  • and

...

  • has

...

  • recieved

...

  • improvements

...

  • that

...

  • allow

...

  • it

...

  • to

...

  • be

...

  • used

...

  • to

...

  • present

...

  • and

...

  • author

...

  • rich

...

  • text.

...

  • It

...

  • can

...

  • also

...

  • now

...

  • host

...

  • sub-components

...

  • and

...

  • can

...

  • be

...

  • used

...

  • as

...

  • a

...

  • generic

...

  • text-based

...

  • layout

...

  • container.

...

  • However,

...

  • it

...

  • has

...

  • not

...

  • been

...

  • fully

...

  • tested

...

  • and

...

  • is

...

  • considered

...

  • experimental

...

  • in

...

  • Pivot

...

  • 2.0.

...

...

  • Add

...

  • a

...

  • "repeatable"

...

  • property

...

  • to

...

  • ListButton

...


  • A

...

  • "repeatable"

...

  • flag

...

  • has

...

  • been

...

  • added

...

  • to

...

  • ListButton

...

  • to

...

  • support

...

  • "split

...

  • button"-type

...

  • behavior.

...

  • When

...

  • enabled,

...

  • a

...

  • mouse

...

  • click

...

  • on

...

  • the

...

  • trigger

...

  • area

...

  • of

...

  • the

...

  • button

...

  • will

...

  • show

...

  • the

...

  • drop

...

  • down,

...

  • but

...

  • a

...

  • click

...

  • on

...

  • the

...

  • content

...

  • area

...

  • will

...

  • not

...

  • and

...

  • will

...

  • instead

...

  • simply

...

  • "press"

...

  • the

...

  • button.

...

...

  • Simplify

...

  • editor

...

  • APIs

...


  • The

...

  • editor

...

  • APIs

...

  • for

...

  • ListView

...

  • ,

...

  • TableView

...

  • ,

...

  • and

...

  • TreeView

...

  • were

...

  • significantly

...

  • simplified

...

  • for

...

  • Pivot

...

  • 2.0

...

  • ,

...

  • making

...

  • it

...

  • much

...

  • easier

...

  • to

...

  • implement

...

  • custom

...

  • editors

...

  • in

...

  • a

...

  • Pivot

...

  • application.

...

...

  • Make

...

  • ListView

...

  • selectedItem,

...

  • etc.

...

  • notifying

...

  • properties

...


  • In

...

  • previous

...

  • versions,

...

  • changes

...

  • to

...

  • ListView

...

  • 's

...

  • "selectedItem"

...

  • property,

...

  • TableView

...

  • 's

...

  • "selectedRow"

...

  • property,

...

  • and

...

  • TreeView

...

  • 's

...

  • "selectedNode"

...

  • property

...

  • did

...

  • not

...

  • fire

...

  • events.

...

  • This

...

  • was

...

  • by

...

  • design,

...

  • since

...

  • the

...

  • getters

...

  • for

...

  • these

...

  • properties

...

  • are

...

  • simply

...

  • convenience

...

  • methods.

...

  • However,

...

  • the

...

  • lack

...

  • of

...

  • event

...

  • notification

...

  • made

...

  • it

...

  • impossible

...

  • to

...

  • use

...

  • the

...

  • new

...

  • dynamic

...

  • data

...

  • binding

...

  • feature

...

  • to

...

  • bind

...

  • to

...

  • these

...

  • properties.

...

  • As

...

  • a

...

  • result,

...

  • events

...

  • are

...

  • now

...

  • fired

...

  • when

...

  • these

...

  • values

...

  • change.

...

...

  • Fire

...

  • selection

...

  • change

...

  • events

...

  • when

...

  • selection

...

  • changes

...

  • indirectly

...


  • In

...

  • previous

...

  • versions,

...

  • selection

...

  • change

...

  • events

...

  • in

...

  • data-driven

...

  • components

...

  • such

...

  • as

...

  • ListView

...

  • were

...

  • not

...

  • fired

...

  • when

...

  • a

...

  • component's

...

  • selection

...

  • state

...

  • changed

...

  • indirectly

...

  • (i.e.

...

  • as

...

  • a

...

  • result

...

  • of

...

  • a

...

  • model

...

  • change,

...

  • rather

...

  • than

...

  • a

...

  • direct

...

  • call

...

  • to

...

  • a

...

  • selection

...

  • setter

...

  • method).

...

  • It

...

  • was

...

  • the

...

  • caller's

...

  • responsibility

...

  • to

...

  • listen

...

  • for

...

  • both

...

  • model

...

  • and

...

  • selection

...

  • change

...

  • events.

...



  • In

...

  • Pivot

...

  • 2.0,

...

  • selection

...

  • change

...

  • events

...

  • are

...

  • fired

...

  • both

...

  • when

...

  • the

...

  • selection

...

  • changes

...

  • directly

...

  • as

...

  • well

...

  • as

...

  • when

...

  • it

...

  • is

...

  • changed

...

  • indirectly.

...

...

  • Add

...

  • a

...

  • "closeable"

...

  • property

...

  • to

...

  • TabPane

...


  • The

...

  • TabPane

...

  • component

...

  • now

...

  • supports

...

  • user-closeable

...

  • tabs.

...

...

  • Fire

...

  • tooltipTriggered()

...

  • event

...

  • from

...

  • Component

...


  • In

...

  • prior

...

  • Pivot

...

  • versions,

...

  • it

...

  • was

...

  • difficult

...

  • to

...

  • create

...

  • tooltips

...

  • containing

...

  • custom

...

  • content.

...

  • The

...

  • Component

...

  • class

...

  • now

...

  • fires

...

  • a

...

  • tooltipTriggered()

...

  • event

...

  • that

...

  • applications

...

  • can

...

  • hook

...

  • into

...

  • to

...

  • show

...

  • a

...

  • custom

...

  • tooltip.

...

  • The

...

  • tooltip

...

  • delay

...

  • is

...

  • now

...

  • also

...

  • configurable

...

  • (PIVOT-563).

...

...

  • Multiple

...

  • host

...

  • windows

...


  • Though

...

  • Pivot

...

  • provides

...

  • a

...

  • rich

...

  • set

...

  • of

...

  • window

...

  • types,

...

  • they

...

  • are

...

  • all

...

  • internal

...

  • to

...

  • the

...

  • host

...

  • frame

...

  • (or

...

  • applet).

...

  • A

...

  • common

...

  • request

...

  • from

...

  • developers

...

  • was

...

  • for

...

  • improved

...

  • support

...

  • for

...

  • multiple

...

  • native

...

  • frames.

...

  • Such

...

  • support

...

  • has

...

  • been

...

  • added

...

  • to

...

  • Pivot

...

  • 2.0:

...

  • applications

...

  • launched

...

  • via

...

  • DesktopApplicationContext

...

  • can

...

  • now

...

  • easily

...

  • create

...

  • multiple

...

  • top-level

...

  • host

...

  • frames,

...

  • providing

...

  • a

...

  • much

...

  • more

...

  • seamless

...

  • desktop

...

  • experience.

...

...

  • Provide

...

  • additional

...

  • Color

...

  • schemes

...


  • Though

...

  • Pivot

...

  • has

...

  • always

...

  • provided

...

  • the

...

  • ability

...

  • to

...

  • create

...

  • custom

...

  • color

...

  • schemes,

...

  • previous

...

  • versions

...

  • have

...

  • included

...

  • only

...

  • a

...

  • single

...

  • default

...

  • scheme.

...

  • Pivot

...

  • 2.0

...

  • includes

...

  • a

...

  • collection

...

  • of

...

  • color

...

  • schemes

...

  • which

...

  • are

...

  • optimized

...

  • for

...

  • a

...

  • variety

...

  • of

...

  • popular

...

  • desktop

...

  • environments.

...

...

  • Create

...

  • an

...

  • Eclipse

...

  • launcher

...

  • for

...

  • org.apache.pivot.wtk.Application

...

  • and

...

  • ScriptApplication

...


  • Pivot

...

  • now

...

  • includes

...

  • an

...

  • Eclipse

...

  • plugin

...

  • to

...

  • help

...

  • simplify

...

  • the

...

  • task

...

  • of

...

  • creating

...

  • launch

...

  • configurations

...

  • for

...

  • Pivot

...

  • applications.

...

  • When

...

  • the

...

  • plugin

...

  • is

...

  • installed,

...

  • any

...

  • class

...

  • that

...

  • implements

...

  • the

...

  • Application

...

  • interface

...

  • can

...

  • be

...

  • automatically

...

  • launched

...

  • via

...

  • a

...

  • right-click

...

  • context

...

  • menu.

...

  • Additionally,

...

  • any

...

  • BXML

...

  • file

...

  • that

...

  • has

...

  • a

...

  • root

...

  • element

...

  • that

...

  • is

...

  • a

...

  • subclass

...

  • of

...

  • Window

...

  • can

...

  • also

...

  • be

...

  • launched

...

  • via

...

  • right-click

...

  • using

...

  • the

...

  • ScriptApplication

...

  • launcher

...

  • class

...

  • included

...

  • in

...

  • the

...

  • platform.

...

Complete release notes are available here.