250 lines
10 KiB
Java
250 lines
10 KiB
Java
/* ====================================================================
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
==================================================================== */
|
|
package org.apache.poi.xslf.usermodel;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
import org.apache.poi.POIXMLDocumentPart;
|
|
import org.apache.poi.POIXMLRelation;
|
|
import org.apache.poi.sl.usermodel.PictureData.PictureType;
|
|
import org.apache.poi.util.Beta;
|
|
|
|
@Beta
|
|
public class XSLFRelation extends POIXMLRelation {
|
|
|
|
/**
|
|
* A map to lookup POIXMLRelation by its relation type
|
|
*/
|
|
private static final Map<String, XSLFRelation> _table = new HashMap<String, XSLFRelation>();
|
|
|
|
public static final XSLFRelation MAIN = new XSLFRelation(
|
|
"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml",
|
|
null, null, null
|
|
);
|
|
|
|
public static final XSLFRelation MACRO = new XSLFRelation(
|
|
"application/vnd.ms-powerpoint.slideshow.macroEnabled.main+xml",
|
|
null, null, null
|
|
);
|
|
|
|
public static final XSLFRelation MACRO_TEMPLATE = new XSLFRelation(
|
|
"application/vnd.ms-powerpoint.template.macroEnabled.main+xml",
|
|
null, null, null
|
|
);
|
|
|
|
public static final XSLFRelation PRESENTATIONML = new XSLFRelation(
|
|
"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml",
|
|
null, null, null
|
|
);
|
|
|
|
public static final XSLFRelation PRESENTATIONML_TEMPLATE = new XSLFRelation(
|
|
"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml",
|
|
null, null, null
|
|
);
|
|
|
|
public static final XSLFRelation PRESENTATION_MACRO = new XSLFRelation(
|
|
"application/vnd.ms-powerpoint.presentation.macroEnabled.main+xml",
|
|
null, null, null
|
|
);
|
|
|
|
public static final XSLFRelation THEME_MANAGER = new XSLFRelation(
|
|
"application/vnd.openxmlformats-officedocument.themeManager+xml",
|
|
null, null, null
|
|
);
|
|
|
|
public static final XSLFRelation NOTES = new XSLFRelation(
|
|
"application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml",
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide",
|
|
"/ppt/notesSlides/notesSlide#.xml",
|
|
XSLFNotes.class
|
|
);
|
|
|
|
public static final XSLFRelation SLIDE = new XSLFRelation(
|
|
"application/vnd.openxmlformats-officedocument.presentationml.slide+xml",
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide",
|
|
"/ppt/slides/slide#.xml",
|
|
XSLFSlide.class
|
|
);
|
|
|
|
public static final XSLFRelation SLIDE_LAYOUT = new XSLFRelation(
|
|
"application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml",
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout",
|
|
"/ppt/slideLayouts/slideLayout#.xml",
|
|
XSLFSlideLayout.class
|
|
);
|
|
|
|
public static final XSLFRelation SLIDE_MASTER = new XSLFRelation(
|
|
"application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml",
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster",
|
|
"/ppt/slideMasters/slideMaster#.xml",
|
|
XSLFSlideMaster.class
|
|
);
|
|
|
|
public static final XSLFRelation NOTES_MASTER = new XSLFRelation(
|
|
"application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml",
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesMaster",
|
|
"/ppt/notesMasters/notesMaster#.xml",
|
|
XSLFNotesMaster.class
|
|
);
|
|
|
|
public static final XSLFRelation COMMENTS = new XSLFRelation(
|
|
"application/vnd.openxmlformats-officedocument.presentationml.comments+xml",
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments",
|
|
"/ppt/comments/comment#.xml",
|
|
XSLFComments.class
|
|
);
|
|
|
|
public static final XSLFRelation COMMENT_AUTHORS = new XSLFRelation(
|
|
"application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml",
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/commentAuthors",
|
|
"/ppt/commentAuthors.xml",
|
|
XSLFCommentAuthors.class
|
|
);
|
|
|
|
public static final XSLFRelation HYPERLINK = new XSLFRelation(
|
|
null,
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",
|
|
null,
|
|
null
|
|
);
|
|
|
|
public static final XSLFRelation THEME = new XSLFRelation(
|
|
"application/vnd.openxmlformats-officedocument.theme+xml",
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme",
|
|
"/ppt/theme/theme#.xml",
|
|
XSLFTheme.class
|
|
);
|
|
|
|
public static final XSLFRelation VML_DRAWING = new XSLFRelation(
|
|
"application/vnd.openxmlformats-officedocument.vmlDrawing",
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing",
|
|
"/ppt/drawings/vmlDrawing#.vml",
|
|
null
|
|
);
|
|
|
|
public static final XSLFRelation CHART = new XSLFRelation(
|
|
"application/vnd.openxmlformats-officedocument.drawingml.chart+xml",
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart",
|
|
"/ppt/charts/chart#.xml",
|
|
XSLFChart.class
|
|
);
|
|
|
|
public static final XSLFRelation IMAGE_EMF = new XSLFRelation(
|
|
PictureType.EMF.contentType,
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
|
|
"/ppt/media/image#.emf",
|
|
XSLFPictureData.class
|
|
);
|
|
public static final XSLFRelation IMAGE_WMF = new XSLFRelation(
|
|
PictureType.WMF.contentType,
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
|
|
"/ppt/media/image#.wmf",
|
|
XSLFPictureData.class
|
|
);
|
|
public static final XSLFRelation IMAGE_PICT = new XSLFRelation(
|
|
PictureType.PICT.contentType,
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
|
|
"/ppt/media/image#.pict",
|
|
XSLFPictureData.class
|
|
);
|
|
public static final XSLFRelation IMAGE_JPEG = new XSLFRelation(
|
|
PictureType.JPEG.contentType,
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
|
|
"/ppt/media/image#.jpeg",
|
|
XSLFPictureData.class
|
|
);
|
|
public static final XSLFRelation IMAGE_PNG = new XSLFRelation(
|
|
PictureType.PNG.contentType,
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
|
|
"/ppt/media/image#.png",
|
|
XSLFPictureData.class
|
|
);
|
|
public static final XSLFRelation IMAGE_DIB = new XSLFRelation(
|
|
PictureType.DIB.contentType,
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
|
|
"/ppt/media/image#.dib",
|
|
XSLFPictureData.class
|
|
);
|
|
public static final XSLFRelation IMAGE_GIF = new XSLFRelation(
|
|
PictureType.GIF.contentType,
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
|
|
"/ppt/media/image#.gif",
|
|
XSLFPictureData.class
|
|
);
|
|
public static final XSLFRelation IMAGE_TIFF = new XSLFRelation(
|
|
PictureType.TIFF.contentType,
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
|
|
"/ppt/media/image#.tiff",
|
|
XSLFPictureData.class
|
|
);
|
|
public static final XSLFRelation IMAGE_EPS = new XSLFRelation(
|
|
PictureType.EPS.contentType,
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
|
|
"/ppt/media/image#.eps",
|
|
XSLFPictureData.class
|
|
);
|
|
public static final XSLFRelation IMAGE_BMP = new XSLFRelation(
|
|
PictureType.BMP.contentType,
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
|
|
"/ppt/media/image#.bmp",
|
|
XSLFPictureData.class
|
|
);
|
|
public static final XSLFRelation IMAGE_WPG = new XSLFRelation(
|
|
PictureType.WPG.contentType,
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
|
|
"/ppt/media/image#.wpg",
|
|
XSLFPictureData.class
|
|
);
|
|
public static final XSLFRelation IMAGE_WDP = new XSLFRelation(
|
|
PictureType.WDP.contentType,
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
|
|
"/ppt/media/image#.wdp",
|
|
XSLFPictureData.class
|
|
);
|
|
|
|
public static final XSLFRelation IMAGES = new XSLFRelation(
|
|
null,
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
|
|
null,
|
|
XSLFPictureData.class
|
|
);
|
|
|
|
public static final XSLFRelation TABLE_STYLES = new XSLFRelation(
|
|
"application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml",
|
|
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/tableStyles",
|
|
"/ppt/tableStyles.xml",
|
|
XSLFTableStyles.class
|
|
);
|
|
|
|
private XSLFRelation(String type, String rel, String defaultName, Class<? extends POIXMLDocumentPart> cls) {
|
|
super(type, rel, defaultName, cls);
|
|
_table.put(rel, this);
|
|
}
|
|
|
|
/**
|
|
* Get POIXMLRelation by relation type
|
|
*
|
|
* @param rel relation type, for example,
|
|
* <code>http://schemas.openxmlformats.org/officeDocument/2006/relationships/image</code>
|
|
* @return registered POIXMLRelation or null if not found
|
|
*/
|
|
public static XSLFRelation getInstance(String rel){
|
|
return _table.get(rel);
|
|
}
|
|
}
|