Role Based Menus for Client Window (Melissa)
Purpose
A major issue with Open Wonderland is the ability for users to edit the world. In order for Virtual BU to be fully distributable we would need to be able to eliminate unauthorized access to administrative level functionalities within the client interface.
Module Structure
The module is composed of only a client plugin.
The source code for this module will be located within the newmodule code package under
/trunk/my-wonderland-modules/unstable/newmodule/src/classes/org/jdesktop/wonderland/modules/newmodule/client
Compiling the Module
To compile the module, you must be within the modules top level directory. If using the current code package, this would be "newmodule." Once within this directory, follow these commands:
ant clean ---- This is important because if you do not first remove the pre-existing .jar files, the module will not be newly compiled and your changes not reflected.
ant ---- This will actually compile the module for you and package the .jar as well as create the dist folder.
At this point, if you navigate to trunk/my-wonderland-modules/unstable/newmodule/dist you will find the .jar that you will need to install the module on the Wonderland Server Page, as described in the section Installing Module.
Troubleshooting
Client crashes after deploying module: This is generally caused by attempting to access incorrect menu instances or menu components, to resolve this try a different combination.
Problem with Other Modules and Plugins
This is an extremely primitive attempt at what actually needs to be done. A significant problem exists in that the module is only able to access menu items that are present prior to a users log in attempt. The module does not have access to any of the plugins that are loaded after a successful login.
Ideas for Improvement
Prior to graduation I had begun examining a way to create a plugin filter that would replace this modules code or depending on how it was implemented work along side it.
The Base Class for PluginFilter can be found here:
trunk/wonderland/core/src/classes/org/jdesktop/wonderland/client/login
Examples of use of a PluginFilter can be found in the same directory in LoginManager.
Installing Module
Prerequisites
Authentication must be configured for use.
The module must be compiled.
Must have access to the Server Administration Pages
Installing
1. Navigate to Manage Modules
2. Click "Browse" and select the Modules .jar file
3. Restart Darkstar