mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-05 19:42:17 +02:00
renaming: WordArea -> ElementRegion, HyperlinkArea -> HyperlinkRegion
This commit is contained in:
parent
e9f3f364cf
commit
b0d07335e1
4 changed files with 38 additions and 38 deletions
|
@ -22,13 +22,13 @@ package org.geometerplus.zlibrary.text.view;
|
|||
import java.util.ArrayList;
|
||||
|
||||
final class ZLTextElementAreaVector extends ArrayList<ZLTextElementArea> {
|
||||
final ArrayList<ZLTextWordArea> WordAreas = new ArrayList<ZLTextWordArea>();
|
||||
private ZLTextWordArea myCurrentWordArea;
|
||||
final ArrayList<ZLTextElementRegion> ElementRegions = new ArrayList<ZLTextElementRegion>();
|
||||
private ZLTextElementRegion myCurrentElementRegion;
|
||||
|
||||
@Override
|
||||
public void clear() {
|
||||
WordAreas.clear();
|
||||
myCurrentWordArea = null;
|
||||
ElementRegions.clear();
|
||||
myCurrentElementRegion = null;
|
||||
super.clear();
|
||||
}
|
||||
|
||||
|
@ -36,13 +36,13 @@ final class ZLTextElementAreaVector extends ArrayList<ZLTextElementArea> {
|
|||
public boolean add(ZLTextElementArea area) {
|
||||
final ZLTextHyperlink hyperlink = area.Style.Hyperlink;
|
||||
if (hyperlink.Id == null) {
|
||||
myCurrentWordArea = null;
|
||||
myCurrentElementRegion = null;
|
||||
} else {
|
||||
if ((myCurrentWordArea == null) || (((ZLTextHyperlinkArea)myCurrentWordArea).Hyperlink != hyperlink)) {
|
||||
myCurrentWordArea = new ZLTextHyperlinkArea(hyperlink, this, size());
|
||||
WordAreas.add(myCurrentWordArea);
|
||||
if ((myCurrentElementRegion == null) || (((ZLTextHyperlinkRegion)myCurrentElementRegion).Hyperlink != hyperlink)) {
|
||||
myCurrentElementRegion = new ZLTextHyperlinkRegion(hyperlink, this, size());
|
||||
ElementRegions.add(myCurrentElementRegion);
|
||||
} else {
|
||||
myCurrentWordArea.extend();
|
||||
myCurrentElementRegion.extend();
|
||||
}
|
||||
}
|
||||
return super.add(area);
|
||||
|
|
|
@ -23,13 +23,13 @@ import java.util.*;
|
|||
|
||||
import org.geometerplus.zlibrary.core.view.ZLPaintContext;
|
||||
|
||||
class ZLTextWordArea {
|
||||
abstract class ZLTextElementRegion {
|
||||
private final List<ZLTextElementArea> myList;
|
||||
private final int myFromIndex;
|
||||
private int myToIndex;
|
||||
private ZLTextHorizontalConvexHull myHull;
|
||||
|
||||
ZLTextWordArea(List<ZLTextElementArea> list, int fromIndex) {
|
||||
ZLTextElementRegion(List<ZLTextElementArea> list, int fromIndex) {
|
||||
myList = list;
|
||||
myFromIndex = fromIndex;
|
||||
myToIndex = fromIndex + 1;
|
|
@ -21,18 +21,18 @@ package org.geometerplus.zlibrary.text.view;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
class ZLTextHyperlinkArea extends ZLTextWordArea {
|
||||
class ZLTextHyperlinkRegion extends ZLTextElementRegion {
|
||||
final ZLTextHyperlink Hyperlink;
|
||||
|
||||
ZLTextHyperlinkArea(ZLTextHyperlink hyperlink, List<ZLTextElementArea> list, int fromIndex) {
|
||||
ZLTextHyperlinkRegion(ZLTextHyperlink hyperlink, List<ZLTextElementArea> list, int fromIndex) {
|
||||
super(list, fromIndex);
|
||||
Hyperlink = hyperlink;
|
||||
}
|
||||
|
||||
public boolean equals(Object other) {
|
||||
if (!(other instanceof ZLTextHyperlinkArea)) {
|
||||
if (!(other instanceof ZLTextHyperlinkRegion)) {
|
||||
return false;
|
||||
}
|
||||
return Hyperlink == ((ZLTextHyperlinkArea)other).Hyperlink;
|
||||
return Hyperlink == ((ZLTextHyperlinkRegion)other).Hyperlink;
|
||||
}
|
||||
}
|
|
@ -313,9 +313,9 @@ public abstract class ZLTextView extends ZLTextViewBase {
|
|||
++index;
|
||||
}
|
||||
|
||||
final ZLTextWordArea selectedWordArea = getCurrentWordArea(page);
|
||||
if (selectedWordArea != null) {
|
||||
selectedWordArea.draw(context);
|
||||
final ZLTextElementRegion selectedElementRegion = getCurrentElementRegion(page);
|
||||
if (selectedElementRegion != null) {
|
||||
selectedElementRegion.draw(context);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1290,39 +1290,39 @@ public abstract class ZLTextView extends ZLTextViewBase {
|
|||
}
|
||||
}
|
||||
|
||||
private ZLTextWordArea myCurrentSelectedElement;
|
||||
private ZLTextElementRegion myCurrentSelectedElement;
|
||||
|
||||
private ZLTextWordArea getCurrentWordArea(ZLTextPage page) {
|
||||
final ArrayList<ZLTextWordArea> wordAreas = page.TextElementMap.WordAreas;
|
||||
final int index = wordAreas.indexOf(myCurrentSelectedElement);
|
||||
private ZLTextElementRegion getCurrentElementRegion(ZLTextPage page) {
|
||||
final ArrayList<ZLTextElementRegion> elementRegions = page.TextElementMap.ElementRegions;
|
||||
final int index = elementRegions.indexOf(myCurrentSelectedElement);
|
||||
if (index == -1) {
|
||||
return null;
|
||||
}
|
||||
return wordAreas.get(index);
|
||||
return elementRegions.get(index);
|
||||
}
|
||||
|
||||
public ZLTextHyperlink getCurrentHyperlink() {
|
||||
final ZLTextWordArea area = getCurrentWordArea(myCurrentPage);
|
||||
return (area instanceof ZLTextHyperlinkArea) ? ((ZLTextHyperlinkArea)area).Hyperlink : null;
|
||||
final ZLTextElementRegion area = getCurrentElementRegion(myCurrentPage);
|
||||
return (area instanceof ZLTextHyperlinkRegion) ? ((ZLTextHyperlinkRegion)area).Hyperlink : null;
|
||||
}
|
||||
|
||||
protected ZLTextHyperlink findHyperlink(int x, int y, int maxDistance) {
|
||||
ZLTextWordArea area = null;
|
||||
ZLTextElementRegion area = null;
|
||||
int distance = Integer.MAX_VALUE;
|
||||
for (ZLTextWordArea a : myCurrentPage.TextElementMap.WordAreas) {
|
||||
for (ZLTextElementRegion a : myCurrentPage.TextElementMap.ElementRegions) {
|
||||
final int d = a.distanceTo(x, y);
|
||||
if ((d < distance) && (d <= maxDistance)) {
|
||||
area = a;
|
||||
distance = d;
|
||||
}
|
||||
}
|
||||
return (area instanceof ZLTextHyperlinkArea) ? ((ZLTextHyperlinkArea)area).Hyperlink : null;
|
||||
return (area instanceof ZLTextHyperlinkRegion) ? ((ZLTextHyperlinkRegion)area).Hyperlink : null;
|
||||
}
|
||||
|
||||
protected void selectHyperlink(ZLTextHyperlink hyperlink) {
|
||||
for (ZLTextWordArea area : myCurrentPage.TextElementMap.WordAreas) {
|
||||
if (area instanceof ZLTextHyperlinkArea &&
|
||||
((ZLTextHyperlinkArea)area).Hyperlink == hyperlink) {
|
||||
for (ZLTextElementRegion area : myCurrentPage.TextElementMap.ElementRegions) {
|
||||
if (area instanceof ZLTextHyperlinkRegion &&
|
||||
((ZLTextHyperlinkRegion)area).Hyperlink == hyperlink) {
|
||||
myCurrentSelectedElement = area;
|
||||
break;
|
||||
}
|
||||
|
@ -1330,21 +1330,21 @@ public abstract class ZLTextView extends ZLTextViewBase {
|
|||
}
|
||||
|
||||
protected boolean moveHyperlinkPointer(boolean forward) {
|
||||
final ArrayList<ZLTextWordArea> wordAreas = myCurrentPage.TextElementMap.WordAreas;
|
||||
if (!wordAreas.isEmpty()) {
|
||||
final int index = wordAreas.indexOf(myCurrentSelectedElement);
|
||||
final ArrayList<ZLTextElementRegion> elementRegions = myCurrentPage.TextElementMap.ElementRegions;
|
||||
if (!elementRegions.isEmpty()) {
|
||||
final int index = elementRegions.indexOf(myCurrentSelectedElement);
|
||||
if (index == -1) {
|
||||
myCurrentSelectedElement = wordAreas.get(forward ? 0 : wordAreas.size() - 1);
|
||||
myCurrentSelectedElement = elementRegions.get(forward ? 0 : elementRegions.size() - 1);
|
||||
return true;
|
||||
} else {
|
||||
if (forward) {
|
||||
if (index + 1 < wordAreas.size()) {
|
||||
myCurrentSelectedElement = wordAreas.get(index + 1);
|
||||
if (index + 1 < elementRegions.size()) {
|
||||
myCurrentSelectedElement = elementRegions.get(index + 1);
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
if (index > 0) {
|
||||
myCurrentSelectedElement = wordAreas.get(index - 1);
|
||||
myCurrentSelectedElement = elementRegions.get(index - 1);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue