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 -~----------~----~----~----~------~----~------~--~---