public void initialise(ValueUpdateInterface updateInterface) {
    if (initialised == false) {
      contentPanel = new JPanel();

      layout = new LabelFieldPairGroupLayout(contentPanel);
      layout.setAutoCreateGaps(true);
      layout.setAutoCreateContainerGaps(true);

      for (PropertyObjectDefinition definition : definitions) {
        initialise(definition);
      }

      setContentPane(contentPanel);

      initialised = true;
    }

    for (PropertyField propertyField : propertyFields.values()) {
      propertyField.initialise(updateInterface);
    }
  }