public CaseTypeDetailView(
      @Service ApplicationContext context,
      @Uses final CaseTypeDetailModel model,
      @Structure Module module) {
    this.model = model;
    valueBinder = module.objectBuilderFactory().newObject(ValueBinder.class);

    FormLayout layout = new FormLayout("150dlu, 2dlu, 350", "pref, pref, pref, pref, pref, pref");
    setLayout(layout);
    setMaximumSize(new Dimension(Short.MAX_VALUE, 50));
    DefaultFormBuilder builder = new DefaultFormBuilder(layout, this);

    ownerName = new StreamflowSelectableLabel();

    builder.append(new JLabel(" "));
    builder.nextLine();

    builder.appendSeparator(i18n.text(AdministrationResources.casetype_separator));

    builder.nextLine();

    builder.append(
        i18n.text(AdministrationResources.owner_name_label),
        valueBinder.bind("ownerName", ownerName));
    builder.nextLine();

    ownerId = new StreamflowSelectableLabel();

    builder.append(
        i18n.text(AdministrationResources.owner_id_label), valueBinder.bind("ownerId", ownerId));

    builder.nextLine();
    builder.append(new JLabel(" "));
    builder.nextLine();

    builder.appendSeparator(i18n.text(AdministrationResources.casetype_id_separator));

    builder.nextLine();

    caseTypeId = new StreamflowSelectableLabel();

    builder.append(i18n.text(AdministrationResources.id_label), valueBinder.bind("id", caseTypeId));

    new RefreshWhenShowing(this, this);
  }
  @Override
  public void refresh() {
    model.refresh();

    valueBinder.update(model.getResourceValue().index().get());
  }