context.ui.misc.FileHandler.java Source code

Java tutorial

Introduction

Here is the source code for context.ui.misc.FileHandler.java

Source

/*
     
 * Copyright (c) 2015 University of Illinois Board of Trustees, All rights reserved.   
 * Developed at GSLIS/ the iSchool, by Dr. Jana Diesner, Amirhossein Aleyasen,    
 * Chieh-Li Chin, Shubhanshu Mishra, Kiumars Soltani, and Liang Tao.     
 *   
 * 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 2 of the License, or 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 for   
 * more details.   
 *    
 * You should have received a copy of the GNU General Public License along with   
 * this program; if not, see <http://www.gnu.org/licenses>.   
 *
     
     
 */
package context.ui.misc;

import context.app.AppConfig;
import context.app.main.ContextFXController;
import context.core.entity.FileData;
import context.core.entity.FileList;
import context.core.util.JavaIO;
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.stage.DirectoryChooser;
import javafx.stage.FileChooser;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.openide.util.Exceptions;

/**
 *
 * @author Amirhossein Aleyasen <aleyase2@illinois.edu>
 */
public class FileHandler {

    private static String lastDirectoryLocation;
    private static String lastFileLocation;

    /**
     *
     * @return
     */
    public static String getLastDirectoryLocation() {
        if (lastDirectoryLocation == null) {
            return AppConfig.defaultOpenLocation;
        }
        return lastDirectoryLocation;
    }

    /**
     *
     * @return
     */
    public static String getLastFileLocation() {
        if (lastFileLocation == null) {
            return AppConfig.defaultOpenLocation;
        }
        return lastFileLocation;
    }

    /**
     *
     * @param lastDirectoryLocation
     */
    public static void setLastDirectoryLocation(String lastDirectoryLocation) {
        FileHandler.lastDirectoryLocation = lastDirectoryLocation;
    }

    /**
     *
     * @param lastFileLocation
     */
    public static void setLastFileLocation(String lastFileLocation) {
        FileHandler.lastFileLocation = lastFileLocation;
    }

    /**
     *
     * @param message
     * @return
     */
    public static FileList openDirectoryChooser(String message) {
        DirectoryChooser dirChooser = new DirectoryChooser();
        dirChooser.setTitle(message);

        dirChooser.setInitialDirectory(new File(getLastDirectoryLocation()));
        final File selectedDirectory = dirChooser.showDialog(ContextFXController.getStage());
        if (selectedDirectory != null) {
            selectedDirectory.getAbsolutePath();
            //            File[] files = selectedDirectory.listFiles();
            FileList dir = new FileList(new SimpleStringProperty(selectedDirectory.getName()), selectedDirectory);
            setLastDirectoryLocation(selectedDirectory.getAbsolutePath());
            return dir;
        } else {
            System.out.println("Selected Directory is Null");
            return null;
        }
    }

    /**
     *
     * @param message
     * @return
     */
    public static FileData openFileChooser(String message) {
        FileChooser fileChooser = new FileChooser();
        fileChooser.setTitle(message);

        fileChooser.setInitialDirectory(new File(getLastFileLocation()));
        final File selectedFile = fileChooser.showOpenDialog(ContextFXController.getStage());
        if (selectedFile != null) {
            selectedFile.getAbsolutePath();
            FileData file = new FileData(new SimpleStringProperty(selectedFile.getName()), selectedFile);
            setLastFileLocation(selectedFile.getParent());
            return file;
        } else {
            System.out.println("Selected File is Null");
            return null;
        }
    }

    /**
     *
     * @param path
     * @return
     */
    public static String getFileName(String path) {
        return FilenameUtils.getBaseName(path);
    }

    /**
     *
     * @param path
     * @return
     */
    public static StringProperty getFileNameProperty(String path) {
        return new SimpleStringProperty(getFileName(path));
    }

    /**
     *
     * @param args
     */
    public static void main(String[] args) {
        String test = "C:\\Data\\Dropbox\\Development\\Java-ws\\Context-FX\\data\\Corpus";
        System.out.println(getFileName(test));
    }

    /**
     *
     * @param path
     */
    public static void openExternalDirectory(String path) {
        //        try {
        //            Desktop.getDesktop().open(new File(path));
        JavaIO.openDirectory(new File(path));
        //        } catch (IOException ex) {
        //            Exceptions.printStackTrace(ex);
        //        }
    }

    /**
     *
     * @param path
     * @return
     */
    public static String getDirOrParentDir(String path) {
        File file = new File(path);
        if (!file.exists()) {
            System.out.println("The path not exist: " + path);
            return path;
        } else if (file.isDirectory()) {
            return path;
        } else if (file.isFile()) {
            return FilenameUtils.getFullPath(path);
        }
        return null;
    }

    /**
     *
     * @param url
     */
    public static void openWebpage(String url) {
        try {
            URI uri = new URI(url);
            Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null;
            if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) {
                desktop.browse(uri);
            }
        } catch (URISyntaxException ex) {
            Exceptions.printStackTrace(ex);
        } catch (IOException ex) {
            Exceptions.printStackTrace(ex);
        }
    }

    /**
     *
     * @param subdirectory
     */
    public static void createDirectory(String subdirectory) {
        try {
            FileUtils.forceMkdir(new File(subdirectory));
        } catch (IOException ex) {
            Exceptions.printStackTrace(ex);
        }
    }
}