NeXtMidas Swing Requirements
This is a living document that will be updated by NeXtMidas developers
as new requirements are discovered.
- Based on Java 1.4
- Must have value-added features over builders
- Must be drop-in replacement from macro language perspective (Those macros containing calls to invoke() will need wrappers)
- Drag and Drop for Files
- Drag and Drop configuration (controls)
- Control panel placement should be unrestricted
- Detachable tabs
- Size control: must be "stretchable"
- Compressed/full view (collapsable portions of display)
- Movable head: change the display in which a window appears
- Menubar option
MSZ Comments on Macro/Graphic Improvements
- Better Scoping - ie SUBROUTINES vs PROCEDURES
- Needs to be able to STOP a macro and POPUP a graphic message
- Blocking vs Non-Blocking Dialogs/Complex Dialogs. Java Types are:
- Application Specific
- Modal - no input system wide
- Non-modal - non-blocking
- Another type???
- MMP files -- does not like, hard to understand, replace with XML
- Easier hide/show of controls
- Easier to make "beans" - I create control, treat it as an "xxx" control
- Need to pass object into control so it can maintain state. For example,
I clicked on row one to cause this menu to come up, action should be associated
with row 1 even if I selected row 2 while the menu was up.
- Splash Screens -- come with Java 5
- ICONS associated with controls
- More flexibility on where I place a plot. So I can place with menu bar, toolbars,...
Beth Hassler Comments on using Swing components with NeXtMidas GUIs
- Need to remove the panel margins when adding the control section to the MidasControls component.
It's distracting and causes sizing issues. Maybe this isn't critical, as I believe most people
building a gui from scractch will use Swing components instead of the gcontrols. In my case,
I had initially thought about doing a mix of both.
- Need to fix any issues with regard to the Midas display components being "heavyweight". When
trying to draw a menubar pulldown over the displays, the menubar would not display on top
of the midas display component.
- The MidasDisplay component needs to incorporate a "title".
- There are still refresh issues with panel expose events. This is especially noticeable when using tabbed panels.
- Is there a smart way we can access the macro results table from these gui callbacks?
Pete Perrino Discussion -- 14MAY07
- "Give the X-Midas user's ability to use Java"
- Consider X-Midas limitiations in the API. Can we have a table/xml form of all objects??
This way the API does not have to be re-documented when used from X-Midas as tables and
not objects.
- For XBC, consider running a complicated option like BOT or AUDIO condition X-Midas options
- Currently too much restriction on controls location.
- Likes idea of defining which mouse button brings up a menu and what class handles the menu.
- Macro Version of Objects - Can we have an import or use the new command to do something like
have a live macro OBJECT. Then procedure in the macro can be used as the callback. Something
like
- import nxm.myopt.mymacro.mm
- new nxm.myopt.mymacro mymacro
- invoke mymacro.myprocedure or set the callback
- Want to be able to build dialogs out of macros and then plug them in as GCONTROLS
- Listener concepts are important