Skip to content

Commit

Permalink
Adding spelling notifications to line announcement
Browse files Browse the repository at this point in the history
  • Loading branch information
marigostra committed Jun 13, 2022
1 parent 379b4d4 commit 4213f42
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 16 deletions.
51 changes: 35 additions & 16 deletions src/main/java/org/luwrain/app/notepad/Appearance.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,12 @@

import java.util.*;
import java.util.concurrent.*;
import java.io.*;
//import java.io.*;

import org.luwrain.core.*;
import org.luwrain.controls.*;
import org.luwrain.nlp.*;
import static org.luwrain.core.DefaultEventResponse.*;

abstract class Appearance extends EditUtils.DefaultEditAreaAppearance
{
Expand All @@ -31,28 +33,45 @@ abstract class Appearance extends EditUtils.DefaultEditAreaAppearance
}

abstract App.Mode getMode();
abstract EditArea getEditArea();

@Override public void announceLine(int index, String line)
{
final App.Mode mode = getMode();
if (mode == null)
final String text;
if (mode != null)
switch(mode)
{
case NONE:
text = context.getSpeakableText(line, Luwrain.SpeakableTextType.NONE);
break;
case PROGRAMMING:
text = context.getSpeakableText(line, Luwrain.SpeakableTextType.PROGRAMMING);
break;
case NATURAL:
text = context.getSpeakableText(line, Luwrain.SpeakableTextType.NATURAL);
break;
default:
text = line;
} else
text = line;
boolean hasSpellProblems = false;
if (getEditArea().getContent().getLineMarks(index) != null)
{
NavigationArea.defaultLineAnnouncement(context, index, line);
return;
final LineMarks.Mark[] marks = getEditArea().getContent().getLineMarks(index).getMarks();
if (marks != null)
for(LineMarks.Mark m: marks)
if (m.getMarkObject() != null && m.getMarkObject() instanceof SpellProblem)
{
hasSpellProblems = true;
break;
}
}
switch(mode)
if (!hasSpellProblems || line.trim().isEmpty())
{
case NONE:
NavigationArea.defaultLineAnnouncement(context, index, context.getSpeakableText(line, Luwrain.SpeakableTextType.NONE));
break;
case PROGRAMMING:
NavigationArea.defaultLineAnnouncement(context, index, context.getSpeakableText(line, Luwrain.SpeakableTextType.PROGRAMMING));
break;
case NATURAL:
NavigationArea.defaultLineAnnouncement(context, index, context.getSpeakableText(line, Luwrain.SpeakableTextType.NATURAL));
break;
default:
NavigationArea.defaultLineAnnouncement(context, index, line);
NavigationArea.defaultLineAnnouncement(context, index, text);
return;
}
context.setEventResponse(text(Sounds.SPELLING, text));
}
}
1 change: 1 addition & 0 deletions src/main/java/org/luwrain/app/notepad/MainLayout.java
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ final class MainLayout extends LayoutBase
params.name = "";
params.appearance = new Appearance(params.context){
@Override App.Mode getMode() { return app.mode; }
@Override public EditArea getEditArea() { return editArea; };
};
params.changeListeners = Arrays.asList(
(area, lines, hotPoint)->{app.modified = true;},
Expand Down

0 comments on commit 4213f42

Please sign in to comment.