Skip to content

Commit 9ec13ff

Browse files
author
Open Lowcode SAS
committed
Preliminary version of #233
1 parent f272ed7 commit 9ec13ff

4 files changed

Lines changed: 199 additions & 121 deletions

File tree

src/org/openlowcode/client/graphic/widget/CTextField.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -368,10 +368,10 @@ public Node getNode(
368368
multiselectioncombobox.setMinimumWidgetWidth(400);
369369
} else {
370370
if (!this.richtextedit) {
371-
richtextarea = new RichTextArea(actionmanager, false, true, 400);
371+
richtextarea = new RichTextArea(actionmanager, false, true, 400,550);
372372

373373
} else {
374-
richtextarea = new RichTextArea(actionmanager, true, true, 400);
374+
richtextarea = new RichTextArea(actionmanager, true, true, 400,550);
375375

376376
}
377377
}
@@ -429,12 +429,12 @@ public Node getNode(
429429
if (readonly) {
430430
LOGGER.fine("setting up text for label " + label);
431431
if (!this.richtextedit) {
432-
richtextarea = new RichTextArea(actionmanager, false, false, 400);
432+
richtextarea = new RichTextArea(actionmanager, false, false, 400,-1);
433433
richtextarea.setTextInput(inputvalue);
434434

435435
thispane.getChildren().add(richtextarea.getNode());
436436
} else {
437-
richtextarea = new RichTextArea(actionmanager, true, false, 400);
437+
richtextarea = new RichTextArea(actionmanager, true, false, 400,-1);
438438
richtextarea.setTextInput(inputvalue);
439439

440440
thispane.getChildren().add(richtextarea.getNode());

src/org/openlowcode/client/runtime/ClientDisplay.java

Lines changed: 3 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
import org.openlowcode.client.action.CPageAction;
2020
import org.openlowcode.client.graphic.CPage;
2121
import org.openlowcode.client.runtime.PageActionManager.ActionSourceTransformer;
22+
import org.openlowcode.tools.richtext.RichTextArea;
23+
2224
import javafx.scene.input.MouseEvent;
2325
import javafx.scene.input.ScrollEvent;
2426
import javafx.event.EventHandler;
@@ -29,7 +31,6 @@
2931
import javafx.application.Platform;
3032
import javafx.beans.value.ChangeListener;
3133
import javafx.beans.value.ObservableValue;
32-
import javafx.geometry.Bounds;
3334
import javafx.geometry.Insets;
3435
import javafx.geometry.Orientation;
3536
import javafx.scene.Node;
@@ -96,34 +97,7 @@ public ConnectionBar getConnectionBar() {
9697
* @param node a node displayed
9798
*/
9899
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);
127101
}
128102

129103
/**

src/org/openlowcode/tools/richtext/Paragraph.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -538,8 +538,19 @@ protected double computeValue() {
538538
textflow.getChildren().add(caretpath);
539539
textflow.requestLayout();
540540
textflow.requestFocus();
541-
if (parent.getPageActionManager() != null)
542-
parent.getPageActionManager().getClientDisplay().ensureNodeVisible(caretpath);
541+
// if (parent.getPageActionManager() != null)
542+
// parent.getPageActionManager().getClientDisplay().ensureNodeVisible(caretpath);
543+
544+
Platform.runLater(new Runnable() {
545+
546+
@Override
547+
public void run() {
548+
parent.ensureNodeVisible(caretpath);
549+
550+
}
551+
552+
});
553+
543554

544555
break;
545556
}
@@ -1210,8 +1221,7 @@ public void handle(KeyEvent keyevent) {
12101221
+ splitstring.getNumberOfSections() + " --- ");
12111222
for (int i = 0; i < splitstring.getNumberOfSections(); i++)
12121223
logger.finest(" |" + splitstring.getTransitionAt(i) + "| "
1213-
+ splitstring.getBulletAt(i) + "| "
1214-
+ splitstring.getSplitStringAt(i));
1224+
+ splitstring.getBulletAt(i) + "| " + splitstring.getSplitStringAt(i));
12151225
logger.finest(" ---------------------------------------------------------------");
12161226
if (splitstring.getNumberOfSections() > 1) {
12171227
parent.insertSplitStringAtCarret(splitstring, thistext);

0 commit comments

Comments
 (0)