Line 32: |
Line 32: |
| ** ObjectChooser integration | | ** ObjectChooser integration |
| | | |
− | Plugins API will provide necessary functionality:
| + | === Data model === |
− | * TreeViewModel as a source of objects; so, all pulugins should use TreeViewModel for list widgets | + | |
− | * UI widgets, like TreeView, TableView, tag clouds etc. | + | * the whole variety of Journal objects could be represented by sets(default set is all objects) |
− | * shell related procedures(like activate objects) | + | * any set has tag list of objects in set, every tag has count of objects in this set |
| + | * any set could be reduced by query terms(tags or/and search string) |
| + | * every set could be bookmarked(by saving query terms) |
| + | * bookmarked sets could be shared for other sugar users |
| + | |
| + | === View model === |
| + | |
| + | * data sets could be browsed in various Journal plugins(default plugin is Journal) |
| + | * user can change view plugin any time to browse current set |
| + | * user can reduce current set by changing query terms(process of querying entirely depends on plugin) |
| + | * user can bookmark current set(current query terms) |
| + | * bookmarked sets have prefered plugin to browse |
| + | |
| + | == UI changes == |
| + | |
| + | What we see in current Journal view, will be Journal plugin. Plugin could use the whole window(API will provide default components like Journal toolbar), so bookmarks related UI components should be placed to frame window. |
| + | |
| + | Involved operations: |
| + | * create new bookmark, process could be initiated by plugin's UI component but we need common method to name newly created bookmark |
| + | * delete stored bookmark |
| + | * switch between bookmarks |
| + | * change view plugin for current set |
| + | * share bookmark |
| + | * let other users know that someone has shared bookmarks |
| + | * mark opened external bookmarks in bookmarks list(to separate them from local ones) |
| | | |
| == Benefit to Sugar == | | == Benefit to Sugar == |