Hi! I don't know of anybody that tried this out.
I tried to make it very easy for everybody to take a test drive, started a quick-start project at: * http://code.google.com/p/wicket-mashup/ ** Martin 2010/2/22 petar <peat...@yahoo.de>: > > Hi Martin, > > do you have any news on this subject? E.g. found that you reinvent the wheel > or started a project with this idea :-)? > > Regards, > Peter. > > > MartinM wrote: >> >> Hi! >> >> I finally came up with something that I have been looking for. It >> might be more suitable for Wicket 1.5 because it's not very compatible >> (read: not very lean) with current wicket: >> >> Wicket Without Markup ;) >> >> Well, yes there is markup for each component, but when you lay them >> out on the page, the markup is component-contained. >> So coding an application feels like a breeze for the Java developer, >> and the HTML developer can strictly stick to styling the (contained) >> components themselves. >> >> Maybe I omitted something, but here comes the example. Let me know >> what you think. Does it inspire any fresh ideas in you? Is this an old >> idea? I recall listviews having been mentioned once as a solution for >> producing markup-less code ... maybe I have re-invented the weel or >> something. >> >> HomePage.html: >> <html> >> <body> >> <strong>Wicket Quickstart Archetype Homepage</strong> >> <form wicket:id="form"> >> <wicket:container wicket:id="root-content-id"></wicket:container> >> </form> >> </body> >> </html> >> >> >> HomePage.java: >> public class HomePage extends WebPage { >> /** */ >> private static final long serialVersionUID = 1L; >> private final MarkupNoLongerRequiredContainer rootContainer; >> private final MarkupNoLongerRequiredContainer row1; >> private final MarkupNoLongerRequiredContainer row2; >> private final MarkupNoLongerRequiredContainer row3; >> private final Form<Void> form; >> >> /** >> * >> */ >> public HomePage() { >> add(form = new Form<Void>("form")); >> form.add(rootContainer = new >> MarkupNoLongerRequiredContainer("root-content-id")); >> { >> rootContainer.add(row1 = new >> MarkupNoLongerRequiredContainer()); >> row1.add(new Label(GID, "Hello world")); >> row1.add(0, new Label(GID, >> "<br/>").setEscapeModelStrings(false)); >> // Change row before >> row1.add(0, new Label(GID, >> "<br/>").setEscapeModelStrings(false)); >> // Change row twice before >> row1.add(new Label(GID, >> "<br/>").setEscapeModelStrings(false)); // >> Change row once after >> } >> { >> rootContainer.add(row2 = new >> MarkupNoLongerRequiredContainer()); >> row2.add(new Label(GID, "Type your name here:")); >> row2.add(new InputField(new TextField<String>(GID, >> Model.of("...")))); >> } >> { >> rootContainer.add(row3 = new >> MarkupNoLongerRequiredContainer()); >> row2.add(new Label(GID, >> "<br/>").setEscapeModelStrings(false)); // >> Change row before >> row2.add(new InputField(new Button(GID, >> Model.of("Clickme")) { >> @Override >> protected void onComponentTag(ComponentTag >> tag) { >> tag.put("type", "button"); >> super.onComponentTag(tag); >> } >> })); >> } >> } >> } >> >> InputField.html: >> <wicket:panel> >> <input wicket:id="generic-child-id"/> >> </wicket:panel> >> >> >> InputField.java: >> public class InputField extends Panel { >> /** */ >> private static final long serialVersionUID = 1L; >> >> public <InputFieldDataType, InputFieldType extends >> FormComponent<InputFieldDataType>> InputField(InputFieldType >> inputFieldType) { >> super(MarkupNoLongerRequiredContainer.GID); >> add(inputFieldType); >> } >> } >> >> MarkupNoLongerRequiredContainer.html: >> <wicket:panel> >> <wicket:container wicket:id="listview-id"> >> <wicket:container wicket:id="generic-child-id"> >> </wicket:container> >> </wicket:container> >> </wicket:panel> >> >> >> MarkupNoLongerRequiredContainer.java: >> public class MarkupNoLongerRequiredContainer extends Panel { >> /** */ >> public static final String GID = "generic-child-id"; >> >> /** */ >> private static final long serialVersionUID = 1L; >> >> private final List<Component> children = new ArrayList<Component>(); >> >> public MarkupNoLongerRequiredContainer() { >> this(GID); >> } >> >> @Override >> protected void onBeforeRender() { >> super.onBeforeRender(); >> } >> >> /** >> * @param id >> */ >> public MarkupNoLongerRequiredContainer(String id) { >> super(id); >> super.add(new ListView<Component>("listview-id", children) { >> /** */ >> private static final long serialVersionUID = 1L; >> >> @Override >> protected void populateItem(ListItem<Component> >> listItem) { >> Component component = >> listItem.getModelObject(); >> if (!component.getId().equals(GID)) { >> throw new >> IllegalStateException("Currently handles only children >> with id " + GID); >> } >> listItem.add(component); >> } >> }); >> } >> >> public boolean add(Component component) { >> return children.add(component); >> } >> >> public void add(int index, Component element) { >> children.add(index, element); >> } >> >> public boolean addAll(Collection<? extends Component> collection) { >> return children.addAll(collection); >> } >> >> public boolean addAll(int index, Collection<? extends Component> >> collection) { >> return children.addAll(index, collection); >> } >> >> public void clear() { >> children.clear(); >> } >> >> public boolean contains(Object o) { >> return children.contains(o); >> } >> >> public boolean containsAll(Collection<?> collection) { >> return children.containsAll(collection); >> } >> >> public int indexOf(Object o) { >> return children.indexOf(o); >> } >> >> public boolean isEmpty() { >> return children.isEmpty(); >> } >> >> public int lastIndexOf(Object o) { >> return children.lastIndexOf(o); >> } >> >> public ListIterator<Component> listIterator() { >> return children.listIterator(); >> } >> >> public ListIterator<Component> listIterator(int index) { >> return children.listIterator(index); >> } >> >> public boolean remove(Object o) { >> return children.remove(o); >> } >> >> public Component remove(int index) { >> return children.remove(index); >> } >> >> public boolean removeAll(Collection<?> collection) { >> return children.removeAll(collection); >> } >> >> public boolean retainAll(Collection<?> collection) { >> return children.retainAll(collection); >> } >> >> public Component set(int index, Component element) { >> return children.set(index, element); >> } >> >> public List<Component> subList(int fromIndex, int toIndex) { >> return children.subList(fromIndex, toIndex); >> } >> >> public Object[] toArray() { >> return children.toArray(); >> } >> >> public <T> T[] toArray(T[] a) { >> return children.toArray(a); >> } >> } >> >> ** >> Martin >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> For additional commands, e-mail: users-h...@wicket.apache.org >> >> >> > > -- > View this message in context: > http://old.nabble.com/Wicket-without-markup-tp27506286p27694080.html > Sent from the Wicket - User mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org