1 /******************************************************************************* 2 * Copyright (c) 2005 IBM Corporation and others. 3 * All rights reserved. This program and the accompanying materials 4 * are made available under the terms of the Eclipse Public License v1.0 5 * which accompanies this distribution, and is available at 6 * http://www.eclipse.org/legal/epl-v10.html 7 * 8 * Contributors: 9 * IBM Corporation - initial API and implementation 10 *******************************************************************************/ 11 package org.eclipse.ui.internal.part.multiplexer; 12 13 import org.eclipse.ui.internal.part.Part; 14 15 /** 16 * Nested component implementation. Components implementing this interface 17 * are capable of delegating to a shared component. 18 * 19 * <p>EXPERIMENTAL: The components framework is currently under active development. All 20 * aspects of this class including its existence, name, and public interface are likely 21 * to change during the development of Eclipse 3.1</p> 22 * 23 * @since 3.1 24 */ 25 public interface INestedComponent { 26 27 /** 28 * Copies the component's current state to the shared instance, 29 * and start delegating to the shared component. 30 */ 31 public void activate(Part partBeingActivated); 32 33 /** 34 * Stops delegating to the shared component. Remove anything 35 * that was added to the shared component in the activate() method, 36 * if necessary, so that another component can start using 37 * the shared instance. 38 * 39 * @param newActive component of the same type that is about to 40 * be activated as a replacement for this component, or null if none. 41 */ 42 public void deactivate(Object newActive); 43 } 44