User:Alsroot/trash/Frame Panels: Difference between revisions

Line 21: Line 21:
== Detailed Description ==
== Detailed Description ==


* Follow [[Design Team/Proposals/Journal]] mockups
This code follows [[Design Team/Proposals/Journal]] mockups.
* Support plugins for different UI modes
 
** Journal objects-centric plugin(for 0.86+ its a part of sugar package, for <0.86 releases it could be a separate activity as well)
==== UI modes ====
** Books plugin, Calibre-like(or so) for browsing books(separate activity)
 
** Audio plugin for browsing audio files(separate activity)
Unified Browser supports plugins for different UI modes:
** Video plugin for browsing video files(separate activity)
* Journal objects-centric plugin
** ..
* Books plugin, Calibre-like(or so) for browsing books
* Provide all necessary functionality for plugins
* Audio plugin for browsing audio files
** TreeViewModel as a source of objects; so, all pulugins should use TreeViewModel for list widgets
* Video plugin for browsing video files
*** for local objects(rich client for <0.86 and thin client for >=0.86)
* ..
*** for remote p2p objects
 
*** for remote server objects
For sugar-0.86+, Journal plugin will be packaged with sugar, other plugins could be packaged into activities and have separate code base. In 0.86+ environment, these activities will use plugins engine from current sugar, for <0.86 environments, plugins engine will be packaged into activity bundles.
*** aggregated sources(combine several sources)
** UI widgets, like TreeView, TableView
** shell related procedures(like activate objects)


'''NOTE''' Separate activities is not a task for this feature proposal.
'''NOTE''' Separate activities is not a task for this feature proposal.
==== Plugins API ====
Browser provides backwards compatible and versioned plugins engine API:
* ''v0'' engine for glucose-0.82/0.84
* ''v1'' engine for glucose-0.86(+)
Plugins engine provides all necessary functionality for plugins:
* TreeViewModel as a source of objects; so, all pulugins should use TreeViewModel for list widgets
** for local objects(rich client for <0.86 and thin client for >=0.86)
** for remote p2p objects
** for remote server objects
** aggregated sources(combine several sources)
* UI widgets, like TreeView, TableView, tag clouds etc.
* shell related procedures(like activate objects)


== Benefit to Sugar ==
== Benefit to Sugar ==