I don't know how many people were able to read this, but I haven't received any feedback yet and the problem persists. Is this some sort of annotation bug or am I missing something?
On Oct 25, 12:06 pm, Smola <callmesm...@gmail.com> wrote: > I hope the length of this post doesn't deter anyone from giving it a > look. I am using the Java Robot API. With that said... > > I have been working on a robot that reads questions from a blip and > populates them in a Question Bank blip. Here is the process: > > -I choose a blip and enter into it "Question Bank" > -My robot reads and recognizes that exact text and > 1.) sets a data document that stores the blip ID containing that > text > 2.) appends " (Ready)\n" to the blip > -A user enters a question with my chosen <q> </q> tags > -Robot reads the question and recognizes tags > -Robot reads last question data document (if available) and finds the > next consecutive number (String num) to assign this question and sets > a new data document for the current question with number > -Robot replaces user question and tags with: num + ".) " + question > -Robot changes text color with my custom stringStyle method (posted > below) > > *start custom addQuestion method (posted below) > -Robot reads data document with question bank id to get that blip > context > -Robot gets question bank blip with bundle.getBlip() method > -Robot appends text to question bank blip document: num + ".) " + > question > -Robot uses custom stringStyle method to color question in question > bank > > **stringStyle method** > public void stringStyle(Blip blip, String string, String style, String > arg) { > string = new escape(string).get(); //custom class i created to > escape certain characters for regex > TextView doc = blip.getDocument(); > doc.append(">"+doc.getText()+"<\n"); //testing purposes only > Matcher matcher = Pattern.compile(string, > Pattern.CASE_INSENSITIVE).matcher(doc.getText()); > if (matcher.find()) { > doc.append(" range:"+matcher.start()+", "+matcher.end()); > // > testing purposes only > Range range = new Range(matcher.start(),matcher.end()+1); > doc.setAnnotation(range, "style/"+style, arg); > } else { > doc.append("\nerr StringStyle: string not found"); > } > } > > **addQuestion method** > public void addQuestion(RobotMessageBundle bundle, Wavelet wavelet, > String num, String question) { > String blipID = wavelet.getDataDocument("bank"); > if(blipID != null) { > Blip blip = bundle.getBlip(wavelet.getWaveId(), > wavelet.getWaveletId(), blipID); > blip.getDocument().append("\n"+num+".) "+question); > stringStyle(blip, num+".) "+question, "color", "red"); > } else { > blipOut(wavelet, "Question Bank not found!"); > } > } > > Ok so EVERYTHING works just fine in the process except that last > step. I want to color the added question red, but for some reason, my > matcher finds the question starting at position 2 EVERY time (even as > i continue adding questions successfully). This results in part of > the text "Question Bank (Ready)" turning red instead of the question > itself. I tried to view the doc.getText to see if it was returning > the rest of the text in the question bank but it is not. For some > reason getting the blip in this context does not return any of its > content (it seems) except for the question I have just appended (via > getDocument().getText()). I have a feeling this has something to do > with using the bundle and the stored blip ID to get that blip > reference to append to it. > > Anyone have any thoughts? I hope I included enough information... --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Wave API" group. To post to this group, send email to google-wave-api@googlegroups.com To unsubscribe from this group, send email to google-wave-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-wave-api?hl=en -~----------~----~----~----~------~----~------~--~---