/**
 *                                                                            
 *  Copyright (c) 2011, 2016 - 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.ecview.extension.editparts;

/**
 * For internal use only!.
 */
public interface IInternalSuspectLayoutingInfoEditpart extends ISuspectLayoutingInfoEditpart {

	/**
	 * Activates the layout info. Should only be called from
	 * IStrategyLayoutEditpart. Use {@link #requestActivate()} instead.
	 */
	void activate();

	/**
	 * Activates the visibility processors
	 */
	void postActivate();

}
