1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski //import com.sun.star.frame.XComponentLoader;
23*b1cdbd2cSJim Jagielski import java.io.*;
24*b1cdbd2cSJim Jagielski import com.sun.star.lang.XComponent;
25*b1cdbd2cSJim Jagielski import com.sun.star.beans.PropertyValue;
26*b1cdbd2cSJim Jagielski import com.sun.star.beans.XPropertySet;
27*b1cdbd2cSJim Jagielski import com.sun.star.frame.XStorable;
28*b1cdbd2cSJim Jagielski import com.sun.star.uno.UnoRuntime;
29*b1cdbd2cSJim Jagielski import com.sun.star.frame.XModel;
30*b1cdbd2cSJim Jagielski import com.sun.star.script.framework.runtime.XScriptContext;
31*b1cdbd2cSJim Jagielski 
32*b1cdbd2cSJim Jagielski // for debug only
33*b1cdbd2cSJim Jagielski import javax.swing.JOptionPane;
34*b1cdbd2cSJim Jagielski 
35*b1cdbd2cSJim Jagielski public class OfficeAttachment
36*b1cdbd2cSJim Jagielski {
37*b1cdbd2cSJim Jagielski 
38*b1cdbd2cSJim Jagielski 	private StatusWindow status = null;
39*b1cdbd2cSJim Jagielski 	private XStorable storedDoc = null;
40*b1cdbd2cSJim Jagielski 	private File htmlFile = null;
41*b1cdbd2cSJim Jagielski 	private File officeFile = null;
42*b1cdbd2cSJim Jagielski 	private boolean isHtmlDoc = false;
43*b1cdbd2cSJim Jagielski 	private boolean isOfficeDoc = false;
44*b1cdbd2cSJim Jagielski 	private String templocationURL = "";
45*b1cdbd2cSJim Jagielski 	private String templocationSystem = "";
46*b1cdbd2cSJim Jagielski 	private String attachmentName = "";
47*b1cdbd2cSJim Jagielski 	private String statusLine = "";
48*b1cdbd2cSJim Jagielski 
OfficeAttachment( XScriptContext xsc, StatusWindow sw, boolean html, boolean office )49*b1cdbd2cSJim Jagielski 	public OfficeAttachment( XScriptContext xsc, StatusWindow sw, boolean html, boolean office )
50*b1cdbd2cSJim Jagielski 	{
51*b1cdbd2cSJim Jagielski 		status = sw;
52*b1cdbd2cSJim Jagielski 		isHtmlDoc = html;
53*b1cdbd2cSJim Jagielski 		isOfficeDoc = office;
54*b1cdbd2cSJim Jagielski 
55*b1cdbd2cSJim Jagielski 		templocationSystem = templocationURL = System.getProperty( "user.home" );
56*b1cdbd2cSJim Jagielski 		if( System.getProperty( "os.name" ).indexOf( "Windows" ) != -1 )
57*b1cdbd2cSJim Jagielski 		{
58*b1cdbd2cSJim Jagielski 			while( templocationURL.indexOf( "\\" ) != -1 )
59*b1cdbd2cSJim Jagielski 			{
60*b1cdbd2cSJim Jagielski 				int sepPos = templocationURL.indexOf( "\\" );
61*b1cdbd2cSJim Jagielski 				String firstPart = templocationURL.substring( 0, sepPos );
62*b1cdbd2cSJim Jagielski 				String lastPart = templocationURL.substring( sepPos + 1, templocationURL.length() );
63*b1cdbd2cSJim Jagielski 				templocationURL = firstPart + "/" + lastPart;
64*b1cdbd2cSJim Jagielski 				//JOptionPane.showMessageDialog( null, "Temp Location URL is: " + templocationURL + "\nfirstPart is: " + firstPart + "\nlastPart is: " + lastPart );
65*b1cdbd2cSJim Jagielski 			}
66*b1cdbd2cSJim Jagielski 		}
67*b1cdbd2cSJim Jagielski 
68*b1cdbd2cSJim Jagielski 		try
69*b1cdbd2cSJim Jagielski 		{
70*b1cdbd2cSJim Jagielski 			statusLine = "Querying Office for current document";
71*b1cdbd2cSJim Jagielski 			status.setStatus( 1, statusLine );
72*b1cdbd2cSJim Jagielski 			XScriptContext scriptcontext = xsc;
73*b1cdbd2cSJim Jagielski 			XModel xmodel = scriptcontext.getDocument();
74*b1cdbd2cSJim Jagielski 			storedDoc = (XStorable) UnoRuntime.queryInterface(XStorable.class, xmodel);
75*b1cdbd2cSJim Jagielski 			// find document name from storedDoc
76*b1cdbd2cSJim Jagielski 			attachmentName = storedDoc.getLocation();
77*b1cdbd2cSJim Jagielski 		}
78*b1cdbd2cSJim Jagielski 		catch( Exception e )
79*b1cdbd2cSJim Jagielski 		{
80*b1cdbd2cSJim Jagielski 			//UNO error
81*b1cdbd2cSJim Jagielski 			status.setStatus( 1, "Error: " + statusLine );
82*b1cdbd2cSJim Jagielski 		}
83*b1cdbd2cSJim Jagielski 
84*b1cdbd2cSJim Jagielski 		if( attachmentName.equalsIgnoreCase( "" ) )
85*b1cdbd2cSJim Jagielski 		{
86*b1cdbd2cSJim Jagielski 			attachmentName = "Attachment";
87*b1cdbd2cSJim Jagielski 		}
88*b1cdbd2cSJim Jagielski 		else
89*b1cdbd2cSJim Jagielski 		{
90*b1cdbd2cSJim Jagielski 			//int lastSep = attachmentName.lastIndexOf( System.getProperty( "file.separator" ) );
91*b1cdbd2cSJim Jagielski 			int lastSep = attachmentName.lastIndexOf( "/" );
92*b1cdbd2cSJim Jagielski 			attachmentName = attachmentName.substring( lastSep + 1, attachmentName.length() );
93*b1cdbd2cSJim Jagielski 			int dot = attachmentName.indexOf( "." );
94*b1cdbd2cSJim Jagielski 			attachmentName = attachmentName.substring( 0, dot );
95*b1cdbd2cSJim Jagielski 		}
96*b1cdbd2cSJim Jagielski 	}
97*b1cdbd2cSJim Jagielski 
98*b1cdbd2cSJim Jagielski 
createTempDocs()99*b1cdbd2cSJim Jagielski 	public boolean createTempDocs()
100*b1cdbd2cSJim Jagielski 	{
101*b1cdbd2cSJim Jagielski 		String filenameURL = "file:///" + templocationURL +  "/" + attachmentName;
102*b1cdbd2cSJim Jagielski 		//String filenameSystem = templocationSystem + System.getProperty( "file.separator" ) + attachmentName;
103*b1cdbd2cSJim Jagielski 		//JOptionPane.showMessageDialog( null, "Filename URL " + filenameURL );
104*b1cdbd2cSJim Jagielski 		try
105*b1cdbd2cSJim Jagielski 		{
106*b1cdbd2cSJim Jagielski 			if( isHtmlDoc )
107*b1cdbd2cSJim Jagielski 			{
108*b1cdbd2cSJim Jagielski 				//JOptionPane.showMessageDialog( null, "Saving doc in HTML format" );
109*b1cdbd2cSJim Jagielski 				statusLine = "Saving doc in HTML format";
110*b1cdbd2cSJim Jagielski 				status.setStatus( 4, statusLine );
111*b1cdbd2cSJim Jagielski 				//System.out.print( "Saving attachment as " + filename + ".html..." );
112*b1cdbd2cSJim Jagielski 		       		PropertyValue[] propertyvalue_html = new PropertyValue[2];
113*b1cdbd2cSJim Jagielski 			        propertyvalue_html[0] = new PropertyValue();
114*b1cdbd2cSJim Jagielski        		 		propertyvalue_html[0].Name = new String("Overwrite");
115*b1cdbd2cSJim Jagielski 			        propertyvalue_html[0].Value = new Boolean(true);
116*b1cdbd2cSJim Jagielski 		       		propertyvalue_html[1] = new PropertyValue();
117*b1cdbd2cSJim Jagielski 			        propertyvalue_html[1].Name = ("FilterName");
118*b1cdbd2cSJim Jagielski //			        propertyvalue_html[1].Value = new String("scalc: HTML (StarCalc)");
119*b1cdbd2cSJim Jagielski 			        propertyvalue_html[1].Value = new String("swriter: HTML (StarWriter)");
120*b1cdbd2cSJim Jagielski 				storedDoc.storeAsURL( filenameURL + ".html", propertyvalue_html);
121*b1cdbd2cSJim Jagielski 
122*b1cdbd2cSJim Jagielski 				File homedir = new File( templocationSystem );
123*b1cdbd2cSJim Jagielski 				//JOptionPane.showMessageDialog( null, "homedir (Java File): " + homedir.getPath() );
124*b1cdbd2cSJim Jagielski 				File homefiles[] = homedir.listFiles();
125*b1cdbd2cSJim Jagielski 				String file = "";
126*b1cdbd2cSJim Jagielski 				for(int i=0; i < homefiles.length; i++ )
127*b1cdbd2cSJim Jagielski 				{
128*b1cdbd2cSJim Jagielski 					if( homefiles[i].getName().equals( attachmentName + ".html" ) )
129*b1cdbd2cSJim Jagielski 					{
130*b1cdbd2cSJim Jagielski 						//htmlFile = new File( homefiles[i].getAbsolutePath() );
131*b1cdbd2cSJim Jagielski 						//JOptionPane.showMessageDialog( null, "Found HTML" );
132*b1cdbd2cSJim Jagielski 						file = homefiles[i].getAbsolutePath();
133*b1cdbd2cSJim Jagielski 					}
134*b1cdbd2cSJim Jagielski 				}
135*b1cdbd2cSJim Jagielski 				htmlFile = new File( file );
136*b1cdbd2cSJim Jagielski 				//htmlFile = new File( filename + ".html" );
137*b1cdbd2cSJim Jagielski 				//htmlFile = new File( storedDoc.getLocation() );
138*b1cdbd2cSJim Jagielski 			}
139*b1cdbd2cSJim Jagielski 
140*b1cdbd2cSJim Jagielski 			if( isOfficeDoc )
141*b1cdbd2cSJim Jagielski 			{
142*b1cdbd2cSJim Jagielski 				//JOptionPane.showMessageDialog( null, "Saving doc in .sxw format" );
143*b1cdbd2cSJim Jagielski 				statusLine = "Saving doc in .sxw format";
144*b1cdbd2cSJim Jagielski 				status.setStatus( 4, statusLine );
145*b1cdbd2cSJim Jagielski 				//System.out.print( "Saving attachment as " + filename + ".sxw..." );
146*b1cdbd2cSJim Jagielski 				PropertyValue[] propertyvalue_sxw = new PropertyValue[2];
147*b1cdbd2cSJim Jagielski 			        propertyvalue_sxw[0] = new PropertyValue();
148*b1cdbd2cSJim Jagielski         			propertyvalue_sxw[0].Name = new String("Overwrite");
149*b1cdbd2cSJim Jagielski 			        propertyvalue_sxw[0].Value = new Boolean(true);
150*b1cdbd2cSJim Jagielski 			        propertyvalue_sxw[1] = new PropertyValue();
151*b1cdbd2cSJim Jagielski 			        propertyvalue_sxw[1].Name = new String("Overwrite");
152*b1cdbd2cSJim Jagielski 			        propertyvalue_sxw[1].Value = new Boolean(true);
153*b1cdbd2cSJim Jagielski 			        storedDoc.storeAsURL( filenameURL + ".sxw", propertyvalue_sxw);
154*b1cdbd2cSJim Jagielski 
155*b1cdbd2cSJim Jagielski 				File homedir = new File( templocationSystem );
156*b1cdbd2cSJim Jagielski 
157*b1cdbd2cSJim Jagielski 				//JOptionPane.showMessageDialog( null, "homedir (Java File): " + homedir.getPath() );
158*b1cdbd2cSJim Jagielski 
159*b1cdbd2cSJim Jagielski                                 File homefiles[] = homedir.listFiles();
160*b1cdbd2cSJim Jagielski 				String file = "";
161*b1cdbd2cSJim Jagielski                                 for(int i=0; i < homefiles.length; i++ )
162*b1cdbd2cSJim Jagielski                                 {
163*b1cdbd2cSJim Jagielski                                         if( homefiles[i].getName().equals( attachmentName + ".sxw" ) )
164*b1cdbd2cSJim Jagielski                                         {
165*b1cdbd2cSJim Jagielski                                                 //officeFile = new File( homefiles[i].getAbsolutePath() );
166*b1cdbd2cSJim Jagielski 						//JOptionPane.showMessageDialog( null, "Found .sxw" );
167*b1cdbd2cSJim Jagielski 						file = homefiles[i].getAbsolutePath();
168*b1cdbd2cSJim Jagielski                                         }
169*b1cdbd2cSJim Jagielski                                 }
170*b1cdbd2cSJim Jagielski 				officeFile = new File( file );
171*b1cdbd2cSJim Jagielski 				//officeFile = new File( filename + ".sxw" );
172*b1cdbd2cSJim Jagielski 				//officeFile = new File (storedDoc.getLocation() );
173*b1cdbd2cSJim Jagielski 			}
174*b1cdbd2cSJim Jagielski 
175*b1cdbd2cSJim Jagielski 			//status.setStatus( 10, "Attachments successfully created" );
176*b1cdbd2cSJim Jagielski 
177*b1cdbd2cSJim Jagielski 		}
178*b1cdbd2cSJim Jagielski 		catch( SecurityException se )
179*b1cdbd2cSJim Jagielski 		{
180*b1cdbd2cSJim Jagielski 			status.setStatus( 4, "Error: " + statusLine );
181*b1cdbd2cSJim Jagielski 			System.out.println( "Security error while saving temporary Document(s). Check file permissions in home directory." );
182*b1cdbd2cSJim Jagielski 			se.printStackTrace();
183*b1cdbd2cSJim Jagielski 			htmlFile = null;
184*b1cdbd2cSJim Jagielski 			officeFile = null;
185*b1cdbd2cSJim Jagielski 			return false;
186*b1cdbd2cSJim Jagielski 		}
187*b1cdbd2cSJim Jagielski 		catch( Exception e )
188*b1cdbd2cSJim Jagielski 		{
189*b1cdbd2cSJim Jagielski 			status.setStatus( 4, "Error: " + statusLine );
190*b1cdbd2cSJim Jagielski 			System.out.println( "Error saving temporary Document(s)" );
191*b1cdbd2cSJim Jagielski 			e.printStackTrace();
192*b1cdbd2cSJim Jagielski 			htmlFile = null;
193*b1cdbd2cSJim Jagielski 			officeFile = null;
194*b1cdbd2cSJim Jagielski 			return false;
195*b1cdbd2cSJim Jagielski 		}
196*b1cdbd2cSJim Jagielski 		return true;
197*b1cdbd2cSJim Jagielski 	}
198*b1cdbd2cSJim Jagielski 
199*b1cdbd2cSJim Jagielski 
removeTempDocs()200*b1cdbd2cSJim Jagielski 	public boolean removeTempDocs()
201*b1cdbd2cSJim Jagielski 	{
202*b1cdbd2cSJim Jagielski 		/*
203*b1cdbd2cSJim Jagielski 		if( !htmlFile.exists() && !officeFile.exists() )
204*b1cdbd2cSJim Jagielski                 {
205*b1cdbd2cSJim Jagielski 			System.out.println("Error: Document(s) have not been saved." );
206*b1cdbd2cSJim Jagielski 		}
207*b1cdbd2cSJim Jagielski 		*/
208*b1cdbd2cSJim Jagielski 
209*b1cdbd2cSJim Jagielski 		statusLine = "Removing temp docs";
210*b1cdbd2cSJim Jagielski 		status.setStatus( 13, statusLine );
211*b1cdbd2cSJim Jagielski 
212*b1cdbd2cSJim Jagielski 		try
213*b1cdbd2cSJim Jagielski 		{
214*b1cdbd2cSJim Jagielski 			if( isOfficeDoc && isHtmlDoc )
215*b1cdbd2cSJim Jagielski 			{
216*b1cdbd2cSJim Jagielski 				//System.out.println( "Removing: " + htmlFile.getPath() + " " + officeFile.getPath() );
217*b1cdbd2cSJim Jagielski 				//System.out.println( "htmlfile " + htmlFile.exists() + " officeFile " + officeFile.exists() );
218*b1cdbd2cSJim Jagielski 				//JOptionPane.showMessageDialog( null, "Removing: " + htmlFile.getPath() + " " + officeFile.getPath() );
219*b1cdbd2cSJim Jagielski 				//JOptionPane.showMessageDialog( null, "htmlfile " + htmlFile.exists() + " officeFile " + officeFile.exists() );
220*b1cdbd2cSJim Jagielski 				htmlFile.delete();
221*b1cdbd2cSJim Jagielski 				officeFile.delete();
222*b1cdbd2cSJim Jagielski 				//JOptionPane.showMessageDialog( null, "htmlfile " + htmlFile.exists() + " officeFile " + officeFile.exists() );
223*b1cdbd2cSJim Jagielski 			}
224*b1cdbd2cSJim Jagielski 			else
225*b1cdbd2cSJim Jagielski 			{
226*b1cdbd2cSJim Jagielski 				if( isOfficeDoc )
227*b1cdbd2cSJim Jagielski        	                	{
228*b1cdbd2cSJim Jagielski 					//System.out.println( "Removing: " + officeFile.getPath() );
229*b1cdbd2cSJim Jagielski 					officeFile.delete();
230*b1cdbd2cSJim Jagielski 				}
231*b1cdbd2cSJim Jagielski 				else
232*b1cdbd2cSJim Jagielski 				{
233*b1cdbd2cSJim Jagielski 					//System.out.println( "Removing: " + htmlFile.getPath() );
234*b1cdbd2cSJim Jagielski 					htmlFile.delete();
235*b1cdbd2cSJim Jagielski 				}
236*b1cdbd2cSJim Jagielski 			}
237*b1cdbd2cSJim Jagielski 		}
238*b1cdbd2cSJim Jagielski 		catch( SecurityException se )
239*b1cdbd2cSJim Jagielski 		{
240*b1cdbd2cSJim Jagielski 			status.setStatus( 13, "Error: " + statusLine );
241*b1cdbd2cSJim Jagielski 			System.out.println( "Security Error while deleting temporary Document(s). Check file permissions in home directory." );
242*b1cdbd2cSJim Jagielski 			se.printStackTrace();
243*b1cdbd2cSJim Jagielski 			return false;
244*b1cdbd2cSJim Jagielski 		}
245*b1cdbd2cSJim Jagielski 		return true;
246*b1cdbd2cSJim Jagielski 	}
247*b1cdbd2cSJim Jagielski 
248*b1cdbd2cSJim Jagielski 
cleanUpOnError()249*b1cdbd2cSJim Jagielski 	public void cleanUpOnError()
250*b1cdbd2cSJim Jagielski 	{
251*b1cdbd2cSJim Jagielski 		try
252*b1cdbd2cSJim Jagielski 		{
253*b1cdbd2cSJim Jagielski 			if( isOfficeDoc && isHtmlDoc )
254*b1cdbd2cSJim Jagielski 			{
255*b1cdbd2cSJim Jagielski 				htmlFile.delete();
256*b1cdbd2cSJim Jagielski 				officeFile.delete();
257*b1cdbd2cSJim Jagielski 			}
258*b1cdbd2cSJim Jagielski 			else
259*b1cdbd2cSJim Jagielski 			{
260*b1cdbd2cSJim Jagielski 				if( isOfficeDoc )
261*b1cdbd2cSJim Jagielski        	                	{
262*b1cdbd2cSJim Jagielski 					officeFile.delete();
263*b1cdbd2cSJim Jagielski 				}
264*b1cdbd2cSJim Jagielski 				else
265*b1cdbd2cSJim Jagielski 				{
266*b1cdbd2cSJim Jagielski 					htmlFile.delete();
267*b1cdbd2cSJim Jagielski 				}
268*b1cdbd2cSJim Jagielski 			}
269*b1cdbd2cSJim Jagielski 		}
270*b1cdbd2cSJim Jagielski 		catch( SecurityException se )
271*b1cdbd2cSJim Jagielski 		{
272*b1cdbd2cSJim Jagielski 			System.out.println( "Security Error while deleting temporary Document(s). Check file permissions in home directory." );
273*b1cdbd2cSJim Jagielski 			se.printStackTrace();
274*b1cdbd2cSJim Jagielski 		}
275*b1cdbd2cSJim Jagielski 	}
276*b1cdbd2cSJim Jagielski 
277*b1cdbd2cSJim Jagielski 
getAttachments()278*b1cdbd2cSJim Jagielski 	public File[] getAttachments()
279*b1cdbd2cSJim Jagielski 	{
280*b1cdbd2cSJim Jagielski 		/*
281*b1cdbd2cSJim Jagielski 		if( htmlFile == null && officeFile == null )
282*b1cdbd2cSJim Jagielski 		{
283*b1cdbd2cSJim Jagielski 			System.out.println( "Error: Document(s) have not been saved." );
284*b1cdbd2cSJim Jagielski 			return null;
285*b1cdbd2cSJim Jagielski 		}
286*b1cdbd2cSJim Jagielski 		*/
287*b1cdbd2cSJim Jagielski 		//(officeDoc) ? (number = 2) : (number = 1);
288*b1cdbd2cSJim Jagielski 
289*b1cdbd2cSJim Jagielski 		statusLine = "Retrieving temp docs";
290*b1cdbd2cSJim Jagielski 		status.setStatus( 8, statusLine );
291*b1cdbd2cSJim Jagielski 
292*b1cdbd2cSJim Jagielski 		File attachments[] = null;
293*b1cdbd2cSJim Jagielski 		if( isOfficeDoc && isHtmlDoc )
294*b1cdbd2cSJim Jagielski 		{
295*b1cdbd2cSJim Jagielski 			attachments = new File[2];
296*b1cdbd2cSJim Jagielski 			attachments[0] = htmlFile;
297*b1cdbd2cSJim Jagielski 			attachments[1] = officeFile;
298*b1cdbd2cSJim Jagielski 		}
299*b1cdbd2cSJim Jagielski 		else
300*b1cdbd2cSJim Jagielski 		{
301*b1cdbd2cSJim Jagielski 			if( isOfficeDoc )
302*b1cdbd2cSJim Jagielski 			{
303*b1cdbd2cSJim Jagielski 				attachments = new File[1];
304*b1cdbd2cSJim Jagielski 				attachments[0] = officeFile;
305*b1cdbd2cSJim Jagielski 			}
306*b1cdbd2cSJim Jagielski 			else
307*b1cdbd2cSJim Jagielski 			{
308*b1cdbd2cSJim Jagielski 				attachments = new File[1];
309*b1cdbd2cSJim Jagielski 				attachments[0] = htmlFile;
310*b1cdbd2cSJim Jagielski 			}
311*b1cdbd2cSJim Jagielski 		}
312*b1cdbd2cSJim Jagielski 
313*b1cdbd2cSJim Jagielski 		return attachments;
314*b1cdbd2cSJim Jagielski 	}
315*b1cdbd2cSJim Jagielski 
316*b1cdbd2cSJim Jagielski 
isHtmlAttachment()317*b1cdbd2cSJim Jagielski 	public boolean isHtmlAttachment()
318*b1cdbd2cSJim Jagielski 	{
319*b1cdbd2cSJim Jagielski 		return isHtmlDoc;
320*b1cdbd2cSJim Jagielski 	}
321*b1cdbd2cSJim Jagielski 
322*b1cdbd2cSJim Jagielski 
isOfficeAttachment()323*b1cdbd2cSJim Jagielski 	public boolean isOfficeAttachment()
324*b1cdbd2cSJim Jagielski 	{
325*b1cdbd2cSJim Jagielski 		return isOfficeDoc;
326*b1cdbd2cSJim Jagielski 	}
327*b1cdbd2cSJim Jagielski 
328*b1cdbd2cSJim Jagielski }
329