List of usage examples for org.apache.poi.hslf.usermodel HSLFSlideShow setPageSize
@Override
public void setPageSize(Dimension pgsize)
From source file:io.github.jeddict.jpa.modeler.specification.export.ExportManagerImpl.java
License:Apache License
@Override public void export(JPAModelerScene scene, FileType format, File file) { try {//from w w w .j a v a 2 s .com HSLFSlideShow ppt = new HSLFSlideShow(); int width = 0, height = 0; HSLFSlide slide = ppt.createSlide(); for (IBaseElementWidget baseElementWidget : scene.getBaseElements()) { if (baseElementWidget instanceof INodeWidget) { INodeWidget nodeWidget = (INodeWidget) baseElementWidget; Rectangle rect = nodeWidget.getSceneViewBound(); HSLFGroupShape group = new HSLFGroupShape(); slide.addShape(group); if (width < rect.x + rect.width) { width = rect.x + rect.width; } if (height < rect.y + rect.height) { height = rect.y + rect.height; } HSLFTextBox shape = new HSLFTextBox(); shape.setAnchor(new java.awt.Rectangle(rect.x, rect.y, rect.width, rect.height)); shape.setFillColor(Color.WHITE); shape.setLineColor(Color.BLACK); if (baseElementWidget instanceof PersistenceClassWidget) { PersistenceClassWidget<? extends ManagedClass> entityWidget = (PersistenceClassWidget) baseElementWidget; HSLFTextRun classTextRun = shape.setText(entityWidget.getName()); classTextRun.setFontSize(18.); classTextRun.setFontFamily("Arial"); classTextRun.setBold(true); classTextRun.setUnderlined(true); classTextRun.setFontColor(Color.BLACK); classTextRun.getTextParagraph().setTextAlign(TextAlign.LEFT); Class category = null; for (AttributeWidget attributeWidget : entityWidget.getAllAttributeWidgets(false)) { if (category == null || !category.isAssignableFrom(attributeWidget.getClass())) { HSLFTextRun categoryTextRun = null; if (attributeWidget instanceof BasicAttributeWidget) { if (category == BasicCollectionAttributeWidget.class) { continue; } category = BasicAttributeWidget.class; categoryTextRun = shape.appendText("Basic", true); } else if (attributeWidget instanceof BasicCollectionAttributeWidget) { if (category == BasicAttributeWidget.class) { continue; } category = BasicCollectionAttributeWidget.class; categoryTextRun = shape.appendText("Basic", true); } else if (attributeWidget instanceof RelationAttributeWidget) { category = RelationAttributeWidget.class; categoryTextRun = shape.appendText("Relation", true); } else if (attributeWidget instanceof VersionAttributeWidget) { category = VersionAttributeWidget.class; categoryTextRun = shape.appendText("Version", true); } else if (attributeWidget instanceof TransientAttributeWidget) { category = TransientAttributeWidget.class; categoryTextRun = shape.appendText("Transient", true); } else if (attributeWidget instanceof EmbeddedAttributeWidget) { category = EmbeddedAttributeWidget.class; categoryTextRun = shape.appendText("Embedded", true); } else if (attributeWidget instanceof IdAttributeWidget) { category = IdAttributeWidget.class; categoryTextRun = shape.appendText("PrimaryKey", true); } else if (attributeWidget instanceof EmbeddedIdAttributeWidget) { category = EmbeddedIdAttributeWidget.class; categoryTextRun = shape.appendText("Embedded Id", true); } else { category = null; categoryTextRun = shape.appendText("Attribute", true); } categoryTextRun.setFontSize(10.); categoryTextRun.setFontFamily("Arial"); categoryTextRun.setBold(true); categoryTextRun.setUnderlined(true); categoryTextRun.setFontColor(Color.GRAY); categoryTextRun.getTextParagraph().setTextAlign(TextAlign.CENTER); } HSLFTextRun attrTextRun = shape.appendText(attributeWidget.getLabel(), true); attrTextRun.setFontSize(16.); attrTextRun.setFontFamily("Arial"); attrTextRun.setBold(false); attrTextRun.setUnderlined(false); attrTextRun.setFontColor(Color.BLACK); attrTextRun.getTextParagraph().setTextAlign(TextAlign.LEFT); } group.addShape(shape); } } else { EdgeWidget edgeWidget = (EdgeWidget) baseElementWidget; Path2D.Double path = new Path2D.Double(); Point initPoint = null, moveTo = null; for (java.awt.Point point : edgeWidget.getControlPoints()) { if (initPoint == null) { initPoint = point; path.moveTo(point.x, point.y); } else { path.lineTo(point.x, point.y); } moveTo = point; } HSLFGroupShape group = new HSLFGroupShape(); slide.addShape(group); HSLFFreeformShape shape = new HSLFFreeformShape(); shape.setPath(path); shape.setFillColor(null); group.addShape(shape); if (edgeWidget instanceof GeneralizationFlowWidget) { byte[] targetAnchor = getImageArray(GENERALIZATION_ICON); HSLFPictureData targetPictureData = ppt.addPicture(targetAnchor, PictureData.PictureType.PNG); HSLFPictureShape targetPictureShape = new HSLFPictureShape(targetPictureData); group.addShape(targetPictureShape); targetPictureShape.moveTo(moveTo.x - 6, moveTo.y - 3); } else { //source anchor Image sourceAnchorImage = ((IconAnchorShape) edgeWidget.getSourceAnchorShape()).getImage(); byte[] sourceAnchor = getImageArray(sourceAnchorImage); HSLFPictureData sourcePictureData = ppt.addPicture(sourceAnchor, PictureData.PictureType.PNG); HSLFPictureShape sourcePictureShape = new HSLFPictureShape(sourcePictureData); group.addShape(sourcePictureShape); sourcePictureShape.moveTo(initPoint.x - 6, initPoint.y - 5); //target anchor Image targetAnchorImage = ((IconAnchorShape) edgeWidget.getTargetAnchorShape()).getImage(); byte[] targetAnchor = getImageArray(targetAnchorImage); HSLFPictureData targetPictureData = ppt.addPicture(targetAnchor, PictureData.PictureType.PNG); HSLFPictureShape targetPictureShape = new HSLFPictureShape(targetPictureData); group.addShape(targetPictureShape); targetPictureShape.moveTo(moveTo.x - 6, moveTo.y - 5); } } } ppt.setPageSize(new Dimension(width + 20, height + 20)); FileOutputStream out = new FileOutputStream(file); ppt.write(out); out.close(); } catch (IOException ex) { scene.getModelerFile().handleException(ex); } }
From source file:org.netbeans.jpa.modeler.specification.export.ExportManagerImpl.java
License:Apache License
@Override public void export(JPAModelerScene scene, FileType format, File file) { try {/* www .java 2s . co m*/ HSLFSlideShow ppt = new HSLFSlideShow(); int width = 0, height = 0; HSLFSlide slide = ppt.createSlide(); for (IBaseElementWidget baseElementWidget : scene.getBaseElements()) { if (baseElementWidget instanceof INodeWidget) { INodeWidget nodeWidget = (INodeWidget) baseElementWidget; Rectangle rect = nodeWidget.getSceneViewBound(); HSLFGroupShape group = new HSLFGroupShape(); slide.addShape(group); if (width < rect.x + rect.width) { width = rect.x + rect.width; } if (height < rect.y + rect.height) { height = rect.y + rect.height; } HSLFTextBox shape = new HSLFTextBox(); shape.setAnchor(new java.awt.Rectangle(rect.x, rect.y, rect.width, rect.height)); shape.setFillColor(Color.WHITE); shape.setLineColor(Color.BLACK); if (baseElementWidget instanceof PersistenceClassWidget) { PersistenceClassWidget<? extends ManagedClass> entityWidget = (PersistenceClassWidget) baseElementWidget; HSLFTextRun classTextRun = shape.setText(entityWidget.getName()); classTextRun.setFontSize(18.); classTextRun.setFontFamily("Arial"); classTextRun.setBold(true); classTextRun.setUnderlined(true); classTextRun.setFontColor(Color.BLACK); classTextRun.getTextParagraph().setAlignment(TextAlign.LEFT); Class category = null; for (AttributeWidget attributeWidget : entityWidget.getAllAttributeWidgets(false)) { if (category == null || !category.isAssignableFrom(attributeWidget.getClass())) { HSLFTextRun categoryTextRun = null; if (attributeWidget instanceof BasicAttributeWidget) { if (category == BasicCollectionAttributeWidget.class) { continue; } category = BasicAttributeWidget.class; categoryTextRun = shape.appendText("Basic", true); } else if (attributeWidget instanceof BasicCollectionAttributeWidget) { if (category == BasicAttributeWidget.class) { continue; } category = BasicCollectionAttributeWidget.class; categoryTextRun = shape.appendText("Basic", true); } else if (attributeWidget instanceof RelationAttributeWidget) { category = RelationAttributeWidget.class; categoryTextRun = shape.appendText("Relation", true); } else if (attributeWidget instanceof VersionAttributeWidget) { category = VersionAttributeWidget.class; categoryTextRun = shape.appendText("Version", true); } else if (attributeWidget instanceof TransientAttributeWidget) { category = TransientAttributeWidget.class; categoryTextRun = shape.appendText("Transient", true); } else if (attributeWidget instanceof EmbeddedAttributeWidget) { category = EmbeddedAttributeWidget.class; categoryTextRun = shape.appendText("Embedded", true); } else if (attributeWidget instanceof IdAttributeWidget) { category = IdAttributeWidget.class; categoryTextRun = shape.appendText("PrimaryKey", true); } else if (attributeWidget instanceof EmbeddedIdAttributeWidget) { category = EmbeddedIdAttributeWidget.class; categoryTextRun = shape.appendText("Embedded Id", true); } else { category = null; categoryTextRun = shape.appendText("Attribute", true); } categoryTextRun.setFontSize(10.); categoryTextRun.setFontFamily("Arial"); categoryTextRun.setBold(true); categoryTextRun.setUnderlined(true); categoryTextRun.setFontColor(Color.GRAY); categoryTextRun.getTextParagraph().setAlignment(TextAlign.CENTER); } HSLFTextRun attrTextRun = shape.appendText(attributeWidget.getLabel(), true); attrTextRun.setFontSize(16.); attrTextRun.setFontFamily("Arial"); attrTextRun.setBold(false); attrTextRun.setUnderlined(false); attrTextRun.setFontColor(Color.BLACK); attrTextRun.getTextParagraph().setAlignment(TextAlign.LEFT); } group.addShape(shape); } } else { EdgeWidget edgeWidget = (EdgeWidget) baseElementWidget; java.awt.geom.GeneralPath path = new java.awt.geom.GeneralPath(); Point initPoint = null, moveTo = null; for (java.awt.Point point : edgeWidget.getControlPoints()) { if (initPoint == null) { initPoint = point; path.moveTo(point.x, point.y); } else { path.lineTo(point.x, point.y); } moveTo = point; } HSLFGroupShape group = new HSLFGroupShape(); slide.addShape(group); HSLFFreeformShape shape = new HSLFFreeformShape(); shape.setPath(path); shape.setFillColor(null); group.addShape(shape); if (edgeWidget instanceof GeneralizationFlowWidget) { byte[] targetAnchor = getImageArray(GENERALIZATION); HSLFPictureData targetPictureData = ppt.addPicture(targetAnchor, PictureData.PictureType.PNG); HSLFPictureShape targetPictureShape = new HSLFPictureShape(targetPictureData); group.addShape(targetPictureShape); targetPictureShape.moveTo(moveTo.x - 6, moveTo.y - 3); } else { //source anchor Image sourceAnchorImage = ((IconAnchorShape) edgeWidget.getSourceAnchorShape()).getImage(); byte[] sourceAnchor = getImageArray(sourceAnchorImage); HSLFPictureData sourcePictureData = ppt.addPicture(sourceAnchor, PictureData.PictureType.PNG); HSLFPictureShape sourcePictureShape = new HSLFPictureShape(sourcePictureData); group.addShape(sourcePictureShape); sourcePictureShape.moveTo(initPoint.x - 6, initPoint.y - 5); //target anchor Image targetAnchorImage = ((IconAnchorShape) edgeWidget.getTargetAnchorShape()).getImage(); byte[] targetAnchor = getImageArray(targetAnchorImage); HSLFPictureData targetPictureData = ppt.addPicture(targetAnchor, PictureData.PictureType.PNG); HSLFPictureShape targetPictureShape = new HSLFPictureShape(targetPictureData); group.addShape(targetPictureShape); targetPictureShape.moveTo(moveTo.x - 6, moveTo.y - 5); } } } ppt.setPageSize(new Dimension(width + 20, height + 20)); FileOutputStream out = new FileOutputStream(file); ppt.write(out); out.close(); } catch (IOException ex) { scene.getModelerFile().handleException(ex); } }