diff dwtx/jface/text/hyperlink/MultipleHyperlinkPresenter.d @ 140:26688fec6d23

Following dsss compile errors
author Frank Benoit <benoit@tionex.de>
date Sun, 24 Aug 2008 03:23:46 +0200
parents b6bad70d540a
children 75302ef3f92f
line wrap: on
line diff
--- a/dwtx/jface/text/hyperlink/MultipleHyperlinkPresenter.d	Sun Aug 24 02:31:41 2008 +0200
+++ b/dwtx/jface/text/hyperlink/MultipleHyperlinkPresenter.d	Sun Aug 24 03:23:46 2008 +0200
@@ -79,38 +79,38 @@
 
 /**
  * A hyperlink presenter capable of showing multiple hyperlinks in a hover.
- * 
+ *
  * @since 3.4
  */
 public class MultipleHyperlinkPresenter : DefaultHyperlinkPresenter {
-    
+
     /**
      * An information control capable of showing a list of hyperlinks. The hyperlinks can be opened.
      */
     private static class LinkListInformationControl : AbstractInformationControl , IInformationControlExtension2 {
-        
+
         private static final class LinkContentProvider : IStructuredContentProvider {
-            
+
             /*
              * @see dwtx.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
              */
             public Object[] getElements(Object inputElement) {
                 return (Object[]) inputElement;
             }
-            
+
             /*
              * @see dwtx.jface.viewers.IContentProvider#dispose()
              */
             public void dispose() {
             }
-            
+
             /*
              * @see dwtx.jface.viewers.IContentProvider#inputChanged(dwtx.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
              */
             public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
             }
         }
-        
+
         private static final class LinkLabelProvider : ColumnLabelProvider {
             /*
              * @see dwtx.jface.viewers.ColumnLabelProvider#getText(java.lang.Object)
@@ -123,17 +123,17 @@
                 return HyperlinkMessages.getString("LinkListInformationControl.unknownLink"); //$NON-NLS-1$
             }
         }
-        
+
         private final MultipleHyperlinkHoverManager fManager;
-        
+
         private IHyperlink[] fInput;
         private Composite fParent;
         private Table fTable;
 
         private Color fForegroundColor;
         private Color fBackgroundColor;
-        
-        
+
+
         /**
          * Creates a link list information control with the given shell as parent.
          *
@@ -149,14 +149,14 @@
             fBackgroundColor= backgroundColor;
             create();
         }
-        
+
         /*
          * @see dwtx.jface.text.IInformationControl#setInformation(java.lang.String)
          */
         public void setInformation(String information) {
             //replaced by IInformationControlExtension2#setInput(java.lang.Object)
         }
-        
+
         /*
          * @see dwtx.jface.text.IInformationControlExtension2#setInput(java.lang.Object)
          */
@@ -164,7 +164,7 @@
             fInput= (IHyperlink[]) input;
             deferredCreateContent(fParent);
         }
-        
+
         /*
          * @see dwtx.jface.text.AbstractInformationControl#createContent(dwt.widgets.Composite)
          */
@@ -179,23 +179,23 @@
             fParent.setForeground(fForegroundColor);
             fParent.setBackground(fBackgroundColor);
         }
-        
+
         /*
          * @see dwtx.jface.text.AbstractInformationControl#computeSizeHint()
          */
         public Point computeSizeHint() {
             Point preferedSize= getShell().computeSize(DWT.DEFAULT, DWT.DEFAULT, true);
-            
+
             Point constraints= getSizeConstraints();
             if (constraints is null)
                 return preferedSize;
-        
+
             if (fTable.getVerticalBar() is null || fTable.getHorizontalBar() is null)
                 return Geometry.min(constraints, preferedSize);
-            
+
             int scrollBarWidth= fTable.getVerticalBar().getSize().x;
             int scrollBarHeight= fTable.getHorizontalBar().getSize().y;
-            
+
             int width;
             if (preferedSize.y - scrollBarHeight <= constraints.y) {
                 width= preferedSize.x - scrollBarWidth;
@@ -203,7 +203,7 @@
             } else {
                 width= Math.min(preferedSize.x, constraints.x);
             }
-            
+
             int height;
             if (preferedSize.x - scrollBarWidth <= constraints.x) {
                 height= preferedSize.y - scrollBarHeight;
@@ -211,27 +211,27 @@
             } else {
                 height= Math.min(preferedSize.y, constraints.y);
             }
-            
+
             return new Point(width, height);
         }
-        
+
         private void deferredCreateContent(Composite parent) {
             fTable= new Table(parent, DWT.SINGLE | DWT.FULL_SELECTION);
             fTable.setLinesVisible(false);
             fTable.setHeaderVisible(false);
             fTable.setForeground(fForegroundColor);
             fTable.setBackground(fBackgroundColor);
-            
+
             final TableViewer viewer= new TableViewer(fTable);
             viewer.setContentProvider(new LinkContentProvider());
             viewer.setLabelProvider(new LinkLabelProvider());
             viewer.setInput(fInput);
             fTable.setSelection(0);
-            
+
             registerTableListeners();
-            
+
             getShell().addShellListener(new class()  ShellAdapter {
-                
+
                 /*
                  * @see dwt.events.ShellAdapter#shellActivated(dwt.events.ShellEvent)
                  */
@@ -239,17 +239,17 @@
                     if (viewer.getTable().getSelectionCount() is 0) {
                         viewer.getTable().setSelection(0);
                     }
-                    
+
                     viewer.getTable().setFocus();
                 }
             });
         }
-        
+
         private void registerTableListeners() {
-            
+
             fTable.addMouseMoveListener(new class()  MouseMoveListener {
                 TableItem fLastItem= null;
-                
+
                 public void mouseMove(MouseEvent e) {
                     if (fTable.equals(e.getSource())) {
                         Object o= fTable.getItem(new Point(e.x, e.y));
@@ -257,41 +257,41 @@
                             TableItem item= cast(TableItem) o;
                             if (!o.equals(fLastItem)) {
                                 fLastItem= cast(TableItem) o;
-                                fTable.setSelection(new TableItem[] { fLastItem });
+                                fTable.setSelection([ fLastItem ]);
                             } else if (e.y < fTable.getItemHeight() / 4) {
                                 // Scroll up
                                 int index= fTable.indexOf(item);
                                 if (index > 0) {
                                     fLastItem= fTable.getItem(index - 1);
-                                    fTable.setSelection(new TableItem[] { fLastItem });
+                                    fTable.setSelection([ fLastItem ]);
                                 }
                             } else if (e.y > fTable.getBounds().height - fTable.getItemHeight() / 4) {
                                 // Scroll down
                                 int index= fTable.indexOf(item);
                                 if (index < fTable.getItemCount() - 1) {
                                     fLastItem= fTable.getItem(index + 1);
-                                    fTable.setSelection(new TableItem[] { fLastItem });
+                                    fTable.setSelection([ fLastItem ]);
                                 }
                             }
                         }
                     }
                 }
             });
-            
+
             fTable.addSelectionListener(new class()  SelectionAdapter {
                 public void widgetSelected(SelectionEvent e) {
                     openSelectedLink();
                 }
             });
-            
+
             fTable.addMouseListener(new class()  MouseAdapter {
                 public void mouseUp(MouseEvent e) {
                     if (fTable.getSelectionCount() < 1)
                         return;
-                    
+
                     if (e.button !is 1)
                         return;
-                    
+
                     if (fTable.equals(e.getSource())) {
                         Object o= fTable.getItem(new Point(e.x, e.y));
                         TableItem selection= fTable.getSelection()[0];
@@ -300,7 +300,7 @@
                     }
                 }
             });
-            
+
             fTable.addKeyListener(new class()  KeyAdapter {
                 public void keyPressed(KeyEvent e) {
                     if (e.keyCode is 0x0D) // return
@@ -308,7 +308,7 @@
                 }
             });
         }
-        
+
         /*
          * @see dwtx.jface.text.IInformationControlExtension#hasContents()
          */
@@ -326,9 +326,9 @@
             link.open();
         }
     }
-    
+
     private class MultipleHyperlinkHover : ITextHover, ITextHoverExtension {
-        
+
         /**
          * @see dwtx.jface.text.ITextHover#getHoverInfo(dwtx.jface.text.ITextViewer, dwtx.jface.text.IRegion)
          * @deprecated
@@ -336,21 +336,21 @@
         public String getHoverInfo(ITextViewer textViewer, IRegion hoverRegion) {
             return null;
         }
-        
+
         /*
          * @see dwtx.jface.text.ITextHover#getHoverRegion(dwtx.jface.text.ITextViewer, int)
          */
         public IRegion getHoverRegion(ITextViewer textViewer, int offset) {
             return fSubjectRegion;
         }
-        
+
         /*
          * @see dwtx.jface.text.ITextHoverExtension2#getHoverInfo2(dwtx.jface.text.ITextViewer, dwtx.jface.text.IRegion)
          */
         public Object getHoverInfo2(ITextViewer textViewer, IRegion hoverRegion) {
             return fHyperlinks;
         }
-        
+
         /*
          * @see dwtx.jface.text.ITextHoverExtension#getHoverControlCreator()
          */
@@ -364,36 +364,36 @@
             };
         }
     }
-    
+
     private static class MultipleHyperlinkHoverManager : AbstractInformationControlManager , IWidgetTokenKeeper, IWidgetTokenKeeperExtension {
-        
+
         private class Closer : IInformationControlCloser, Listener, KeyListener {
-            
+
             private Control fSubjectControl;
             private Display fDisplay;
             private IInformationControl fControl;
             private Rectangle fSubjectArea;
-            
+
             /*
              * @see dwtx.jface.text.AbstractInformationControlManager.IInformationControlCloser#setInformationControl(dwtx.jface.text.IInformationControl)
              */
             public void setInformationControl(IInformationControl control) {
                 fControl= control;
             }
-            
+
             /*
              * @see dwtx.jface.text.AbstractInformationControlManager.IInformationControlCloser#setSubjectControl(dwt.widgets.Control)
              */
             public void setSubjectControl(Control subject) {
                 fSubjectControl= subject;
             }
-            
+
             /*
              * @see dwtx.jface.text.AbstractInformationControlManager.IInformationControlCloser#start(dwt.graphics.Rectangle)
              */
             public void start(Rectangle subjectArea) {
                 fSubjectArea= subjectArea;
-                
+
                 fDisplay= fSubjectControl.getDisplay();
                 if (!fDisplay.isDisposed()) {
                     fDisplay.addFilter(DWT.FocusOut, this);
@@ -401,7 +401,7 @@
                     fTextViewer.getTextWidget().addKeyListener(this);
                 }
             }
-            
+
             /*
              * @see dwtx.jface.text.AbstractInformationControlManager.IInformationControlCloser#stop()
              */
@@ -411,10 +411,10 @@
                     fDisplay.removeFilter(DWT.MouseMove, this);
                     fTextViewer.getTextWidget().removeKeyListener(this);
                 }
-                
+
                 fSubjectArea= null;
             }
-            
+
             /*
              * @see dwt.widgets.Listener#handleEvent(dwt.widgets.Event)
              */
@@ -429,41 +429,41 @@
                         break;
                 }
             }
-            
+
             /**
              * Handle mouse movement events.
-             * 
+             *
              * @param event the event
              */
             private void handleMouseMove(Event event) {
-                if (!(event.widget instanceof Control))
+                if (!(cast(Control)event.widget ))
                     return;
-                
+
                 if (fControl.isFocusControl())
                     return;
-                
+
                 Control eventControl= cast(Control) event.widget;
-                
+
                 //transform coordinates to subject control:
                 Point mouseLoc= event.display.map(eventControl, fSubjectControl, event.x, event.y);
-                
+
                 if (fSubjectArea.contains(mouseLoc))
                     return;
-                
+
                 if (inKeepUpZone(mouseLoc.x, mouseLoc.y, (cast(IInformationControlExtension3) fControl).getBounds()))
                     return;
-                
+
                 hideInformationControl();
             }
-            
+
             /**
              * Tests whether a given mouse location is within the keep-up zone.
              * The hover should not be hidden as long as the mouse stays inside this zone.
-             * 
+             *
              * @param x the x coordinate, relative to the <em>subject control</em>
              * @param y the y coordinate, relative to the <em>subject control</em>
              * @param controlBounds the bounds of the current control
-             * 
+             *
              * @return <code>true</code> iff the mouse event occurred in the keep-up zone
              */
             private bool inKeepUpZone(int x, int y, Rectangle controlBounds) {
@@ -476,23 +476,23 @@
                 // +--------------------+
                 if (fSubjectArea.contains(x, y))
                     return true;
-                
+
                 Rectangle iControlBounds= fSubjectControl.getDisplay().map(null, fSubjectControl, controlBounds);
                 Rectangle totalBounds= Geometry.copy(iControlBounds);
                 if (totalBounds.contains(x, y))
                     return true;
-                
+
                 int keepUpY= fSubjectArea.y + fSubjectArea.height;
                 Rectangle alsoKeepUp= new Rectangle(fSubjectArea.x, keepUpY, fSubjectArea.width, totalBounds.y - keepUpY);
                 return alsoKeepUp.contains(x, y);
             }
-            
+
             /*
              * @see dwt.events.KeyListener#keyPressed(dwt.events.KeyEvent)
              */
             public void keyPressed(KeyEvent e) {
             }
-            
+
             /*
              * @see dwt.events.KeyListener#keyReleased(dwt.events.KeyEvent)
              */
@@ -501,41 +501,41 @@
             }
 
         }
-        
+
         /**
          * Priority of the hover managed by this manager.
          * Default value: One higher then for the hovers
          * managed by TextViewerHoverManager.
          */
         private static final int WIDGET_TOKEN_PRIORITY= 1;
-        
+
         private final MultipleHyperlinkHover fHover;
         private final ITextViewer fTextViewer;
         private final MultipleHyperlinkPresenter fHyperlinkPresenter;
         private Closer fCloser;
         private bool fIsControlVisible;
 
-        
+
         /**
          * Create a new MultipleHyperlinkHoverManager. The MHHM can show and hide
          * the given MultipleHyperlinkHover inside the given ITextViewer.
-         * 
+         *
          * @param hover the hover to manage
          * @param viewer the viewer to show the hover in
          * @param hyperlinkPresenter the hyperlink presenter using this manager to present hyperlinks
          */
         public this(MultipleHyperlinkHover hover, ITextViewer viewer, MultipleHyperlinkPresenter hyperlinkPresenter) {
             super(hover.getHoverControlCreator());
-            
+
             fHover= hover;
             fTextViewer= viewer;
             fHyperlinkPresenter= hyperlinkPresenter;
-            
+
             fCloser= new Closer();
             setCloser(fCloser);
             fIsControlVisible= false;
         }
-        
+
         /*
          * @see dwtx.jface.text.AbstractInformationControlManager#computeInformation()
          */
@@ -545,32 +545,32 @@
                 setInformation(null, null);
                 return;
             }
-            
+
             Rectangle area= JFaceTextUtil.computeArea(region, fTextViewer);
             if (area is null || area.isEmpty()) {
                 setInformation(null, null);
                 return;
             }
-            
+
             Object information= fHover.getHoverInfo2(fTextViewer, region);
             setCustomInformationControlCreator(fHover.getHoverControlCreator());
             setInformation(information, area);
         }
-        
-        /* 
+
+        /*
          * @see dwtx.jface.text.AbstractInformationControlManager#computeInformationControlLocation(dwt.graphics.Rectangle, dwt.graphics.Point)
          */
         protected Point computeInformationControlLocation(Rectangle subjectArea, Point controlSize) {
             Point result= super.computeInformationControlLocation(subjectArea, controlSize);
-            
+
             Point cursorLocation= fTextViewer.getTextWidget().getDisplay().getCursorLocation();
             if (cursorLocation.x <= result.x + controlSize.x)
                 return result;
-            
+
             result.x= cursorLocation.x + 20 - controlSize.x;
             return result;
         }
-        
+
         /*
          * @see dwtx.jface.text.AbstractInformationControlManager#showInformationControl(dwt.graphics.Rectangle)
          */
@@ -584,38 +584,38 @@
             } else {
                 super.showInformationControl(subjectArea);
             }
-            
+
             fIsControlVisible= true;
         }
-        
+
         /*
          * @see dwtx.jface.text.AbstractInformationControlManager#hideInformationControl()
          */
         protected void hideInformationControl() {
             super.hideInformationControl();
-            
+
             if ( cast(IWidgetTokenOwner)fTextViewer ) {
                 (cast(IWidgetTokenOwner) fTextViewer).releaseWidgetToken(this);
             }
-            
+
             fIsControlVisible= false;
             fHyperlinkPresenter.hideHyperlinks();
         }
-        
+
         /*
          * @see dwtx.jface.text.AbstractInformationControlManager#disposeInformationControl()
          */
         public void disposeInformationControl() {
             super.disposeInformationControl();
-            
+
             if ( cast(IWidgetTokenOwner)fTextViewer ) {
                 (cast(IWidgetTokenOwner) fTextViewer).releaseWidgetToken(this);
             }
-            
+
             fIsControlVisible= false;
             fHyperlinkPresenter.hideHyperlinks();
         }
-        
+
         /*
          * @see dwtx.jface.text.IWidgetTokenKeeper#requestWidgetToken(dwtx.jface.text.IWidgetTokenOwner)
          */
@@ -623,42 +623,42 @@
             hideInformationControl();
             return true;
         }
-        
+
         /*
          * @see dwtx.jface.text.IWidgetTokenKeeperExtension#requestWidgetToken(dwtx.jface.text.IWidgetTokenOwner, int)
          */
         public bool requestWidgetToken(IWidgetTokenOwner owner, int priority) {
             if (priority < WIDGET_TOKEN_PRIORITY)
                 return false;
-            
+
             hideInformationControl();
             return true;
         }
-        
+
         /*
          * @see dwtx.jface.text.IWidgetTokenKeeperExtension#setFocus(dwtx.jface.text.IWidgetTokenOwner)
          */
         public bool setFocus(IWidgetTokenOwner owner) {
             return false;
         }
-        
+
         /**
          * Returns <code>true</code> if the information control managed by
          * this manager is visible, <code>false</code> otherwise.
-         * 
+         *
          * @return <code>true</code> if information control is visible
          */
         public bool isInformationControlVisible() {
             return fIsControlVisible;
         }
     }
-    
+
     private ITextViewer fTextViewer;
-    
+
     private IHyperlink[] fHyperlinks;
     private Region fSubjectRegion;
     private MultipleHyperlinkHoverManager fManager;
-    
+
     /**
      * Creates a new multiple hyperlink presenter which uses
      * {@link #HYPERLINK_COLOR} to read the color from the given preference store.
@@ -668,7 +668,7 @@
     public this(IPreferenceStore store) {
         super(store);
     }
-    
+
     /**
      * Creates a new multiple hyperlink presenter.
      *
@@ -677,80 +677,80 @@
     public this(RGB color) {
         super(color);
     }
-    
+
     /*
      * @see dwtx.jface.text.hyperlink.DefaultHyperlinkPresenter#install(dwtx.jface.text.ITextViewer)
      */
     public void install(ITextViewer viewer) {
         super.install(viewer);
         fTextViewer= viewer;
-        
+
         fManager= new MultipleHyperlinkHoverManager(new MultipleHyperlinkHover(), fTextViewer, this);
         fManager.install(viewer.getTextWidget());
         fManager.setSizeConstraints(100, 12, false, true);
     }
-    
+
     /*
      * @see dwtx.jface.text.hyperlink.DefaultHyperlinkPresenter#uninstall()
      */
     public void uninstall() {
         super.uninstall();
-        
+
         if (fTextViewer !is null) {
             fManager.dispose();
-            
+
             fTextViewer= null;
         }
     }
-    
+
     /*
      * @see dwtx.jface.text.hyperlink.DefaultHyperlinkPresenter#canShowMultipleHyperlinks()
      */
     public bool canShowMultipleHyperlinks() {
         return true;
     }
-    
+
     /*
      * @see dwtx.jface.text.hyperlink.DefaultHyperlinkPresenter#canHideHyperlinks()
      */
     public bool canHideHyperlinks() {
         return !fManager.isInformationControlVisible();
     }
-    
+
     /*
      * @see dwtx.jface.text.hyperlink.DefaultHyperlinkPresenter#hideHyperlinks()
      */
     public void hideHyperlinks() {
         super.hideHyperlinks();
-        
+
         fHyperlinks= null;
     }
-    
+
     /*
      * @see dwtx.jface.text.hyperlink.DefaultHyperlinkPresenter#showHyperlinks(dwtx.jface.text.hyperlink.IHyperlink[])
      */
     public void showHyperlinks(IHyperlink[] hyperlinks) {
-        super.showHyperlinks(new IHyperlink[] { hyperlinks[0] });
+        super.showHyperlinks([ hyperlinks[0] ]);
 
         fSubjectRegion= null;
         fHyperlinks= hyperlinks;
-        
+
         if (hyperlinks.length is 1)
             return;
-        
+
         int start= hyperlinks[0].getHyperlinkRegion().getOffset();
         int end= start + hyperlinks[0].getHyperlinkRegion().getLength();
-        
+
         for (int i= 1; i < hyperlinks.length; i++) {
             int hstart= hyperlinks[i].getHyperlinkRegion().getOffset();
             int hend= hstart + hyperlinks[i].getHyperlinkRegion().getLength();
-            
+
             start= Math.min(start, hstart);
             end= Math.max(end, hend);
         }
-        
+
         fSubjectRegion= new Region(start, end - start);
-        
+
         fManager.showInformation();
     }
 }