Package org.tmatesoft.sqljet.browser

Source Code of org.tmatesoft.sqljet.browser.DBBrowserConfig

/**
* DBBrowserConfig.java
* Copyright (C) 2009-2010 TMate Software Ltd
*
* 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; version 2 of the License.
*
* 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 for more details.
*
* For information on how to redistribute this software under
* the terms of a license other than GNU General Public License
* contact TMate Software at support@sqljet.com
*/
package org.tmatesoft.sqljet.browser;

import java.awt.Window;
import java.io.File;
import java.util.LinkedList;
import java.util.List;
import java.util.prefs.BackingStoreException;
import java.util.prefs.Preferences;

/**
* @author TMate Software Ltd.
* @author Sergey Scherbina (sergey.scherbina@gmail.com)
*
*/
public class DBBrowserConfig {
   
    public static File getLastDirectory() {
        try {
            Preferences preferences = Preferences.userNodeForPackage(DBBrowserConfig.class);
            if (preferences != null) {
                try {
                    preferences.sync();
                } catch (BackingStoreException e) {
                }
                String path = preferences.get("directory", null);
                if (path != null) {
                    return new File(path);
                }
            }
        } catch (SecurityException e) {
            //
        }
        return null;
    }
   
    public static void setLastDirectory(File directory) {
        try {
            Preferences preferences = Preferences.userNodeForPackage(DBBrowserConfig.class);
            if (preferences != null && directory != null) {
                preferences.put("directory", directory.getAbsolutePath());
                try {
                    preferences.flush();
                } catch (BackingStoreException e) {
                }
            }
        } catch (SecurityException e) {
            //
        }
    }

    public static void saveWindowSize(String windowName, Window w) {
        try {
            Preferences preferences = Preferences.userNodeForPackage(DBBrowserConfig.class);
            if (preferences != null && w != null) {
                preferences.put("window." + windowName + ".x", w.getLocation().x + "");
                preferences.put("window." + windowName + ".y", w.getLocation().y + "");
                preferences.put("window." + windowName + ".width", w.getSize().width + "");
                preferences.put("window." + windowName + ".height", w.getSize().height + "");
                try {
                    preferences.flush();
                } catch (BackingStoreException e) {
                }
            }
        } catch (SecurityException e) {
            //
        }
    }

    public static void loadWindowSize(String windowName, Window window) {
        try {
            Preferences preferences = Preferences.userNodeForPackage(DBBrowserConfig.class);
            if (preferences != null && window != null) {
                try {
                    preferences.sync();
                } catch (BackingStoreException e) {
                }
                int x = preferences.getInt("window." + windowName + ".x", -1);
                int y = preferences.getInt("window." + windowName + ".y", -1);
                int w = preferences.getInt("window." + windowName + ".width", -1);
                int h = preferences.getInt("window." + windowName + ".height", -1);
                if (x >= 0 && w > 0) {
                    window.setSize(w, h);
                    window.setLocation(x, y);
                } else {
                    window.pack();
                }
            }
        } catch (SecurityException e) {
            window.pack();
        }
       
    }

    public static void setRecentDBs(List<File> paths) {
        try {
            Preferences preferences = Preferences.userNodeForPackage(DBBrowserConfig.class);
            if (preferences != null && paths != null) {
                int i = 0;
                for (File path : paths) {
                    preferences.put("recent." + i, path.getAbsolutePath());
                    i++;
                }
                try {
                    preferences.flush();
                } catch (BackingStoreException e) {
                }
            }
        } catch (SecurityException e) {
        }
    }

    public static List<File> getRecentDBs() {
        LinkedList<File> list = new LinkedList<File>();
        try {
            Preferences preferences = Preferences.userNodeForPackage(DBBrowserConfig.class);
            if (preferences != null) {
                try {
                    preferences.sync();
                } catch (BackingStoreException e) {
                }
                for (int i = 0; i < 5; i++) {
                    String path = preferences.get("recent." + i, null);
                    if (path == null) {
                        break;
                    }
                    list.add(new File(path));
                }
            }
        } catch (SecurityException e) {
        }
        return list;
    }
}
TOP

Related Classes of org.tmatesoft.sqljet.browser.DBBrowserConfig

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.