/* ****************************************************************************** * Copyright (c) 2006-2012 XMind Ltd. and others. * * This file is a part of XMind 3. XMind releases 3 and * above are dual-licensed under the Eclipse Public License (EPL), * which is available at http://www.eclipse.org/legal/epl-v10.html * and the GNU Lesser General Public License (LGPL), * which is available at http://www.gnu.org/licenses/lgpl.html * See http://www.xmind.net/license.html for details. * * Contributors: * XMind Ltd. - initial API and implementation *******************************************************************************/ package org.xmind.gef; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.jface.viewers.IInputSelectionProvider; import org.eclipse.jface.viewers.IPostSelectionProvider; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.ViewerComparator; import org.eclipse.jface.viewers.ViewerFilter; import org.eclipse.jface.viewers.ViewerSorter; import org.eclipse.swt.graphics.Cursor; import org.eclipse.swt.widgets.Control; import org.xmind.gef.acc.AccessibleRegistry; import org.xmind.gef.dnd.IDndSupport; import org.xmind.gef.part.IPart; import org.xmind.gef.part.IPartFactory; import org.xmind.gef.part.IRootPart; import org.xmind.gef.part.PartRegistry; import org.xmind.gef.service.IViewerService; import org.xmind.gef.util.Properties; /** * @author Brian Sun */ public interface IViewer extends IAdaptable, IInputSelectionProvider, IPostSelectionProvider { public static interface IPartSearchCondition { boolean evaluate(IPart part); } Control getControl(); EditDomain getEditDomain(); void setEditDomain(EditDomain domain); void setInput(Object input); void setSelection(ISelection selection, boolean reveal); ISelectionSupport getSelectionSupport(); void reveal(Object[] elements); void updateToolTip(); void setCursor(Cursor cursor); void addFilter(ViewerFilter filter); void removeFilter(ViewerFilter filter); ViewerFilter[] getFilters(); void setFilters(ViewerFilter[] filters); ViewerSorter getSorter(); void setSorter(ViewerSorter sorter); ViewerComparator getComparator(); void setComparator(ViewerComparator comparator); IRootPart getRootPart(); void setRootPart(IRootPart rootPart); IPartFactory getPartFactory(); void setPartFactory(IPartFactory partFactory); PartRegistry getPartRegistry(); IPart findPart(Object element); /** * Coordinates represents position relative to the viewer's control. * * @param x * @param y * @return */ IPart findPart(int x, int y); void setPartSearchCondition(IPartSearchCondition condition); IPartSearchCondition getPartSearchCondition(); Properties getProperties(); IDndSupport getDndSupport(); AccessibleRegistry getAccessibleRegistry(); Object getPreselected(); IPart getPreselectedPart(); void setPreselected(Object element); Object getFocused(); IPart getFocusedPart(); void setFocused(Object element); void addPreSelectionChangedListener(ISelectionChangedListener listener); void removePreSelectionChangedListener(ISelectionChangedListener listener); void addInputChangedListener(IInputChangedListener listener); void removeInputChangedListener(IInputChangedListener listener); void addFocusedPartChangedListener(ISelectionChangedListener listener); void removeFocusedPartChangedListener(ISelectionChangedListener listener); IViewerService getService(Class<? extends IViewerService> serviceType); boolean hasService(Class<? extends IViewerService> serviceType); }