Package org.waveprotocol.wave.model.conversation

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


  public void testEditModeStartsAndStopsDiffSuppression() {
    target.install();

    Editor e = mock(Editor.class);
    MockDoc doc = mock(MockDoc.class);
    ConversationBlip blip = mock(ConversationBlip.class);
    BlipView blipUi = mock(BlipView.class);
    when(models.getBlip(blipUi)).thenReturn(blip);
    when(documents.get(blip)).thenReturn(doc);

    target.onSessionStart(e, blipUi);
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

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

        OperationUtil.getOperationType(operation) == OperationType.BLIP_CONTINUE_THREAD,
        "Unsupported operation " + operation);

    BlipData blipData = OperationUtil.getRequiredParameter(operation, ParamsProperty.BLIP_DATA);
    String parentBlipId = OperationUtil.getRequiredParameter(operation, ParamsProperty.BLIP_ID);
    ConversationBlip parentBlip = context.getBlip(conversation, parentBlipId);

    ConversationBlip newBlip = parentBlip.getThread().appendBlip();
    context.putBlip(blipData.getBlipId(), newBlip);

    putContentForNewBlip(newBlip, blipData.getContent());
    processBlipCreatedEvent(operation, context, participant, conversation, newBlip);
  }
View Full Code Here

        OperationUtil.getOperationType(operation) == OperationType.BLIP_CREATE_CHILD,
        "Unsupported operation " + operation);

    BlipData blipData = OperationUtil.getRequiredParameter(operation, ParamsProperty.BLIP_DATA);
    String parentBlipId = OperationUtil.getRequiredParameter(operation, ParamsProperty.BLIP_ID);
    ConversationBlip parentBlip = context.getBlip(conversation, parentBlipId);

    ConversationBlip newBlip = parentBlip.addReplyThread().appendBlip();
    context.putBlip(blipData.getBlipId(), newBlip);

    putContentForNewBlip(newBlip, blipData.getContent());
    processBlipCreatedEvent(operation, context, participant, conversation, newBlip);
  }
View Full Code Here

        OperationUtil.getOperationType(operation) == OperationType.DOCUMENT_APPEND_INLINE_BLIP,
        "Unsupported operation " + operation);

    BlipData blipData = OperationUtil.getRequiredParameter(operation, ParamsProperty.BLIP_DATA);
    String parentBlipId = OperationUtil.getRequiredParameter(operation, ParamsProperty.BLIP_ID);
    ConversationBlip parentBlip = context.getBlip(conversation, parentBlipId);

    // Append a new, empty line to the doc for the inline anchor.
    Document doc = parentBlip.getContent();
    Doc.E line = LineContainers.appendLine(doc, XmlStringBuilder.createEmpty());

    // Insert new inline thread with the blip at the empty sentence.
    int location = doc.getLocation(Point.after(doc, line));
    ConversationBlip newBlip = parentBlip.addReplyThread(location).appendBlip();
    context.putBlip(blipData.getBlipId(), newBlip);

    putContentForNewBlip(newBlip, blipData.getContent());
    processBlipCreatedEvent(operation, context, participant, conversation, newBlip);
  }
View Full Code Here

        OperationUtil.getOperationType(operation) == OperationType.DOCUMENT_APPEND_MARKUP,
        "Unsupported operation " + operation);

    String content = OperationUtil.getRequiredParameter(operation, ParamsProperty.CONTENT);
    String blipId = OperationUtil.getRequiredParameter(operation, ParamsProperty.BLIP_ID);
    ConversationBlip convBlip = context.getBlip(conversation, blipId);

    // Create builder from xml content.
    XmlStringBuilder markupBuilder = XmlStringBuilder.createFromXmlString(content);

    // Append the new markup to the blip doc.
    Document doc = convBlip.getContent();
    LineContainers.appendLine(doc, markupBuilder);

    // Report success.
    context.constructResponse(operation, Maps.<ParamsProperty, Object> newHashMap());
  }
View Full Code Here

        OperationUtil.getOperationType(operation) == OperationType.DOCUMENT_INSERT_INLINE_BLIP,
        "Unsupported operation " + operation);

    BlipData blipData = OperationUtil.getRequiredParameter(operation, ParamsProperty.BLIP_DATA);
    String parentBlipId = OperationUtil.getRequiredParameter(operation, ParamsProperty.BLIP_ID);
    ConversationBlip parentBlip = context.getBlip(conversation, parentBlipId);

    Integer index = OperationUtil.getRequiredParameter(operation, ParamsProperty.INDEX);
    if (index <= 0) {
      throw new InvalidRequestException(
          "Can't inline a blip on position <= 0, got " + index, operation);
    }

    ApiView view = new ApiView(parentBlip.getContent(), wavelet);
    int xmlLocation = view.transformToXmlOffset(index);

    // Insert new inline thread with the blip at the location as specified.
    ConversationBlip newBlip = parentBlip.addReplyThread(xmlLocation).appendBlip();
    context.putBlip(blipData.getBlipId(), newBlip);

    putContentForNewBlip(newBlip, blipData.getContent());
    processBlipCreatedEvent(operation, context, participant, conversation, newBlip);
  }
View Full Code Here

        == OperationType.DOCUMENT_INSERT_INLINE_BLIP_AFTER_ELEMENT,
        "Unsupported operation " + operation);

    BlipData blipData = OperationUtil.getRequiredParameter(operation, ParamsProperty.BLIP_DATA);
    String parentBlipId = OperationUtil.getRequiredParameter(operation, ParamsProperty.BLIP_ID);
    ConversationBlip parentBlip = context.getBlip(conversation, parentBlipId);

    Element element = OperationUtil.getRequiredParameter(operation, ParamsProperty.ELEMENT);

    // view.locateElement will tell where the element actually is.
    ApiView view = new ApiView(parentBlip.getContent(), wavelet);
    int elementApiLocation = view.locateElement(element);

    if (elementApiLocation == -1) {
      throw new InvalidRequestException("Requested element not found", operation);
    }

    // Insert just after the requested element
    int xmlLocation = view.transformToXmlOffset(elementApiLocation + 1);

    // Insert new inline thread with the blip at the location of the element.
    ConversationBlip newBlip = parentBlip.addReplyThread(xmlLocation).appendBlip();
    context.putBlip(blipData.getBlipId(), newBlip);

    putContentForNewBlip(newBlip, blipData.getContent());
    processBlipCreatedEvent(operation, context, participant, conversation, newBlip);
  }
View Full Code Here

      if (blipId == null || blipId.isEmpty()) {
        supplement.markAsRead();
      } else {
        ObservableConversation conversation =
            context.openConversation(operation, participant).getRoot();
        ConversationBlip blip = conversation.getBlip(blipId);
        supplement.markAsRead(blip);
      }
    } else if (modifyHow.equals(ModifyHowType.MARK_AS_UNREAD.getValue())) {
      supplement.markAsUnread();
    } else {
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.