X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fe3d%2Fgui%2FTextPointer.java;h=91cd6e696c72f8d35ef2a0aead54e963c2f42b58;hb=HEAD;hp=8ba9f9f171ef20076f3f9c1957b388c17c630918;hpb=316a696bf9db6e8eddf90ef3df5e1119481c0192;p=sixth-3d.git diff --git a/src/main/java/eu/svjatoslav/sixth/e3d/gui/TextPointer.java b/src/main/java/eu/svjatoslav/sixth/e3d/gui/TextPointer.java index 8ba9f9f..91cd6e6 100755 --- a/src/main/java/eu/svjatoslav/sixth/e3d/gui/TextPointer.java +++ b/src/main/java/eu/svjatoslav/sixth/e3d/gui/TextPointer.java @@ -1,12 +1,27 @@ /* - * Sixth 3D engine. Author: Svjatoslav Agejenko. + * Sixth 3D engine. Author: Svjatoslav Agejenko. * This project is released under Creative Commons Zero (CC0) license. */ package eu.svjatoslav.sixth.e3d.gui; +import static java.lang.Integer.compare; + +/** + * A pointer to a character in a text using row and column. + *

+ * It can be used to represent a cursor position in a text. + * Also, it can be used to represent beginning and end of a selection. + */ public class TextPointer implements Comparable { + /** + * The row of the character. Starts from 0. + */ public int row; + + /** + * The column of the character. Starts from 0. + */ public int column; public TextPointer() { @@ -36,18 +51,37 @@ public class TextPointer implements Comparable { return result; } + /** + * Compares this pointer to another pointer. + * + * @param textPointer The pointer to compare to. + * @return

+ */ @Override public int compareTo(final TextPointer textPointer) { - if (textPointer.row > row) + if (row < textPointer.row) return -1; - if (textPointer.row < row) + if (row > textPointer.row) return 1; - return Integer.compare(column, textPointer.column); - + return compare(column, textPointer.column); } + /** + * Checks if this pointer is between the argument pointers. + *

+ * This pointer is considered to be between the pointers if it is bigger or equal to the start pointer + * and smaller than the end pointer. + * + * @param start The start pointer. + * @param end The end pointer. + * @return True if this pointer is between the specified pointers. + */ public boolean isBetween(final TextPointer start, final TextPointer end) { if (start == null) @@ -56,6 +90,7 @@ public class TextPointer implements Comparable { if (end == null) return false; + // Make sure that start is smaller than end. TextPointer smaller; TextPointer bigger; @@ -67,8 +102,8 @@ public class TextPointer implements Comparable { bigger = start; } + // Check if this pointer is between the specified pointers. return (compareTo(smaller) >= 0) && (bigger.compareTo(this) > 0); - } }