X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpdt/internal/ui/text/CustomSourceInformationControl.java b/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpdt/internal/ui/text/CustomSourceInformationControl.java deleted file mode 100644 index 0468435..0000000 --- a/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpdt/internal/ui/text/CustomSourceInformationControl.java +++ /dev/null @@ -1,240 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package net.sourceforge.phpdt.internal.ui.text; - -import net.sourceforge.phpdt.internal.ui.text.java.hover.SourceViewerInformationControl; - -import org.eclipse.jface.resource.JFaceResources; -//incastrix -//import org.eclipse.jface.text.Assert; -import org.eclipse.core.runtime.Assert; -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.IRegion; -import org.eclipse.jface.text.ITextViewerExtension; -import org.eclipse.swt.custom.StyledText; -import org.eclipse.swt.graphics.Font; -import org.eclipse.swt.graphics.GC; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Shell; - -/** - * Source viewer used to display quick diff hovers. - * - * @since 3.0 - */ -public class CustomSourceInformationControl extends - SourceViewerInformationControl { - - /** The font name for the viewer font - the same as the java editor's. */ - private static final String SYMBOLIC_FONT_NAME = "net.sourceforge.phpdt.ui.editors.textfont"; //$NON-NLS-1$ - - /** - * The maximum width of the control, set in - * setSizeConstraints(int, int). - */ - int fMaxWidth = Integer.MAX_VALUE; - - /** - * The maximum height of the control, set in - * setSizeConstraints(int, int). - */ - int fMaxHeight = Integer.MAX_VALUE; - - /** - * The partition type to be used as the starting partition type by the - * paritition scanner. - */ - private String fPartition; - - /** The horizontal scroll index. */ - private int fHorizontalScrollPixel; - - /* - * @see org.eclipse.jface.text.IInformationControl#setSizeConstraints(int, - * int) - */ - public void setSizeConstraints(int maxWidth, int maxHeight) { - fMaxWidth = maxWidth; - fMaxHeight = maxHeight; - } - - /** - * Creates a new information control. - * - * @param parent - * the shell that is the parent of this hover / control - * @param partition - * the initial partition type to be used for the underlying - * viewer - */ - public CustomSourceInformationControl(Shell parent, String partition) { - super(parent); - setViewerFont(); - setStartingPartitionType(partition); - } - - /* - * @see org.eclipse.jface.text.IInformationControl#computeSizeHint() - */ - public Point computeSizeHint() { - Point size = super.computeSizeHint(); - size.x = Math.min(size.x, fMaxWidth); - size.y = Math.min(size.y, fMaxHeight); - return size; - } - - /** - * Sets the font for this viewer sustaining selection and scroll position. - */ - private void setViewerFont() { - Font font = JFaceResources.getFont(SYMBOLIC_FONT_NAME); - - if (getViewer().getDocument() != null) { - - Point selection = getViewer().getSelectedRange(); - int topIndex = getViewer().getTopIndex(); - - StyledText styledText = getViewer().getTextWidget(); - Control parent = styledText; - if (getViewer() instanceof ITextViewerExtension) { - ITextViewerExtension extension = (ITextViewerExtension) getViewer(); - parent = extension.getControl(); - } - - parent.setRedraw(false); - - styledText.setFont(font); - - getViewer().setSelectedRange(selection.x, selection.y); - getViewer().setTopIndex(topIndex); - - if (parent instanceof Composite) { - Composite composite = (Composite) parent; - composite.layout(true); - } - - parent.setRedraw(true); - - } else { - StyledText styledText = getViewer().getTextWidget(); - styledText.setFont(font); - } - } - - /** - * Sets the initial partition for the underlying source viewer. - * - * @param partition - * the partition type - */ - public void setStartingPartitionType(String partition) { - if (partition == null) - fPartition = IDocument.DEFAULT_CONTENT_TYPE; - else - fPartition = partition; - } - - /* - * @see org.eclipse.jface.text.IInformationControl#setInformation(java.lang.String) - */ - public void setInformation(String content) { - super.setInformation(content); - IDocument doc = getViewer().getDocument(); - if (doc == null) - return; - - // ensure that we can scroll enough - ensureScrollable(); - - String start = null; - if (IPHPPartitions.PHP_PHPDOC_COMMENT.equals(fPartition)) { - start = "/**" + doc.getLegalLineDelimiters()[0]; //$NON-NLS-1$ - } else if (IPHPPartitions.PHP_MULTILINE_COMMENT.equals(fPartition)) { - start = "/*" + doc.getLegalLineDelimiters()[0]; //$NON-NLS-1$ - } - if (start != null) { - try { - doc.replace(0, 0, start); - int startLen = start.length(); - getViewer().setDocument(doc, startLen, - doc.getLength() - startLen); - } catch (BadLocationException e) { - // impossible - Assert.isTrue(false); - } - } - - getViewer().getTextWidget().setHorizontalPixel(fHorizontalScrollPixel); - } - - /** - * Ensures that the control can be scrolled at least to - * fHorizontalScrollPixel and adjusts fMaxWidth - * accordingly. - */ - private void ensureScrollable() { - IDocument doc = getViewer().getDocument(); - if (doc == null) - return; - - StyledText widget = getViewer().getTextWidget(); - if (widget == null || widget.isDisposed()) - return; - - int last = doc.getNumberOfLines() - 1; - GC gc = new GC(widget); - gc.setFont(widget.getFont()); - int maxWidth = 0; - String content = new String(); - - try { - for (int i = 0; i <= last; i++) { - IRegion line; - line = doc.getLineInformation(i); - content = doc.get(line.getOffset(), line.getLength()); - int width = gc.textExtent(content).x; - if (width > maxWidth) { - maxWidth = width; - } - } - } catch (BadLocationException e) { - return; - } finally { - gc.dispose(); - } - - // limit the size of the window to the maximum width minus scrolling, - // but never more than the configured max size (viewport size). - fMaxWidth = Math.max(0, Math.min(fMaxWidth, maxWidth - - fHorizontalScrollPixel + 8)); - } - - /* - * @see net.sourceforge.phpdt.internal.ui.text.java.hover.SourceViewerInformationControl#hasContents() - */ - public boolean hasContents() { - return super.hasContents() && fMaxWidth > 0; - } - - /** - * Sets the horizontal scroll index in pixels. - * - * @param scrollIndex - * the new horizontal scroll index - */ -// public void setHorizontalScrollPixel(int scrollIndex) { -// scrollIndex = Math.max(0, scrollIndex); -// fHorizontalScrollPixel = scrollIndex; -// } -}