Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,12 @@ public String realGetText(SEG seg) {
}

@Override
public SEG realSubsequence(SEG seg, int start, int end) {
public SEG realSubSequence(SEG seg, int start, int end) {
return seg;
}

@Override
public SEG realSubsequence(SEG seg, int start) {
public SEG realSubSequence(SEG seg, int start) {
return seg;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public final char charAt(SEG seg, int index) {

@Override
public final String getText(SEG seg) {
return seg == empty ? "\0" : realGetText(seg);
return seg == empty ? "" : realGetText(seg);
}
public abstract String realGetText(SEG seg);

Expand All @@ -48,18 +48,18 @@ public final SEG subSequence(SEG seg, int start, int end) {
}
return seg == empty || start == end
? empty
: realSubsequence(seg, start, end);
: realSubSequence(seg, start, end);
}
public abstract SEG realSubsequence(SEG seg, int start, int end);
public abstract SEG realSubSequence(SEG seg, int start, int end);

@Override
public final SEG subSequence(SEG seg, int start) {
return seg == empty || length(seg) == start
? empty
: realSubsequence(seg, start);
: realSubSequence(seg, start);
}
public SEG realSubsequence(SEG seg, int start) {
return realSubsequence(seg, start, length(seg));
public SEG realSubSequence(SEG seg, int start) {
return realSubSequence(seg, start, length(seg));
}

@Override
Expand All @@ -75,7 +75,7 @@ public final SEG setStyle(SEG seg, S style) {
public abstract SEG realSetStyle(SEG seg, S style);

@Override
public final Optional<SEG> join(SEG currentSeg, SEG nextSeg) {
public Optional<SEG> join(SEG currentSeg, SEG nextSeg) {
return Optional.empty();
}

Expand Down
31 changes: 12 additions & 19 deletions richtextfx/src/main/java/org/fxmisc/richtext/model/StyledText.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,43 +23,41 @@ public class StyledText<S> {
* of {@link org.fxmisc.richtext.GenericStyledArea} and similar classes if you are using this class as the SEG type.
*/
public static <S> TextOps<StyledText<S>, S> textOps() {
return new TextOps<StyledText<S>, S>() {

private final StyledText<S> emptySeg = new StyledText<>("", null);
return new TextOpsBase<StyledText<S>, S>(new StyledText<>("", null)) {

@Override
public int length(StyledText<S> styledText) {
public int realLength(StyledText<S> styledText) {
return styledText.getText().length();
}

@Override
public char charAt(StyledText<S> styledText, int index) {
return styledText == emptySeg ? '\0' : styledText.getText().charAt(index);
public char realCharAt(StyledText<S> styledText, int index) {
return styledText.getText().charAt(index);
}

@Override
public String getText(StyledText<S> styledText) {
public String realGetText(StyledText<S> styledText) {
return styledText.getText();
}

@Override
public StyledText<S> subSequence(StyledText<S> styledText, int start, int end) {
return styledText == emptySeg ? emptySeg : new StyledText<>(styledText.getText().substring(start, end), styledText.getStyle());
public StyledText<S> realSubSequence(StyledText<S> styledText, int start, int end) {
return new StyledText<>(styledText.getText().substring(start, end), styledText.getStyle());
}

@Override
public StyledText<S> subSequence(StyledText<S> styledText, int start) {
return styledText == emptySeg ? emptySeg : new StyledText<>(styledText.getText().substring(start), styledText.getStyle());
public StyledText<S> realSubSequence(StyledText<S> styledText, int start) {
return new StyledText<>(styledText.getText().substring(start), styledText.getStyle());
}

@Override
public S getStyle(StyledText<S> styledText) {
public S realGetStyle(StyledText<S> styledText) {
return styledText.getStyle();
}

@Override
public StyledText<S> setStyle(StyledText<S> seg, S style) {
return seg == emptySeg ? emptySeg : seg.setStyle(style);
public StyledText<S> realSetStyle(StyledText<S> seg, S style) {
return seg.setStyle(style);
}

@Override
Expand All @@ -69,11 +67,6 @@ public Optional<StyledText<S>> join(StyledText<S> left, StyledText<S> right) {
: Optional.empty();
}

@Override
public StyledText<S> createEmpty() {
return emptySeg;
}

@Override
public StyledText<S> create(String text, S style) {
return new StyledText<>(text, style);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package org.fxmisc.richtext.model;

public abstract class TextOpsBase<SEG, S> extends SegmentOpsBase<SEG, S> implements TextOps<SEG, S> {

TextOpsBase(SEG empty) {
super(empty);
}
}