X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/java/hover/AnnotationExpansionControl.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/java/hover/AnnotationExpansionControl.java index 5f2d7c0..199eaaf 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/java/hover/AnnotationExpansionControl.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/java/hover/AnnotationExpansionControl.java @@ -14,6 +14,26 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import org.eclipse.jface.text.AbstractInformationControlManager; +import org.eclipse.jface.text.DefaultInformationControl; +import org.eclipse.jface.text.IInformationControl; +import org.eclipse.jface.text.IInformationControlCreator; +import org.eclipse.jface.text.IInformationControlExtension; +import org.eclipse.jface.text.IInformationControlExtension2; +import org.eclipse.jface.text.IRegion; +import org.eclipse.jface.text.IViewportListener; +import org.eclipse.jface.text.Position; +import org.eclipse.jface.text.Region; +import org.eclipse.jface.text.TextViewer; +import org.eclipse.jface.text.source.Annotation; +import org.eclipse.jface.text.source.IAnnotationAccess; +import org.eclipse.jface.text.source.IAnnotationAccessExtension; +import org.eclipse.jface.text.source.IAnnotationModel; +import org.eclipse.jface.text.source.ISourceViewer; +import org.eclipse.jface.text.source.IVerticalRulerInfo; +import org.eclipse.jface.text.source.IVerticalRulerListener; +import org.eclipse.jface.text.source.VerticalRulerEvent; +import org.eclipse.jface.viewers.IDoubleClickListener; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.StyleRange; import org.eclipse.swt.custom.StyledText; @@ -45,87 +65,73 @@ import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Widget; -import org.eclipse.jface.viewers.IDoubleClickListener; - -import org.eclipse.jface.text.AbstractInformationControlManager; -import org.eclipse.jface.text.DefaultInformationControl; -import org.eclipse.jface.text.IInformationControl; -import org.eclipse.jface.text.IInformationControlCreator; -import org.eclipse.jface.text.IInformationControlExtension; -import org.eclipse.jface.text.IInformationControlExtension2; -import org.eclipse.jface.text.IRegion; -import org.eclipse.jface.text.IViewportListener; -import org.eclipse.jface.text.Position; -import org.eclipse.jface.text.Region; -import org.eclipse.jface.text.TextViewer; -import org.eclipse.jface.text.source.Annotation; -import org.eclipse.jface.text.source.IAnnotationAccess; -import org.eclipse.jface.text.source.IAnnotationAccessExtension; -import org.eclipse.jface.text.source.IAnnotationModel; -import org.eclipse.jface.text.source.ISourceViewer; -import org.eclipse.jface.text.source.IVerticalRulerInfo; -import org.eclipse.jface.text.source.IVerticalRulerListener; -import org.eclipse.jface.text.source.VerticalRulerEvent; - - /** - * A control that can display a number of annotations. The control can decide how it layouts the - * annotations to present them to the user. + * A control that can display a number of annotations. The control can decide + * how it layouts the annotations to present them to the user. *
- * This class got moved here form Platform Text since it was not used there - * and caused discouraged access warnings. It will be moved down again once + * This class got moved here form Platform Text since it was not used there and + * caused discouraged access warnings. It will be moved down again once * annotation roll-over support is provided by Platform Text. *
- *Each annotation can have its custom context menu and hover.
- * + *+ * Each annotation can have its custom context menu and hover. + *
+ * * @since 3.2 */ -public class AnnotationExpansionControl implements IInformationControl, IInformationControlExtension, IInformationControlExtension2 { - +public class AnnotationExpansionControl implements IInformationControl, + IInformationControlExtension, IInformationControlExtension2 { public interface ICallback { void run(IInformationControlExtension2 control); } /** - * Input used by the control to display the annotations. - * TODO move to top-level class - * TODO encapsulate fields - * + * Input used by the control to display the annotations. TODO move to + * top-level class TODO encapsulate fields + * * @since 3.0 */ public static class AnnotationHoverInput { public Annotation[] fAnnotations; + public ISourceViewer fViewer; + public IVerticalRulerInfo fRulerInfo; + public IVerticalRulerListener fAnnotationListener; + public IDoubleClickListener fDoubleClickListener; + public ICallback redoAction; + public IAnnotationModel model; } private final class Item { Annotation fAnnotation; + Canvas canvas; + StyleRange[] oldStyles; public void selected() { - Display disp= fShell.getDisplay(); + Display disp = fShell.getDisplay(); canvas.setCursor(fHandCursor); // TODO: shade - for now: set grey background canvas.setBackground(getSelectionColor(disp)); // highlight the viewer background at its position - oldStyles= setViewerBackground(fAnnotation); + oldStyles = setViewerBackground(fAnnotation); // set the selection - fSelection= this; + fSelection = this; if (fHoverManager != null) fHoverManager.showInformation(); if (fInput.fAnnotationListener != null) { - VerticalRulerEvent event= new VerticalRulerEvent(fAnnotation); + VerticalRulerEvent event = new VerticalRulerEvent(fAnnotation); fInput.fAnnotationListener.annotationSelected(event); } @@ -133,7 +139,7 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma public void defaultSelected() { if (fInput.fAnnotationListener != null) { - VerticalRulerEvent event= new VerticalRulerEvent(fAnnotation); + VerticalRulerEvent event = new VerticalRulerEvent(fAnnotation); fInput.fAnnotationListener.annotationDefaultSelected(event); } @@ -142,25 +148,28 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma public void showContextMenu(Menu menu) { if (fInput.fAnnotationListener != null) { - VerticalRulerEvent event= new VerticalRulerEvent(fAnnotation); - fInput.fAnnotationListener.annotationContextMenuAboutToShow(event, menu); + VerticalRulerEvent event = new VerticalRulerEvent(fAnnotation); + fInput.fAnnotationListener.annotationContextMenuAboutToShow( + event, menu); } } public void deselect() { // hide the popup -// fHoverManager.disposeInformationControl(); + // fHoverManager.disposeInformationControl(); // deselect - fSelection= null; + fSelection = null; resetViewerBackground(oldStyles); - oldStyles= null; + oldStyles = null; - Display disp= fShell.getDisplay(); + Display disp = fShell.getDisplay(); canvas.setCursor(null); // TODO: remove shading - for now: set standard background - canvas.setBackground(disp.getSystemColor(SWT.COLOR_INFO_BACKGROUND)); + canvas + .setBackground(disp + .getSystemColor(SWT.COLOR_INFO_BACKGROUND)); } @@ -174,11 +183,11 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(org.eclipse.swt.events.DisposeEvent) */ public void widgetDisposed(DisposeEvent e) { - Item item= (Item) ((Widget) e.getSource()).getData(); + Item item = (Item) ((Widget) e.getSource()).getData(); item.deselect(); - item.canvas= null; - item.fAnnotation= null; - item.oldStyles= null; + item.canvas = null; + item.fAnnotation = null; + item.oldStyles = null; ((Widget) e.getSource()).setData(null); } @@ -196,9 +205,9 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma // TODO: show per-item menu // for now: show ruler context menu if (fInput != null) { - Control ruler= fInput.fRulerInfo.getControl(); + Control ruler = fInput.fRulerInfo.getControl(); if (ruler != null && !ruler.isDisposed()) { - Menu menu= ruler.getMenu(); + Menu menu = ruler.getMenu(); if (menu != null && !menu.isDisposed()) { menu.setLocation(event.x, event.y); menu.addMenuListener(new MenuListener() { @@ -219,7 +228,6 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma } } - /** * Listener on mouse events on the items. */ @@ -228,31 +236,36 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma * @see org.eclipse.swt.events.MouseListener#mouseDoubleClick(org.eclipse.swt.events.MouseEvent) */ public void mouseDoubleClick(MouseEvent e) { - Item item= (Item) ((Widget) e.getSource()).getData(); - if (e.button == 1 && item.fAnnotation == fInput.fAnnotations[0] && fInput.fDoubleClickListener != null) { + Item item = (Item) ((Widget) e.getSource()).getData(); + if (e.button == 1 && item.fAnnotation == fInput.fAnnotations[0] + && fInput.fDoubleClickListener != null) { fInput.fDoubleClickListener.doubleClick(null); // special code for JDT to renew the annotation set. if (fInput.redoAction != null) fInput.redoAction.run(AnnotationExpansionControl.this); } -// dispose(); - // TODO special action to invoke double-click action on the vertical ruler + // dispose(); + // TODO special action to invoke double-click action on the vertical + // ruler // how about -// Canvas can= (Canvas) e.getSource(); -// Annotation a= (Annotation) can.getData(); -// if (a != null) { -// a.getDoubleClickAction().run(); -// } + // Canvas can= (Canvas) e.getSource(); + // Annotation a= (Annotation) can.getData(); + // if (a != null) { + // a.getDoubleClickAction().run(); + // } } /* * @see org.eclipse.swt.events.MouseListener#mouseUp(org.eclipse.swt.events.MouseEvent) */ public void mouseUp(MouseEvent e) { - Item item= (Item) ((Widget) e.getSource()).getData(); - // TODO for now, to make double click work: disable single click on the first item - // disable later when the annotationlistener selectively handles input - if (item != null && e.button == 1) // && item.fAnnotation != fInput.fAnnotations[0]) + Item item = (Item) ((Widget) e.getSource()).getData(); + // TODO for now, to make double click work: disable single click on + // the first item + // disable later when the annotationlistener selectively handles + // input + if (item != null && e.button == 1) // && item.fAnnotation != + // fInput.fAnnotations[0]) item.defaultSelected(); } @@ -272,7 +285,7 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma * @see org.eclipse.swt.events.MouseTrackListener#mouseEnter(org.eclipse.swt.events.MouseEvent) */ public void mouseEnter(MouseEvent e) { - Item item= (Item) ((Widget) e.getSource()).getData(); + Item item = (Item) ((Widget) e.getSource()).getData(); if (item != null) item.selected(); } @@ -282,26 +295,25 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma */ public void mouseExit(MouseEvent e) { - Item item= (Item) ((Widget) e.getSource()).getData(); + Item item = (Item) ((Widget) e.getSource()).getData(); if (item != null) item.deselect(); // if the event lies outside the entire popup, dispose - org.eclipse.swt.graphics.Region region= fShell.getRegion(); - Canvas can= (Canvas) e.getSource(); - Point p= can.toDisplay(e.x, e.y); + org.eclipse.swt.graphics.Region region = fShell.getRegion(); + Canvas can = (Canvas) e.getSource(); + Point p = can.toDisplay(e.x, e.y); if (region == null) { - Rectangle bounds= fShell.getBounds(); -// p= fShell.toControl(p); + Rectangle bounds = fShell.getBounds(); + // p= fShell.toControl(p); if (!bounds.contains(p)) dispose(); } else { - p= fShell.toControl(p); + p = fShell.toControl(p); if (!region.contains(p)) dispose(); } - } /* @@ -309,7 +321,7 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma */ public void mouseHover(MouseEvent e) { if (fHoverManager == null) { - fHoverManager= new HoverManager(); + fHoverManager = new HoverManager(); fHoverManager.takesFocusWhenVisible(false); fHoverManager.install(fComposite); fHoverManager.showInformation(); @@ -317,31 +329,33 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma } } - /** - * - * + * + * * @since 3.0 */ public class LinearLayouter { - private static final int ANNOTATION_SIZE= 14; - private static final int BORDER_WIDTH= 2; + private static final int ANNOTATION_SIZE = 14; + + private static final int BORDER_WIDTH = 2; public Layout getLayout(int itemCount) { // simple layout: a row of items - GridLayout layout= new GridLayout(itemCount, true); - layout.horizontalSpacing= 1; - layout.verticalSpacing= 0; - layout.marginHeight= 1; - layout.marginWidth= 1; + GridLayout layout = new GridLayout(itemCount, true); + layout.horizontalSpacing = 1; + layout.verticalSpacing = 0; + layout.marginHeight = 1; + layout.marginWidth = 1; return layout; } public Object getLayoutData() { - GridData gridData= new GridData(ANNOTATION_SIZE + 2 * BORDER_WIDTH, ANNOTATION_SIZE + 2 * BORDER_WIDTH); - gridData.horizontalAlignment= GridData.CENTER; - gridData.verticalAlignment= GridData.CENTER; + GridData gridData = new GridData( + ANNOTATION_SIZE + 2 * BORDER_WIDTH, ANNOTATION_SIZE + 2 + * BORDER_WIDTH); + gridData.horizontalAlignment = GridData.CENTER; + gridData.verticalAlignment = GridData.CENTER; return gridData; } @@ -359,20 +373,23 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma } } - - + /** - * Listener on paint events on the items. Paints the annotation image on the givenGC
.
+ * Listener on paint events on the items. Paints the annotation image on the
+ * given GC
.
*/
private final class MyPaintListener implements PaintListener {
/*
* @see org.eclipse.swt.events.PaintListener#paintControl(org.eclipse.swt.events.PaintEvent)
*/
public void paintControl(PaintEvent e) {
- Canvas can= (Canvas) e.getSource();
- Annotation a= ((Item) can.getData()).fAnnotation;
+ Canvas can = (Canvas) e.getSource();
+ Annotation a = ((Item) can.getData()).fAnnotation;
if (a != null) {
- Rectangle rect= new Rectangle(fLayouter.getBorderWidth(), fLayouter.getBorderWidth(), fLayouter.getAnnotationSize(), fLayouter.getAnnotationSize());
+ Rectangle rect = new Rectangle(fLayouter.getBorderWidth(),
+ fLayouter.getBorderWidth(), fLayouter
+ .getAnnotationSize(), fLayouter
+ .getAnnotationSize());
if (fAnnotationAccessExtension != null)
fAnnotationAccessExtension.paint(a, e.gc, can, rect);
}
@@ -385,7 +402,7 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma
private final class HoverManager extends AbstractInformationControlManager {
/**
- *
+ *
*/
public HoverManager() {
super(new IInformationControlCreator() {
@@ -396,7 +413,8 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma
setMargins(5, 10);
setAnchor(ANCHOR_BOTTOM);
- setFallbackAnchors(new Anchor[] {ANCHOR_BOTTOM, ANCHOR_LEFT, ANCHOR_RIGHT} );
+ setFallbackAnchors(new Anchor[] { ANCHOR_BOTTOM, ANCHOR_LEFT,
+ ANCHOR_RIGHT });
}
/*
@@ -404,120 +422,136 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma
*/
protected void computeInformation() {
if (fSelection != null) {
- Rectangle subjectArea= fSelection.canvas.getBounds();
- Annotation annotation= fSelection.fAnnotation;
+ Rectangle subjectArea = fSelection.canvas.getBounds();
+ Annotation annotation = fSelection.fAnnotation;
String msg;
if (annotation != null)
- msg= annotation.getText();
+ msg = annotation.getText();
else
- msg= null;
+ msg = null;
setInformation(msg, subjectArea);
}
}
-
}
/** Model data. */
protected AnnotationHoverInput fInput;
+
/** The control's shell */
private Shell fShell;
+
/** The composite combining all the items. */
protected Composite fComposite;
+
/** The hand cursor. */
private Cursor fHandCursor;
+
/** The currently selected item, or null
if none is selected. */
private Item fSelection;
+
/** The hover manager for the per-item hovers. */
private HoverManager fHoverManager;
+
/** The annotation access extension. */
private IAnnotationAccessExtension fAnnotationAccessExtension;
-
/* listener legion */
private final MyPaintListener fPaintListener;
+
private final MyMouseTrackListener fMouseTrackListener;
+
private final MyMouseListener fMouseListener;
+
private final MyMenuDetectListener fMenuDetectListener;
+
private final DisposeListener fDisposeListener;
+
private final IViewportListener fViewportListener;
private LinearLayouter fLayouter;
/**
* Creates a new control.
- *
+ *
* @param parent
* @param shellStyle
* @param access
*/
- public AnnotationExpansionControl(Shell parent, int shellStyle, IAnnotationAccess access) {
- fPaintListener= new MyPaintListener();
- fMouseTrackListener= new MyMouseTrackListener();
- fMouseListener= new MyMouseListener();
- fMenuDetectListener= new MyMenuDetectListener();
- fDisposeListener= new MyDisposeListener();
- fViewportListener= new IViewportListener() {
+ public AnnotationExpansionControl(Shell parent, int shellStyle,
+ IAnnotationAccess access) {
+ fPaintListener = new MyPaintListener();
+ fMouseTrackListener = new MyMouseTrackListener();
+ fMouseListener = new MyMouseListener();
+ fMenuDetectListener = new MyMenuDetectListener();
+ fDisposeListener = new MyDisposeListener();
+ fViewportListener = new IViewportListener() {
public void viewportChanged(int verticalOffset) {
dispose();
}
};
- fLayouter= new LinearLayouter();
+ fLayouter = new LinearLayouter();
if (access instanceof IAnnotationAccessExtension)
- fAnnotationAccessExtension= (IAnnotationAccessExtension) access;
+ fAnnotationAccessExtension = (IAnnotationAccessExtension) access;
- fShell= new Shell(parent, shellStyle | SWT.NO_FOCUS | SWT.ON_TOP);
- Display display= fShell.getDisplay();
+ fShell = new Shell(parent, shellStyle | SWT.NO_FOCUS | SWT.ON_TOP);
+ Display display = fShell.getDisplay();
fShell.setBackground(display.getSystemColor(SWT.COLOR_BLACK));
- fComposite= new Composite(fShell, SWT.NO_FOCUS | SWT.NO_REDRAW_RESIZE | SWT.NO_TRIM);
-// fComposite= new Composite(fShell, SWT.NO_FOCUS | SWT.NO_REDRAW_RESIZE | SWT.NO_TRIM | SWT.V_SCROLL);
-
- GridLayout layout= new GridLayout(1, true);
- layout.marginHeight= 0;
- layout.marginWidth= 0;
+ fComposite = new Composite(fShell, SWT.NO_FOCUS | SWT.NO_REDRAW_RESIZE
+ | SWT.NO_TRIM);
+ // fComposite= new Composite(fShell, SWT.NO_FOCUS | SWT.NO_REDRAW_RESIZE
+ // | SWT.NO_TRIM | SWT.V_SCROLL);
+
+ GridLayout layout = new GridLayout(1, true);
+ layout.marginHeight = 0;
+ layout.marginWidth = 0;
fShell.setLayout(layout);
- GridData data= new GridData(GridData.FILL_BOTH);
- data.heightHint= fLayouter.getAnnotationSize() + 2 * fLayouter.getBorderWidth() + 4;
+ GridData data = new GridData(GridData.FILL_BOTH);
+ data.heightHint = fLayouter.getAnnotationSize() + 2
+ * fLayouter.getBorderWidth() + 4;
fComposite.setLayoutData(data);
fComposite.addMouseTrackListener(new MouseTrackAdapter() {
public void mouseExit(MouseEvent e) {
if (fComposite == null)
- return;
- Control[] children= fComposite.getChildren();
- Rectangle bounds= null;
- for (int i= 0; i < children.length; i++) {
+ return;
+ Control[] children = fComposite.getChildren();
+ Rectangle bounds = null;
+ for (int i = 0; i < children.length; i++) {
if (bounds == null)
- bounds= children[i].getBounds();
+ bounds = children[i].getBounds();
else
bounds.add(children[i].getBounds());
if (bounds.contains(e.x, e.y))
return;
}
- // if none of the children contains the event, we leave the popup
+ // if none of the children contains the event, we leave the
+ // popup
dispose();
}
});
-// fComposite.getVerticalBar().addListener(SWT.Selection, new Listener() {
-//
-// public void handleEvent(Event event) {
-// Rectangle bounds= fShell.getBounds();
-// int x= bounds.x - fLayouter.getAnnotationSize() - fLayouter.getBorderWidth();
-// int y= bounds.y;
-// fShell.setBounds(x, y, bounds.width, bounds.height);
-// }
-//
-// });
-
- fHandCursor= new Cursor(display, SWT.CURSOR_HAND);
+ // fComposite.getVerticalBar().addListener(SWT.Selection, new Listener()
+ // {
+ //
+ // public void handleEvent(Event event) {
+ // Rectangle bounds= fShell.getBounds();
+ // int x= bounds.x - fLayouter.getAnnotationSize() -
+ // fLayouter.getBorderWidth();
+ // int y= bounds.y;
+ // fShell.setBounds(x, y, bounds.width, bounds.height);
+ // }
+ //
+ // });
+
+ fHandCursor = new Cursor(display, SWT.CURSOR_HAND);
fShell.setCursor(fHandCursor);
fComposite.setCursor(fHandCursor);
@@ -525,7 +559,7 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma
}
private void setInfoSystemColor() {
- Display display= fShell.getDisplay();
+ Display display = fShell.getDisplay();
setForegroundColor(display.getSystemColor(SWT.COLOR_INFO_FOREGROUND));
setBackgroundColor(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));
}
@@ -537,7 +571,6 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma
setInput(null);
}
-
/*
* @see org.eclipse.jface.text.IInformationControlExtension2#setInput(java.lang.Object)
*/
@@ -546,9 +579,9 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma
fInput.fViewer.removeViewportListener(fViewportListener);
if (input instanceof AnnotationHoverInput)
- fInput= (AnnotationHoverInput) input;
+ fInput = (AnnotationHoverInput) input;
else
- fInput= null;
+ fInput = null;
inputChanged(fInput, null);
}
@@ -571,15 +604,15 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma
fShell.setRegion(fLayouter.getShellRegion(fInput.fAnnotations.length));
- Layout layout= fLayouter.getLayout(fInput.fAnnotations.length);
+ Layout layout = fLayouter.getLayout(fInput.fAnnotations.length);
fComposite.setLayout(layout);
- Control[] children= fComposite.getChildren();
- for (int i= 0; i < fInput.fAnnotations.length; i++) {
- Canvas canvas= (Canvas) children[i];
- Item item= new Item();
- item.canvas= canvas;
- item.fAnnotation= fInput.fAnnotations[i];
+ Control[] children = fComposite.getChildren();
+ for (int i = 0; i < fInput.fAnnotations.length; i++) {
+ Canvas canvas = (Canvas) children[i];
+ Item item = new Item();
+ item.canvas = canvas;
+ item.fAnnotation = fInput.fAnnotations[i];
canvas.setData(item);
canvas.redraw();
}
@@ -590,18 +623,19 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma
if (fComposite == null)
return;
- Control[] children= fComposite.getChildren();
- int oldSize= children.length;
- int newSize= fInput == null ? 0 : fInput.fAnnotations.length;
+ Control[] children = fComposite.getChildren();
+ int oldSize = children.length;
+ int newSize = fInput == null ? 0 : fInput.fAnnotations.length;
- Display display= fShell.getDisplay();
+ Display display = fShell.getDisplay();
// add missing items
- for (int i= oldSize; i < newSize; i++) {
- Canvas canvas= new Canvas(fComposite, SWT.NONE);
- Object gridData= fLayouter.getLayoutData();
+ for (int i = oldSize; i < newSize; i++) {
+ Canvas canvas = new Canvas(fComposite, SWT.NONE);
+ Object gridData = fLayouter.getLayoutData();
canvas.setLayoutData(gridData);
- canvas.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));
+ canvas.setBackground(display
+ .getSystemColor(SWT.COLOR_INFO_BACKGROUND));
canvas.addPaintListener(fPaintListener);
@@ -615,8 +649,8 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma
}
// dispose of exceeding resources
- for (int i= oldSize; i > newSize; i--) {
- Item item= (Item) children[i - 1].getData();
+ for (int i = oldSize; i > newSize; i--) {
+ Item item = (Item) children[i - 1].getData();
item.deselect();
children[i - 1].dispose();
}
@@ -637,15 +671,15 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma
if (fShell != null) {
if (!fShell.isDisposed())
fShell.dispose();
- fShell= null;
- fComposite= null;
+ fShell = null;
+ fComposite = null;
if (fHandCursor != null)
fHandCursor.dispose();
- fHandCursor= null;
+ fHandCursor = null;
if (fHoverManager != null)
fHoverManager.dispose();
- fHoverManager= null;
- fSelection= null;
+ fHoverManager = null;
+ fSelection = null;
}
}
@@ -657,11 +691,12 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma
}
/*
- * @see org.eclipse.jface.text.IInformationControl#setSizeConstraints(int, int)
+ * @see org.eclipse.jface.text.IInformationControl#setSizeConstraints(int,
+ * int)
*/
public void setSizeConstraints(int maxWidth, int maxHeight) {
- //fMaxWidth= maxWidth;
- //fMaxHeight= maxHeight;
+ // fMaxWidth= maxWidth;
+ // fMaxHeight= maxHeight;
}
/*
@@ -720,8 +755,8 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma
if (fComposite.isFocusControl())
return true;
- Control[] children= fComposite.getChildren();
- for (int i= 0; i < children.length; i++) {
+ Control[] children = fComposite.getChildren();
+ for (int i = 0; i < children.length; i++) {
if (children[i].isFocusControl())
return true;
}
@@ -750,38 +785,43 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma
}
private StyleRange[] setViewerBackground(Annotation annotation) {
- StyledText text= fInput.fViewer.getTextWidget();
+ StyledText text = fInput.fViewer.getTextWidget();
if (text == null || text.isDisposed())
return null;
- Display disp= text.getDisplay();
+ Display disp = text.getDisplay();
- Position pos= fInput.model.getPosition(annotation);
+ Position pos = fInput.model.getPosition(annotation);
if (pos == null)
return null;
- IRegion region= ((TextViewer)fInput.fViewer).modelRange2WidgetRange(new Region(pos.offset, pos.length));
+ IRegion region = ((TextViewer) fInput.fViewer)
+ .modelRange2WidgetRange(new Region(pos.offset, pos.length));
if (region == null)
return null;
- StyleRange[] ranges= text.getStyleRanges(region.getOffset(), region.getLength());
+ StyleRange[] ranges = text.getStyleRanges(region.getOffset(), region
+ .getLength());
- List undoRanges= new ArrayList(ranges.length);
- for (int i= 0; i < ranges.length; i++) {
+ List undoRanges = new ArrayList(ranges.length);
+ for (int i = 0; i < ranges.length; i++) {
undoRanges.add(ranges[i].clone());
}
- int offset= region.getOffset();
- StyleRange current= undoRanges.size() > 0 ? (StyleRange) undoRanges.get(0) : null;
- int curStart= current != null ? current.start : region.getOffset() + region.getLength();
- int curEnd= current != null ? current.start + current.length : -1;
- int index= 0;
+ int offset = region.getOffset();
+ StyleRange current = undoRanges.size() > 0 ? (StyleRange) undoRanges
+ .get(0) : null;
+ int curStart = current != null ? current.start : region.getOffset()
+ + region.getLength();
+ int curEnd = current != null ? current.start + current.length : -1;
+ int index = 0;
// fill no-style regions
while (curEnd < region.getOffset() + region.getLength()) {
// add empty range
if (curStart > offset) {
- StyleRange undoRange= new StyleRange(offset, curStart - offset, null, null);
+ StyleRange undoRange = new StyleRange(offset,
+ curStart - offset, null, null);
undoRanges.add(index, undoRange);
index++;
}
@@ -789,35 +829,36 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma
// step
index++;
if (index < undoRanges.size()) {
- offset= curEnd;
- current= (StyleRange) undoRanges.get(index);
- curStart= current.start;
- curEnd= current.start + current.length;
+ offset = curEnd;
+ current = (StyleRange) undoRanges.get(index);
+ curStart = current.start;
+ curEnd = current.start + current.length;
} else if (index == undoRanges.size()) {
// last one
- offset= curEnd;
- current= null;
- curStart= region.getOffset() + region.getLength();
- curEnd= -1;
+ offset = curEnd;
+ current = null;
+ curStart = region.getOffset() + region.getLength();
+ curEnd = -1;
} else
- curEnd= region.getOffset() + region.getLength();
+ curEnd = region.getOffset() + region.getLength();
}
// create modified styles (with background)
- List shadedRanges= new ArrayList(undoRanges.size());
- for (Iterator it= undoRanges.iterator(); it.hasNext(); ) {
- StyleRange range= (StyleRange) ((StyleRange) it.next()).clone();
+ List shadedRanges = new ArrayList(undoRanges.size());
+ for (Iterator it = undoRanges.iterator(); it.hasNext();) {
+ StyleRange range = (StyleRange) ((StyleRange) it.next()).clone();
shadedRanges.add(range);
- range.background= getHighlightColor(disp);
+ range.background = getHighlightColor(disp);
}
// set the ranges one by one
- for (Iterator iter= shadedRanges.iterator(); iter.hasNext(); ) {
+ for (Iterator iter = shadedRanges.iterator(); iter.hasNext();) {
text.setStyleRange((StyleRange) iter.next());
}
- return (StyleRange[]) undoRanges.toArray(undoRanges.toArray(new StyleRange[0]));
+ return (StyleRange[]) undoRanges.toArray(undoRanges
+ .toArray(new StyleRange[0]));
}
private void resetViewerBackground(StyleRange[] oldRanges) {
@@ -828,12 +869,12 @@ public class AnnotationExpansionControl implements IInformationControl, IInforma
if (fInput == null)
return;
- StyledText text= fInput.fViewer.getTextWidget();
+ StyledText text = fInput.fViewer.getTextWidget();
if (text == null || text.isDisposed())
return;
// set the ranges one by one
- for (int i= 0; i < oldRanges.length; i++) {
+ for (int i = 0; i < oldRanges.length; i++) {
text.setStyleRange(oldRanges[i]);
}
}