From e5f6c19fdb5a1e89f39c67c501ed7c7bb9ba33a8 Mon Sep 17 00:00:00 2001 From: Constantin Jucovschi <jucovschi@gmail.com> Date: Fri, 29 Aug 2014 15:44:33 +0200 Subject: [PATCH] towards 0.0.6 --- .gitignore | 71 ++++++++++++++++++- pom.xml | 2 +- .../kwarc/sally4/textbase/TextDocument.java | 4 +- .../kwarc/sally4/textbase/TextPosition.java | 36 ++++++++++ .../info/kwarc/sally4/textbase/TextRange.java | 37 ++++++++++ .../textbase/impl/TextDocumentImpl.java | 27 ++++++- 6 files changed, 171 insertions(+), 6 deletions(-) create mode 100644 src/main/java/info/kwarc/sally4/textbase/TextPosition.java create mode 100644 src/main/java/info/kwarc/sally4/textbase/TextRange.java diff --git a/.gitignore b/.gitignore index 1b2aee2..15a09c5 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,73 @@ bin/ felix-cache .metadata *.versionsBackup -.settings \ No newline at end of file +.settings +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ diff --git a/pom.xml b/pom.xml index effa914..a4f69e0 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>info.kwarc.sally4</groupId> <artifactId>sally4</artifactId> - <version>0.0.4-SNAPSHOT</version> + <version>0.0.6</version> <relativePath>..</relativePath> </parent> diff --git a/src/main/java/info/kwarc/sally4/textbase/TextDocument.java b/src/main/java/info/kwarc/sally4/textbase/TextDocument.java index eb1e777..6f6382d 100644 --- a/src/main/java/info/kwarc/sally4/textbase/TextDocument.java +++ b/src/main/java/info/kwarc/sally4/textbase/TextDocument.java @@ -12,6 +12,8 @@ public interface TextDocument { String getText(); SallyClient getClient(); - + TextRange getCurrentSelection(); + void selectRange(TextRange range); + EventListener<AsyncAcceptor<AutocompleteRequest, AutocompleteResponse>> onAutocompleteRequest(EventHandler<AsyncAcceptor<AutocompleteRequest, AutocompleteResponse>> handler); } diff --git a/src/main/java/info/kwarc/sally4/textbase/TextPosition.java b/src/main/java/info/kwarc/sally4/textbase/TextPosition.java new file mode 100644 index 0000000..4d25d75 --- /dev/null +++ b/src/main/java/info/kwarc/sally4/textbase/TextPosition.java @@ -0,0 +1,36 @@ +package info.kwarc.sally4.textbase; + +public class TextPosition { + int row; + int col; + + public TextPosition() { + + } + + @Override + public String toString() { + return String.format("(%d,%d)", row, col); + } + + public TextPosition(int row, int col) { + this.row = row; + this.col = col; + } + + public int getCol() { + return col; + } + + public int getRow() { + return row; + } + + public void setCol(int col) { + this.col = col; + } + + public void setRow(int row) { + this.row = row; + } +} diff --git a/src/main/java/info/kwarc/sally4/textbase/TextRange.java b/src/main/java/info/kwarc/sally4/textbase/TextRange.java new file mode 100644 index 0000000..64e1b73 --- /dev/null +++ b/src/main/java/info/kwarc/sally4/textbase/TextRange.java @@ -0,0 +1,37 @@ +package info.kwarc.sally4.textbase; + +public class TextRange { + TextPosition start, end; + + public TextRange() { + + } + + public TextRange(TextPosition start, TextPosition end) { + this.start = start; + this.end = end; + } + + public TextRange(int start_row, int start_col, int end_row, int end_col) { + this.start = new TextPosition(start_row, start_col); + this.end = new TextPosition(end_row, end_col); + } + + @Override + public String toString() { + return String.format("%s-%s", start, end); + } + + public TextPosition getEnd() { + return end; + } + public TextPosition getStart() { + return start; + } + public void setEnd(TextPosition end) { + this.end = end; + } + public void setStart(TextPosition start) { + this.start = start; + } +} diff --git a/src/main/java/info/kwarc/sally4/textbase/impl/TextDocumentImpl.java b/src/main/java/info/kwarc/sally4/textbase/impl/TextDocumentImpl.java index 98a6d2e..f19aa38 100644 --- a/src/main/java/info/kwarc/sally4/textbase/impl/TextDocumentImpl.java +++ b/src/main/java/info/kwarc/sally4/textbase/impl/TextDocumentImpl.java @@ -2,8 +2,14 @@ package info.kwarc.sally4.textbase.impl; import info.kwarc.sally.comm.text.AutocompleteRequest; import info.kwarc.sally.comm.text.AutocompleteResponse; +import info.kwarc.sally.comm.text.GetCurrentSelection; +import info.kwarc.sally.comm.text.GetCurrentSelectionResponse; +import info.kwarc.sally.comm.text.GetText; +import info.kwarc.sally.comm.text.GetTextResponse; +import info.kwarc.sally.comm.text.SelectText; import info.kwarc.sally4.registration.SallyClient; import info.kwarc.sally4.textbase.TextDocument; +import info.kwarc.sally4.textbase.TextRange; import info.kwarc.sally4.util.AsyncAcceptor; import info.kwarc.sally4.util.EventHandler; import info.kwarc.sally4.util.EventListener; @@ -26,9 +32,8 @@ public class TextDocumentImpl implements TextDocument { @Override public String getText() { - - //client.sendSimpleRequest(req, cls, response); - return null; + GetTextResponse resp = client.sendRequest(new GetText(), GetTextResponse.class); + return resp.getText(); } @Override @@ -42,4 +47,20 @@ public class TextDocumentImpl implements TextDocument { return client; } + @Override + public TextRange getCurrentSelection() { + GetCurrentSelectionResponse response = client.sendRequest(new GetCurrentSelection(), GetCurrentSelectionResponse.class); + return new TextRange(response.getStartrow(), response.getStartcolumn(), response.getEndrow(), response.getEndcolumn()); + } + + @Override + public void selectRange(TextRange range) { + SelectText st = new SelectText(); + st.setStartrow(range.getStart().getRow()); + st.setStartcolumn(range.getStart().getCol()); + st.setEndrow(range.getEnd().getRow()); + st.setEndcolumn(range.getEnd().getCol()); + client.sendEvent(st); + } + } -- GitLab