Package org.bigbluebutton.webminer.web.model

Examples of org.bigbluebutton.webminer.web.model.IndexingContentSource


   */
  @Override
  protected ModelAndView onSubmit(HttpServletRequest request,
      HttpServletResponse response, Object command, BindException errors) {
    // Get url of lecture.xml
    IndexingContentSource contentSourceCommand = (IndexingContentSource) command;
    String lectureXMLURL = contentSourceCommand.getLectureURL();
    System.out.println("in indexing");
    // Create DOM object for lecture.xml to extract presentation slide
    // location.
    try {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder parser = factory.newDocumentBuilder();
    org.w3c.dom.Document document = parser.parse(lectureXMLURL);

    String slideBaseURL = contentSourceCommand.getSlideBaseURL();
    List slideListResult = slideExpression.evaluateAsNodeList(document);
    List playTimeNodeList = slidePlayTimeExpression
        .evaluateAsNodeList(document);

      Map<String, String> slideTimeMap = new HashMap<String, String>();

      for (int i = 0; i < playTimeNodeList.size(); i++) {
        Node slideNode = (Node) playTimeNodeList.get(i);
        String slideTime = slideNode.getAttributes().getNamedItem(
            "time").getNodeValue();
        String slideIndex = slideNode.getTextContent();
        if (slideTimeMap.get(slideIndex) != null) {
          // if a slide has been played multiple times, appending all
          // times or only record the first play time
         
            String value = slideTimeMap.get(slideIndex) + "||" + slideTime;
            slideTimeMap.put(slideIndex, value);
          
        } else {
          slideTimeMap.put(slideIndex, slideTime);
        }
        if (logger.isInfoEnabled()) {
          logger
              .info("slide index = " + slideIndex + " "
                  + slideTime);
          logger.info("---Slide play time ---"
              + (String) slideTimeMap.get(slideIndex));
        }

      }
      // Map <String, String> slideTimeMap = new HashMap<String,
      // String>();

      ArrayList<String> fileURLs = new ArrayList();
      String fileLocation = null;
      synchronized (Index.getInstance()) {
        Index.getInstance().startIndex(lectureXMLURL);
        // Index index = Index.getInstance();
       
        for (int i = 0; i < slideListResult.size(); i++) {
          Node node = (Node) slideListResult.get(i);
          String swfName = node.getNodeValue();
          fileLocation = slideBaseURL + swfName;
          fileURLs.add(i, fileLocation);
          Map attrs = new HashMap();
          // attrs.put("title", swfName);
          attrs.put("fileName", swfName);
          attrs.put("uid", lectureXMLURL);
          String idxToKey = (new Integer(i + 1)).toString();
          if (logger.isDebugEnabled()) {
            logger.debug("idxToKey"+idxToKey+" resultsize="+slideListResult.size()+"---Slide play time ---"
                + (String) slideTimeMap.get(idxToKey)
                + " summary = "
                + contentSourceCommand.getSummary());
          }
          // Some slides in the file list may never be played, don't
          // show the slide time
          if (slideTimeMap.get(idxToKey) != null) {
            attrs.put("slideTime", "Slide " + idxToKey
                + ": played at "
                + (String) slideTimeMap.get(idxToKey));
          }
          attrs.put("summary", contentSourceCommand.getSummary());
          Index.getInstance().addIndex(fileLocation, attrs);

        }
        Index.getInstance().finishIndex();
      }
View Full Code Here

TOP

Related Classes of org.bigbluebutton.webminer.web.model.IndexingContentSource

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.