/**
 * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
 * 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:
 *         Florian Pirchner - Initial implementation
 */
package org.eclipse.osbp.runtime.web.vaadin.common;

public class Constants {

	/**
	 * OSGi property component.factory for the vaadin UI (tab sheet). The
	 * vaadin.ui.class name is part of the factory name and putted after the /.
	 * The class name is required for lazy loading issues.
	 * <p>
	 * Example:
	 * 
	 * factory=
	 * "org.eclipse.osbp.web.vaadin.UI/org.eclipse.osbp.web.vaadin.example.Vaadin7DemoUI"
	 */
	public static final String OSGI_COMP_FACTORY_VAADIN_UI = "org.eclipse.osbp.web.vaadin.UI";

	/**
	 * The prefix of the factory component name before the UI class name starts. <br>
	 * UI-Class name: org.eclipse.osbp.web.vaadin.example.Vaadin7DemoUI<br>
	 * Factory name: org.eclipse.osbp.web.vaadin.UI/org.eclipse.osbp.web.vaadin.example.
	 * Vaadin7DemoUI
	 */
	public static final String PREFIX_UI_CLASS = OSGI_COMP_FACTORY_VAADIN_UI
			+ "/";

}
