Mercurial > projects > dwt-addons
diff dwtx/ui/internal/forms/widgets/AggregateHyperlinkSegment.d @ 76:e193036d82c9
Fix continue porting
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sat, 24 May 2008 06:18:55 +0200 |
parents | 5d489b9f966c |
children | 04b47443bb01 |
line wrap: on
line diff
--- a/dwtx/ui/internal/forms/widgets/AggregateHyperlinkSegment.d Sat May 24 05:11:16 2008 +0200 +++ b/dwtx/ui/internal/forms/widgets/AggregateHyperlinkSegment.d Sat May 24 06:18:55 2008 +0200 @@ -12,37 +12,45 @@ *******************************************************************************/ module dwtx.ui.internal.forms.widgets.AggregateHyperlinkSegment; -import java.util.Hashtable; -import java.util.Vector; +import dwtx.ui.internal.forms.widgets.ParagraphSegment; +import dwtx.ui.internal.forms.widgets.IHyperlinkSegment; +import dwtx.ui.internal.forms.widgets.TextHyperlinkSegment; +import dwtx.ui.internal.forms.widgets.ImageHyperlinkSegment; +import dwtx.ui.internal.forms.widgets.Locator; +import dwtx.ui.internal.forms.widgets.SelectionData; import dwt.graphics.Color; import dwt.graphics.GC; import dwt.graphics.Rectangle; +import dwt.dwthelper.utils; +import tango.util.collection.ArraySeq; + /** * This segment contains a collection of images and links that all belong to one * logical hyperlink. */ -public class AggregateHyperlinkSegment extends ParagraphSegment implements +public class AggregateHyperlinkSegment : ParagraphSegment, IHyperlinkSegment { private String href; - private Vector segments = new Vector(); + private ArraySeq!(Object) segments; - public AggregateHyperlinkSegment() { + public this() { + segments = new ArraySeq!(Object); } public void add(TextHyperlinkSegment segment) { - segments.add(segment); + segments.append(segment); } public void add(ImageHyperlinkSegment segment) { - segments.add(segment); + segments.append(segment); } /* * (non-Javadoc) - * + * * @see dwtx.ui.internal.forms.widgets.ParagraphSegment#advanceLocator(dwt.graphics.GC, * int, dwtx.ui.internal.forms.widgets.Locator, * java.util.Hashtable, bool) @@ -51,7 +59,7 @@ Hashtable objectTable, bool computeHeightOnly) { bool newLine = false; for (int i = 0; i < segments.size(); i++) { - ParagraphSegment segment = (ParagraphSegment) segments.get(i); + ParagraphSegment segment = cast(ParagraphSegment) segments.get(i); if (segment.advanceLocator(gc, wHint, loc, objectTable, computeHeightOnly)) newLine = true; @@ -76,14 +84,14 @@ /* * (non-Javadoc) - * + * * @see dwtx.ui.internal.forms.widgets.IHyperlinkSegment#repaint(dwt.graphics.GC, * bool) */ public void paint(GC gc, bool hover, Hashtable resourceTable, bool selected, SelectionData selData, Rectangle repaintRegion) { for (int i = 0; i < segments.size(); i++) { - ParagraphSegment segment = (ParagraphSegment) segments.get(i); + ParagraphSegment segment = cast(ParagraphSegment) segments.get(i); segment.paint(gc, hover, resourceTable, selected, selData, repaintRegion); } @@ -92,7 +100,7 @@ public String getText() { StringBuffer buf = new StringBuffer(); for (int i = 0; i < segments.size(); i++) { - IHyperlinkSegment segment = (IHyperlinkSegment) segments.get(i); + IHyperlinkSegment segment = cast(IHyperlinkSegment) segments.get(i); buf.append(segment.getText()); } return buf.toString(); @@ -100,7 +108,7 @@ /* * (non-Javadoc) - * + * * @see dwtx.ui.internal.forms.widgets.IHyperlinkSegment#paintFocus(dwt.graphics.GC, * dwt.graphics.Color, dwt.graphics.Color, * bool) @@ -108,14 +116,14 @@ public void paintFocus(GC gc, Color bg, Color fg, bool selected, Rectangle repaintRegion) { for (int i = 0; i < segments.size(); i++) { - IHyperlinkSegment segment = (IHyperlinkSegment) segments.get(i); + IHyperlinkSegment segment = cast(IHyperlinkSegment) segments.get(i); segment.paintFocus(gc, bg, fg, selected, repaintRegion); } } /* * (non-Javadoc) - * + * * @see dwtx.ui.internal.forms.widgets.IHyperlinkSegment#getBounds() */ public Rectangle getBounds() { @@ -123,7 +131,7 @@ 0, 0); // TODO this is wrong for (int i = 0; i < segments.size(); i++) { - IHyperlinkSegment segment = (IHyperlinkSegment) segments.get(i); + IHyperlinkSegment segment = cast(IHyperlinkSegment) segments.get(i); Rectangle sbounds = segment.getBounds(); bounds.x = Math.min(bounds.x, sbounds.x); bounds.y = Math.min(bounds.y, sbounds.y); @@ -135,7 +143,7 @@ public bool contains(int x, int y) { for (int i = 0; i < segments.size(); i++) { - IHyperlinkSegment segment = (IHyperlinkSegment) segments.get(i); + IHyperlinkSegment segment = cast(IHyperlinkSegment) segments.get(i); if (segment.contains(x, y)) return true; } @@ -144,7 +152,7 @@ public bool intersects(Rectangle rect) { for (int i = 0; i < segments.size(); i++) { - IHyperlinkSegment segment = (IHyperlinkSegment) segments.get(i); + IHyperlinkSegment segment = cast(IHyperlinkSegment) segments.get(i); if (segment.intersects(rect)) return true; } @@ -153,7 +161,7 @@ /* * (non-Javadoc) - * + * * @see dwtx.ui.internal.forms.widgets.ParagraphSegment#layout(dwt.graphics.GC, * int, dwtx.ui.internal.forms.widgets.Locator, * java.util.Hashtable, bool, @@ -162,14 +170,14 @@ public void layout(GC gc, int width, Locator locator, Hashtable resourceTable, bool selected) { for (int i = 0; i < segments.size(); i++) { - ParagraphSegment segment = (ParagraphSegment) segments.get(i); + ParagraphSegment segment = cast(ParagraphSegment) segments.get(i); segment.layout(gc, width, locator, resourceTable, selected); } } /* * (non-Javadoc) - * + * * @see dwtx.ui.internal.forms.widgets.ParagraphSegment#computeSelection(dwt.graphics.GC, * java.util.Hashtable, bool, * dwtx.ui.internal.forms.widgets.SelectionData) @@ -177,21 +185,21 @@ public void computeSelection(GC gc, Hashtable resourceTable, SelectionData selData) { for (int i = 0; i < segments.size(); i++) { - ParagraphSegment segment = (ParagraphSegment) segments.get(i); + ParagraphSegment segment = cast(ParagraphSegment) segments.get(i); segment.computeSelection(gc, resourceTable, selData); } } public void clearCache(String fontId) { for (int i = 0; i < segments.size(); i++) { - ParagraphSegment segment = (ParagraphSegment) segments.get(i); + ParagraphSegment segment = cast(ParagraphSegment) segments.get(i); segment.clearCache(fontId); } } public String getTooltipText() { if (segments.size() > 0) - return ((ParagraphSegment) segments.get(0)).getTooltipText(); + return (cast(ParagraphSegment) segments.get(0)).getTooltipText(); return super.getTooltipText(); }