if (selectedPaths != previousSelectedPaths) {
this.selectedPaths = new ArrayList<Path>(PATH_COMPARATOR);
for (int i = 0, n = selectedPaths.getLength(); i < n; i++) {
Path path = selectedPaths.get(i);
// Monitor the path's parent
monitorBranch(new Path(path, 0, path.getLength() - 1));
// Update the selection
this.selectedPaths.add(new Path(path));
}
// Notify listeners
treeViewSelectionListeners.selectedPathsChanged(this, previousSelectedPaths);
}