Package org.waveprotocol.wave.model.conversation

Examples of org.waveprotocol.wave.model.conversation.ConversationBlip


    @Override
    public void onBlipAdded(ObservableConversationBlip blip) {
      ConversationThread parentThread = blip.getThread();
      ThreadView threadView = viewOf(parentThread);
      if (threadView != null) {
        ConversationBlip ref = findBefore(blip, parentThread.getBlips());
        BlipView refView = viewOf(ref);

        // Render the new blip.
        threadView.insertBlipAfter(refView, blip);
        bubbleBlipCountUpdate(blip);
View Full Code Here


    private void bubbleBlipCountUpdate(ConversationBlip blip) {
      ConversationThread thread = blip.getThread();
      ThreadView threadUi = viewOf(thread);
      threadUi.setTotalBlipCount(readMonitor.getTotalCount(thread));
      ConversationBlip parentBlip = thread.getParentBlip();
      if (parentBlip != null) {
        bubbleBlipCountUpdate(parentBlip);
      }
    }
View Full Code Here

  }

  @Override
  public BlipData toBlipData(ConversationBlip blip, Wavelet wavelet,
      EventMessageBundle eventMessageBundle) {
    ConversationBlip parentBlip = findBlipParent(blip);
    BlipData blipData = new BlipData();
    blipData.setCreator(blip.getAuthorId().getAddress());
    blipData.setContributors(idsToParticipantIdList(blip.getContributorIds()));
    blipData.setBlipId(blip.getId());
    blipData.setLastModifiedTime(blip.getLastModifiedTime());
    blipData.setVersion(blip.getLastModifiedVersion());
    blipData.setParentBlipId(parentBlip == null ? null : parentBlip.getId());
    blipData.setWaveId(ApiIdSerializer.instance().serialiseWaveId(wavelet.getWaveId()));
    blipData.setWaveletId(ApiIdSerializer.instance().serialiseWaveletId(wavelet.getId()));
    blipData.setChildBlipIds(toBlipIdList(findBlipChildren(blip)));

    ApiView apiView = new ApiView(blip.getContent(), wavelet);
View Full Code Here

   * @return the children of the given blip.
   */
  @Override
  public List<ConversationBlip> findBlipChildren(ConversationBlip blip) {
    List<ConversationBlip> siblings = Lists.newArrayList();
    ConversationBlip nextSibling = findNextSibling(blip);
    if (nextSibling != null) {
      siblings.add(nextSibling);
    }
    for (ConversationThread reply : blip.getReplyThreads()) {
      if (reply.getFirstBlip() != null) {
View Full Code Here

   * @return the previous sibling of the blip, or {@code null}.
   */
  @VisibleForTesting
  static ConversationBlip findPreviousSibling(ConversationBlip blip) {
    ConversationThread thread = blip.getThread();
    ConversationBlip previous = null;
    for (ConversationBlip sibling : thread.getBlips()) {
      if (sibling == blip) {
        break;
      }
      previous = sibling;
View Full Code Here

  private static String getTitle(Wavelet wavelet, Conversation conversation) {
    ConversationThread rootThread = conversation.getRootThread();
    if (rootThread == null) {
      return "";
    }
    ConversationBlip firstBlip = rootThread.getFirstBlip();
    if (firstBlip == null) {
      return "";
    }
    Document doc = firstBlip.getContent();
    return TitleHelper.extractTitle(doc);
  }
View Full Code Here

      // conversion.
      return;
    }

    // Convert the XML offset into the text offset.
    ConversationBlip parent = thread.getParentBlip();

    // Locate the thread, if necessary.
    if (location == -1) {
      for (LocatedReplyThread<? extends ConversationThread> inlineReplyThread :
        parent.locateReplyThreads()) {
        if (thread.getId().equals(inlineReplyThread.getThread().getId())) {
          location = inlineReplyThread.getLocation();
          break;
        }
      }    
    }

    // Use ApiView to convert the offset.
    if (location != -1) {
      ApiView apiView = new ApiView(parent.getContent(), wavelet);
      location = apiView.transformToTextOffset(location);
    }

    // Get the ids of the contained blips.
    List<String> blipIds = Lists.newLinkedList();
View Full Code Here

    WaveletData waveletData =
        eventDataConverter.toWaveletData(wavelet, conversation, eventMessageBundle);
    eventMessageBundle.setWaveletData(waveletData);
    for (Map.Entry<String, Set<Context>> entry : eventMessageBundle.getRequiredBlips().entrySet()) {
      Set<Context> contextSet = entry.getValue();
      ConversationBlip requiredBlip = conversation.getBlip(entry.getKey());
      if (contextSet.contains(Context.ALL)) {
        ContextResolver.addAllBlipsToEventMessages(
            eventMessageBundle, conversation, wavelet, eventDataConverter);
        // We now have all blips so we're done.
        break;
      }
      if (contextSet.contains(Context.ROOT)) {
        ConversationBlip rootBlip = conversation.getRootThread().getFirstBlip();
        if (rootBlip != requiredBlip) {
          ContextResolver.addBlipToEventMessages(
              eventMessageBundle, rootBlip, wavelet, eventDataConverter);
        }
      }

      // Required blip might be null, for example, in a blip deleted event.
      if (requiredBlip == null) {
        continue;
      }

      ContextResolver.addBlipToEventMessages(
          eventMessageBundle, requiredBlip, wavelet, eventDataConverter);
      if (contextSet.contains(Context.CHILDREN)) {
        for (ConversationBlip child : eventDataConverter.findBlipChildren(requiredBlip)) {
          ContextResolver.addBlipToEventMessages(
              eventMessageBundle, child, wavelet, eventDataConverter);
        }
      }
      ConversationThread containingThread = requiredBlip.getThread();
      if (contextSet.contains(Context.PARENT)) {
        ConversationBlip parent = eventDataConverter.findBlipParent(requiredBlip);
        if (parent != null) {
          ContextResolver.addBlipToEventMessages(
              eventMessageBundle, parent, wavelet, eventDataConverter);
        }
      }
View Full Code Here

  public ConversationBlip getBlip(Conversation conversation, String blipId)
      throws InvalidRequestException {
    // We might need to look up the blip id for new blips.
    String actualBlipId = blipId.startsWith(TEMP_ID_MARKER) ? tempBlipIdMap.get(blipId) : blipId;

    ConversationBlip blip = conversation.getBlip(actualBlipId);
    if (blip == null) {
      throw new InvalidRequestException(
          "Blip with id " + blipId + " does not exist or has been deleted");
    }
View Full Code Here

   * Returns the blip id of the first blip in the root thread.
   *
   * @param conversation the conversation to get the blip id from.
   */
  public static String getRootBlipId(Conversation conversation) {
    ConversationBlip rootBlip = conversation.getRootThread().getFirstBlip();
    return (rootBlip != null) ? rootBlip.getId() : "";
  }
View Full Code Here

TOP

Related Classes of org.waveprotocol.wave.model.conversation.ConversationBlip

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.