Copy constructors

Werner Lehmann lehmann at media-interactive.de
Mon Sep 10 07:47:00 PDT 2012


I am not sure how an include would help much here. Consider this scenario:

<fx:define>
   <GridPane fx:id="gp">...</GridPane>
</fx:define>

<VBox fx:id="vbox"/>

Now, if I wanted to add N gridpanes much like the one from the define 
block as children of the vbox - in code, in a for loop, with some 
adjustments... how would I do this with fx:include?

Obviously an fx:include instead of fx:define does not help. It would not 
be dynamic. I could also put the define in a separate fxml and load that 
one 10 times. Certainly doable and does not need fx:include. Hardly 
elegant though, and I'd like to keep it in one file anyway.

Thinking about it, there is not really even a need for a copy 
constructor which would deep-copy an otherwise useless template 
instance. It would be even better if the instantantion of the fx:define 
piece could be delayed, and would be repeatable in a loop:

@FXML private VBox vbox;

for (item: list) {
   GridPane gp = loader.instantiate("gp");
   customze(gp);
   vbox.getChildren().add(gp);
}

I realize that chances to get this are slim. However, at least in my 
code it is somehow a pattern on several occasions, forcing me to leave 
FXML for dynamic content.

Thanks...

Werner

On 10.09.2012 13:15, Greg Brown wrote:
> I don't know if there are any plans to add copy constructors, but you
> might be able to do something similar with includes (e.g. instead of
> defining your template in a define block, you could define it in an
> external FXML file and include it where needed).


More information about the openjfx-dev mailing list