/*******************************************************************************
 * Copyright (c) 2009, 2019 Xored Software Inc and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-v20.html
 *
 * Contributors:
 *     Xored Software Inc - initial API and implementation and/or initial documentation
 *******************************************************************************/
package org.eclipse.rcptt.tesla.ecl.model;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Collapse All</b></em>'.
 * <!-- end-user-doc -->
 *
 *
 * @see org.eclipse.rcptt.tesla.ecl.model.TeslaPackage#getCollapseAll()
 * @model annotation="http://www.eclipse.org/ecl/docs description='Collapses a tree item and all its children, or a whole tree.' returns='value of &lt;code&gt;control&lt;/code&gt; parameter' example='get-view \"Q7 Explorer\" | get-tree | collapse-all'"
 * @generated
 */
public interface CollapseAll extends ControlCommand {
} // CollapseAll
