예제 #1
0
 //////////////////////////
 // SAVING AND LOADING	//
 //////////////////////////
 public ArrayList<RenderableBlock> loadPageFrom(Node pageNode, boolean importingPage) {
   // note: this code is duplicated in BlockCanvas.loadSaveString().
   NodeList pageChildren = pageNode.getChildNodes();
   Node pageChild;
   ArrayList<RenderableBlock> loadedBlocks = new ArrayList<RenderableBlock>();
   HashMap<Long, Long> idMapping = importingPage ? new HashMap<Long, Long>() : null;
   if (importingPage) {
     reset();
   }
   for (int i = 0; i < pageChildren.getLength(); i++) {
     pageChild = pageChildren.item(i);
     if (pageChild.getNodeName().equals("PageBlocks")) {
       NodeList blocks = pageChild.getChildNodes();
       Node blockNode;
       for (int j = 0; j < blocks.getLength(); j++) {
         blockNode = blocks.item(j);
         RenderableBlock rb = RenderableBlock.loadBlockNode(workspace, blockNode, this, idMapping);
         // save the loaded blocks to add later
         loadedBlocks.add(rb);
       }
       break; // should only have one set of page blocks
     }
   }
   return loadedBlocks;
 }