@Override public void onInstanceEvent(SInstanceEvent evt) { new ProviderLoader(evt::getSource, false).load(); } }
public List<Serializable> load() { return load(ProviderContext.of(instanceISupplier.get())); } }
@SuppressWarnings("unchecked") public List<Serializable> load(ProviderContext<?> providerContext) { final SInstance instance = instanceISupplier.get(); final Provider provider = instance.asAtrProvider().getProvider(); final List<Serializable> values = new ArrayList<>(); if (provider != null) { final List<Serializable> result = provider.load(providerContext); if (result != null) { values.addAll(result); } //Dangling values if (!instance.isEmptyOfData()) { final SInstanceConverter converter = instance.asAtrProvider().getConverter(); final List<Object> ids = new ArrayList<>(); final IFunction<Object, Object> idFunction = instance.asAtrProvider().getIdFunction(); /*Collect All Ids*/ values.forEach(v -> ids.add(idFunction.apply(v))); List<SInstance> selectedInstances = new ArrayList<>(); if (instance instanceof SIList) { ((SIList<SInstance>) instance).forEach(selectedInstances::add); } else { selectedInstances.add(instance); } collectSelectedInstances(instance, values, converter, ids, idFunction, selectedInstances); } } return values; }
@Override protected List<Serializable> load() { final RequestCycle requestCycle = RequestCycle.get(); boolean ajaxRequest = requestCycle != null && requestCycle.find(AjaxRequestTarget.class) != null; boolean enableDanglingValues = !ajaxRequest; return new ProviderLoader(model::getObject, enableDanglingValues).load(); } }
@Override protected List<Serializable> load() { final RequestCycle requestCycle = RequestCycle.get(); boolean ajaxRequest = requestCycle != null && requestCycle.find(AjaxRequestTarget.class) != null; /* Se for requisição Ajax, limpa o campo caso o valor não for encontrado, caso contrario mantem o valor. */ boolean enableDanglingValues = !ajaxRequest; return new ProviderLoader(model::getObject, enableDanglingValues).load(); } }