/*******************************************************************************
 * <copyright>
 *
 * Copyright (c) 2013, 2013 SAP AG.
 * 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:
 *    SAP AG - initial API, implementation and documentation
 *
 * </copyright>
 *
 *******************************************************************************/
package org.eclipse.fmc.blockdiagram.editor.meta.property;

import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;

/**
 * Extended ConnectionPropertySection for Connections.
 * 
 * @author Patrick Jahnke
 * 
 */
public class ConnectionPropertyMetaSection extends
	org.eclipse.fmc.blockdiagram.editor.property.ConnectionPropertySection {

	/**
	 * Insert some placeholders.
	 */
	@Override
	protected void createDataFlowDirection(TabbedPropertySheetWidgetFactory fac) {
		// placeholders - data flow direction property -> model property tab
		fac.createLabel(comp, "");
		fac.createLabel(comp, "");
	}

	/**
	 * Insert some placeholders.
	 */
	@Override
	protected void createRequestDirection(TabbedPropertySheetWidgetFactory fac) {
		// placeholders - request direction property -> model property tab
		fac.createLabel(comp, "");
		fac.createLabel(comp, "");
	}
}
