/**
  * Sets the row layout constraints for the layout manager instance as a String.
  *
  * <p>See the class JavaDocs for information on how this string is formatted.
  *
  * @param constr The row layout constraints as a String or {@link net.miginfocom.layout.AC}
  *     representation. <code>null</code> is converted to <code>""</code> for storage.
  * @throws RuntimeException if the constraint was not valid.
  */
 public void setRowConstraints(Object constr) {
   if (constr == null || constr instanceof String) {
     constr = ConstraintParser.prepare((String) constr);
     rowSpecs = ConstraintParser.parseRowConstraints((String) constr);
   } else if (constr instanceof AC) {
     rowSpecs = (AC) constr;
   } else {
     throw new IllegalArgumentException(
         "Illegal constraint type: " + constr.getClass().toString());
   }
   rowConstraints = constr;
 }
 /** rows called in FXML on MigLayoutPane itself */
 public void setRows(String value) {
   this.fxmlRowConstraints = value;
   setRowConstraints(ConstraintParser.parseRowConstraints(ConstraintParser.prepare(value)));
 }