ListTableModel () { final ColumnInfo name = new ElementsColumnInfoBase<JavaFxManifestAttribute>(JavaFXBundle.message( "column.name.artifact.manifest.property.name")) { @Override public @Nullable String valueOf(JavaFxManifestAttribute attribute) { return attribute.getName(); } @Override public boolean isCellEditable(JavaFxManifestAttribute attr) { return true; } @Override public void setValue(JavaFxManifestAttribute attr, String value) { attr.setName(value); } @Override protected @Nullable String getDescription(JavaFxManifestAttribute element) { return element.getName(); } }; final ColumnInfo value = new ElementsColumnInfoBase<JavaFxManifestAttribute>(JavaFXBundle.message("column.name.artifact.manifest.property.value")) { @Override public String valueOf(JavaFxManifestAttribute attr) { return attr.getValue(); } @Override public boolean isCellEditable(JavaFxManifestAttribute attr) { return true; } @Override public void setValue(JavaFxManifestAttribute attr, String s) { attr.setValue(s); } @Override protected @Nullable String getDescription(JavaFxManifestAttribute attr) { return attr.getValue(); } }; return new ListTableModel(name, value); }