Ticket #660 (closed defect: moved)
Opened 2011-07-05T09:50:15-05:00
Last modified 2013-06-05T15:19:50-05:00
Improve Display-DisplayView-DataObject hierarchy
Reported by: | curtis | Owned by: | curtis |
---|---|---|---|
Priority: | critical | Milestone: | imagej2-b8-analysis |
Component: | Display API | Version: | |
Severity: | critical | Keywords: | |
Cc: | Blocked By: | #995 | |
Blocking: | #579 |
Description
Currently, a Display consists of a list of DisplayViews, each of which links to a DataObject. After talking with a few people about use cases, it seems that this approach is too simplistic.
For example, if you have a Dataset with a collection of Overlays intended to correspond to that Dataset, it would be nice for the data structures to indicate that they are specifically linked somehow, rather than just implicitly so by being in the same display.
A tree-like hierarchy of data objects would provide more explicit linkage between related objects, as well as easy duplication of the same structures across multiple displays. (TrakEM2 and Endrov both support tree-like hierarchies of data objects.)
Another problem is that we currently have no UI-agnostic mechanism to create DisplayView instances from a given Dataset or Overlay. Many plugins need to return a DatasetView or an OverlayView, but must avoid invoking e.g. "new SwingDatasetView" in code.
Further, for plugins that wish to return more complex data structures (e.g., a Dataset together with some Overlays), it would be nice to have the aforementioned tree structure, so that it can be used by those plugins.
To address these issues, I propose the following changes:
- Create a third type of DisplayView called a CompositeView that consists of a list of other DisplayViews.
- Provide a helper/factory that can generically create DatasetViews and OverlayViews.
- Potentially, for simplicity, change Display to take a single CompositeView.
Change History
comment:1 Changed 2011-07-05T13:04:09-05:00 by leek
comment:2 Changed 2011-07-27T10:11:54-05:00 by curtis
- Owner changed from gharris to curtis
- Status changed from new to assigned
- Milestone changed from biweekly-2011: Jul-18 to Jul-29 to biweekly-2011: Aug-01 to Aug-12
comment:3 Changed 2011-08-01T12:10:32-05:00 by curtis
- Milestone changed from biweekly-2011: Aug-01 to Aug-12 to imagej-2.0-alpha5
Milestone biweekly-2011: Aug-01 to Aug-12 deleted
comment:4 Changed 2011-09-29T16:15:26-05:00 by curtis
I posted a blog entry detailing the latest work and plans on this front. Lee, I think the current refactoring plans cover everything you mention above except for the provenance issue, which could be added later without too much disruption, I think.
comment:8 Changed 2012-03-02T13:13:27-06:00 by curtis
- Milestone changed from imagej-2.0-beta1 to imagej-2.0-beta2
comment:9 Changed 2012-06-16T23:27:42-05:00 by curtis
- Milestone changed from imagej-2.0.0-beta3 to imagej-2.0.0-beta4
comment:10 Changed 2012-08-14T09:52:06-05:00 by curtis
- Milestone changed from imagej-2.0.0-beta4 to imagej-2.0.0-beta5
The theme of beta5 will be more flexible data visualization and processing.
comment:11 Changed 2013-06-05T15:19:50-05:00 by bdezonia
- Milestone changed from imagej2-b7-ndim-data to imagej2-b8-analysis
comment:10 Changed 2014-05-25T21:38:17-05:00 by curtis
- Status changed from accepted to closed
- Resolution set to moved
It seems to me that there are several problems: