blob: 6ee3ce47b5f5d0d2afa6c345bc92c8eff3356501 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006 Sybase, Inc. and others.
*
* 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:
* Sybase, Inc. - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.pagedesigner.viewer;
import org.eclipse.draw2d.Viewport;
import org.eclipse.gef.GraphicalViewer;
import org.eclipse.jface.action.IStatusLineManager;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.swt.widgets.Caret;
import org.eclipse.ui.IEditorPart;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
/**
* @author mengbo
*/
public interface IHTMLGraphicalViewer extends GraphicalViewer
{
/**
* Factory for IHTMLGraphicalViewers
*
*/
static class Factory
{
/**
* @param part
* @return a new graphical viewer for part
*/
public static IHTMLGraphicalViewer createGraphicalViewer(IEditorPart part)
{
return new HTMLGraphicalViewer(part);
}
}
/**
* @return the dom model
*/
public IDOMModel getModel();
/**
* ensure we are in range selection mode
*/
public void ensureRangeSelectionMode();
/**
*
*/
public void ensureObjectSelectionMode();
/**
* @return true if in range mode
*/
public boolean isInRangeMode();
/**
* @return the current selection range
*/
public DesignRange getRangeSelection();
/**
* @param position
* @param position2
*/
public void setRange(DesignPosition position, DesignPosition position2);
/**
* @param position
*/
public void setRangeEndPosition(DesignPosition position);
/**
* @return the caret
*/
public Caret getCaret();
/**
* indicate a batch of operations is began, and may result in selection
* change. This viewer will only fire a single selection changed event when
* this batch of operations finish.
*/
public void startSelectionChange();
/**
* batch operation that change the selection finished.
*
*/
public void selectionChanged();
/**
* @return the view port
*/
public Viewport getViewport();
/**
* @return the status line manager
*/
public IStatusLineManager getStatusLineManager();
/**
* @param newSelection
*/
public void updateRangeSelection(ISelection newSelection);
/**
* Update the horizontal position
*/
public void updateHorizontalPos();
/**
* Clear the selection to null. When the model is modified, the selection is
* invalid, so we need to clear the selection. We change the selection
* directly, it won't need to fire selectionchange event to other part.
*/
public void clearSelectionRange();
/**
* Adds listener both as a selection changed listener and as an
* {@link IHTMLGraphicalViewerListener}. Callers of this method
* need not call addSelectionChangedListener.
* @param listener
*/
public void addHTMLViewerListener(IHTMLGraphicalViewerListener listener);
/**
* Removes listener both as a selection changed listener and as an
* {@link IHTMLGraphicalViewerListener}. Callers of this method
* need not call removeSelectionChangedListener.
* @param listener
*/
public void removeHTMLViewerListener(IHTMLGraphicalViewerListener listener);
}