aboutsummaryrefslogtreecommitdiffstats
path: root/src/ooxml/java/org/apache/poi/xssf/model
diff options
context:
space:
mode:
Diffstat (limited to 'src/ooxml/java/org/apache/poi/xssf/model')
-rw-r--r--src/ooxml/java/org/apache/poi/xssf/model/CommentsTable.java25
-rw-r--r--src/ooxml/java/org/apache/poi/xssf/model/MapInfo.java7
-rw-r--r--src/ooxml/java/org/apache/poi/xssf/model/SingleXmlCells.java3
-rw-r--r--src/ooxml/java/org/apache/poi/xssf/model/ThemesTable.java74
4 files changed, 68 insertions, 41 deletions
diff --git a/src/ooxml/java/org/apache/poi/xssf/model/CommentsTable.java b/src/ooxml/java/org/apache/poi/xssf/model/CommentsTable.java
index f3799ab24e..95bbf2907c 100644
--- a/src/ooxml/java/org/apache/poi/xssf/model/CommentsTable.java
+++ b/src/ooxml/java/org/apache/poi/xssf/model/CommentsTable.java
@@ -98,9 +98,11 @@ public class CommentsTable extends POIXMLDocumentPart {
return comments.getAuthors().getAuthorArray((int)authorId);
}
+ @SuppressWarnings("deprecation")
public int findAuthor(String author) {
- for (int i = 0 ; i < comments.getAuthors().sizeOfAuthorArray() ; i++) {
- if (comments.getAuthors().getAuthorArray(i).equals(author)) {
+ String[] authorArray = comments.getAuthors().getAuthorArray();
+ for (int i = 0 ; i < authorArray.length; i++) {
+ if (authorArray[i].equals(author)) {
return i;
}
}
@@ -149,15 +151,18 @@ public class CommentsTable extends POIXMLDocumentPart {
public boolean removeComment(String cellRef) {
CTCommentList lst = comments.getCommentList();
- if(lst != null) for(int i=0; i < lst.sizeOfCommentArray(); i++) {
- CTComment comment = lst.getCommentArray(i);
- if (cellRef.equals(comment.getRef())) {
- lst.removeComment(i);
-
- if(commentRefs != null) {
- commentRefs.remove(cellRef);
+ if(lst != null) {
+ CTComment[] commentArray = lst.getCommentArray();
+ for (int i = 0; i < commentArray.length; i++) {
+ CTComment comment = commentArray[i];
+ if (cellRef.equals(comment.getRef())) {
+ lst.removeComment(i);
+
+ if(commentRefs != null) {
+ commentRefs.remove(cellRef);
+ }
+ return true;
}
- return true;
}
}
return false;
diff --git a/src/ooxml/java/org/apache/poi/xssf/model/MapInfo.java b/src/ooxml/java/org/apache/poi/xssf/model/MapInfo.java
index f664f6bbc0..33c161b4c3 100644
--- a/src/ooxml/java/org/apache/poi/xssf/model/MapInfo.java
+++ b/src/ooxml/java/org/apache/poi/xssf/model/MapInfo.java
@@ -24,7 +24,6 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
-
import org.apache.poi.POIXMLDocumentPart;
import org.apache.poi.openxml4j.opc.PackagePart;
import org.apache.poi.openxml4j.opc.PackageRelationship;
@@ -66,13 +65,14 @@ public class MapInfo extends POIXMLDocumentPart {
readFrom(part.getInputStream());
}
+ @SuppressWarnings("deprecation")
public void readFrom(InputStream is) throws IOException {
try {
MapInfoDocument doc = MapInfoDocument.Factory.parse(is);
mapInfo = doc.getMapInfo();
maps= new HashMap<Integer, XSSFMap>();
- for(CTMap map :mapInfo.getMapList()){
+ for(CTMap map :mapInfo.getMapArray()){
maps.put((int)map.getID(), new XSSFMap(map,this));
}
@@ -104,10 +104,11 @@ public class MapInfo extends POIXMLDocumentPart {
* @param schemaId the schema ID
* @return CTSchema by it's ID
*/
+ @SuppressWarnings("deprecation")
public CTSchema getCTSchemaById(String schemaId){
CTSchema xmlSchema = null;
- for(CTSchema schema: mapInfo.getSchemaList()){
+ for(CTSchema schema: mapInfo.getSchemaArray()){
if(schema.getID().equals(schemaId)){
xmlSchema = schema;
break;
diff --git a/src/ooxml/java/org/apache/poi/xssf/model/SingleXmlCells.java b/src/ooxml/java/org/apache/poi/xssf/model/SingleXmlCells.java
index 63c514b130..cb1542e87b 100644
--- a/src/ooxml/java/org/apache/poi/xssf/model/SingleXmlCells.java
+++ b/src/ooxml/java/org/apache/poi/xssf/model/SingleXmlCells.java
@@ -94,10 +94,11 @@ public class SingleXmlCells extends POIXMLDocumentPart {
*
* @return all the SimpleXmlCell contained in this SingleXmlCells element
*/
+ @SuppressWarnings("deprecation")
public List<XSSFSingleXmlCell> getAllSimpleXmlCell(){
List<XSSFSingleXmlCell> list = new Vector<XSSFSingleXmlCell>();
- for(CTSingleXmlCell singleXmlCell: singleXMLCells.getSingleXmlCellList()){
+ for(CTSingleXmlCell singleXmlCell: singleXMLCells.getSingleXmlCellArray()){
list.add(new XSSFSingleXmlCell(singleXmlCell,this));
}
return list;
diff --git a/src/ooxml/java/org/apache/poi/xssf/model/ThemesTable.java b/src/ooxml/java/org/apache/poi/xssf/model/ThemesTable.java
index 3bd00f4a2f..0e8f906339 100644
--- a/src/ooxml/java/org/apache/poi/xssf/model/ThemesTable.java
+++ b/src/ooxml/java/org/apache/poi/xssf/model/ThemesTable.java
@@ -23,20 +23,22 @@ import org.apache.poi.openxml4j.opc.PackagePart;
import org.apache.poi.openxml4j.opc.PackageRelationship;
import org.apache.poi.xssf.usermodel.XSSFColor;
import org.apache.xmlbeans.XmlException;
-import org.apache.xmlbeans.XmlObject;
+import org.openxmlformats.schemas.drawingml.x2006.main.CTColor;
import org.openxmlformats.schemas.drawingml.x2006.main.CTColorScheme;
import org.openxmlformats.schemas.drawingml.x2006.main.ThemeDocument;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTColor;
/**
* Class that represents theme of XLSX document. The theme includes specific
* colors and fonts.
- *
- * @author Petr Udalau(Petr.Udalau at exigenservices.com) - theme colors
*/
public class ThemesTable extends POIXMLDocumentPart {
private ThemeDocument theme;
+ /**
+ * Construct a ThemesTable.
+ * @param part A PackagePart.
+ * @param rel A PackageRelationship.
+ */
public ThemesTable(PackagePart part, PackageRelationship rel) throws IOException {
super(part, rel);
@@ -47,38 +49,56 @@ public class ThemesTable extends POIXMLDocumentPart {
}
}
+ /**
+ * Construct a ThemesTable from an existing ThemeDocument.
+ * @param theme A ThemeDocument.
+ */
public ThemesTable(ThemeDocument theme) {
this.theme = theme;
}
+ /**
+ * Convert a theme "index" into a color.
+ * @param idx A theme "index"
+ * @return The mapped XSSFColor, or null if not mapped.
+ */
public XSSFColor getThemeColor(int idx) {
+ // Theme color references are NOT positional indices into the color scheme,
+ // i.e. these keys are NOT the same as the order in which theme colors appear
+ // in theme1.xml. They are keys to a mapped color.
CTColorScheme colorScheme = theme.getTheme().getThemeElements().getClrScheme();
- CTColor ctColor = null;
- int cnt = 0;
- for (XmlObject obj : colorScheme.selectPath("./*")) {
- if (obj instanceof org.openxmlformats.schemas.drawingml.x2006.main.CTColor) {
- if (cnt == idx) {
- ctColor = (org.openxmlformats.schemas.drawingml.x2006.main.CTColor) obj;
-
- byte[] rgb = null;
- if (ctColor.getSrgbClr() != null) {
- // Colour is a regular one
- rgb = ctColor.getSrgbClr().getVal();
- } else if (ctColor.getSysClr() != null) {
- // Colour is a tint of white or black
- rgb = ctColor.getSysClr().getLastClr();
- }
+ CTColor ctColor;
+ switch (idx) {
+ case 0: ctColor = colorScheme.getLt1(); break;
+ case 1: ctColor = colorScheme.getDk1(); break;
+ case 2: ctColor = colorScheme.getLt2(); break;
+ case 3: ctColor = colorScheme.getDk2(); break;
+ case 4: ctColor = colorScheme.getAccent1(); break;
+ case 5: ctColor = colorScheme.getAccent2(); break;
+ case 6: ctColor = colorScheme.getAccent3(); break;
+ case 7: ctColor = colorScheme.getAccent4(); break;
+ case 8: ctColor = colorScheme.getAccent5(); break;
+ case 9: ctColor = colorScheme.getAccent6(); break;
+ case 10: ctColor = colorScheme.getHlink(); break;
+ case 11: ctColor = colorScheme.getFolHlink(); break;
+ default: return null;
+ }
- return new XSSFColor(rgb);
- }
- cnt++;
- }
+ byte[] rgb = null;
+ if (ctColor.isSetSrgbClr()) {
+ // Color is a regular one
+ rgb = ctColor.getSrgbClr().getVal();
+ } else if (ctColor.isSetSysClr()) {
+ // Color is a tint of white or black
+ rgb = ctColor.getSysClr().getLastClr();
+ } else {
+ return null;
}
- return null;
+ return new XSSFColor(rgb);
}
/**
- * If the colour is based on a theme, then inherit
+ * If the colour is based on a theme, then inherit
* information (currently just colours) from it as
* required.
*/
@@ -91,13 +111,13 @@ public class ThemesTable extends POIXMLDocumentPart {
// No theme set, nothing to do
return;
}
-
+
// Get the theme colour
XSSFColor themeColor = getThemeColor(color.getTheme());
// Set the raw colour, not the adjusted one
// Do a raw set, no adjusting at the XSSFColor layer either
color.getCTColor().setRgb(themeColor.getCTColor().getRgb());
-
+
// All done
}
}