One of the most requested Surfulater capabilities is the ability to select multiple articles in the Knowledge Tree. In hindsight it is clear that omitting this in the original design was a mistake. When you develop any type of product you have to work through an array of trade-offs, otherwise the product may never reach the market and will likely be cost to much. Opting not to include multiple selection was such a trade-off.
Leaving this out was a mistake for two reasons. First I didn’t realize how much our users would want to work with multiple articles and second it has turned out to be quite a chore to rework the code to implement multiple selection. It sounds simple enough on the surface, but it is quite complex once you dig down a bit.
Selecting multiple items is reasonably straightforward, apart from Ctrl+click which toggles the selected item. However the user interaction that follows is complex and tends to vary for each type of action. For example if you select three articles, right click on one and choose Copy then right click on a Folder and choose Paste what should happen with the selection. In the version of Surfulater you have now the selection moves to the pasted article. In the next version it keeps the selection on the original three articles. This brings it in line with how other Windows programs, such as Explorer, behave. But what happens when the original three articles are no longer selected when Paste is used – does the newly pasted article get selected or does the selection stay wherever it was? And Paste is just one of a range of actions and associated outcomes that can be performed on a multiply selected set of articles.
Working though the possible permutations for each command is tedious and deciding on what is the most desirable outcome isn’t necessarily straightforward. And what I think is desirable you may not!
I’ve also changed the behaviour of Right mouse click for the next release so that it no longer changes the current selection. These and other changes make it easier and more intuitive when working with selected items in the Knowledge Tree.