LineEditor-klassen holder rede på en String-verdi og en tekstinnsettingsposisjon og har metoder for å redigere teksten. Tilstanden er som følger:
- text (en String-verdi) - teksten
- cursorIndex - heltall som angir hvor i teksten redigeringer vil skje
Klassen har metoder med følgende oppførsel:
- void left() - flytter tekstinnsettingsposisjonen ett tegn til venstre (tilsvarende bruk av venstre piltast)
- void right() - flytter tekstinnsettingsposisjonen ett tegn til høyre (tilsvarende bruk av venstre piltast)
- void insertString(String) - skyter teksten angitt av argumentet inn i teksten på tekstinnsettingsposisjonen
- void deleteLeft() - fjerner tegnet til venstre for tekstinnsettingsposisjonen
- void deleteRight() - fjerner tegnet til venstre for tekstinnsettingsposisjonen
Del 1 - tilstandsdiagram
Tegn et tilstandsdiagram for en tenkt bruk av LineEditor-klassen, som dekker bruk av alle metodene.
For alle metodene bør du tenke på hva som er fornuftig oppførsel for spesielle tilfeller, f.eks. når tekstinnsettingsposisjonen er helt til venstre eller høyre. Tenk også på hva som bør skje med tekstinnsettingsposisjonen når teksten endres.
Del 2 - Java-kode
Skriv Java-kode for LineEditor-klassen med oppførsel som beskrevet over.
Lag en toString()-metode som viser teksten med tegnet '|' skutt inn på tekstinnsettingsposisjonen. Lag så et hovedprogram, slik at du kan sjekke at oppførselen stemmer med tilstandsdiagrammet (bruk samme start-tilstand og sekvens av kall).
Del 3 - frivillige utvidelser
- Legg til en metode insert(Object o) som skyter inn en tekstlig representasjon av objektet som gir som argument.