Jesktop Developer Documentation
Frimble is short for Frame-able. Yes, we know it is daft.
It is a helper package that lets a developer of an application develop their application as a panel and use what ever type of frame-like containment that Jesktop may be configured to use.
Why do we need Frimble
Because there is no common interface that JFrame and JInternalFrame implement. You cannot as a Swing developer abstract your frame-like containment. Even if Sun chose to make them implement a future interface called Frameable, it could not work perfectly as the event structures are too incompatible to have a common interface.
Frimble itself is not a JComponent, it is a helper class so changes nothing about the implementation of JFrame or JInteralFrame.
See one of the bugs logged at Sun's bug parade on the subject here
What types of Frimble are available?
Today we have two types of frimble. JFrameFrimble and JInternalFrameFrimble. These encapsulate the the two swing classes of similar name. These are 99% complete and both work with the example applications that we have delivered.
Where types of Frimble will be available?
We see frimbles being created for general use that would give different views of contained components. We could develop a Frimble that uses a tabbed pane concept of containment. The tabs would be the windows and they might have a common menu bar that switched as the tabbed were changed. The thing would be novel but flawed as it is often nice to arrange your frames for special needs... i.e. reading from window A, whilst typing something else in Window B.
A Network appliance manufacturer that wanted to deliver a new appliance might create their own frimble mechanism with some way of preserving pixel space on their resolution restricted device, whilst still allowing all of the benefits of downloaded and hot installable java GUI applications. They might choose some drop-down type of launcher and running app changer. The same for hand held appliance manufacturers. Of course, the chips would have to beefier that today's (Dec 2000) Dragonball processors as The full JVM is required for NanoContainer and Jesktop and not the KVM as is popular at the moment.
How to port your GUI app to use Frimble
Assuming you have already got to the stage where your app is an executable jar file.
Step by Step
See FrimbleDemo for how easy this is. Execute this to see it in standalone mode (JFrame):
java -jar jesktop_frimble_demo.jar
or load the same jar into Jesktop via Jesktop's installer. See jesktop_frimble_demo.jar's MANIFEST.MF and applications.xml for the differences.
How they should be packaged in the jar file to be both standalone and Jesktop compatible:
How to package your app that uses a Frimble
Whether you are going to intending your app to be Jesktop only or Standalone and Jesktop, you should not include the frimble package and it's classes in your apps main jar file. For Jesktop dependant mode, your app will automatically have the frimble classes available to it's class loading environment. For standalone mode, you should use a custom MANIFEST.MF file to indicate that a second jar is needed by the app. Sun have a few pages that talk about this (here), or your could just look at FrimbleDemo (TODO-link) and the section of the build.xml file concerning it for inspiration.
Copyright (c) 2004 The Jesktop Project Committers. All rights reserved.
|Hosting provided by :||Jesktop API SourceForge project page|