/******************************************************************************* * Copyright (c) 2011, 2013 EclipseSource and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * EclipseSource - initial API and implementation ******************************************************************************/ package org.eclipse.rap.examples.pages.internal; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.eclipse.rap.examples.IExampleContribution; import org.eclipse.rap.examples.IExamplePage; import org.eclipse.rap.examples.pages.ButtonExamplePage; import org.eclipse.rap.examples.pages.CanvasExamplePage; import org.eclipse.rap.examples.pages.DialogExamplePage; import org.eclipse.rap.examples.pages.FillLayoutExample; import org.eclipse.rap.examples.pages.GridLayoutExample; import org.eclipse.rap.examples.pages.InternationalizationExamplePage; import org.eclipse.rap.examples.pages.ListExample; import org.eclipse.rap.examples.pages.MarkupExample; import org.eclipse.rap.examples.pages.MarkupLabelExample; import org.eclipse.rap.examples.pages.RowLayoutExample; import org.eclipse.rap.examples.pages.RowTemplateExample; import org.eclipse.rap.examples.pages.TableViewerExample; import org.eclipse.rap.examples.pages.TextInputExamplePage; import org.eclipse.rap.examples.pages.TreeViewerExample; import org.eclipse.rap.examples.pages.ValidationExamplePage; class Contributions { private final List<IExampleContribution> contributions; Contributions() { contributions = new ArrayList<IExampleContribution>(); collectContributions(); } List<IExampleContribution> getContibutions() { return Collections.unmodifiableList( contributions ); } private void collectContributions() { addContribution( "button", "Buttons", ButtonExamplePage.class ); addContribution( "rich-label", "Markup Support", MarkupLabelExample.class ); addContribution( "input", "Input Widgets", TextInputExamplePage.class ); addContribution( "dialog", "Dialogs", DialogExamplePage.class ); addContribution( "drag-and-drop", "Drag & Drop", ListExample.class ); addContribution( "treeviewer", "TreeViewer", TreeViewerExample.class ); addContribution( "tableviewer", "TableViewer", TableViewerExample.class ); addContribution( "canvas", "Canvas", CanvasExamplePage.class ); addContribution( "row-layout", "Row Layout", RowLayoutExample.class ); addContribution( "fill-layout", "Fill Layout", FillLayoutExample.class ); addContribution( "grid-layout", "Grid Layout", GridLayoutExample.class ); addContribution( "table-markup", "Table with Markup", MarkupExample.class ); addContribution( "table-template", "Table with RowTemplate", RowTemplateExample.class ); addContribution( "nls", "Internationalization", InternationalizationExamplePage.class ); addContribution( "validation", "Input Validation", ValidationExamplePage.class ); } private void addContribution( final String id, final String title, final Class<? extends IExamplePage> clazz ) { IExampleContribution contribution = new IExampleContribution() { public String getId() { return id; } public String getTitle() { return title; } public IExamplePage createPage() { try { return clazz.newInstance(); } catch( Exception exception ) { throw new RuntimeException( "Failed to instatiate class " + clazz.getName(), exception ); } } }; contributions.add( contribution ); } }