/**
* Copyright (c) 2005-2013 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
/*
* Author: atotic
* Created: Jul 25, 2003
*/
package org.python.pydev.shared_ui.outline;
import org.eclipse.jface.viewers.StructuredSelection;
import org.python.pydev.shared_core.callbacks.ICallbackWithListeners;
import org.python.pydev.shared_core.model.ISimpleNode;
/**
* all the models in the outline view need to implement this interface
*/
public interface IOutlineModel {
void dispose();
/**
* @return topmost object in the tree model
* this object will be referenced in ContentProvider::getElements
*/
IParsedItem getRoot();
/**
* this will be called in response to selection event
* @param sel new selection
* @return Point that contains line/column, or item to be selected
*/
ISimpleNode[] getSelectionPosition(StructuredSelection sel);
ICallbackWithListeners<IOutlineModel> getOnModelChangedCallback();
/**
* This is the outline page which should be updated when the outline model changes.
*
* @param baseOutlinePage the outline page to notify.
*/
void setOutlinePage(BaseOutlinePage baseOutlinePage);
}