/** Updates the information displayed in the fields. */
  public void update() {
    super.update(); // update the common fields

    InteractiveEntity interactiveEntity = (InteractiveEntity) entity;
    String sprite = interactiveEntity.getProperty("sprite");
    String behavior = interactiveEntity.getProperty("behavior");
    EntitySubtype subtype = interactiveEntity.getSubtype();

    boolean hasSprite = (!sprite.equals("_none"));

    withSpriteField.setSelected(hasSprite);
    spriteField.setSelectedId(hasSprite ? sprite : "");

    spriteField.setEnabled(hasSprite);

    if (behavior.equals("map")) {
      behaviorField.setSelectedIndex(1);
      messageField.setEnabled(false);
      itemField.setEnabled(false);
    } else if (behavior.substring(0, 5).equals("item#")) {
      behaviorField.setSelectedIndex(2);
      messageField.setEnabled(false);
      itemField.setEnabled(true);
      itemField.setSelectedId(behavior.substring(5));
    } else if (behavior.substring(0, 7).equals("dialog#")) {
      behaviorField.setSelectedIndex(0);
      messageField.setEnabled(true);
      itemField.setEnabled(false);
      messageField.setText(behavior.substring(7));
    }
  }
  /**
   * Returns the specific part of the action made on the entity.
   *
   * @return the specific part of the action made on the entity
   */
  protected ActionEditEntitySpecific getSpecificAction() {

    String sprite = spriteField.getSelectedId();
    if (!withSpriteField.isSelected()) {
      sprite = "_none";
    }

    String behavior = "map";
    if (messageField.isEnabled()) {
      behavior = "dialog#" + messageField.getText();
    } else if (itemField.isEnabled()) {
      behavior = "item#" + itemField.getSelectedId();
    }

    return new ActionEditEntitySpecific(entity, sprite, behavior);
  }