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

Last change on this file since 457 was 382, checked in by ra33, 16 years ago

update greenstone3 class to use types maps and arrays

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