private Node wrapAndStyle(Region node, int rowNumber) {
   Pane p = new Pane(node);
   node.setPadding(new Insets(5.0));
   GridPane.setFillWidth(p, true);
   p.minHeightProperty().bind(node.heightProperty());
   // Hack - wrapped labels don't seem to fire their height property changes at the right time -
   // leaving the surrounding Pane node too small.
   // this seems to help...
   Platform.runLater(() -> p.autosize());
   p.getStyleClass().add(((rowNumber % 2 == 0) ? "evenGridRow" : "oddGridRow"));
   return p;
 }