Replace TreeView with TreeListview for displaying ConnectionTree

Description

Replace the current TreeView object being used to display the ConnectionTree with TreeListView. This will greatly reduce coupling between UI and domain logic.

http://objectlistview.sourceforge.net/cs/recipes.html#how-do-i-use-a-treelistview

Environment

None

Activity

Show:
David Sparer
August 17, 2016, 5:51 PM

The coupling with the presentation layer is even worse than I thought. Even simple changes require many cascading changes.

I will need to begin by consolidating any references to the TreeView used by the presentation layer. Main culprits are:

  • Runtime.cs

  • Windows.cs

  • Any connection loader/saver

David Sparer
August 17, 2016, 5:59 PM

Target model:
-----------------

Presentation

(Treeview)

-----------------+

Domain

(ConnectionTree)

-----------------+

Datasource

(XML/SQL/etc)
-----------------

Presentation operates on data provided by some domain object. In this case, it will likely be a connectiontree object. Utilizing dependency injection, the TreeView will require a ConnectionTree to build itself.

Domain operates on data provided by some Datasource object. XML will create some object to serialize/deserialize data. Utilizing dependency injection, the ConnectionTree will require some ConnectionLoader or ConnectionSaver object from the Datasource layer to build itself.

David Sparer
August 17, 2016, 7:56 PM

To further break down the Datasource layer:

DataMapper ---> (XmlConnectionsDeserializer)
-----------------
DataProvider ---> (FileProvider)

The DataProvider is responsible for loading the data from source source (file, database, api, etc).

The DataMapper is responsible for serialization/deserialization of the underlying domain objects.

David Sparer
August 23, 2016, 3:19 PM

Finished with decoupling the XmlConnectionsDeserializer from data source / presentation.

Still to-do:

  • xml serializer

  • sql deserializer

  • sql serializer

Done

Assignee

David Sparer

Reporter

David Sparer

Labels

None

Components

Fix versions

Priority

Major
Configure