package org.nocket.gen.domain.visitor.print; import org.nocket.gen.domain.DMDWebGenContext; import org.nocket.gen.domain.element.ButtonElement; import org.nocket.gen.domain.element.CheckboxPropertyElement; import org.nocket.gen.domain.element.ChoicerPropertyElement; import org.nocket.gen.domain.element.HeadlineElement; import org.nocket.gen.domain.element.HiddenPropertyElement; import org.nocket.gen.domain.element.MultivalueButtonElement; import org.nocket.gen.domain.element.MultivaluePropertyElement; import org.nocket.gen.domain.element.ResourceElement; import org.nocket.gen.domain.element.SimplePropertyElement; import org.nocket.gen.domain.visitor.AbstractDomainElementVisitor; import gengui.domain.AbstractDomainReference; public class PrintVisitor<E extends AbstractDomainReference> extends AbstractDomainElementVisitor<E> { private static final String INDENT = " "; private int indentLevel = 0; public PrintVisitor(DMDWebGenContext<E> context) { super(context); } @Override public void visitSimpleProperty(SimplePropertyElement<E> e) { println("Property: " + e.getWicketId() + " -> " + e.getPrompt()); } @Override public void visitChoicerProperty(ChoicerPropertyElement<E> e) { println("Choicer: " + e.getWicketId() + " -> " + e.getPrompt()); } @Override public void visitCheckboxProperty(CheckboxPropertyElement<E> e) { println("Checkbox: " + e.getWicketId() + " -> " + e.getPrompt()); } @Override public void visitButton(ButtonElement<E> e) { println("Button: " + e.getWicketId() + " -> " + e.getPrompt()); } @Override public void visitResource(ResourceElement<E> e) { println("Resource: " + e.getWicketId() + " -> " + e.getPrompt()); } @Override public void visitFieldsetOpen(HeadlineElement<E> e) { println("Headline: " + e.getWicketId() + " -> " + e.getPrompt()); indentLevel++; } @Override public void visitMultivalueProperty(MultivaluePropertyElement<E> e) { println("MultivalueProperty: " + e.getWicketId() + " -> " + e.getPrompt()); for (MultivalueButtonElement<E> b : e.getButtonElements()) { println("MultivalueButton: " + b.getWicketId() + " -> " + b.getPrompt()); } } @Override public void visitFieldsetClose() { indentLevel--; } @Override public void visitHiddenProperty(HiddenPropertyElement<E> e) { println("Hidden: " + e.getWicketId() + " -> " + e.getPrompt()); } @Override public void finish() { println("Finish"); } private void println(String text) { String indent = ""; for (int i = 0; i < indentLevel; i++) { indent += INDENT; } System.out.println(indent + text); } }