swing - Java - ZUI (Zoomable User Interface) -


i'm doing small personal project needs display extremely large amount of data, , thought implementing form of zoomable user interface allow user navigate around large amounts of data.

i'm aware of existing projects such zvtm , piccolo2d i'll end using job, i'm quite tempted embark upon writing own. however, i'm little unsure how start.

from i've been reading, seems projects piccolo2d developed due lack of 'scene graph' management within java, , piccolo2d developed based on work of older projects such 'pad', 'pad++' , 'jazz'.

after quick bit of googling around, can see scene graph management available in javafx, i'm wondering if swing in java 7 has functionality.

i've had bit of think, , i'm wondering if possible implement basic zooming interface using jlayer api, decorating object different layers dependant upon current zoom level.

so example, let's can see directory @ furthest zoom level, zooming in show contents of directory, , zooming in further show text within file present in said directory. i've been playing around eagle mode while now, that's perfect example of i'm thinking of.

i know bit of long question (if it's question @ all). essentially, let's pretend piccolo et al, don't exist, , have core java 7 jdk, can suggest starting point?

it seems piccolo2d based heavily upon java2d api, i'm wondering if api has advanced in anyway, or perhaps java 7 has introduced new mechanisms achieving similar effect.

i'd interested in input or advice can offered. know isn't going easy task, there aren't time limits involved, it's personal project.

thanks

all have core java 7 jdk, can suggest starting point?

i'd recommend using javafx.

  1. javafx included in core oracle java 7 (and java 8) jdks , runtimes.
  2. the javafx architecture includes comprehensive scene graph.
  3. javafx has inbuilt facilities scene graph transforms such scaling, translating, layering, animating, transitioning, etc.
  4. javafx performs hardware accelerated rendering.
  5. you scalable video playback using modern codecs h.264.
  6. javafx includes comprehensive vector based control set looks zooms in , out.
  7. hidpi support retina displays, etc. included (in java 8).
  8. hardware accelerated 3d object model rendering within javafx scene graph (in java 8).
  9. you can define ui declaratively using fxml , interactively using scenebuilder - side issue, might make development easier you.
  10. the javafx project open source , under active development.
  11. jpedal provide 3rd party pdf viewer javafx use viewing scalable pdf documents.
  12. javafx includes html viewer (with zoom capabilities in java 8).

implementation considerations

my guess (and purely opinion) is going whole lot easier implement particular project in javafx in vanilla swing because underlying javafx technology , capabilities more closely match requirements.

obviously, no matter technology choose, implement comprehensive eagle mode still lot of work , require native extensions outside of java system (in order display virtual desktops, etc.).

the javafx recommendation "all have core java 7 jdk" standpoint. systems such zvtm have supporting functionality , apis zui building no javafx application (to knowledge) yet includes (e.g. lens views, portal views, mapping uis large multi-screen arrays, etc). uf have flexibility of using pre-built library such zvtm, should evaluated against project requirements.

scope recommendation

to make project more manageable, restrict initial implementation requirements zui based filesystem viewer rather functional zui desktop ui.

javafx zui samples

best of luck project . . .


Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -