package org.nocket.gen.page.element; import gengui.domain.DomainObjectReference; import org.apache.commons.lang.StringUtils; import org.apache.wicket.model.IModel; import org.jsoup.nodes.Element; import org.nocket.gen.domain.element.DomainElementI; import org.nocket.gen.i18n.I18NLabelModelFactory; import org.nocket.gen.page.DMDWebGenPageContext; import org.nocket.gen.page.visitor.PageElementVisitorI; public class PromptElement extends AbstractNoDomainPageElement<String> { private static final String LABEL = ".label"; public PromptElement(DMDWebGenPageContext context, Element element) { super(context, element); } @Override public void accept(PageElementVisitorI visitor) { visitor.visitPrompt(this); } @Override public String getPropertyExpression() { String expression = ""; String[] pathElements = removeLabelSuffix(getWicketId()).split("\\."); for (String pathElement : pathElements) { expression += StringUtils.uncapitalize(pathElement) + "."; } expression = StringUtils.removeEnd(expression, "."); return expression; } @Override public DomainElementI<DomainObjectReference> getDomainElement() { String wicketId = removeLabelSuffix(getWicketId()); if (wicketId != null) { return getContext().getDomainRegistry().getElement(wicketId); } else { return null; } } @Override public IModel<String> getModel() { return I18NLabelModelFactory.createLabelModel(this); } protected String removeLabelSuffix(String wicketId) { return StringUtils.removeEnd(wicketId, LABEL); } }