Details

For big stores, with thousands of categories, adding, deleting or editing a single category may take several minutes, because the OSCPMWin application have to rebuild the whole category tree.

Due to performance issues with the TreeView implementation in Windows, building a tree with thousands of nodes is too slow. We have several alternatives:

a) Replace the TreeView component with a faster one. We have Virtual TreeView (http://www.delphi-gems.com/VirtualTreeview/VT.php) by Mike Lischke. Previously we concluded that using this component w<as not possible due to critical licensing issues. (The problem was that the license was not clear, latter, when it was clear the package was LGPL, it required a non-open source package which we cannot use). Now we know we can use it. (The non-open source package is not really required, it can be disabled). Now we face the problem of the migration to Lazarus, we think VTV does not work in Lazarus. (We can fix it using conditional compilation).

b) Avoid reloading the full category tree. We can add the new nodes to the remote database, and then update locally the category tree, without downloading and rebuilding. However, this goes against the our design goals: to have the most updated information without assuming anything.

c) We can add a quick feeding option, to add categories quickly, plus a recursive category deletion option. It would allow specifying a list of categories to add and then adding them in a batch. The recursive deleting would allows the user to delete the specified category plus all the inner ones.