The Next Great Thing: An Application Framework

Jeff McDonald deep.blue.6802 at gmail.com
Wed Feb 8 21:36:44 PST 2012


Now that JavaFX is delivering on it's promise of delivering the components
and pieces need to make an application, it's a perfect time to take a
higher level look at what's needed to make a complete application.

Here is your chance to add your ideas, comments, criticisms, insights,etc,
and say what's on your mind. I don't work for Oracle nor do I speak for
Oracle, however, the JavaFX team has shown great interest in listening to
developers and delivering what's important to the developer community.
Having an application frameworks integrated into the JavaFX library would
be a huge advantage to Java developers.

Below is a simple bullet list of ideas and features that could be useful to
application developers:

- Application types to consider:
- Desktop
- Tablet
- Phone
- Command line
- TV
 - Set-top box / Bluray player
- Service or daemon

- Application tooling needs?

- Application level / lifecycle events
- Exit event (From JSR 296)
 - Shutdown event  (From JSR 296)
- Sleep event
- Pause event
 - Show help window event
- Show help hints (ala Apple style help)
- Eventbus: allow any component to send message and listen to messages from
any other component. Message consumers only have to listen to events and
are not required to have references to any other objects (other than the
eventbus) in order to receive event notices.
 - Screen resolution change event
- Monitor added / removed events
- Screen orientation change event
 - Full screen mode / normal screen mode.
- App dock icon menu event / taskbar menu event / start menu event.
 - Application environment
- Supports 3D?
- Supports hardware acceleration?
 - LCD text supported?
- Bidi text supported?
- Supports full screen mode
 - Supports App menubar?
- Supports dock?
- Supports taskbar?
 - Application controls
- App menubar (setter & getter) (The application level is really where the
Application menubar should be handled, and not on the Stage/Window level.)
- App taskbar
- App dock
        - Set application name (This is app name, not stage or window name.
Could be set to display Scene name when focus changes or to show static
text.)
- App dock icon menu / taskbar menu / start menu.

- Application naviagtion
- Get window (by id)
- Bring window to front
 - Send window to back
- Move window to location
- Expose for FX stages to aid in navigating and organizing multiple windows
(MacOS style functionality see: YouTube : MacOS X Expose
Video<http://www.youtube.com/watch?v=fhcqxDIfG-o&feature=related>
)
 - Application focus
- Get current focused window
- Get current focused component
 - Application state / session management
- Save & restore window size & location
 - Automatic application state saves
- Automatic document saves.
 - Actions / Actions manager
- A superpowered decendant of the Swing AbstractAction class & Action
interface.
- Conditional state actions (Ex. If the "control" key is depressed then an
alternate action is made visible or the text of a menu item might change).
 - Toggle actions (Ex. bold/un-bold or hide/show)
- Multi-state actions
 - Application print support?

- Inter-application communication
- Allow apps to communicate to each other using a common architecture.


More information about the openjfx-dev mailing list