Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package org.wicketstuff.minis.behavior.apanel;
 
 import java.util.List;
 
Stores list of renderers.
 
 class RenderersList implements Serializable
 {
 	public static abstract class BaseRenderer<T extends Componentimplements IComponentRenderer<T>
 	{
 		private static final long serialVersionUID = 1L;
 
 		protected String getIdAttribute(final Component component)
 		{
 			return "wicket:id=\"" + component.getId() + "\"";
 		}
 	}
 	public static abstract class BaseWebMarkupContainerRenderer<T extends WebMarkupContainer>
 		extends BaseRenderer<T>
 	{
 		private static final long serialVersionUID = 1L;
 
 		protected final ILayout layout;
 
 		{
 			this. = new FlowLayout();
 		}
 
 		protected BaseWebMarkupContainerRenderer(final ILayout layout)
 		{
 			this. = layout;
 		}
 
 		protected CharSequence getBodyMarkup(final WebMarkupContainer container)
 		{
 			final List<ComponentcomponentsToRender = new ArrayList<Component>();
 
 			container.visitChildren(new IVisitor<ComponentVoid>()
 			{
 
 				public void component(final Component componentfinal IVisit<Voidvisit)
 				{
 					componentsToRender.add(component);
 					visit.dontGoDeeper();
 				}
 			});
 
 			return .renderComponents(componentsToRender);
 		}
 	}
 
 	public static final class ButtonRenderer extends BaseRenderer<Button>
 	{
 		private static final long serialVersionUID = 1L;
 
 		{
 			return Button.class;
 		}
 
 		public CharSequence getMarkup(final Button component)
 		{
 			return String.format("<input type=\"submit\" %s/>"getIdAttribute(component));
 		}
 	}
	public static final class DefaultRenderer extends BaseRenderer<Component>
	{
		private static final long serialVersionUID = 1L;
		{
			return Component.class;
		}
		public CharSequence getMarkup(final Component component)
		{
			return String.format("<span %s></span>"getIdAttribute(component));
		}
	}
	public static final class DefaultWebMarkupContainerRenderer extends
	{
		private static final long serialVersionUID = 1L;
		{
			return WebMarkupContainer.class;
		}
		public CharSequence getMarkup(final WebMarkupContainer component)
		{
			return String.format("<span %s>%s</span>"getIdAttribute(component),
				getBodyMarkup(component));
		}
	}
	// mocleiri: does not seem compatible with 1.5
// public static final class DefaultWebMarkupContainerWithMarkupRenderer extends
// BaseWebMarkupContainerRenderer<WebMarkupContainerWithAssociatedMarkup>
// {
// private static final long serialVersionUID = 1L;
//
// public Class<WebMarkupContainerWithAssociatedMarkup> getComponentClass()
// {
// return WebMarkupContainerWithAssociatedMarkup.class;
// }
//
// public CharSequence getMarkup(final WebMarkupContainerWithAssociatedMarkup component)
// {
// return String.format("<span %s></span>", getIdAttribute(component));
// }
// }
	@SuppressWarnings("rawtypes")
	public static final class FormRenderer extends BaseWebMarkupContainerRenderer<Form>
	{
		private static final long serialVersionUID = 1L;
		{
			return Form.class;
		}
		public CharSequence getMarkup(final Form component)
		{
			return String.format("<form %s>%s</form>"getIdAttribute(component),
				getBodyMarkup(component));
		}
	}
	// -------------- renderes --------------
	public static final class LabelRenderer extends BaseRenderer<Label>
	{
		private static final long serialVersionUID = 1L;
		{
			return Label.class;
		}
		public CharSequence getMarkup(final Label component)
		{
			return String.format("<span %s></span>"getIdAttribute(component));
		}
	}
	@SuppressWarnings("rawtypes")
	public static final class LinkRenderer extends BaseWebMarkupContainerRenderer<Link>
	{
		private static final long serialVersionUID = 1L;
		{
			return Link.class;
		}
		public CharSequence getMarkup(final Link component)
		{
			return String.format("<a %s>%s</a>"getIdAttribute(component),
				getBodyMarkup(component));
		}
	}
	@SuppressWarnings("rawtypes")
	public static final class ListViewRenderer extends BaseWebMarkupContainerRenderer<ListView>
	{
		private static final long serialVersionUID = 1L;
		{
			return ListView.class;
		}
		private CharSequence getListViewBodyMarkup(final ListView listView)
		{
			if (listView.getList().isEmpty())
				return "";
			final ListItem listItem = (ListItem)listView.get("0");
			return getBodyMarkup(listItem);
		}
		public CharSequence getMarkup(final ListView component)
		{
			return String.format("<span %s>%s</span>"getIdAttribute(component),
		}
	}
	public static final class RepeatingViewRenderer extends
	{
		private static final long serialVersionUID = 1L;
		{
			return RepeatingView.class;
		}
		public CharSequence getMarkup(final RepeatingView component)
		{
			final String[] markup = new String[1];
			{
				public void component(final Component componentfinal IVisit<Voidvisit)
				{
					final CharSequence c = .renderComponents(Collections.singletonList(component));
					markup[0] = c.toString().replace(getIdAttribute(component), "%s");
					visit.stop();
				}
			});
			if (markup[0] == null)
				markup[0] = "<span %s></span>";
			return String.format(markup[0], getIdAttribute(component));
		}
	}
	private static final long serialVersionUID = 1L;
	private static final List<IComponentRenderer<?>> DEFAULT_RENDERERS = new ArrayList<IComponentRenderer<?>>();
	{
		return Collections.unmodifiableList();
	}
	private final List<IComponentRenderer<?>> renderers;
	static
	{
// mocleiri: TODO make 1.5 compatible.
// DEFAULT_RENDERERS.add(new DefaultWebMarkupContainerWithMarkupRenderer());
	}
	public RenderersList(final List<IComponentRenderer<?>> renderers)
	{
		this. = renderers;
	}

Note: unchecked cast is suppressed because this method is intended to return renderer that should be used with org.apache.wicket.Component collections but IComponentRenderer.getMarkup(org.apache.wicket.Component) method can only handle certain subtype of org.apache.wicket.Component.

Parameters:
aClass class of the component
Returns:
IComponentRenderer for specified component class
	{
		for (final IComponentRenderer<?> componentRenderer : )
			if (componentRenderer.getComponentClass().isAssignableFrom(aClass))
			{
				@SuppressWarnings("unchecked")
				IComponentRenderer<Componentresult = (IComponentRenderer<Component>)componentRenderer;
				return result;
			}
		throw new WicketRuntimeException("Can't find renderer for class " + aClass);
	}
New to GrepCode? Check out our FAQ X