source: trunk/src/org/expeditee/io/HTMLWriter.java@ 376

Last change on this file since 376 was 376, checked in by ra33, 16 years ago
File size: 2.9 KB
Line 
1package org.expeditee.io;
2
3import java.awt.Image;
4import java.awt.image.BufferedImage;
5import java.io.IOException;
6import java.util.List;
7
8import org.expeditee.actions.Misc;
9import org.expeditee.gui.FrameIO;
10import org.expeditee.items.FramePicture;
11import org.expeditee.items.Item;
12import org.expeditee.items.Picture;
13import org.expeditee.items.Text;
14
15import sun.awt.image.ToolkitImage;
16
17public class HTMLWriter extends AbstractHTMLWriter {
18
19 @Override
20 protected void writeTitle(Text toWrite, List<Item> items)
21 throws IOException {
22 int indent = getIndent();
23 if (indent == 0)
24 return;
25
26 String heading = toWrite.getText();
27 String tag = "h" + indent;
28 // indenting for tag
29 indent();
30 _writer.write("<" + tag + ">" + heading + "</" + tag + ">"
31 + ItemWriter.NEW_LINE);
32 }
33
34 @Override
35 protected void writeText(Text text) throws IOException {
36 indent();
37 _writer.write("<p>");
38 _writer.write(text.getText().replace('\n', ' '));
39 _writer.write("</p>" + ItemWriter.NEW_LINE);
40 }
41
42 @Override
43 protected void writePicture(Picture pic) throws IOException {
44 // TODO handle different colored @f's of the same frame
45 // TODO handle cropped images
46 Image image = null;
47
48 if (pic instanceof FramePicture || pic.isCropped()) {
49 image = pic.getImage();
50 // Crop the image
51 BufferedImage bufferedImage = new BufferedImage(pic
52 .getUnscaledWidth(), pic.getUnscaledHeight(),
53 BufferedImage.TYPE_INT_ARGB);
54 bufferedImage.getGraphics().drawImage(image, 0, 0,
55 pic.getUnscaledWidth(), pic.getUnscaledHeight(),
56 pic.getStart().x, pic.getStart().y, pic.getEnd().x,
57 pic.getEnd().y, null);
58 image = bufferedImage;
59 } else {
60 image = pic.getImage();
61 }
62
63 String filesFolder = getFilesFolder();
64 String fileName;
65 // If its a bufferedImage then just write it out to the files directory
66 // This means it is probably a FrameImage
67 if (image instanceof BufferedImage) {
68 String link = pic.getAbsoluteLink();
69 // Account for the possiblitly of an unlinked buffered image
70 fileName = link == null ? ("Image" + pic.getID()) : link;
71 fileName = Misc.SaveImage((BufferedImage) image, "PNG",
72 FrameIO.EXPORTS_DIR + filesFolder, fileName);
73 } else {// It is a normal Image stored somewhere
74 fileName = pic.getName();
75
76 String oldImageName = FrameIO.IMAGES_PATH + fileName;
77 String newImageName = FrameIO.EXPORTS_DIR + filesFolder + fileName;
78 try {
79 FrameIO.copyFile(oldImageName, newImageName);
80 } catch (Exception e) {
81 filesFolder = "";
82 }
83 if (filesFolder.equals("")) {
84 filesFolder = "../" + FrameIO.IMAGES_FOLDER;
85 }
86 }
87 indent();
88 StringBuffer imageTag = new StringBuffer("<img src=\"");
89 imageTag.append(filesFolder).append(fileName);
90 imageTag.append("\" height=").append(pic.getHeight());
91 imageTag.append(" width=").append(pic.getWidth());
92 imageTag.append(" border=1>");
93 _writer.write(imageTag.toString());
94 _writer.write(ItemWriter.NEW_LINE);
95 }
96}
Note: See TracBrowser for help on using the repository browser.