///*
// *  Copyright (C) 2014  Alfons Wirtz
// *   website www.freerouting.net
// *
// *   This program is free software: you can redistribute it and/or modify
// *   it under the terms of the GNU General Public License as published by
// *   the Free Software Foundation, either version 3 of the License, or
// *   (at your option) any later version.
// *
// *   This program 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 General Public License at <http://www.gnu.org/licenses/>
// *   for more details.
// *
// * WebStart.java
// *
// * Created on 4. Dezember 2006, 07:01
// *
// */
//
//package eu.mihosoft.freerouting.gui;
//
///**
// * Function used for Java Websrart.
// * Some put to a separate class to avoid runtime undefined in offline applications.
// * @author Alfons Wirtz
// */
//public class WebStart
//{
//   /*
//    * Separate function to avoid runtime undefines in an offline application.
//    */
//    public static java.net.URL get_code_base()
//    {
//        try
//        {
//            javax.jnlp.BasicService basic_service =
//                    (javax.jnlp.BasicService)javax.jnlp.ServiceManager.lookup("javax.jnlp.BasicService");
//            return basic_service.getCodeBase();
//        }
//        catch(Exception e)
//        {
//            return null;
//        }
//    }
//
//
//    public static javax.jnlp.FileContents save_dialog(String p_parent, String[] p_file_extensions,
//            java.io.InputStream p_input_stream,  String p_name)
//    {
//        try
//        {
//            javax.jnlp.FileSaveService file_save_service =
//                    (javax.jnlp.FileSaveService)javax.jnlp.ServiceManager.lookup("javax.jnlp.FileSaveService");
//            javax.jnlp.FileContents curr_file_contents =
//                    file_save_service.saveFileDialog(p_parent, p_file_extensions, p_input_stream, p_name);
//            return curr_file_contents;
//        }
//        catch (Exception e)
//        {
//            return null;
//        }
//    }
//
//    /**
//     * Looks up a file with the input name in the Cookie file system of Java Web Start.
//     * Returns an input stream from that file or null, if no such file was found.
//     */
//    public static java.io.InputStream get_file_input_stream(String p_file_name)
//    {
//        java.net.URL code_base = WebStart.get_code_base();
//        if (code_base != null)
//        {
//            try
//            {
//                javax.jnlp.PersistenceService persistence_service =
//                        (javax.jnlp.PersistenceService)javax.jnlp.ServiceManager.lookup("javax.jnlp.PersistenceService");
//                String [] muffins =  persistence_service.getNames(code_base);
//                for (int i = 0; i < muffins.length; ++i)
//                {
//                    if (muffins[i].equals(p_file_name))
//                    {
//                        java.net.URL defaults_file_url = new java.net.URL(code_base.toString() + muffins[i]);
//                        javax.jnlp.FileContents file_contents = persistence_service.get(defaults_file_url);
//                        return file_contents.getInputStream();
//                    }
//                }
//            }
//            catch(Exception e)
//            {
//
//            }
//        }
//        return null;
//    }
//
//    /**
//     * Looks up a file with the input name in the Cookie file system of Java Web Start.
//     * This file will be overwritten.
//     * Creates a new file, if no such file exists yet.
//     */
//    public static java.io.OutputStream get_file_output_stream(String p_file_name)
//    {
//        java.io.OutputStream output_stream = null;
//        String [] muffins = null;
//        javax.jnlp.PersistenceService persistence_service = null;
//        java.net.URL code_base = get_code_base();
//        if (code_base != null)
//        {
//            try
//            {
//                persistence_service =
//                        (javax.jnlp.PersistenceService)javax.jnlp.ServiceManager.lookup("javax.jnlp.PersistenceService");
//                muffins =  persistence_service.getNames(code_base);
//            }
//            catch(Exception e)
//            {
//                muffins = null;
//            }
//        }
//        try
//        {
//            boolean file_exists = false;
//            java.net.URL file_url = null;
//            if (muffins != null)
//            {
//                for (int i = 0; i < muffins.length; ++i)
//                {
//                    if (muffins[i].equals(p_file_name))
//                    {
//                        file_url = new java.net.URL(code_base.toString() + muffins[i]);
//                        file_exists = true;
//                    }
//                }
//            }
//            if (!file_exists)
//            {
//                file_url = new java.net.URL(code_base.toString() + p_file_name);
//                long act_size = persistence_service.create(file_url, MAX_FILE_SIZE);
//                if (act_size < MAX_FILE_SIZE)
//                {
//                    return null;
//                }
//            }
//            javax.jnlp.FileContents file_contents = persistence_service.get(file_url);
//            output_stream = file_contents.getOutputStream(true);
//
//        }
//        catch(Exception e)
//        {
//            return null;
//        }
//        return output_stream;
//    }
//
//    /*
//     * Deletes all files ending with p_file_ending from the cookie file system.
//     * Return false, if no file to delete was found
//     * If p_confirm_message != null, the user is asked to confirm the delete action.
//     */
//    public static boolean delete_files(String p_file_ending, String p_confirm_messsage)
//    {
//        boolean file_deleted = false;
//        try
//        {
//            java.net.URL code_base = WebStart.get_code_base();
//            if (code_base == null)
//            {
//                return false;
//            }
//            javax.jnlp.PersistenceService persistence_service =
//                    (javax.jnlp.PersistenceService)javax.jnlp.ServiceManager.lookup("javax.jnlp.PersistenceService");
//            String [] muffins =  persistence_service.getNames(code_base);
//            java.net.URL file_url = null;
//            if (muffins != null)
//            {
//                for (int i = 0; i < muffins.length; ++i)
//                {
//                    if (muffins[i].endsWith(p_file_ending))
//                    {
//                        file_url = new java.net.URL(code_base.toString() + muffins[i]);
//                        if (p_confirm_messsage == null  || WindowMessage.confirm(p_confirm_messsage))
//                        {
//                            persistence_service.delete(file_url);
//                            file_deleted = true;
//                        }
//                    }
//                }
//            }
//        }
//        catch(Exception e)
//        {
//            file_deleted = false;
//        }
//        return file_deleted;
//    }
//
//    private static final long MAX_FILE_SIZE = 100000;
//}
