public void resolveDisconnectedBookmarks(Slide slide) { if (bmkslideDiscList != null) { // map the relationship correctly of link-then-bmk HashMap<String, String> bmklist = bmkslideDiscList.get(slide.getSlideId()); if (bmklist != null && !bmklist.isEmpty()) { PartContainer slidepart = (PartContainer) slide.getPart(); Iterator<String> bmkiter = bmklist.keySet().iterator(); while (bmkiter.hasNext()) { String wrngurl = bmkiter.next(); String realurl = bookmarklist.get(bmklist.get(wrngurl)); slidepart.updateBmk(wrngurl, realurl); } } } }
public String getBookmarkRelationId(String bmk, Slide slide) { HashMap<String, String> bookmarkRelationlist = null; String relationshipid = null; int slideidx = slide.getSlideId(); if (bmkslideRelList == null) { bmkslideRelList = new HashMap<Integer, HashMap<String, String>>(); } bookmarkRelationlist = bmkslideRelList.get(slideidx); if (bookmarkRelationlist == null) { bookmarkRelationlist = new HashMap<String, String>(); bmkslideRelList.put(slideidx, bookmarkRelationlist); } else { relationshipid = bookmarkRelationlist.get(bmk); } if (relationshipid == null) { String slideurl = getBookmarkUrl(bmk); HashMap<String, String> disconnectbmklist = null; if (slideurl == null) { slideurl = "discon_url" + disbmk++; if (bmkslideDiscList == null) { bmkslideDiscList = new HashMap<Integer, HashMap<String, String>>(); } disconnectbmklist = bmkslideDiscList.get(slideidx); if (disconnectbmklist == null) { disconnectbmklist = new HashMap<String, String>(); bmkslideDiscList.put(slideidx, disconnectbmklist); } disconnectbmklist.put(slideurl, bmk); } relationshipid = slide.getPart().getBookmarkId(slideurl); bookmarkRelationlist.put(bmk, relationshipid); } return relationshipid; }