Now CONTAINER resizes automatically to ScrollPane bounds

This commit is contained in:
xdrm-brackets 2017-12-19 15:47:33 +01:00
parent 4e5980c175
commit 124df8489b
2 changed files with 23 additions and 1 deletions

View File

@ -2,11 +2,17 @@ package Classes.css.user;
import Classes.css.core.Context; import Classes.css.core.Context;
import Classes.css.core.Ruleset; import Classes.css.core.Ruleset;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.geometry.Bounds;
import javafx.scene.Node; import javafx.scene.Node;
import javafx.scene.control.ScrollPane;
import javafx.scene.layout.FlowPane;
public class ContainerScrollStyleSheet{ public class ContainerScrollStyleSheet{
/* Builds all necessary CSS/layout rules */ /* Builds all necessary CSS/layout rules */
@SuppressWarnings({ "unchecked", "rawtypes" })
public ContainerScrollStyleSheet(Node target) throws Exception{ public ContainerScrollStyleSheet(Node target) throws Exception{
/* (1) Set rules */ /* (1) Set rules */
@ -16,6 +22,22 @@ public class ContainerScrollStyleSheet{
.add("right", 0) .add("right", 0)
// .add("pref-height", ) // .add("pref-height", )
.apply(); .apply();
/* (2) Manage dynamic 1st children bounds to it */
ScrollPane spane = (ScrollPane) target;
spane.layoutBoundsProperty().addListener(new ChangeListener(){
@Override
public void changed(ObservableValue observable, Object oldValue, Object newValue) {
System.out.println(spane.getLayoutBounds().getWidth());
FlowPane child = (FlowPane) spane.getContent();
child.setPrefWidth( spane.getLayoutBounds().getWidth() );
child.setPrefHeight( spane.getLayoutBounds().getHeight() );
}
});
} }
} }

View File

@ -312,7 +312,7 @@
</children></VBox> </children></VBox>
<ScrollPane id="scroll_container" fx:id="scroll_container" hbarPolicy="NEVER" pickOnBounds="false" prefHeight="651.0" prefWidth="1015.0" style="-fx-background-color: transparent;" AnchorPane.bottomAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="49.0"> <ScrollPane id="scroll_container" fx:id="scroll_container" hbarPolicy="NEVER" pickOnBounds="false" prefHeight="651.0" prefWidth="1015.0" style="-fx-background-color: transparent;" AnchorPane.bottomAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="49.0">
<content> <content>
<FlowPane id="container" fx:id="container" alignment="TOP_CENTER" columnHalignment="CENTER" prefHeight="650.0" prefWidth="1000.0" prefWrapLength="1000.0" stylesheets="@../css/container.css"> <FlowPane id="container" fx:id="container" alignment="TOP_CENTER" columnHalignment="CENTER" prefHeight="650.0" prefWrapLength="1000.0" stylesheets="@../css/container.css">
<children> <children>
<TextField id="mag_searchbar" fx:id="mag_searchbar" prefHeight="26.0" prefWidth="759.0" promptText="Search..."> <TextField id="mag_searchbar" fx:id="mag_searchbar" prefHeight="26.0" prefWidth="759.0" promptText="Search...">
<FlowPane.margin> <FlowPane.margin>