Package com.sun.star.wizards.web

Source Code of com.sun.star.wizards.web.StylePreview

/*************************************************************************
*
*  OpenOffice.org - a multi-platform office productivity suite
*
*  $RCSfile: StylePreview.java,v $
*
*  $Revision: 1.6 $
*
*  last change: $Author: obo $ $Date: 2006/07/13 12:28:39 $
*
*  The Contents of this file are made available subject to
*  the terms of GNU Lesser General Public License Version 2.1.
*
*
*    GNU Lesser General Public License Version 2.1
*    =============================================
*    Copyright 2005 by Sun Microsystems, Inc.
*    901 San Antonio Road, Palo Alto, CA 94303, USA
*
*    This library is free software; you can redistribute it and/or
*    modify it under the terms of the GNU Lesser General Public
*    License version 2.1, as published by the Free Software Foundation.
*
*    This library is distributed in the hope that it will be useful,
*    but WITHOUT ANY WARRANTY; without even the implied warranty of
*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
*    Lesser General Public License for more details.
*
*    You should have received a copy of the GNU Lesser General Public
*    License along with this library; if not, write to the Free Software
*    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
*    MA  02111-1307  USA
*
************************************************************************/
package com.sun.star.wizards.web;

import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.wizards.common.FileAccess;
import com.sun.star.wizards.web.data.CGStyle;

/**
* @author rpiterman
* the style preview, which is a OOo Document Preview in
* an Image Control.
* This class copies the files needed for this
* preview from the web wizard work directory
* to a given temporary directory, and updates them
* on request, according to the current style/background selection
* of the user.
*/
public class StylePreview {
    private FileAccess fileAccess;
    /**
     * the destination html url.
     */
    public String htmlFilename;
    /**
     * the destination css url
     */
    private String cssFilename;
    /**
     * destination directory
     */
    public String tempDir;
    /**
     * destination background file url
     */
    private String backgroundFilename;
    /**
     * web wizard work directory
     */
    private String wwRoot;
   
   
    /**
     * copies the html file to the temp directory, and calculates the
     * destination names of the background and css files.
     * @param wwRoot is the root directory of the web wizard files (
     * usually [oo]/share/template/[lang]/wizard/web
     */
    public StylePreview(XMultiServiceFactory xmsf, String wwRoot_) throws Exception {
        fileAccess = new FileAccess(xmsf);
       
        tempDir = createTempDir(xmsf);
       
        htmlFilename = FileAccess.connectURLs(tempDir , "wwpreview.html");
        cssFilename = FileAccess.connectURLs(tempDir ,"style.css");
        backgroundFilename = FileAccess.connectURLs(tempDir , "images/background.gif");
       
        wwRoot = wwRoot_;
       
        fileAccess.copy(FileAccess.connectURLs(wwRoot,"preview.html"), htmlFilename);
    }
   
    /**
     * copies the given style and background files to the temporary
     * directory.
     * @param style
     * @param background
     * @throws Exception
     */
    public void refresh(CGStyle style, String background) throws Exception {
       
        String css = FileAccess.connectURLs(wwRoot , "styles/" + style.cp_CssHref);
       
        if (background == null || background.equals("")) {
            //delete the background image
            if (fileAccess.exists(backgroundFilename,false))
                    fileAccess.delete(backgroundFilename);
        }
        else {
            // a solaris bug workaround
            // TODO
            //copy the background image to the temp directory.
            fileAccess.copy(background,backgroundFilename);
        }
        //copy the actual css to the temp directory
        fileAccess.copy(css,cssFilename);
    }
   
    public void cleanup() {
        try {
            removeTempDir();
        }
        catch (Exception ex) {
            ex.printStackTrace();
        }
    }
   
    /**
     * creates a temporary directory.
     * @param xmsf
     * @return the url of the new directory.
     * @throws Exception
     */
    private String createTempDir(XMultiServiceFactory xmsf) throws Exception {
        String tempPath = FileAccess.getOfficePath(xmsf,"Temp","", "") ;
        String s = fileAccess.createNewDir(tempPath, "wwiz");
        fileAccess.createNewDir(s,"images");
        return s;
    }
   
    /**
     * deletes/removes the temporary directroy.
     * @throws Exception
     */
    private void removeTempDir() throws Exception {
        fileAccess.delete(tempDir);
    }

}
TOP

Related Classes of com.sun.star.wizards.web.StylePreview

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.