@SuppressWarnings("unchecked") protected <I extends SInstance> Stream<ISInstanceAwareModel<I>> findModelsByType(SType<I> type) { return findFormComponentsByType(type) .map(it -> it.getModel()) .filter(it -> it instanceof ISInstanceAwareModel) .map(it -> (ISInstanceAwareModel<I>) it); }
@SuppressWarnings("unchecked") protected <I extends SInstance> Stream<ISInstanceAwareModel<I>> findModelsByType(SType<I> type) { return findFormComponentsByType(type) .map(it -> it.getModel()) .filter(it -> it instanceof ISInstanceAwareModel) .map(it -> (ISInstanceAwareModel<I>) it); }
formComponent.getModel().setObject(collection);
/** * Lookup for property-aware model, attached to certain form component. * * @param component * form component * * @return property-aware model, extracted from supplied component or <code>null</code> */ public static IPropertyReflectionAwareModel<?> resolvePropertyModelFrom(FormComponent<?> component) { IModel<?> model = component.getModel(); while (true) { if (model == null) { return null; } if (model instanceof IPropertyReflectionAwareModel) { return (IPropertyReflectionAwareModel<?>) model; } if (model instanceof IWrapModel<?>) { model = ((IWrapModel<?>)model).getWrappedModel(); continue; } break; // not model found } return null; }
@Override protected List<Comparator> load() { if (field.getModel().getObject() == null || field.getModel().getObject().getType() == null) { return Collections.<Comparator>emptyList(); } switch (field.getModel().getObject().getType()) { case ATTRIBUTE: return Arrays.asList(SearchClause.Comparator.values()); case ROLE_MEMBERSHIP: case PRIVILEGE: case GROUP_MEMBERSHIP: case GROUP_MEMBER: case RESOURCE: return Arrays.asList( SearchClause.Comparator.EQUALS, SearchClause.Comparator.NOT_EQUALS); case RELATIONSHIP: return Arrays.asList( SearchClause.Comparator.IS_NOT_NULL, SearchClause.Comparator.IS_NULL, SearchClause.Comparator.EQUALS, SearchClause.Comparator.NOT_EQUALS); default: return Collections.<Comparator>emptyList(); } } };
/** * Lookup for property-aware model, attached to certain form component. * * @param component * form component * * @return property-aware model, extracted from supplied component or <code>null</code> */ public static IPropertyReflectionAwareModel<?> resolvePropertyModelFrom(FormComponent<?> component) { IModel<?> model = component.getModel(); while (true) { if (model == null) { return null; } if (model instanceof IPropertyReflectionAwareModel) { return (IPropertyReflectionAwareModel<?>) model; } if (model instanceof IWrapModel<?>) { model = ((IWrapModel<?>)model).getWrappedModel(); continue; } break; // not model found } return null; }
@Override protected List<String> load() { if (field.getModel().getObject() == null || field.getModel().getObject().getType() == null) { return Collections.<String>emptyList(); switch (field.getModel().getObject().getType()) { case ATTRIBUTE: final List<String> names = new ArrayList<>(dnames.getObject());
private static <T> void addValidator(FormComponent<T> fc, boolean ignoreIncompatibleModel) { final IModel<T> model = fc.getModel(); if (model != null) { if (model instanceof AbstractPropertyModel<?>) { final AbstractPropertyModel<T> pm = (AbstractPropertyModel<T>)model; PropertyValidator<T> validator = new PropertyValidator<T>(pm, fc); fc.add(validator); } else if (!ignoreIncompatibleModel) { throw new IllegalArgumentException( "Expected something that provides an AbstractPropertyModel"); } } } }
public Object formComponent(final IFormVisitorParticipant formComponent) { if (formComponent instanceof FormComponent<?>) { final FormComponent<?> fc = (FormComponent<?>) formComponent; final IModel<?> model = fc.getModel(); if (model != null) { if (model instanceof AbstractPropertyModel<?>) { final AbstractPropertyModel<?> pm = (AbstractPropertyModel<?>) model; PropertyValidator validator = new PropertyValidator(pm, fc); fc.add(validator); } } } return null; } }
/** * Calcula o caminho completo de labels do campo, concatenando os nomes separados por ' > ', * para ser usado em mensagens de erro. * Exemplo: "O campo 'Contato > Endereços > Endereço > Logradouro' é obrigatório" */ protected static String resolveFullPathLabel(FormComponent<?> formComponent) { IModel<?> model = formComponent.getModel(); if (model instanceof ISInstanceAwareModel<?>) { SInstance instancia = ((ISInstanceAwareModel<?>) model).getMInstancia(); List<String> labels = new ArrayList<>(); while (instancia != null) { labels.add(instancia.asAtr().getLabel()); instancia = instancia.getParent(); } labels.removeIf(it -> Strings.defaultIfEmpty(it, "").trim().isEmpty()); Collections.reverse(labels); if (!labels.isEmpty()) return Strings.join(" > ", labels); } return "[" + formComponent.getId() + "]"; }
@SuppressWarnings({ "rawtypes", "unchecked" }) @Override public void component(FormComponent<?> component, IVisit<Void> visit) { if (!hasPropertyValidator(component)) { IProperty property = validation.resolveProperty(component.getModel()); if (property != null) { component.add(new PropertyValidator(null, groups)); } } } });
/** * Calcula o caminho completo de labels do campo, concatenando os nomes separados por ' > ', * para ser usado em mensagens de erro. * Exemplo: "O campo 'Contato > Endereços > Endereço > Logradouro' é obrigatório" */ protected static String resolveFullPathLabel(FormComponent<?> formComponent) { IModel<?> model = formComponent.getModel(); if (model instanceof ISInstanceAwareModel<?>) { SInstance instance = ((ISInstanceAwareModel<?>) model).getSInstance(); List<String> labels = new ArrayList<>(); while (instance != null) { labels.add(instance.asAtr().getLabel()); instance = instance.getParent(); } labels.removeIf(it -> Strings.defaultIfEmpty(it, "").trim().isEmpty()); Collections.reverse(labels); if (!labels.isEmpty()) return Strings.join(" > ", labels); } return "[" + formComponent.getId() + "]"; }
protected static String resolveSimpleLabel(FormComponent<?> formComponent) { IModel<?> model = formComponent.getModel(); if (model instanceof ISInstanceAwareModel<?>) { SInstance instance = ((ISInstanceAwareModel<?>) model).getSInstance(); return instance.asAtr().getLabel(); } return "[" + formComponent.getId() + "]"; }
protected static String resolveSimpleLabel(FormComponent<?> formComponent) { IModel<?> model = formComponent.getModel(); if (model instanceof ISInstanceAwareModel<?>) { SInstance instancia = ((ISInstanceAwareModel<?>) model).getMInstancia(); return instancia.asAtr().getLabel(); } return "[" + formComponent.getId() + "]"; }
@Override protected void onEvent(final AjaxRequestTarget target) { if (field.getModel().getObject() == null || field.getModel().getObject().getType() == null) { return; if (field.getModel().getObject().getType() == Type.GROUP_MEMBERSHIP) { String[] inputAsArray = property.getField().getInputAsArray();
final IModel<?> m = fc.getModel(); if (m instanceof AbstractPropertyModel<?>)
comparator.setNullValid(false).hideLabel().setOutputMarkupId(true); comparator.setRequired(required); comparator.setChoiceRenderer(getComparatorRender(field.getModel())); field.add(comparator);