Example usage for org.apache.commons.io FilenameUtils isExtension

List of usage examples for org.apache.commons.io FilenameUtils isExtension

Introduction

In this page you can find the example usage for org.apache.commons.io FilenameUtils isExtension.

Prototype

public static boolean isExtension(String filename, Collection<String> extensions) 

Source Link

Document

Checks whether the extension of the filename is one of those specified.

Usage

From source file:com.opendoorlogistics.studio.scripts.list.ScriptsPanel.java

@Override
public void onDirectoryChanged(File directory) {
    // set new directory
    this.directory = directory;
    PreferencesManager.getSingleton().setDirectory(PrefKey.SCRIPTS_DIR, directory);

    // check to see if watcher is pointing at wrong one
    if (watcher != null && watcher.getDirectory().equals(directory) == false) {
        shutdownDirectoryWatcher();/*from  ww  w.j av a2  s  . com*/
    }

    ScriptNode selected = scriptsTree.getSelectedValue();
    if (isOkDirectory()) {
        scriptsTree.setEnabled(true);
        final File[] files = directory.listFiles(new FileFilter() {

            @Override
            public boolean accept(File pathname) {
                return pathname.isFile()
                        && FilenameUtils.isExtension(pathname.getAbsolutePath(), ScriptConstants.FILE_EXT);
            }
        });

        scriptsTree.setFiles(files);

        // reselect
        if (selected != null) {
            scriptsTree.setSelected(selected);
        }

        // init watcher
        if (watcher == null) {
            watcher = WatchSingleDirectory.launch(directory, new SwingFriendlyDirectoryChangedListener(this));
        }
    } else {
        shutdownDirectoryWatcher();

        // set list to empty
        scriptsTree.setFiles(new File[] {});
        scriptsTree.setEnabled(false);
    }

    updateAppearance();
}

From source file:fr.certu.chouette.gui.command.ImportCommand.java

/**
 * @param session/*  w  w w . j av a 2 s  . c  o  m*/
 * @param save
 * @param savedIds
 * @param manager
 * @param importTask
 * @param format
 * @param inputFile
 * @param suffixes
 * @param values
 * @param importHolder
 * @param validationHolder
 * @throws ChouetteException
 */
private int importZipEntries(EntityManager session, boolean save, List<Long> savedIds,
        INeptuneManager<NeptuneIdentifiedObject> manager, ImportTask importTask, String format,
        String inputFile, List<String> suffixes, List<ParameterValue> values, ReportHolder importHolder,
        ReportHolder validationHolder) throws ChouetteException {
    SimpleParameterValue inputFileParam = new SimpleParameterValue("inputFile");
    values.add(inputFileParam);

    ReportHolder zipHolder = new ReportHolder();
    if (format.equalsIgnoreCase("neptune")) {
        SharedImportedData sharedData = new SharedImportedData();
        UnsharedImportedData unsharedData = new UnsharedImportedData();
        SimpleParameterValue sharedDataParam = new SimpleParameterValue("sharedImportedData");
        sharedDataParam.setObjectValue(sharedData);
        values.add(sharedDataParam);
        SimpleParameterValue unsharedDataParam = new SimpleParameterValue("unsharedImportedData");
        unsharedDataParam.setObjectValue(unsharedData);
        values.add(unsharedDataParam);
    }

    // unzip files , import and save contents
    ZipFile zip = null;
    File temp = null;
    File tempRep = new File(FileUtils.getTempDirectory(), "massImport" + importTask.getId());
    if (!tempRep.exists())
        tempRep.mkdirs();
    File zipFile = new File(inputFile);
    ReportItem zipReportItem = new ExchangeReportItem(ExchangeReportItem.KEY.ZIP_FILE, Report.STATE.OK,
            zipFile.getName());
    try {
        Charset encoding = FileTool.getZipCharset(inputFile);
        if (encoding == null) {
            ReportItem fileErrorItem = new ExchangeReportItem(ExchangeReportItem.KEY.ZIP_ERROR,
                    Report.STATE.ERROR, "unknown encoding");
            zipReportItem.addItem(fileErrorItem);
            importHolder.getReport().addItem(zipReportItem);
            saveImportReports(session, importTask, importHolder.getReport(), validationHolder.getReport());
            return 1;
        }
        zip = new ZipFile(inputFile, encoding);
        zipHolder.setReport(zipReportItem);
        for (Enumeration<? extends ZipEntry> entries = zip.entries(); entries.hasMoreElements();) {
            ZipEntry entry = entries.nextElement();

            if (entry.isDirectory()) {
                File dir = new File(tempRep, entry.getName());
                dir.mkdirs();
                continue;
            }
            if (!FilenameUtils.isExtension(entry.getName().toLowerCase(), suffixes)) {
                ReportItem fileReportItem = new ExchangeReportItem(ExchangeReportItem.KEY.FILE_IGNORED,
                        Report.STATE.OK, FilenameUtils.getName(entry.getName()));
                zipReportItem.addItem(fileReportItem);
                log.info("entry " + entry.getName() + " ignored, unknown extension");
                continue;
            }
            InputStream stream = null;
            try {
                stream = zip.getInputStream(entry);
            } catch (IOException e) {
                ReportItem fileReportItem = new ExchangeReportItem(ExchangeReportItem.KEY.FILE_ERROR,
                        Report.STATE.WARNING, FilenameUtils.getName(entry.getName()));
                zipReportItem.addItem(fileReportItem);
                log.error("entry " + entry.getName() + " cannot read", e);
                continue;
            }
            byte[] bytes = new byte[4096];
            int len = stream.read(bytes);
            temp = new File(tempRep.getAbsolutePath() + "/" + entry.getName());
            FileOutputStream fos = new FileOutputStream(temp);
            while (len > 0) {
                fos.write(bytes, 0, len);
                len = stream.read(bytes);
            }
            fos.close();

            // import
            log.info("import file " + entry.getName());
            inputFileParam.setFilepathValue(temp.getAbsolutePath());
            List<NeptuneIdentifiedObject> beans = manager.doImport(null, format, values, zipHolder,
                    validationHolder);
            if (beans != null && !beans.isEmpty()) {
                // save
                if (save) {
                    saveBeans(manager, beans, savedIds, importHolder.getReport());
                } else {
                    for (NeptuneIdentifiedObject bean : beans) {
                        GuiReportItem item = new GuiReportItem(GuiReportItem.KEY.NO_SAVE, Report.STATE.OK,
                                bean.getName());
                        importHolder.getReport().addItem(item);
                    }

                }
            }
            temp.delete();
        }
        try {
            zip.close();
        } catch (IOException e) {
            log.info("cannot close zip file");
        }
        importHolder.getReport().addItem(zipReportItem);
    } catch (IOException e) {
        log.error("IO error", e);
        ReportItem fileErrorItem = new ExchangeReportItem(ExchangeReportItem.KEY.ZIP_ERROR, Report.STATE.ERROR,
                e.getLocalizedMessage());
        zipReportItem.addItem(fileErrorItem);
        importHolder.getReport().addItem(zipReportItem);
        saveImportReports(session, importTask, importHolder.getReport(), validationHolder.getReport());
        return 1;
    } catch (IllegalArgumentException e) {
        log.error("Format error", e);
        ReportItem fileErrorItem = new ExchangeReportItem(ExchangeReportItem.KEY.ZIP_ERROR, Report.STATE.ERROR,
                e.getLocalizedMessage());
        zipReportItem.addItem(fileErrorItem);
        importHolder.getReport().addItem(zipReportItem);
        saveImportReports(session, importTask, importHolder.getReport(), validationHolder.getReport());
        return 1;
    } finally {
        try {
            FileUtils.deleteDirectory(tempRep);
        } catch (IOException e) {
            log.warn("temporary directory " + tempRep.getAbsolutePath() + " could not be deleted");
        }
    }
    return 0;
}

From source file:edu.ku.brc.specify.config.init.TaxonLoadSetupPanel.java

@Override
public void aboutToLeave() {
    if (preloadChk.isSelected()) {
        TaxonFileDesc tfd = (TaxonFileDesc) fileCBX.getSelectedItem();
        if (tfd != null && FilenameUtils.isExtension(tfd.getFileName().toLowerCase(), XLS)) {
            File txFile = getFileForTaxon(tfd.getFileName(), false);
            if (txFile == null || !txFile.exists()) {
                File userDataFile = new File(UIRegistry.getAppDataDir() + File.separator + tfd.getFileName());
                if (!userDataFile.exists()) {
                    doDownloadTaxonFile(tfd.getFileName(), userDataFile, tfd.getSize());
                }/*  w w  w  . ja v  a 2  s .  com*/
            }
        }
    }
}

From source file:ca.on.oicr.pde.workflows.GATK3WorkflowTest.java

private void validateWorkflow(AbstractWorkflowDataModel w) {

    //check for null string
    for (AbstractJob j : w.getWorkflow().getJobs()) {

        String c = Joiner.on(" ").useForNull("null").join(j.getCommand().getArguments());

        //check for null string
        Assert.assertFalse(c.contains("null"), "Warning: command contains \"null\":\n" + c + "\n");

        // check for missing spaces
        Assert.assertFalse(c.matches("(.*)[^ ]--(.*)"));
    }//from   w  w w  .j  av a2 s  .c  om

    //verify bai is located in the correct provision directory
    Map<String, String> bamFileDirectories = new HashMap<>();
    for (SqwFile f : w.getFiles().values()) {
        if (FilenameUtils.isExtension(f.getProvisionedPath(), "bam")) {
            bamFileDirectories.put(FilenameUtils.removeExtension(f.getSourcePath()),
                    FilenameUtils.getPath(f.getProvisionedPath()));
        }
    }
    for (SqwFile f : w.getFiles().values()) {
        //FIXME: bai.getProvisionedPath != bai.getOutputPath ...
        // at least with seqware 1.1.0, setting output path changes where the output file will be stored,
        // but the commonly used get provisioned path will return the incorrect path to the file
        if (FilenameUtils.isExtension(f.getProvisionedPath(), "bai")) {
            //check bai is in the same provision directory its corresponding bam is in
            Assert.assertEquals(FilenameUtils.getPath(f.getOutputPath()),
                    bamFileDirectories.get(FilenameUtils.removeExtension(f.getSourcePath())));
        }
    }

    //check number of parent nodes
    Set<VariantCaller> vc = new HashSet<>();
    for (String s : StringUtils.split(w.getConfigs().get("variant_caller"), ",")) {
        vc.add(VariantCaller.valueOf(StringUtils.upperCase(s)));
    }
    int parallelism = Math.max(1, StringUtils.split(w.getConfigs().get("chr_sizes"), ",").length);
    int expectedParentNodeCount = parallelism * (vc.contains(HAPLOTYPE_CALLER) ? 1 : 0)
            + parallelism * (vc.contains(UNIFIED_GENOTYPER) ? 2 : 0); //ug indels and ug snvs
    int actualParentNodeCount = 0;
    for (AbstractJob j : w.getWorkflow().getJobs()) {
        if (j.getParents().isEmpty()) {
            actualParentNodeCount++;
        }
    }
    Assert.assertEquals(actualParentNodeCount, expectedParentNodeCount);

    //view output files
    for (AbstractJob j : w.getWorkflow().getJobs()) {
        for (SqwFile f : j.getFiles()) {
            if (f.isOutput()) {
                System.out.println(f.getProvisionedPath());
            }
        }
    }
}

From source file:com.frostwire.android.gui.Librarian.java

/**
 * Given a folder path it'll return all the files contained within it and it's subfolders
 * as a flat set of Files./*from  w w w. jav  a 2s .c  o m*/
 * <p>
 * Non-recursive implementation, up to 20% faster in tests than recursive implementation. :)
 *
 * @param folder
 * @param extensions If you only need certain files filtered by their extensions, use this string array (without the "."). or set to null if you want all files. e.g. ["txt","jpg"] if you only want text files and jpegs.
 * @return The set of files.
 * @author gubatron
 */
private static Collection<File> getAllFolderFiles(File folder, String[] extensions) {
    Set<File> results = new HashSet<>();
    Stack<File> subFolders = new Stack<>();
    File currentFolder = folder;
    while (currentFolder != null && currentFolder.isDirectory() && currentFolder.canRead()) {
        File[] fs = null;
        try {
            fs = currentFolder.listFiles();
        } catch (SecurityException e) {
        }

        if (fs != null && fs.length > 0) {
            for (File f : fs) {
                if (!f.isDirectory()) {
                    if (extensions == null || FilenameUtils.isExtension(f.getName(), extensions)) {
                        results.add(f);
                    }
                } else {
                    subFolders.push(f);
                }
            }
        }

        if (!subFolders.isEmpty()) {
            currentFolder = subFolders.pop();
        } else {
            currentFolder = null;
        }
    }
    return results;
}

From source file:com.app.model.m3.M3UpgradModel.java

public void saveas() {
    File[] f = zio.ToolsFile.fileChoice(SwingUtilities.getRoot(Ressource.mainView.getWindow()), null,
            new ArrayList(Arrays.asList(extension)));
    if (f != null) {
        if (f.length > 0) {
            filePath = f[0].getAbsolutePath();
            if (!FilenameUtils.isExtension(filePath, extension)) {
                filePath += extension[0];
            }/*from  www  .j a v a 2 s  . co  m*/
            setChanged();
            notifyObservers("title");
            save(filePath);
        }
    }
}

From source file:com.iyonger.apm.web.controller.PerfTestController.java

/**
 * Show the given log for the perf test having the given id.
 *
 * @param id       test id/*from  w  w w  .  j a v  a2  s.c  o m*/
 * @param path     path in the log folder
 * @param response response
 */
@RequestMapping(value = "/{id}/show_log/**")
public void showLog(@PathVariable("id") long id, @RemainedPath String path, HttpServletResponse response) {
    getOneWithPermissionCheck(getCurrentUser(), id, false);
    File targetFile = perfTestService.getLogFile(id, path);
    response.reset();
    response.setContentType("text/plain");
    response.setCharacterEncoding("UTF-8");
    FileInputStream fileInputStream = null;
    try {
        fileInputStream = new FileInputStream(targetFile);
        ServletOutputStream outputStream = response.getOutputStream();
        if (FilenameUtils.isExtension(targetFile.getName(), "zip")) {
            // Limit log view to 1MB
            outputStream.println(" Only the last 1MB of a log shows.\n");
            outputStream
                    .println("==========================================================================\n\n");
            LogCompressUtils.decompress(fileInputStream, outputStream, 1 * 1024 * 1204);
        } else {
            IOUtils.copy(fileInputStream, outputStream);
        }
    } catch (Exception e) {
        CoreLogger.LOGGER.error("Error while processing log. {}", targetFile, e);
    } finally {
        IOUtils.closeQuietly(fileInputStream);
    }
}

From source file:edu.ku.brc.specify.config.init.TaxonLoadSetupPanel.java

/**
 * Checks all the textfields to see if they have text
 * @return true of all fields have text/* ww  w .  j a  v  a 2s  .  c o m*/
 */
public boolean isUIValid() {
    if (preloadChk.isSelected() && otherBrw.isEnabled() && !otherTF.isFocusOwner()) {
        String filePath = otherTF.getText();
        if (!filePath.isEmpty() && FilenameUtils.isExtension(filePath.toLowerCase(), XLS)) {
            File f = new File(filePath);
            return f.exists();
        }
        return StringUtils.isEmpty(otherTF.getText());
    }
    return true;
}

From source file:fr.certu.chouette.gui.command.Command.java

/**
 * import command :  ( -fileFormat utilis si l'extension du fichier n'est pas reprsentative du format)
 * -c import -o line -format XXX -inputFile YYYY [-fileFormat TTT] -importId ZZZ ... 
 * @param manager/*from ww  w .j  a  v a2 s. co  m*/
 * @param parameters
 * @return
 */
private int executeImport(INeptuneManager<NeptuneIdentifiedObject> manager,
        Map<String, List<String>> parameters) {
    parameters.put("reportforsave", Arrays.asList(new String[] { "true" }));
    // parameters.put("validate",Arrays.asList(new String[]{"true"})); // force validation if possible

    GuiReport saveReport = new GuiReport("SAVE", Report.STATE.OK);
    Report importReport = null;

    List<Report> reports = new ArrayList<Report>();
    // check if import exists and accept unzip before call
    String format = getSimpleString(parameters, "format");
    String inputFile = getSimpleString(parameters, "inputfile");
    // String fileFormat = getSimpleString(parameters,"fileformat","");
    Long importId = Long.valueOf(getSimpleString(parameters, "importid"));
    if (!importDao.exists(importId)) {
        // error import not found
        logger.error("import not found " + importId);
        return 1;
    }
    GuiImport guiImport = importDao.get(importId);
    logger.info("Export data for export id " + importId);
    logger.info("  type : " + guiImport.getType());
    logger.info("  options : " + guiImport.getOptions());

    Referential referential = referentialDao.get(guiImport.getReferentialId());
    logger.info("Referential " + guiImport.getReferentialId());
    logger.info("  name : " + referential.getName());
    logger.info("  slug : " + referential.getSlug());
    logger.info("  projection type : " + referential.getProjectionType());

    String projectionType = null;
    if (referential.getProjectionType() != null && !referential.getProjectionType().isEmpty()) {
        logger.info("  projection type for export: " + referential.getProjectionType());
        projectionType = referential.getProjectionType();
        parameters.put("srid", Arrays.asList(new String[] { projectionType }));
    }
    // set projection for import (inactive if not set)
    geographicService.switchProjection(projectionType);

    int beanCount = 0;

    boolean zipped = (inputFile.toLowerCase().endsWith(".zip"));

    try {
        List<FormatDescription> formats = manager.getImportFormats(null);
        FormatDescription description = null;

        for (FormatDescription formatDescription : formats) {
            if (formatDescription.getName().equalsIgnoreCase(format)) {
                description = formatDescription;
                break;
            }
        }
        if (description == null) {
            throw new IllegalArgumentException("format " + format + " unavailable");
        }
        List<String> suffixes = new ArrayList<String>();
        for (ParameterDescription desc : description.getParameterDescriptions()) {
            if (desc.getName().equalsIgnoreCase("inputfile")) {
                suffixes = desc.getAllowedExtensions();
                break;
            }
        }
        List<ParameterValue> values = populateParameters(description, parameters, "inputfile", "fileformat");
        if (zipped && description.isUnzipAllowed()) {
            SimpleParameterValue inputFileParam = new SimpleParameterValue("inputFile");
            values.add(inputFileParam);
            // unzip files , import and save contents 
            ZipFile zip = null;
            File temp = null;
            File tempRep = new File(FileUtils.getTempDirectory(), "massImport" + importId);
            if (!tempRep.exists())
                tempRep.mkdirs();
            try {

                zip = new ZipFile(inputFile);
                for (Enumeration<? extends ZipEntry> entries = zip.entries(); entries.hasMoreElements();) {
                    ZipEntry entry = entries.nextElement();

                    if (entry.isDirectory()) {
                        File dir = new File(tempRep, entry.getName());
                        dir.mkdirs();
                        continue;
                    }
                    if (!FilenameUtils.isExtension(entry.getName().toLowerCase(), suffixes)) {
                        logger.error("entry " + entry.getName() + " ignored, unknown extension");
                        continue;
                    }
                    InputStream stream = null;
                    try {
                        stream = zip.getInputStream(entry);
                    } catch (IOException e) {
                        logger.error("entry " + entry.getName() + " cannot read");
                        continue;
                    }
                    byte[] bytes = new byte[4096];
                    int len = stream.read(bytes);
                    temp = new File(tempRep, entry.getName());
                    FileOutputStream fos = new FileOutputStream(temp);
                    while (len > 0) {
                        fos.write(bytes, 0, len);
                        len = stream.read(bytes);
                    }
                    fos.close();

                    // import
                    if (verbose)
                        System.out.println("import file " + entry.getName());
                    logger.info("import file " + entry.getName());
                    inputFileParam.setFilepathValue(temp.getAbsolutePath());
                    ReportHolder holder = new ReportHolder();
                    List<NeptuneIdentifiedObject> beans = manager.doImport(null, format, values, holder);
                    if (holder.getReport() != null) {
                        if (importReport == null) {
                            importReport = holder.getReport();
                            reports.add(importReport);
                        } else {
                            importReport.addAll(holder.getReport().getItems());
                        }

                    }
                    // save
                    if (beans != null && !beans.isEmpty()) {

                        for (NeptuneIdentifiedObject bean : beans) {
                            if (verbose) {
                                System.out.println("save " + bean.getName() + " (" + bean.getObjectId() + ")");
                            }
                            logger.info("save " + bean.getName() + " (" + bean.getObjectId() + ")");
                            // check all stopareas
                            if (bean instanceof Line) {
                                Line line = (Line) bean;
                                checkProjection(line);
                            }
                        }
                        try {
                            manager.saveAll(null, beans, true, true);
                            for (NeptuneIdentifiedObject bean : beans) {
                                GuiReportItem item = new GuiReportItem("SAVE_OK", Report.STATE.OK,
                                        bean.getName());
                                importReport.addItem(item);
                                beanCount++;
                            }
                        } catch (Exception e) {
                            logger.error("fail to save data :" + e.getMessage(), e);
                            for (NeptuneIdentifiedObject bean : beans) {
                                GuiReportItem item = new GuiReportItem("SAVE_ERROR", Report.STATE.ERROR,
                                        bean.getName(), filter_chars(e.getMessage()));
                                importReport.addItem(item);
                            }
                        }
                    }
                    temp.delete();
                }
                try {
                    zip.close();
                } catch (IOException e) {
                    logger.info("cannot close zip file");
                }
            } catch (IOException e) {
                //reports.add(saveReport);
                System.out.println("import failed " + e.getMessage());
                logger.error("import failed " + e.getMessage(), e);
                saveImportReports(importId, format, reports);
                return 1;
            } finally {
                try {
                    FileUtils.deleteDirectory(tempRep);
                } catch (IOException e) {
                    logger.warn("temporary directory " + tempRep.getAbsolutePath() + " could not be deleted");
                }
            }

        } else {
            SimpleParameterValue inputFileParam = new SimpleParameterValue("inputFile");
            inputFileParam.setFilepathValue(inputFile);
            values.add(inputFileParam);
            //            if (!fileFormat.isEmpty())
            //            {
            //               SimpleParameterValue fileFormatParam = new SimpleParameterValue("fileFormat");
            //               fileFormatParam.setStringValue(fileFormat);
            //               values.add(fileFormatParam);
            //            }
            // surround with try catch 
            ReportHolder holder = new ReportHolder();
            List<NeptuneIdentifiedObject> beans = manager.doImport(null, format, values, holder);
            if (holder.getReport() != null) {
                importReport = holder.getReport();
                reports.add(holder.getReport());
            }
            logger.info("imported Lines " + beans.size());

            for (NeptuneIdentifiedObject bean : beans) {
                if (bean instanceof Line) {
                    Line line = (Line) bean;
                    checkProjection(line);
                }
                List<NeptuneIdentifiedObject> oneBean = new ArrayList<NeptuneIdentifiedObject>();
                oneBean.add(bean);
                try {
                    logger.info("save  Line " + bean.getName());
                    manager.saveAll(null, oneBean, true, true);
                    GuiReportItem item = new GuiReportItem("SAVE_OK", Report.STATE.OK, bean.getName());
                    saveReport.addItem(item);
                    beanCount++;
                } catch (Exception e) {
                    logger.error("save failed " + e.getMessage(), e);
                    GuiReportItem item = new GuiReportItem("SAVE_ERROR", Report.STATE.ERROR, bean.getName(),
                            e.getMessage());
                    saveReport.addItem(item);
                }
            }
        }
    } catch (Exception e) {
        // fill report with error
        if (saveReport.getItems() != null && !saveReport.getItems().isEmpty())
            reports.add(saveReport);
        String msg = e.getMessage();
        if (msg == null)
            msg = e.getClass().getName();
        System.out.println("import failed " + msg);
        logger.error("import failed " + msg, e);
        GuiReport errorReport = new GuiReport("IMPORT_ERROR", Report.STATE.ERROR);
        GuiReportItem item = new GuiReportItem("EXCEPTION", Report.STATE.ERROR, msg);
        errorReport.addItem(item);
        reports.add(errorReport);
        saveImportReports(importId, format, reports);

        return 1;
    }
    if (saveReport.getItems() != null && !saveReport.getItems().isEmpty())
        reports.add(saveReport);
    saveImportReports(importId, format, reports);
    return (beanCount == 0 ? 1 : 0);

}

From source file:it.isislab.dmason.util.SystemManagement.Master.thrower.DMasonMaster.java

private void loadSimulation() {

    jComboBoxChooseSimulation.removeAllItems();

    //These are hardcoded simulations
    jComboBoxChooseSimulation//from w  w w.j  av  a  2 s  .  co  m
            .addItem(new SimComboEntry("Flockers", "it.isislab.dmason.sim.app.DFlockers.DFlockers"));
    jComboBoxChooseSimulation
            .addItem(new SimComboEntry("Particles", "it.isislab.dmason.sim.app.DParticles.DParticles"));
    jComboBoxChooseSimulation
            .addItem(new SimComboEntry("Ants Foraging", "it.isislab.dmason.sim.app.DAntsForage.DAntsForage"));
    jComboBoxChooseSimulation
            .addItem(new SimComboEntry("Flockers Thin", "it.isislab.dmason.sim.app.DFlockersThin.DFlockers"));
    jComboBoxChooseSimulation.addItem(
            new SimComboEntry("Particles Thin", "it.isislab.dmason.sim.app.DParticlesThin.DParticles"));
    jComboBoxChooseSimulation.addItem(
            new SimComboEntry("Ants Foraging Thin", "it.isislab.dmason.sim.app.DAntsForageThin.DAntsForage"));
    //jComboBoxChooseSimulation.addItem(new SimComboEntry("Breadth First Search", "it.isislab.dmason.sim.app.DBreadthFirstSearch.Vertexes"));
    jComboBoxChooseSimulation
            .addItem(new SimComboEntry("Persons", "it.isislab.dmason.sim.app.DPersonsScom.DPersons"));

    // Then loads jar simulation from SIMULATION_DIR
    File folder = new File(FTP_HOME + dirSeparator + SIMULATION_DIR);
    File[] listOfFiles = folder.listFiles();
    if (folder != null)
        for (File file : listOfFiles) {
            if (file.isFile() && FilenameUtils.isExtension(file.getName(), "jar"))
                jComboBoxChooseSimulation.addItem(new SimComboEntry(file.getName(), file.getName()));
        }

}