/*******************************************************************************
 * Copyright (c) 2000, 2003 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials 
 * are made available under the terms of the Common Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/cpl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.ui;


 
/**
 * An <code>IFolderLayout</code> is used to define the initial pages within a folder.
 * The folder itself is component within an <code>IPageLayout</code>.
 * <p>
 * This interface is not intended to be implemented by clients.
 * </p>
 *
 * @see IPageLayout#createFolder
 */
public interface IFolderLayout extends IPlaceholderFolderLayout {
/**
 * Adds a view with the given id to this folder.
 * The id must name a view contributed to the workbench's view extension point 
 * (named <code>"org.eclipse.ui.views"</code>).
 *
 * @param viewId the view id
 */
public void addView(String viewId);
/**
 * Adds a fixed view with the given id to this folder.
 * Once added, a fixed view cannot be moved or closed.
 * The id must name a view contributed to the workbench's view extension point 
 * (named <code>"org.eclipse.ui.views"</code>).
 *
 * @param viewId the view id
 * @since 3.0
 */
public void addFixedView(String viewId);
}
