|
19 | 19 | import org.openlowcode.client.action.CPageAction; |
20 | 20 | import org.openlowcode.client.graphic.CPage; |
21 | 21 | import org.openlowcode.client.runtime.PageActionManager.ActionSourceTransformer; |
| 22 | +import org.openlowcode.tools.richtext.RichTextArea; |
| 23 | + |
22 | 24 | import javafx.scene.input.MouseEvent; |
23 | 25 | import javafx.scene.input.ScrollEvent; |
24 | 26 | import javafx.event.EventHandler; |
|
29 | 31 | import javafx.application.Platform; |
30 | 32 | import javafx.beans.value.ChangeListener; |
31 | 33 | import javafx.beans.value.ObservableValue; |
32 | | -import javafx.geometry.Bounds; |
33 | 34 | import javafx.geometry.Insets; |
34 | 35 | import javafx.geometry.Orientation; |
35 | 36 | import javafx.scene.Node; |
@@ -96,34 +97,7 @@ public ConnectionBar getConnectionBar() { |
96 | 97 | * @param node a node displayed |
97 | 98 | */ |
98 | 99 | public void ensureNodeVisible(Node node) { |
99 | | - if (contentholder != null) { |
100 | | - Bounds viewport = contentholder.getViewportBounds(); |
101 | | - double contentHeight = contentholder.getContent() |
102 | | - .localToScene(contentholder.getContent().getBoundsInLocal()).getHeight(); |
103 | | - double nodeMinY = node.localToScene(node.getBoundsInLocal()).getMinY(); |
104 | | - double nodeMaxY = node.localToScene(node.getBoundsInLocal()).getMaxY(); |
105 | | - double scrollpaneMinY = contentholder.localToScene(contentholder.getBoundsInLocal()).getMinY(); |
106 | | - double scrollpaneMaxY = contentholder.localToScene(contentholder.getBoundsInLocal()).getMaxY(); |
107 | | - double vValueDelta = 0; |
108 | | - double vValueCurrent = contentholder.getVvalue(); |
109 | | - logger.finest("nodeMinY=" + nodeMinY + ", nodeMaxY=" + nodeMaxY + ", vValueCurrent=" + vValueCurrent |
110 | | - + ", contentHeight=" + contentHeight); |
111 | | - logger.finest("scrollpaneMinY=" + scrollpaneMinY + ", scrollpaneMaxY=" + scrollpaneMaxY); |
112 | | - |
113 | | - logger.finest("viewport.height=" + viewport.getHeight() + ", viewport.minY=" + viewport.getMinY() |
114 | | - + ", viewport.maxY=" + viewport.getMaxY()); |
115 | | - if (nodeMinY < scrollpaneMinY) { |
116 | | - logger.finest(" --- **** out UP"); |
117 | | - // currently located above (remember, top left is (0,0)) |
118 | | - vValueDelta = (nodeMinY - scrollpaneMinY) / (contentHeight - viewport.getHeight()); |
119 | | - |
120 | | - } else if (nodeMaxY > scrollpaneMaxY) { |
121 | | - logger.finest(" --- **** out DOWN"); |
122 | | - vValueDelta = (nodeMaxY - scrollpaneMaxY) / (contentHeight - viewport.getHeight()); |
123 | | - |
124 | | - } |
125 | | - contentholder.setVvalue(vValueCurrent + vValueDelta); |
126 | | - } |
| 100 | + RichTextArea.ensureNodeVisible(contentholder, node); |
127 | 101 | } |
128 | 102 |
|
129 | 103 | /** |
|
0 commit comments