Ignore:
Timestamp:
08/01/11 15:43:59 (10 months ago)
Author:
jharrop
Message:

Handle wordprocessingDrawing.Anchor

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/docx4j/src/main/java/org/docx4j/TraversalUtil.java

    r1566 r1633  
    155155        } 
    156156 
     157        private static List<Object> handleGraphicData(org.docx4j.dml.GraphicData graphicData) { 
     158                // Its not graphicData.getAny() we're typically interested in 
     159                if (graphicData.getPic()!=null 
     160                        && graphicData.getPic().getBlipFill()!=null 
     161                        && graphicData.getPic().getBlipFill().getBlip()!=null) { 
     162                        log.info("found CTBlip"); 
     163                        List<Object> artificialList = new ArrayList<Object>(); 
     164                        artificialList.add(graphicData.getPic().getBlipFill().getBlip()); 
     165                        return artificialList; 
     166                } else { 
     167                        // Chart is in here 
     168                        return graphicData.getAny();                                             
     169                }                
     170        } 
    157171        public static List<Object> getChildrenImpl(Object o) { 
    158172 
     
    168182                } else if (o instanceof org.docx4j.wml.SdtElement) { 
    169183                        return ((org.docx4j.wml.SdtElement) o).getSdtContent().getContent(); 
     184                } else if (o instanceof org.docx4j.dml.wordprocessingDrawing.Anchor) { 
     185                        org.docx4j.dml.wordprocessingDrawing.Anchor anchor =  
     186                                (org.docx4j.dml.wordprocessingDrawing.Anchor)o; 
     187                        if (anchor.getGraphic()!=null) { 
     188                                log.info("found a:graphic"); 
     189                                org.docx4j.dml.Graphic graphic = anchor.getGraphic(); 
     190                                if (graphic.getGraphicData()!=null) { 
     191                                        return handleGraphicData(graphic.getGraphicData()); 
     192                                } 
     193                        }                        
    170194                } else if (o instanceof org.docx4j.dml.wordprocessingDrawing.Inline) { 
    171195                        org.docx4j.dml.wordprocessingDrawing.Inline inline = (org.docx4j.dml.wordprocessingDrawing.Inline)o; 
     
    174198                                org.docx4j.dml.Graphic graphic = inline.getGraphic(); 
    175199                                if (graphic.getGraphicData()!=null) { 
    176                                         org.docx4j.dml.GraphicData graphicData = graphic.getGraphicData(); 
    177                                         // Its not graphicData.getAny() we're typically interested in 
    178                                         if (graphicData.getPic()!=null 
    179                                                 && graphicData.getPic().getBlipFill()!=null 
    180                                                 && graphicData.getPic().getBlipFill().getBlip()!=null) { 
    181                                                 log.info("found CTBlip"); 
    182                                                 List<Object> artificialList = new ArrayList<Object>(); 
    183                                                 artificialList.add(graphicData.getPic().getBlipFill().getBlip()); 
    184                                                 return artificialList; 
    185                                         } else { 
    186                                                 // Chart is in here 
    187                                                 return graphicData.getAny();                                             
    188                                         } 
    189                                          
     200                                        return handleGraphicData(graphic.getGraphicData()); 
    190201                                } 
    191202                        } 
     
    217228                } else if (o instanceof CTObject) { 
    218229                        return ((CTObject)o).getAnyAndAny(); 
    219                 } 
     230                }  
    220231 
    221232                // OK, what is this? Use reflection .. 
Note: See TracChangeset for help on using the changeset viewer.