2009-10-13 14 views
5

Pracuję nad moim pierwszym robotem dla google wave ostatnio, istotną częścią tego, co robi jest wstawianie odpowiedzi inline do blip. Nie mogę dla mojego życia dowiedzieć się, jak to zrobić!Google Wave - odpowiedź wbudowana

Dokumenty API mają funkcję InsertInlineBlip, która brzmiała obiecująco, jednak dzwonienie nie wydaje się nic robić!

EDYCJA :: Wygląda na to, że jest to znany błąd. Jednak wciąż pozostaje pytanie, jaki jest właściwy sposób wstawiania wstawionego blipu? Zakładam, że coś takiego:

inline = blip.GetDocument().InsertInlineBlip(positionInText) 
inline.GetDocument().SetText("some text") 
+0

hehe, retagged od początkujących do początkujących, jaka jest różnica naukowe? ;) – Martin

+0

"Newbie" może mieć negatywne konotacje, jak przypuszczam. – ceejayoz

+0

numer następujący po tagu dla początkujących to 3051, element początkujący 60. to wszystko – SilentGhost

Odpowiedz

4

Jeśli spojrzeć na sourcecode dla OpBasedDocument.InsertInlineBlip() będzie można zobaczyć następujące:

412 - def InsertInlineBlip(self, position): 
413  """Inserts an inline blip into this blip at a specific position. 
414 
415  Args: 
416  position: Position to insert the blip at. 
417 
418  Returns: 
419  The JSON data of the blip that was created. 
420  """ 
421  blip_data = self.__context.builder.DocumentInlineBlipInsert( 
422   self._blip.waveId, 
423   self._blip.waveletId, 
424   self._blip.blipId, 
425   position) 
426  # TODO(davidbyttow): Add local blip element. 
427  return self.__context.AddBlip(blip_data) 

myślę, że komentarz TODO sugeruje, ta funkcja nie jest jeszcze aktywne. Metoda powinna być wywoływalna i poprawnie zwracana, jednak podejrzewam, że operacja dokumentu nie jest stosowana do dokumentu globalnego.

Składnia zawarta w poście wygląda poprawnie. Jak widać powyżej, InsertInlineBlip()returns the value z AddBlip(), która jest ... dun, dun, dun ... a blip.

543 - def AddBlip(self, blip_data): 
544  """Adds a transient blip based on the data supplied. 
545 
546  Args: 
547  blip_data: JSON data describing this blip. 
548 
549  Returns: 
550  An OpBasedBlip that may have operations applied to it. 
551  """ 
552  blip = OpBasedBlip(blip_data, self) 
553  self.blips[blip.GetId()] = blip 
554  return blip 

EDIT: Ciekawostką jest, aby pamiętać, że podpis metoda metody Insert InsertInlineBlip(self, position) znacznie różni się od metody Insert InsertElement(self, position, element). InsertInlineBlip() nie pobiera parametru elementu do wstawienia. Wydaje się, że obecna logika dla InsertInlineBlip() jest bardziej podobna do Blip.CreateChild(), która zwraca nowy wskaźnik podrzędny, z którym ma działać. Z tego możemy podejrzewać, że ten interfejs API ulegnie zmianie wraz z dodaniem funkcjonalności.

2

To może być możliwe bug.

+0

Aha! Mam nadzieję, że niedługo wydadzą poprawkę:/ – Martin

Powiązane problemy