Difference between revisions of "Common Navigator Framework Use Cases"

From Eclipsepedia

Jump to: navigation, search
(RCP - Objects Other than Resources)
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
The Common Navigator Framework (CNF) can be used both within the IDE (it's the Package Explorer) and in RCP applications.
+
The Common Navigator Framework (CNF) can be used both within the IDE (it's the Project Explorer) and in RCP applications.
  
 
In order to provide the best support for the 3.5 release, we would like to understand the current and desired uses of the CNF, so please update this page and include them here.
 
In order to provide the best support for the 3.5 release, we would like to understand the current and desired uses of the CNF, so please update this page and include them here.
Line 9: Line 9:
 
'''Project Explorer''' - The Project Explorer is the default project view in the Resource perspective replacing the Navigator view.
 
'''Project Explorer''' - The Project Explorer is the default project view in the Resource perspective replacing the Navigator view.
 
Project Explorer is also reused by CDT as default project view with custom content extensions. There are still some deficiencies compared to Navigator and Package Explorer view which hinders acceptance as a shared project view, e.g.
 
Project Explorer is also reused by CDT as default project view with custom content extensions. There are still some deficiencies compared to Navigator and Package Explorer view which hinders acceptance as a shared project view, e.g.
* [CommonNavigator] Use of window working set inconsistant with the rest of the workbench - [http://bugs.eclipse.org/157877 157877]
+
* There is no "Other Projects" working set on Project Explorer - [http://bugs.eclipse.org/196595 196595]
* [WorkingSets] [CommonNavigator]  Project Explorer is empty when there is no window working set - [http://bugs.eclipse.org/190819 190819]
+
* [CommonNavigator] Project Explorer shows working set content flattened - [http://bugs.eclipse.org/212389 212389]
+
* There is no "Other Projects" working set on Project Explorer - [http://bugs.eclipse.org/196595 196595], [http://bugs.eclipse.org/229537 229537]
+
 
* [CommonNavigator] add "Sort by" view menu - [http://bugs.eclipse.org/208801 208801]
 
* [CommonNavigator] add "Sort by" view menu - [http://bugs.eclipse.org/208801 208801]
* [CommonNavigator] ProblemsLabelDecorator does not scale well with Project Explorer - [http://bugs.eclipse.org/194209 194209]
+
 
There are also quite a few bugs with attached patches, e.g.
+
* [CommonNavigator] Drag and Drop of non IResource items causes FileTransfer to be created with null data - [http://bugs.eclipse.org/161095 161095]
+
* [CommonNavigator] Project Explorer does not support Navigate > Show In... - [http://bugs.eclipse.org/220599 220599]
+
* [CommonNavigator] Capability filtering of commonWizard extensions uses wrong identifier - [http://bugs.eclipse.org/217801 217801]
+
* [CommonNavigator] CommonNavigator.selectReveal() should not expand selected elements - [http://bugs.eclipse.org/228359 228359]
+
 
-- [mailto:anton.leherbauer@windriver.com Anton Leherbauer, CDT Committer]
 
-- [mailto:anton.leherbauer@windriver.com Anton Leherbauer, CDT Committer]
  
Additional Bugzilla entries:
 
* [CommonNavigator] Expose the ability for CommonDropAdapterAssistants to select feedback - [http://bugs.eclipse.org/150688 150688]
 
* [CommonNavigator] actionProvider extension does not support dependsOn and overrides simulaneous - [http://bugs.eclipse.org/182285 182285]
 
-- [mailto:johann.draschwandtner@windriver.com Johann Draschwandtner]
 
  
 
'''Data Source Explorer''' - The Data Source Explorer (DSE) is a part of the Data Tools Platform (DTP) Project's Data Development perspective. It extends the CommonNavigator to display custom content equating to categories, connection profiles, and then once a profile is connected, it displays the content of the connection profile. Content is typically database-related (database/catalog, schema, table, stored procedure, columns, etc...), but can be resource-based as well (like the sample File connection profile).
 
'''Data Source Explorer''' - The Data Source Explorer (DSE) is a part of the Data Tools Platform (DTP) Project's Data Development perspective. It extends the CommonNavigator to display custom content equating to categories, connection profiles, and then once a profile is connected, it displays the content of the connection profile. Content is typically database-related (database/catalog, schema, table, stored procedure, columns, etc...), but can be resource-based as well (like the sample File connection profile).
Line 36: Line 24:
 
representing the structures, maps, etc and these are managed by an internal dependency manager so that changes in the resources
 
representing the structures, maps, etc and these are managed by an internal dependency manager so that changes in the resources
 
(through the CNF) cause the model objects to be updated.  Contact: Francis Upton (francisu@ieee.org).
 
(through the CNF) cause the model objects to be updated.  Contact: Francis Upton (francisu@ieee.org).
 +
 +
'''Interactive Processing Environment''' - Think of it as an IDE for seismic processors. We use CNF for our custom project explorer. We've added a number of filters, sorters, etc. With Michael's blog I found CNF easy to get up and running. See [http://richclientplatform.blogspot.com/2007/12/oil-and-gas-industry-using-eclipse.html Oil and Gas Industry Using Eclipse] for screen captures. Contact: David Kyle (davidk@kelman.com).
  
 
= RCP - Objects Other than Resources =
 
= RCP - Objects Other than Resources =
Line 42: Line 32:
  
 
'''Hibernate Data model browser''' - We wanted to use CNF for Hibernate tools to show the static data model and for browsing the object graph/query result. Neither of these are in any way mappable to resources. The problem we got into was that we could not find a way to lazily load children with visual feedback in the tree. Contact: Max Rydahl Andersen (max.andersen@jboss.com).
 
'''Hibernate Data model browser''' - We wanted to use CNF for Hibernate tools to show the static data model and for browsing the object graph/query result. Neither of these are in any way mappable to resources. The problem we got into was that we could not find a way to lazily load children with visual feedback in the tree. Contact: Max Rydahl Andersen (max.andersen@jboss.com).
 +
 +
'''Business Object Navigation''' - I've worked on several projects which used the CNF to navigate business objects not accessible via resources. One example was a logistics application which managed supervisors, trucks, routes, and shipping destinations. The data was retrieved using web services, but in other cases the data has been loaded by Hibernate or whatever. The important thing is that the CNF should be easy to use in situations where business objects are being retrieved in some way.
 +
 +
It's actually not so bad right now, but it could be easier. Currently you must subclass the CommonNavigator class and override the getInitialInput method to supply some root object that the business objects can attach to. The idea of using the page input as the root of the navigator doesn't work in this scenario and is confusing to new developers. It would be nice if you could just create a navigator extension and then just start adding any type of content provider to it.  Perhaps there could be an attribute on the navigator extension point indicating whether the page input should be used as the root. If it should not, then some type of generic root node would need to be created for content providers to attach to. Contact: Patrick Paulin (patrick@rcpquickstart.com).
  
 
[[Category:Platform UI]]
 
[[Category:Platform UI]]

Latest revision as of 08:24, 24 April 2009

The Common Navigator Framework (CNF) can be used both within the IDE (it's the Project Explorer) and in RCP applications.

In order to provide the best support for the 3.5 release, we would like to understand the current and desired uses of the CNF, so please update this page and include them here.

[edit] IDE

Data Mapper Plugin - (as described in the RCP section)

Project Explorer - The Project Explorer is the default project view in the Resource perspective replacing the Navigator view. Project Explorer is also reused by CDT as default project view with custom content extensions. There are still some deficiencies compared to Navigator and Package Explorer view which hinders acceptance as a shared project view, e.g.

  • There is no "Other Projects" working set on Project Explorer - 196595
  • [CommonNavigator] add "Sort by" view menu - 208801

-- Anton Leherbauer, CDT Committer


Data Source Explorer - The Data Source Explorer (DSE) is a part of the Data Tools Platform (DTP) Project's Data Development perspective. It extends the CommonNavigator to display custom content equating to categories, connection profiles, and then once a profile is connected, it displays the content of the connection profile. Content is typically database-related (database/catalog, schema, table, stored procedure, columns, etc...), but can be resource-based as well (like the sample File connection profile). -- Brian Fitzpatrick, DTP PMC Lead/Committer

[edit] RCP - With Resources

Data Mapper - This RCP application uses the CNF with resources to manage data structure definitions, map definitions and other objects. The resources can exist in the local file system, or using EFS in a zip file or plugin. There is a set of model objects representing the structures, maps, etc and these are managed by an internal dependency manager so that changes in the resources (through the CNF) cause the model objects to be updated. Contact: Francis Upton (francisu@ieee.org).

Interactive Processing Environment - Think of it as an IDE for seismic processors. We use CNF for our custom project explorer. We've added a number of filters, sorters, etc. With Michael's blog I found CNF easy to get up and running. See Oil and Gas Industry Using Eclipse for screen captures. Contact: David Kyle (davidk@kelman.com).

[edit] RCP - Objects Other than Resources

Please tell us about the objects you would use the CNF with, and also indicate why you did not choose to use resources. The CNF in conjunction with resources provides considerable benefit; we would like to hear about cases where this combination will not work for whatever reason.

Hibernate Data model browser - We wanted to use CNF for Hibernate tools to show the static data model and for browsing the object graph/query result. Neither of these are in any way mappable to resources. The problem we got into was that we could not find a way to lazily load children with visual feedback in the tree. Contact: Max Rydahl Andersen (max.andersen@jboss.com).

Business Object Navigation - I've worked on several projects which used the CNF to navigate business objects not accessible via resources. One example was a logistics application which managed supervisors, trucks, routes, and shipping destinations. The data was retrieved using web services, but in other cases the data has been loaded by Hibernate or whatever. The important thing is that the CNF should be easy to use in situations where business objects are being retrieved in some way.

It's actually not so bad right now, but it could be easier. Currently you must subclass the CommonNavigator class and override the getInitialInput method to supply some root object that the business objects can attach to. The idea of using the page input as the root of the navigator doesn't work in this scenario and is confusing to new developers. It would be nice if you could just create a navigator extension and then just start adding any type of content provider to it. Perhaps there could be an attribute on the navigator extension point indicating whether the page input should be used as the root. If it should not, then some type of generic root node would need to be created for content providers to attach to. Contact: Patrick Paulin (patrick@rcpquickstart.com).