Another important point to note is that
the components (menu and applets) in the task bar is shared among all
workspaces. Therefore configurations done to the task bar components in
any workspace will result in changes to all workspaces. This technique
is known as GUI caching which has the advantage of speed but
disadvantage of global modification. The default desktop implementation
will usually take the faster approach when there is a design dilemma of
this sort, unless the particular case involves exporting the code design
for the purpose of reuse. Refer to the section on building
your own desktop
for issues like this.
Desktop Menu Manager
This section is a brief discussion of the GUI interfaces to the
default modules that are distributed by default with the default Java
desktop. Those modules that choose to interact with the users through a
desktop menu will have to provide a menu GUI interface which will be
automatically added to the desktop menu manager during initialization.
The desktop menu manager consist of three main menu. The first menu is
the JD4X Controller menu. The menu is JUNK's (J
ernel) controller module.
JUNK is a platform independent abstract kernel that holds the whole
desktop together. It is a multi-threaded server that runs the entire
Java desktop system including all its modules. This first menu is the
module interface to the facilities provided by JUNK. It consists of all
the management tools that manipulates the threads, processes, Jvms,
plugins and the desktop session.
Controller Plugin Module Menu
Thread - Manages all threads running in JUNK.
Process - Manages all processes and Jvms running in JUNK.
Plugin - Manages all additional module plugins.
Message - Displays all message dumps (both standard output and
error) in JUNK's runtime domain.
Application - Execute a native process within JUNK.
Menu - Launches this current user manual in either mozilla or
- About Developers - Displays the current active modules and their
Logout - Terminate the current desktop session.
None of the module's menu can be configured manually by the user.
During JUNK's (J
ernel) startup process, it
will attempt to probe for new plugin modules. If it finds any new
modules, it will automatically load them into its runtime domain and
initialize them. The menu or applet that is provided by these new
modules for the purpose of user interaction will be added to the desktop
menu or applet manager. The only user configurable menu is the Programs
menu which is also known as the user application menu.
Desktop User Application Menu
The user application menu allows the user to add,
remove and configure
native and Java applications on the default
desktop. Users can group sets of applications into other submenu under
the Programs menu. Any configuration changes will be automatically saved
when the user logout of his/her desktop session. The default desktop
comes configured with a set of default third
that are commonly used on the desktop. Depending
on your contributions, these default set of applications will increase
with time as JD4X matures. If there are not enough good Java
applications available, common native Linux applications will be
substituted in their place. We hope that in doing so, JD4X will provide
an opportunity to gather talented (Java and Native) applications on the
For Your Consideration: If you have a Java application or wish to
suggest one that you think is worth sharing with others, sent it to us.
If we like it, we'll make it part of our default set of Java
applications and share your talent with others. Refer to the section on how you can help
There are two minor modules distributed by default in the JD4X system.
The first is the default Java window manager module which is the second
popup menu in the Desktop Menu Manager. This menu consist of all the
desktop configuration tools available for customizing the default
Window Manager Plugin Module Menu
The default desktop supports multiple desktop workspaces. Each
workspace is like a separate desktop instance such that users can
organize their work on each workspace for a specific purpose. The task
bar components are shared among all workspaces and does not need to be
reconfigured separately, however, each workspace has its own separate icon manager
, desktop background and task bar
. Workspaces reduce the problem
of multiple application programs cluttering a single screen space by
allowing them to be spread across other desktop instances.
Desktop Workspace Switchers
A desktop switcher is the desktop
component that represents a single workspace instance. The current
workspace in use is identified by the workspace switcher that has a dark
gray box surrounding it. Users can easily switch between workspaces by
clicking on the desired switcher. If a default desktop configuration
tool is launched within a
particular workspace, trying to reactivate them on another workspace
will have no effect. Each configuration or management program tool
has to be closed in their current workspace before they can be
reactivated onto a different workspace. The reason for this is that the
default desktop tools are cached between workspaces or shared and
therefore can only appear in one workspace at any one time. Application
programs on the other hand are not cached and can be activate multiple
times on each workspace depending on their design. The desktop
background are separate for each workspace and can be configured
differently. Any configuration changes in any of the workspaces will be
automatically saved when the user logout.
The default desktop supports applet launchers on its task bar.
Applets on the default desktop can be anything that is within a Java
panel such as a button, web applet or label. Applets can only be
automatically added through the module plugin interface.
Applet Launcher Manager
Applet launchers on the other hand means an application launcher. The
applet manager is the desktop component that groups all applet launchers
that is displayed on the task bar. It enables the users to configure
their favourite application for an easy quick launch through the task
bar without having to search through the desktop Programs menu. Applet
launchers can be configured using the Applet
An iconfied frame means that the application is no longer
visible on the desktop but it is still running or active. A deiconfied
frame means that the application frame is visible on the desktop. The
icon manager is the desktop component that groups all the representation
of an iconfied or minimized window or frame. It is found at the top
(north) of the desktop workspace. Icon managers only contain the windows
or frames that belong to their own workspace. It appears only when there
is one or more iconfied frame within the workspace that it manages. It
disappears when no frames have been iconfied or when all applications
have been closed.
Desktop Icon Manager
Any application that has been iconfied will have a representation of
their instance in the icon manager. The application frames can be
iconfied or deiconfied by simply clicking on its specific icon
representation button. Each icon button consist of merely its
application name in a shorter form, however, the content of what is
displayed depends largely on what the application desires the icon
manager to display. If the title on the icon button is too long to be
displayed, it will end with the form "...". All deiconfied frames will
have icon buttons that look depressed (dark gray box). All iconfied
frames will have icon buttons that look undepressed.
Frame or Window Functions
Frames or windows are the main desktop components that host
application programs. The application program itself excludes the border
and title bar. The title bar and border is what is often referred to as
a frame. There is a difference between a frame and a window. A window is
merely a box on the screen while a frame consist of a border, a title
bar, resizing functions, minimize function, close function as well as
window moving functions.
The default JD4X windowing module (Moth) provides all its own
frame support independent of any Java development toolkit. It uses the
low level X facilities directly to avoid the toolkit layering that
results in the sluggish behavior in Swing. With native support for X,
the windowing module is able to provide its own frame behavior as well
as its own custom look and feel. Below is a list of the build in frame
facility supported in JD4X:
- When a frame is activated or selected for current use, the frame
will gain focus and in turn pass the focus to the application that it
host. To gain focus and activate a particular frame, click on the
title bar or grid.
- If the frame is deactivated, it losses focus and the application
losses its keyboard input facilities.
- Each of the four corners of the frame will allow it to be resized
towards the direction that its corner is pointing to (north east, north
west, south east, south west).
- Each of the four boundaries will also allow resizing towards
their particular direction (north, south, east and west).
- To indicate that the resizing function is being activated, the
cursor changes, showing the possible direction in which the frame can be
resized. The user can resize a frame by simply clicking and dragging the
frame towards the desired direction.
- A frame can be moved to the desired location by simply
clicking on the title bar grid and dragging it to the desired location.
Releasing the mouse button will finalize the frame location.
- A frame can be minimized or iconfied by clicking the first
function button (from left) on the top right corner of the frame. The
function button has an icon with a single line "_" at the bottom.
- A frame can be closed thereby terminating the application by
clicking on the second function button (from left) on the top right
corner of the frame. The function button has an icon with an "X" at the
- Clicking any function button will cause it to be highlighted. As
long as the mouse button is release within the function button's window
area, the function will be activated. If you click on the button but
changed your mind about activating the function, just move the mouse
outside the function button's window area and the function will not be
If you are interested to have a common JD4X desktop appearance
in your application, the default implementation will also provide a
standard system file chooser and dialogs. We hope to standardize a set
of common desktop components on the JD4X desktop as JD4X matures but at
the moment, we have not been able to do that. Perhaps with enough user
feedbacks, we will be able to standardize a common desktop look and feel
between the desktop itself and its supporting applications. Currently,
the default desktop depends a lot on basic Swing with additional Java
theme added. There are now facilties to allow developers to customize
their own frame look. Refer to the section on customizing the JD4X
desktop in the design and specification manual (dns.sxw) for more