Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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.BeanSerializer

...


  • 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:

Code Block
xml
xml
 


{{<Label text="${myText}"/>}}

Any

...

time

...

the

...

value

...

of

...

"myText"

...

changes,

...

the

...

value

...

of

...

the

...

label's

...

"text"

...

property

...

is

...

also

...

updated.

...

...

  • 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).

...

...

  • 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

...

SVG

...

Salamander

...

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.

...

  • They

...

  • now

...

  • consist

...

  • of

...

  • one

...

  • single-method

...

  • interface

...

  • for

...

  • each

...

  • component,

...

  • 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.

...