use of org.jboss.errai.databinding.client.HasProperties in project kie-wb-common by kiegroup.
the class ClientBindingUtils method getProxiedValue.
@SuppressWarnings("unchecked")
public static <T, R> R getProxiedValue(final T pojo, final String fieldName) {
R result = null;
if (null != pojo && null != fieldName) {
HasProperties hasProperties = (HasProperties) DataBinder.forModel(pojo).getModel();
result = (R) hasProperties.get(fieldName);
}
return result;
}
use of org.jboss.errai.databinding.client.HasProperties in project kie-wb-common by kiegroup.
the class ClientBindingUtils method getProxiedSet.
@SuppressWarnings("unchecked")
public static <T, R> Set<R> getProxiedSet(final T pojo, final Collection<String> fieldNames) {
Set<R> result = new LinkedHashSet<>();
if (null != pojo && null != fieldNames && !fieldNames.isEmpty()) {
for (String fieldName : fieldNames) {
HasProperties hasProperties = (HasProperties) DataBinder.forModel(pojo).getModel();
result.add((R) hasProperties.get(fieldName));
}
}
return result;
}
use of org.jboss.errai.databinding.client.HasProperties in project kie-wb-common by kiegroup.
the class ClientBindingUtils method setProxiedValue.
@SuppressWarnings("unchecked")
public static <T, V> void setProxiedValue(final T pojo, final String fieldName, final V value) {
if (null != pojo && null != fieldName) {
HasProperties hasProperties = (HasProperties) DataBinder.forModel(pojo).getModel();
hasProperties.set(fieldName, value);
}
}
use of org.jboss.errai.databinding.client.HasProperties in project kie-wb-common by kiegroup.
the class MultipleSubFormWidget method initCrud.
protected void initCrud() {
final List<ColumnMeta> metas = new ArrayList<>();
HasProperties hasProperties = null;
try {
hasProperties = bindingHelper.getProxyDefinition();
} catch (Exception e) {
GWT.log("Unable to find proxy: " + e.getMessage());
}
for (TableColumnMeta meta : field.getColumnMetas()) {
String type = String.class.getName();
if (hasProperties != null) {
type = hasProperties.getBeanProperties().get(meta.getProperty()).getType().getName();
}
ColumnGenerator generator = columnGeneratorManager.getGeneratorByType(type);
if (generator != null) {
ColumnMeta<HasProperties> columnMeta = new ColumnMeta<HasProperties>(generator.getColumn(meta.getProperty()), meta.getLabel());
metas.add(columnMeta);
}
}
dataProvider = new AsyncDataProvider<HasProperties>() {
@Override
protected void onRangeChanged(HasData<HasProperties> hasData) {
if (tableValues != null) {
updateRowCount(tableValues.size(), true);
updateRowData(0, tableValues);
} else {
updateRowCount(0, true);
updateRowData(0, new ArrayList<HasProperties>());
}
}
};
crudComponent.init(new CrudActionsHelper() {
@Override
public int getPageSize() {
return PAGE_SIZE;
}
@Override
public boolean showEmbeddedForms() {
return true;
}
@Override
public boolean isAllowCreate() {
return !isReadOnly;
}
@Override
public boolean isAllowEdit() {
return !isReadOnly;
}
@Override
public boolean isAllowDelete() {
return !isReadOnly;
}
@Override
public List<ColumnMeta> getGridColumns() {
return metas;
}
@Override
public AsyncDataProvider getDataProvider() {
return dataProvider;
}
public IsFormView<Object> getCreateInstanceForm() {
if (field.getCreationForm() != null) {
BindableProxy<?> proxy = bindingHelper.getNewProxy();
formRenderer.render(renderingContext.getCopyFor(field.getCreationForm(), proxy));
return formRenderer;
}
return null;
}
public IsFormView<Object> getEditInstanceForm(int position) {
if (field.getEditionForm() != null) {
BindableProxy instanceProxy = bindingHelper.getProxyForModel(values.get(position));
BindableProxy editionProxy = bindingHelper.getProxyForModel(instanceProxy.deepUnwrap());
formRenderer.render(renderingContext.getCopyFor(field.getEditionForm(), editionProxy));
return formRenderer;
}
return null;
}
@Override
public void createInstance() {
IsFormView form = getCreateInstanceForm();
crudComponent.displayForm(translationService.getTranslation(CrudComponentConstants.CrudComponentViewImplNewInstanceTitle), form, new FormDisplayer.FormDisplayerCallback() {
@Override
public void onCancel() {
formRenderer.unBind();
}
@Override
public void onAccept() {
if (values == null) {
values = new ArrayList<>();
}
values.add(formRenderer.getModel());
tableValues.add((HasProperties) formRenderer.getModel());
refreshCrud();
fireFieldChange();
formRenderer.unBind();
}
});
}
@Override
public void editInstance(int index) {
IsFormView form = getEditInstanceForm(index);
crudComponent.displayForm(translationService.getTranslation(CrudComponentConstants.CrudComponentViewImplEditInstanceTitle), form, new FormDisplayer.FormDisplayerCallback() {
@Override
public void onCancel() {
formRenderer.unBind();
}
@Override
public void onAccept() {
BindableProxy editionProxy = (BindableProxy) formRenderer.getModel();
BindableProxy realProxy = bindingHelper.getProxyForModel(values.get(index));
FormDefinition editionform = (FormDefinition) renderingContext.getAvailableForms().get(field.getEditionForm());
editionform.getFields().forEach(fieldDefinition -> {
if (fieldDefinition.getBinding() != null) {
realProxy.set(fieldDefinition.getBinding(), editionProxy.get(fieldDefinition.getBinding()));
}
});
bindingHelper.afterEdit(realProxy);
values.set(index, realProxy);
tableValues.set(index, realProxy);
refreshCrud();
fireFieldChange();
formRenderer.unBind();
}
});
}
@Override
public void deleteInstance(int index) {
values.remove(index);
tableValues.remove(index);
refreshCrud();
fireFieldChange();
}
});
initValues();
}
use of org.jboss.errai.databinding.client.HasProperties in project kie-wb-common by kiegroup.
the class MultipleSubFormWidget method initValues.
protected void initValues() {
tableValues.clear();
if (values != null) {
for (Object value : values) {
HasProperties tableValue;
if (value instanceof HasProperties) {
tableValue = (HasProperties) value;
} else {
tableValue = bindingHelper.getProxyForModel(value);
}
tableValues.add(tableValue);
}
}
}
Aggregations