/*******************************************************************************
* Copyright (c) 2008 xored software, Inc. 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:
* xored software, Inc. - initial API and Implementation (Yuri Strot)
*******************************************************************************/
package com.xored.glance.ui.sources;
import org.eclipse.core.runtime.IProgressMonitor;
/**
* @author Yuri Strot
*/
public interface ITextSource {
/**
* Add text source listener
*
* @param listener text source listener
*/
public void addTextSourceListener(ITextSourceListener listener);
public void dispose();
/**
* Return text blocks associated with this source
*
* @return text blocks
*/
public ITextBlock[] getBlocks();
/**
* Return current source selection. This selection using to identify where start search
*
* @return source selection
*/
public SourceSelection getSelection();
/**
* @param monitor
*/
public void index(IProgressMonitor monitor);
/**
* Called before search started
*/
public void init();
public boolean isDisposed();
public boolean isIndexRequired();
/**
* Remove text source listener
*
* @param listener text source listener
*/
public void removeTextSourceListener(ITextSourceListener listener);
/**
* Focus match
*
* @param match match to focus
*/
public void select(Match match);
/**
* Highlight matches
*
* @param matches
*/
public void show(Match[] matches);
public void updateSourceSelection();
}