This is just a todo.txt from the simulator-ui/doc directory. Putting it here so that I can remove it from the SVN repository, as it makes more sense to have it in the bug tracker than mixed in with the code.
We should go over this list, take anything that still needs to be done and make separate feature requests / bugs for them, and then close this.
Done
03/22/2008 - Command key substitutes for Ctrl on Mac platform.
03/22/2008 - Zoom to fit selected objects
03/22/2008 - Request ID 1915622: Added noise and singular values selection to unconstrained decoders
03/22/2008 - Added rename logic to node creation code paths
03/22/2008 - Creating nodes through File->New now places them in the top container
03/22/2008 - Tweaked look-and-feel of ConfigDialogs
03/22/2008 - PropertyDescriptors (used to construct a ConfigDialog) now have a setDescription and
getDescription which affects the tooltip. You can also pass in the Description via the constructor.
PropertyTypes are now not shown in the Dialog, you can hover over the property to see that.
03/16/2008 - Added rename to Node menu
03/16/2008 - Name conflicts are resolved on paste, and drag-drop
03/16/2008 - Limited drag & drop functionality added. Can only drag-drop top->down.
Cannot drag & drop from inside to outside of a Container
03/16/2008 - Cut & Paste moves the model, Copy & Paste uses cloning
03/16/2008 - Modified paste functionality to paste into the NodeContainer at the center of the screen
before, it was whichever NodeContainer was maximized
Pri 0 - doing next
Events to pass more information like the node it occured one.
Selectionhandler should attach on destroy events to remove item from selection
Need to create UIFiles directory
Add listener to catch name changes of the children of NengoGraphics
Add ability to surface DataType and Description for Fields of PropertyInputPanel
Scroll the other way when a mouse is dragged off the screen
Update ensemble, network, and function icons to be Vector
While waiting for an ensemble or origin to build, is it possible to
animate something, to convince the user there hasn't been a crash?
Maybe the flashing effect like while the add origin/termination
dialogs are up?
V2 Feature
Elastic forces should be assynmetrical between two objects ( proportional to weight of base object )
Auto-remove dangling probes and projections when a Network is updated
Detect projection removals, scan through all origins and terminations,
looking for projections, then remove the one's which don't exist anymore
Disable zoom & panning while animating camera (use isAnimating())
Run memory test to find leaks
Create more advanced tests
Create, delete, modify nodes
UIProjections
disconnections should be done in UINetwork level through updateViewFromModel()
Show popover message when model is updated
Consolidate all viewer updates in updateModelFromViewer()
Show popover message from there
Pri 1 - Postponed
Drag and drop UINeoNodes between networks (worlds)
Reversable actions
Aggregate actions: actions can be chained, and this chain undone.
Custom file format
Brain View interface
Click to bring a cross section to front, zooming between sections
What operations are undoable? I think it would be nice if
everything was (including object removals & layout changes). Would
this be hard?
There are two primary types of user actions in the Interface. Standard Action and Reversible Action. Layout algorithms are undoable, but individual node movements aren't yet. I'll add "make node layout changes undooable" to my todo list.
There are some concerns about object removals. It's somewhat difficult because I have to remember not only the Node that was removed but the connections, probes, etc... that it had. Also, some networks take up quite a lot of memory, and keeping them in the undo history would keep them from removal. Perhaps I can make some types of object removals undooable?
information visualization
dimensions of functions, nodes
Pri 2 - will do eventually
set the title of the Swing Frame to that of the maximized Zoomable Window
units selection for UI Dialog
Edit properties of existing models
keyboard search of nodes (auto-panning)
For Jung Layout algorithms, consider making WorldObject a Vertice, or making a Vertice Wrapper for world objects
hot keys to change the level of semantic detail in the view. ie. press ctrl to see Node properties
Write a help doc
Pri 3 - maybe if there's time
Lenses to show/hide information
Unconnected lines should be highlighted
Redo functionality to allow duplicate actions to be performed
Requests
Event notifications from Models
Previously Done
03/12/2007 - UIOrigin and UITermination objects are now created through factory methods,
to ensure that the correct wrapper is used.
03/10/2007 - Added SpikingNeuronFactory to options for NEFEnsemble Constructable Dialog
03/09/2008 - Added Node Factory selection options NEFEnsemble Constructable Dialog
Added Sliders and Signs for Encoding and Decoding vectors
03/05/2008 - Terminations and origins are removed from the UI on VisiblyMutable event
03/05/2008 - Fixed bug where a removing a node with a recursive connection caused an exception
03/01/2008 - Popup check in mousePressed(), before it was checked in mouseReleased() only.
03/01/2008 - Mock copy & paste functionality added
03/01/2008 - Added accelorator keys for Menu items
03/01/2008 - Renamed NeoGraphics class to NengoGraphics
03/01/2008 - Added debug messages for Context Menu troubleshooting, disabled same-key check
03/01/2008 - Added error handling when user adds projection outside the scope of a network
02/26/2008 - Exposed terminations & origins are now yellow
You can see their exposed name in the tooltip
Be careful, projections cover the exposed terminations' color
(is this ok? since only one projection is allowed per termination anyways)
02/22/2008 - Context menu now triggered by event.isPopupTrigger()
02/22/2008 - Disabling full-screen mode until issues resolved\
02/22/2008 - Exposing origin/ terminations sets them to visible in the Icon
Before, they were added, but were hidden until explicitly shown.
02/22/2008 - Gaussian function name typo fixed
02/22/2008 - Duplicate Name check on Node Containers before Node models are created
02/22/2008 - Specialized Error messages for file loading
02/22/2008 - Decreased default width of tooltip to 250 pixel
02/22/2008 - Decreased tooltip fadeout time to 100ms
02/22/2008 - Tooltips remove immediately on mouseOut
02/22/2008 - Container Icons are updated when model is updated
02/17/2008 - Fixed bug with input projection removals from event
02/17/2008 - Double-cling on probes now open default plot
02/14/2008 - Projection removals now event driven
02/14/2008 - Probe removals now event driven
02/14/2008 - Script world wrapper added to add / remove nodes
add(node, posX, posY) allows you to add a node to a specific position
02/14/2008 - Ctrl-P now opens and focuses the ScriptConsole
02/13/2008 - Shortcut keys can be defined in initShortCutKeys()
They are visible in the help menu too: help->shortuts
02/13/2008 - Sorting fixed
02/13/2008 - Fixed concurrency issue whereby two threads tried to add projections at once.
All model update events are executed in a pending thread.
I didn't do this earlier because I thought I'd move all unify all UI update operations in one function, which I now think is impractical.
02/13/2008 - Projection popup messages now have the format NodeName.PortName
02/13/2008 - Removed StorageName from NEFEnsemble constructor
Note: you can disable tooltips from showing automatically in the "World" menu. This setting is saved between sessions.
You can force them to show intentially, but holding down the "ctrl" key.
02/12/2008 - Fixed bug where decoded termination input dimension couldn't be changed
02/12/2008 - Fixed duplicate nodes on node creation
02/12/2008 - Fixed null listener on VisiblyMutable, (turns out it was a base class intializer calling that funciton before it was intialized)
02/12/2008 - All top level objects are registered in Script Console
02/12/2008 - Applied style to script editor
02/12/2008 - Fixed memory leak in window
02/12/2008 - Renamed to Nengo
02/12/2008 - Script console now notified of current object, and top level network add/removes
02/12/2008 - Hooked up listeners for VisiblyMutuble, however many changes are not reflected in UI yet (such as projection add/removes)
02/12/2008 - Configuration panel opens in new window
02/06/2008 - Updated style of configuration pane
02/06/2008 - Script Editor to open in new window
02/06/2008 - Matlab exporter added
02/06/2008 - Construct object menu, filter to show only Node
02/05/2008 - Configuration & Script Console integrated into NeoGraphics
02/05/2008 - Advanced construct menu in NodeViewer uses NewConfigurableDialog
02/03/2008 - Data viewer integrated into NeoGraphics window
02/03/2008 - Configuration action added to popup menus
01/20/2008 - Inline search, use 'f' to start.
01/12/2008 - Use ClassRegistry to register classes in plugins directory
12/22/2007 - The Java Swing Frame's title is updated with the maximized Window's name
12/22/2007 - Data List viewer recursively find data nodes and displays the correct number
12/22/2007 - UpdateGraph() is called from Swing context to avoid synchronization problems
12/18/2007 - Elastic layout now works with animations
12/18/2007 - Create graph from ElasticObject and Edge
12/17/2007 - Spring Layout done
12/17/2007 - New prettier window icons
12/17/2007 - Sequential popup messages no longer overlap
12/17/2007 - Connection code improved
12/15/07 - Updated menu styles, Improved Windowing behavior when overlapped, Aesthetic improvements
12/15/07 - Support saving/opening of any NEO Node
12/15/07 - Expose Origin and Expose Termination.
12/15/07 - Improved drag & drop handling code
12/09/07 - New Ensemble decoded origin dialog now only shows common origins in child nodes
12/09/07 - Decoded ensembles & nodes under construction should fade in & out
12/09/07 - Due to memory considerations, dimension expansion on
TimeSeries nodes in DataListViewer requires a user action
it is no longer automatic
12/09/07 - Container nodes in the Data List viewer are sorted.
11/26/07 - DragAction no longer has hard references to objects
11/22/07 - Export data files
11/21/07 - Multiple data items can be cleared and undone
11/20/07 - Data List manager created
11/17/07 - Collecting spikes should be represented by an icon
11/17/07 - Duplicate probes cannot be added in local simulator
DONE (Nov 5) - Interperter work
DONE (Nov 4) - Function input dimensions are enforced in UI Panels
DONE (Oct 24) - MatrixEditor is accepts the last change when user clicks ok
DONE (Sept 30) - Termination is now configured reflectively through ca.nengo.util.Configurable interface
DONE (Sept 30) - Simulation progress is now tracked in the UI
DONE (Sept 30) - Ability to add decoded origin
DONE (Sept 4) - Can view Z-Plane brain imagery, see BrainViewExample.java
DONE (Sept 4) - Some actions can be applied to multiple selected objects
DONE (Sept 1) - Move actions are now undooable
DONE (Aug 31) - Added first iteration of comments, code cleanup, refactoring
DONE (Aug 31) - Added Keyboard mnemonic shortcuts for menubar
DONE (Aug 31) - Made layout animations zooming parallel with node positions.
(08/10) - Show information on Origins and terminations
(08/10) - Made tooltips follow the camera on zoom
(08/10) - Two phase fade-in for tooltips (they turn opaque after 2.5 seconds)
(08/10) - Option to load other networks& ensembles from within networks
(08/10) - Added option to minimize/close all windows
(08/10) - Performance debugging, fixed some memory leaks with Windows & Viewers.
(08/09) - Some user preferences are saved to file
(08/09) - GFrame remembers user preferences in a serialized user configuration file
(08/09) - Plot decoded origins
(08/09) - Plot spikes
(08/09) - Set/view documentation
(08/09) - Tooltips with heterogeneous node information added
(08/08) done - Two types of Transient UI feedback for events such as File Save, New connections, etc...
Events which modify NEO models should now have UI feedback
(08/08) done - Remove probes, probes are also updated from the Simulator using getProbes
(08/08) done - fixed infinite loop bug when GProbe is destroyed
(08/08) done - fixed some Swing thread safety issues
(08/08) done - size of ensembles & networks proportional to number of nodes
(08/07) done - save/open ensembles
(08/07) done - Plot Functions
(08/07) done - added option to remove projections from terminations
(08/07) done - hide/show origins and terminations
(08/07) done - automatically show origins and terminations on hover over
(08/07) done - Preliminary Ensemble Viewer created
(08/07) done - fixed some bugs with UI connections not detaching correctly
DONE - Select multiple things at once
done - File menu, to load saved networks (Use Swing File Dialogs)
done - Save network from NetworkViewer, or PNetwork
done - undo /redo
done - It would be nice to have an easy way to maximize the network viewer
(controls in upper-right corner like windows would be good)
done- When a node is deleted, its origins and terminations should also be deleted
done- There should be either scrollbars or a fit-on-screen function (I
lost a function in the infinite network viewer)
[Issue migrated from SourceForge | ID: 3031722 | Submitted by 'tbekolay'] [http://sourceforge.net/support/tracker.php?aid=3031722]
This is just a todo.txt from the simulator-ui/doc directory. Putting it here so that I can remove it from the SVN repository, as it makes more sense to have it in the bug tracker than mixed in with the code.
We should go over this list, take anything that still needs to be done and make separate feature requests / bugs for them, and then close this.
Done
03/22/2008 - Command key substitutes for Ctrl on Mac platform. 03/22/2008 - Zoom to fit selected objects 03/22/2008 - Request ID 1915622: Added noise and singular values selection to unconstrained decoders
03/22/2008 - Added rename logic to node creation code paths 03/22/2008 - Creating nodes through File->New now places them in the top container 03/22/2008 - Tweaked look-and-feel of ConfigDialogs
03/22/2008 - PropertyDescriptors (used to construct a ConfigDialog) now have a setDescription and getDescription which affects the tooltip. You can also pass in the Description via the constructor. PropertyTypes are now not shown in the Dialog, you can hover over the property to see that.
03/16/2008 - Added rename to Node menu 03/16/2008 - Name conflicts are resolved on paste, and drag-drop
03/16/2008 - Limited drag & drop functionality added. Can only drag-drop top->down. Cannot drag & drop from inside to outside of a Container 03/16/2008 - Cut & Paste moves the model, Copy & Paste uses cloning 03/16/2008 - Modified paste functionality to paste into the NodeContainer at the center of the screen before, it was whichever NodeContainer was maximized
Pri 0 - doing next
Events to pass more information like the node it occured one. Selectionhandler should attach on destroy events to remove item from selection
Need to create UIFiles directory
Add listener to catch name changes of the children of NengoGraphics
Add ability to surface DataType and Description for Fields of PropertyInputPanel
Scroll the other way when a mouse is dragged off the screen
Update ensemble, network, and function icons to be Vector
Elastic forces should be assynmetrical between two objects ( proportional to weight of base object )
Auto-remove dangling probes and projections when a Network is updated Detect projection removals, scan through all origins and terminations, looking for projections, then remove the one's which don't exist anymore
Disable zoom & panning while animating camera (use isAnimating())
Run memory test to find leaks
Create more advanced tests Create, delete, modify nodes
UIProjections disconnections should be done in UINetwork level through updateViewFromModel()
Show popover message when model is updated Consolidate all viewer updates in updateModelFromViewer() Show popover message from there
Pri 1 - Postponed
Drag and drop UINeoNodes between networks (worlds)
Reversable actions Aggregate actions: actions can be chained, and this chain undone.
Custom file format
Brain View interface Click to bring a cross section to front, zooming between sections
There are two primary types of user actions in the Interface. Standard Action and Reversible Action. Layout algorithms are undoable, but individual node movements aren't yet. I'll add "make node layout changes undooable" to my todo list. There are some concerns about object removals. It's somewhat difficult because I have to remember not only the Node that was removed but the connections, probes, etc... that it had. Also, some networks take up quite a lot of memory, and keeping them in the undo history would keep them from removal. Perhaps I can make some types of object removals undooable?
information visualization dimensions of functions, nodes
Pri 2 - will do eventually
set the title of the Swing Frame to that of the maximized Zoomable Window
units selection for UI Dialog
Edit properties of existing models
keyboard search of nodes (auto-panning)
For Jung Layout algorithms, consider making WorldObject a Vertice, or making a Vertice Wrapper for world objects
hot keys to change the level of semantic detail in the view. ie. press ctrl to see Node properties
Write a help doc
Pri 3 - maybe if there's time
Lenses to show/hide information
Unconnected lines should be highlighted
Redo functionality to allow duplicate actions to be performed
Requests
Event notifications from Models
Previously Done
03/12/2007 - UIOrigin and UITermination objects are now created through factory methods, to ensure that the correct wrapper is used. 03/10/2007 - Added SpikingNeuronFactory to options for NEFEnsemble Constructable Dialog 03/09/2008 - Added Node Factory selection options NEFEnsemble Constructable Dialog
03/05/2008 - Terminations and origins are removed from the UI on VisiblyMutable event 03/05/2008 - Fixed bug where a removing a node with a recursive connection caused an exception 03/01/2008 - Popup check in mousePressed(), before it was checked in mouseReleased() only. 03/01/2008 - Mock copy & paste functionality added 03/01/2008 - Added accelorator keys for Menu items 03/01/2008 - Renamed NeoGraphics class to NengoGraphics 03/01/2008 - Added debug messages for Context Menu troubleshooting, disabled same-key check 03/01/2008 - Added error handling when user adds projection outside the scope of a network
02/26/2008 - Exposed terminations & origins are now yellow You can see their exposed name in the tooltip Be careful, projections cover the exposed terminations' color (is this ok? since only one projection is allowed per termination anyways)
02/22/2008 - Context menu now triggered by event.isPopupTrigger() 02/22/2008 - Disabling full-screen mode until issues resolved\ 02/22/2008 - Exposing origin/ terminations sets them to visible in the Icon Before, they were added, but were hidden until explicitly shown. 02/22/2008 - Gaussian function name typo fixed 02/22/2008 - Duplicate Name check on Node Containers before Node models are created 02/22/2008 - Specialized Error messages for file loading
02/22/2008 - Decreased default width of tooltip to 250 pixel 02/22/2008 - Decreased tooltip fadeout time to 100ms 02/22/2008 - Tooltips remove immediately on mouseOut 02/22/2008 - Container Icons are updated when model is updated
02/17/2008 - Fixed bug with input projection removals from event 02/17/2008 - Double-cling on probes now open default plot 02/14/2008 - Projection removals now event driven 02/14/2008 - Probe removals now event driven 02/14/2008 - Script world wrapper added to add / remove nodes add(node, posX, posY) allows you to add a node to a specific position 02/14/2008 - Ctrl-P now opens and focuses the ScriptConsole 02/13/2008 - Shortcut keys can be defined in initShortCutKeys() They are visible in the help menu too: help->shortuts 02/13/2008 - Sorting fixed 02/13/2008 - Fixed concurrency issue whereby two threads tried to add projections at once. All model update events are executed in a pending thread. I didn't do this earlier because I thought I'd move all unify all UI update operations in one function, which I now think is impractical.
02/13/2008 - Projection popup messages now have the format NodeName.PortName 02/13/2008 - Removed StorageName from NEFEnsemble constructor Note: you can disable tooltips from showing automatically in the "World" menu. This setting is saved between sessions. You can force them to show intentially, but holding down the "ctrl" key.
02/12/2008 - Fixed bug where decoded termination input dimension couldn't be changed 02/12/2008 - Fixed duplicate nodes on node creation 02/12/2008 - Fixed null listener on VisiblyMutable, (turns out it was a base class intializer calling that funciton before it was intialized) 02/12/2008 - All top level objects are registered in Script Console 02/12/2008 - Applied style to script editor 02/12/2008 - Fixed memory leak in window 02/12/2008 - Renamed to Nengo 02/12/2008 - Script console now notified of current object, and top level network add/removes 02/12/2008 - Hooked up listeners for VisiblyMutuble, however many changes are not reflected in UI yet (such as projection add/removes) 02/12/2008 - Configuration panel opens in new window 02/06/2008 - Updated style of configuration pane 02/06/2008 - Script Editor to open in new window 02/06/2008 - Matlab exporter added 02/06/2008 - Construct object menu, filter to show only Node
02/05/2008 - Configuration & Script Console integrated into NeoGraphics 02/05/2008 - Advanced construct menu in NodeViewer uses NewConfigurableDialog
02/03/2008 - Data viewer integrated into NeoGraphics window 02/03/2008 - Configuration action added to popup menus
01/20/2008 - Inline search, use 'f' to start. 01/12/2008 - Use ClassRegistry to register classes in plugins directory 12/22/2007 - The Java Swing Frame's title is updated with the maximized Window's name 12/22/2007 - Data List viewer recursively find data nodes and displays the correct number 12/22/2007 - UpdateGraph() is called from Swing context to avoid synchronization problems
12/18/2007 - Elastic layout now works with animations 12/18/2007 - Create graph from ElasticObject and Edge 12/17/2007 - Spring Layout done 12/17/2007 - New prettier window icons 12/17/2007 - Sequential popup messages no longer overlap 12/17/2007 - Connection code improved
12/15/07 - Updated menu styles, Improved Windowing behavior when overlapped, Aesthetic improvements 12/15/07 - Support saving/opening of any NEO Node 12/15/07 - Expose Origin and Expose Termination. 12/15/07 - Improved drag & drop handling code 12/09/07 - New Ensemble decoded origin dialog now only shows common origins in child nodes 12/09/07 - Decoded ensembles & nodes under construction should fade in & out 12/09/07 - Due to memory considerations, dimension expansion on TimeSeries nodes in DataListViewer requires a user action it is no longer automatic 12/09/07 - Container nodes in the Data List viewer are sorted.
11/26/07 - DragAction no longer has hard references to objects 11/22/07 - Export data files 11/21/07 - Multiple data items can be cleared and undone 11/20/07 - Data List manager created 11/17/07 - Collecting spikes should be represented by an icon 11/17/07 - Duplicate probes cannot be added in local simulator
DONE (Nov 5) - Interperter work DONE (Nov 4) - Function input dimensions are enforced in UI Panels DONE (Oct 24) - MatrixEditor is accepts the last change when user clicks ok DONE (Sept 30) - Termination is now configured reflectively through ca.nengo.util.Configurable interface DONE (Sept 30) - Simulation progress is now tracked in the UI DONE (Sept 30) - Ability to add decoded origin DONE (Sept 4) - Can view Z-Plane brain imagery, see BrainViewExample.java DONE (Sept 4) - Some actions can be applied to multiple selected objects DONE (Sept 1) - Move actions are now undooable DONE (Aug 31) - Added first iteration of comments, code cleanup, refactoring DONE (Aug 31) - Added Keyboard mnemonic shortcuts for menubar DONE (Aug 31) - Made layout animations zooming parallel with node positions. (08/10) - Show information on Origins and terminations (08/10) - Made tooltips follow the camera on zoom
(08/10) - Two phase fade-in for tooltips (they turn opaque after 2.5 seconds) (08/10) - Option to load other networks& ensembles from within networks (08/10) - Added option to minimize/close all windows (08/10) - Performance debugging, fixed some memory leaks with Windows & Viewers.
(08/09) - Some user preferences are saved to file (08/09) - GFrame remembers user preferences in a serialized user configuration file (08/09) - Plot decoded origins (08/09) - Plot spikes (08/09) - Set/view documentation (08/09) - Tooltips with heterogeneous node information added
(08/08) done - Two types of Transient UI feedback for events such as File Save, New connections, etc... Events which modify NEO models should now have UI feedback (08/08) done - Remove probes, probes are also updated from the Simulator using getProbes (08/08) done - fixed infinite loop bug when GProbe is destroyed (08/08) done - fixed some Swing thread safety issues
(08/08) done - size of ensembles & networks proportional to number of nodes (08/07) done - save/open ensembles (08/07) done - Plot Functions (08/07) done - added option to remove projections from terminations (08/07) done - hide/show origins and terminations (08/07) done - automatically show origins and terminations on hover over
(08/07) done - Preliminary Ensemble Viewer created (08/07) done - fixed some bugs with UI connections not detaching correctly DONE - Select multiple things at once
done - File menu, to load saved networks (Use Swing File Dialogs) done - Save network from NetworkViewer, or PNetwork
done - undo /redo done - It would be nice to have an easy way to maximize the network viewer (controls in upper-right corner like windows would be good) done- When a node is deleted, its origins and terminations should also be deleted done- There should be either scrollbars or a fit-on-screen function (I lost a function in the infinite network viewer)