Resolved the uniqueness problem and defaulted the group by data source option to be false instead of null

This commit is contained in:
U-BASIS\dsmyda 2019-01-30 13:25:55 -05:00
parent 7db7f1c353
commit b3450d09ea
2 changed files with 6 additions and 55 deletions

View File

@ -43,7 +43,7 @@ public final class CasePreferences {
private static final Logger logger = Logger.getLogger(CasePreferences.class.getName());
private static Boolean groupItemsInTreeByDataSource = null;
private static Boolean groupItemsInTreeByDataSource = false;
/**
* Prevent instantiation.
@ -109,11 +109,11 @@ public final class CasePreferences {
default:
logger.log(Level.WARNING, String.format("Unexpected value '%s' for key '%s'. Using 'null' instead.",
groupByDataSourceValue, KEY_GROUP_BY_DATA_SOURCE));
groupItemsInTreeByDataSource = null;
groupItemsInTreeByDataSource = false;
break;
}
} else {
groupItemsInTreeByDataSource = null;
groupItemsInTreeByDataSource = false;
}
} catch (IOException ex) {
logger.log(Level.SEVERE, "Error reading settings file", ex);

View File

@ -47,6 +47,7 @@ import javax.swing.tree.TreeSelectionModel;
import org.apache.commons.lang3.StringUtils;
import org.openide.explorer.ExplorerManager;
import org.openide.explorer.ExplorerUtils;
import org.openide.explorer.view.Visualizer;
import org.openide.nodes.AbstractNode;
import org.openide.nodes.Children;
import org.openide.nodes.Node;
@ -136,16 +137,9 @@ public final class DirectoryTreeTopComponent extends TopComponent implements Dat
return;
}
Node expandedNode = Visualizer.findNode(event.getPath().getLastPathComponent());
for(Node child : em.getRootContext().getChildren().getNodes()) {
Object[] dataSourceNode = getPath(child);
if(dataSourceNode.length != event.getPath().getPathCount()) {
break;
}
//If the the user expanded one of the data sources node, then
//automatically expand the Views and Results for them.
if(isSameTreeNodePath(dataSourceNode, event.getPath().getPath())){
if(child.equals(expandedNode)) {
preExpandNodes(child.getChildren());
}
}
@ -191,49 +185,6 @@ public final class DirectoryTreeTopComponent extends TopComponent implements Dat
});
}
/**
* Test whether the two tree node paths are the same.
*
* @param first
* @param second
*
* @return boolean indicating equality of paths
*/
private boolean isSameTreeNodePath(Object[] first, Object[] second) {
if(first.length != second.length) {
return false;
}
for(int i = 0; i < first.length; i++) {
if(!first[i].toString().equals(second[i].toString())) {
return false;
}
}
return true;
}
/**
* Build the node's path in the Tree.
*
* @param node
* @return Path array where the first element is the root
* and the last is the node parameter.
*/
private Object[] getPath(Node node) {
List<Object> path = new ArrayList<>();
Node current = node;
path.add(node.getName());
while(current.getParentNode() != null) {
current = node.getParentNode();
path.add(current.getName());
}
Collections.reverse(path);
return path.toArray();
}
/**
* Pre-expands the Views node, the Results node, and all of the children of
* the Results node.