Avoid some unnecessary computations

They're possibly expensive, eg tree traversal
This commit is contained in:
Clément Fournier
2018-05-01 18:16:08 +02:00
parent 7d7c2dc94a
commit 08a37c75cb
2 changed files with 16 additions and 9 deletions

View File

@ -59,7 +59,7 @@ public class NodeInfoPanelController implements Initializable {
@FXML
private TreeView<Object> scopeHierarchyTreeView;
private MetricEvaluator metricEvaluator = new MetricEvaluator();
private Node selectedNode;
public NodeInfoPanelController(MainDesignerController mainController) {
parent = mainController;
@ -84,9 +84,12 @@ public class NodeInfoPanelController implements Initializable {
* @param node Node to inspect
*/
public void displayInfo(Node node) {
Objects.requireNonNull(node, "Node cannot be null");
if (node.equals(selectedNode)) {
return;
}
ObservableList<String> atts = getAttributes(node);
xpathAttributesListView.setItems(atts);

View File

@ -58,7 +58,7 @@ public class SourceEditorController implements Initializable, SettingsOwner {
private ASTManager astManager;
private TreeViewWrapper<Node> treeViewWrapper;
private ASTTreeItem selectedTreeItem;
public SourceEditorController(DesignerRoot owner, MainDesignerController mainController) {
parent = mainController;
@ -165,12 +165,17 @@ public class SourceEditorController implements Initializable, SettingsOwner {
highlightNodes(nodes, Collections.singleton("secondary-highlight"));
}
public void focusNodeInTreeView(Node node) {
ASTTreeItem found = ((ASTTreeItem) astTreeView.getRoot()).findItem(node);
if (found != null) {
SelectionModel<TreeItem<Node>> selectionModel = astTreeView.getSelectionModel();
selectionModel.select(found);
SelectionModel<TreeItem<Node>> selectionModel = astTreeView.getSelectionModel();
// node is different from the old one
if (selectedTreeItem == null && node != null
|| selectedTreeItem != null && !Objects.equals(node, selectedTreeItem.getValue())) {
ASTTreeItem found = ((ASTTreeItem) astTreeView.getRoot()).findItem(node);
if (found != null) {
selectionModel.select(found);
}
astTreeView.getFocusModel().focus(selectionModel.getSelectedIndex());
if (!treeViewWrapper.isIndexVisible(selectionModel.getSelectedIndex())) {
astTreeView.scrollTo(selectionModel.getSelectedIndex());
@ -178,7 +183,6 @@ public class SourceEditorController implements Initializable, SettingsOwner {
}
}
private void invalidateAST(boolean error) {
astTitleLabel.setText("Abstract syntax tree (" + (error ? "error" : "outdated") + ")");
}