diff --git a/pmd-ui/pom.xml b/pmd-ui/pom.xml index a6cef6bc10..5bbdebbbe2 100644 --- a/pmd-ui/pom.xml +++ b/pmd-ui/pom.xml @@ -16,7 +16,7 @@ 1.${java.version} 1.${java.version} - ${project.build.directory}/classes-java8 + ${project.build.outputDirectory}/META-INF/versions/9 11 @@ -65,7 +65,7 @@ - + @@ -73,7 +73,7 @@ maven-dependency-plugin - Unpack java 8 specific deps + layout-java-8-specific-code generate-sources unpack @@ -87,14 +87,14 @@ - Unpack java 9 specific deps + layout-java-9-specific-code generate-resources unpack org.controlsfx:controlsfx:9.0.0 - ${project.build.outputDirectory}/META-INF/versions/9 + ${build.mr.java9.output} **/* diff --git a/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/NodeInfoPanelController.java b/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/NodeInfoPanelController.java index 56fc4c5e41..c11855687d 100644 --- a/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/NodeInfoPanelController.java +++ b/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/NodeInfoPanelController.java @@ -4,6 +4,8 @@ package net.sourceforge.pmd.util.fxdesigner; +import static net.sourceforge.pmd.util.fxdesigner.util.DesignerIteratorUtil.parentIterator; + import java.util.Arrays; import java.util.Collections; import java.util.HashSet; @@ -28,7 +30,6 @@ import net.sourceforge.pmd.lang.symboltable.Scope; import net.sourceforge.pmd.lang.symboltable.ScopedNode; import net.sourceforge.pmd.util.fxdesigner.model.MetricResult; import net.sourceforge.pmd.util.fxdesigner.util.AbstractController; -import net.sourceforge.pmd.util.fxdesigner.util.DesignerIteratorUtil; import net.sourceforge.pmd.util.fxdesigner.util.beans.SettingsPersistenceUtil.PersistentProperty; import net.sourceforge.pmd.util.fxdesigner.util.controls.ScopeHierarchyTreeCell; import net.sourceforge.pmd.util.fxdesigner.util.controls.ScopeHierarchyTreeItem; @@ -210,7 +211,7 @@ public class NodeInfoPanelController extends AbstractController { // Otherwise, when you select a node in the scope tree, since focus of the app is shifted to that // node, the scope hierarchy is reset and you lose the selection - even though obviously the node // you selected is in its own scope hierarchy so it looks buggy. - int maxDepth = IteratorUtil.count(DesignerIteratorUtil.parentIterator(previousSelection, true)); + int maxDepth = IteratorUtil.count(parentIterator(previousSelection, true)); rootScope.tryFindNode(previousSelection.getValue(), maxDepth) .ifPresent(scopeHierarchyTreeView.getSelectionModel()::select); } diff --git a/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/SourceEditorController.java b/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/SourceEditorController.java index 395b509168..7b97fc7a39 100644 --- a/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/SourceEditorController.java +++ b/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/SourceEditorController.java @@ -40,7 +40,7 @@ import net.sourceforge.pmd.util.fxdesigner.util.codearea.AvailableSyntaxHighligh import net.sourceforge.pmd.util.fxdesigner.util.codearea.HighlightLayerCodeArea; import net.sourceforge.pmd.util.fxdesigner.util.codearea.HighlightLayerCodeArea.LayerId; import net.sourceforge.pmd.util.fxdesigner.util.controls.ASTTreeItem; -import net.sourceforge.pmd.util.fxdesigner.util.controls.ASTTreeView; +import net.sourceforge.pmd.util.fxdesigner.util.controls.AstTreeView; import net.sourceforge.pmd.util.fxdesigner.util.controls.NodeParentageCrumbBar; import net.sourceforge.pmd.util.fxdesigner.util.controls.ToolbarTitledPane; @@ -69,7 +69,7 @@ public class SourceEditorController extends AbstractController { @FXML private MenuButton languageSelectionMenuButton; @FXML - private ASTTreeView astTreeView; + private AstTreeView astTreeView; @FXML private HighlightLayerCodeArea codeEditorArea; @FXML @@ -271,7 +271,7 @@ public class SourceEditorController extends AbstractController { codeEditorArea.styleNodes(node == null ? emptyList() : singleton(node), StyleLayerIds.FOCUS, true); if (node != null) { - scrollEditorToNode(node); + Platform.runLater(() -> scrollEditorToNode(node)); } currentFocusNode.setValue(node); diff --git a/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/util/codearea/HighlightLayerCodeArea.java b/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/util/codearea/HighlightLayerCodeArea.java index d538f61151..2d0d635daa 100644 --- a/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/util/codearea/HighlightLayerCodeArea.java +++ b/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/util/codearea/HighlightLayerCodeArea.java @@ -7,7 +7,6 @@ package net.sourceforge.pmd.util.fxdesigner.util.codearea; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; -import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; diff --git a/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/util/controls/ASTTreeView.java b/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/util/controls/AstTreeView.java similarity index 98% rename from pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/util/controls/ASTTreeView.java rename to pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/util/controls/AstTreeView.java index 02fbd58ddd..bf1a3668f6 100644 --- a/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/util/controls/ASTTreeView.java +++ b/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/util/controls/AstTreeView.java @@ -27,7 +27,7 @@ import javafx.scene.control.TreeView; * @author Clément Fournier * @since 7.0.0 */ -public class ASTTreeView extends TreeView { +public class AstTreeView extends TreeView { private final Var> onNodeClickedHandler = Var.newSimpleVar(n -> {}); @@ -37,7 +37,7 @@ public class ASTTreeView extends TreeView { private ASTTreeItem selectedTreeItem; - public ASTTreeView() { + public AstTreeView() { onNodeClickedHandler.values() .subscribe(handler -> { diff --git a/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/util/controls/NodeParentageCrumbBar.java b/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/util/controls/NodeParentageCrumbBar.java index fe2db8a007..ad39de017c 100644 --- a/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/util/controls/NodeParentageCrumbBar.java +++ b/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/util/controls/NodeParentageCrumbBar.java @@ -37,6 +37,9 @@ import javafx.util.Callback; */ public class NodeParentageCrumbBar extends BreadCrumbBar { + private static final int DEFAULT_PX_BY_CHAR = 5; + private static final int DEFAULT_CONSTANT_PADDING = 19; + /** Special item used to truncate paths when they're too long. */ private final TreeItem ellipsisCrumb = new TreeItem<>(null); /** number of nodes currently behind the ellipsis */ @@ -192,14 +195,14 @@ public class NodeParentageCrumbBar extends BreadCrumbBar { private Function getWidthEstimator(int totalNumDisplayedChars, double totalChildrenWidth, int totalNumCrumbs, double constantPadding) { double safeConstantPadding = Double.isNaN(constantPadding) - ? 19 // that's the value on my machine + ? DEFAULT_CONSTANT_PADDING // that's the value on my machine : constantPadding; double thisPxByChar = totalNumDisplayedChars == 0 - ? 5.0 // we have no data, too bad + ? DEFAULT_PX_BY_CHAR // we have no data, too bad : (totalChildrenWidth - safeConstantPadding * totalNumCrumbs) / totalNumDisplayedChars; - return node -> node.getXPathNodeName().length() * thisPxByChar + safeConstantPadding; + return node -> node.getXPathNodeName().length() * (thisPxByChar + 1 /*scale it up a bit*/) + safeConstantPadding; } } diff --git a/pmd-ui/src/main/resources/net/sourceforge/pmd/util/fxdesigner/fxml/editor.fxml b/pmd-ui/src/main/resources/net/sourceforge/pmd/util/fxdesigner/fxml/editor.fxml index 7904959288..2e559f1d4b 100644 --- a/pmd-ui/src/main/resources/net/sourceforge/pmd/util/fxdesigner/fxml/editor.fxml +++ b/pmd-ui/src/main/resources/net/sourceforge/pmd/util/fxdesigner/fxml/editor.fxml @@ -5,7 +5,7 @@ - + @@ -71,7 +71,7 @@ AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> - +