Search in sources :

Example 1 with AndFileFilter

use of com.mucommander.commons.file.filter.AndFileFilter in project mucommander by mucommander.

the class CombineFilesDialog method searchParts.

/**
 * Searches for parts of a file.
 *
 * @param part1 first part of a file
 */
private void searchParts(AbstractFile part1) {
    AbstractFile parent = part1.getParent();
    if (parent == null) {
        return;
    }
    String ext = part1.getExtension();
    int firstIndex;
    try {
        firstIndex = Integer.parseInt(ext);
    } catch (NumberFormatException e) {
        return;
    }
    AndFileFilter filter = new AndFileFilter(new StartsWithFilenameFilter(part1.getNameWithoutExtension(), false), new AttributeFileFilter(FileAttribute.FILE), new EqualsFilenameFilter(part1.getName(), false, true));
    try {
        AbstractFile[] otherParts = parent.ls(filter);
        for (AbstractFile otherPart : otherParts) {
            String ext2 = otherPart.getExtension();
            try {
                int partIdx = Integer.parseInt(ext2);
                if (partIdx > firstIndex)
                    files.add(otherPart);
            } catch (NumberFormatException e) {
            // nothing
            }
        }
    } catch (IOException e) {
        LOGGER.debug("Caught exception", e);
    }
    setFiles(files);
}
Also used : AbstractFile(com.mucommander.commons.file.AbstractFile) AndFileFilter(com.mucommander.commons.file.filter.AndFileFilter) AttributeFileFilter(com.mucommander.commons.file.filter.AttributeFileFilter) EqualsFilenameFilter(com.mucommander.commons.file.filter.EqualsFilenameFilter) StartsWithFilenameFilter(com.mucommander.commons.file.filter.StartsWithFilenameFilter) IOException(java.io.IOException)

Example 2 with AndFileFilter

use of com.mucommander.commons.file.filter.AndFileFilter in project mucommander by mucommander.

the class FileSelectionDialog method actionPerformed.

// //////////////////////////
// ActionListener methods //
// //////////////////////////
public void actionPerformed(ActionEvent e) {
    Object source = e.getSource();
    FileTable activeTable = mainFrame.getActiveTable();
    // Action coming from the selection dialog
    if ((source == okButton || source == selectionField)) {
        // Save values for next time this dialog is invoked
        caseSensitive = caseSensitiveCheckBox.isSelected();
        includeFolders = includeFoldersCheckBox.isSelected();
        comparison = comparisonComboBox.getSelectedIndex();
        String testString;
        keywordString = selectionField.getText();
        if (comparison != REGEXP) {
            // Remove '*' characters
            testString = keywordString.replace("*", "");
        } else {
            testString = keywordString;
        }
        // Instantiate the main file filter
        FileFilter filter;
        switch(comparison) {
            case CONTAINS:
                filter = new ContainsFilenameFilter(testString, caseSensitive);
                break;
            case STARTS_WITH:
                filter = new StartsWithFilenameFilter(testString, caseSensitive);
                break;
            case ENDS_WIDTH:
                filter = new EndsWithFilenameFilter(testString, caseSensitive);
                break;
            case IS:
                filter = new EqualsFilenameFilter(testString, caseSensitive);
                break;
            case REGEXP:
            default:
                try {
                    filter = new RegexpFilenameFilter(testString, caseSensitive);
                } catch (PatternSyntaxException ex) {
                    // Todo: let the user know the regexp is invalid
                    LOGGER.debug("Invalid regexp", ex);
                    // This filter does match any file
                    filter = new PassThroughFileFilter(false);
                }
                break;
        }
        // If folders are excluded, add a regular file filter and chain it with an AndFileFilter
        if (!includeFolders) {
            filter = new AndFileFilter(new AttributeFileFilter(FileAttribute.FILE), filter);
        }
        // Mark/unmark the files using the filter
        activeTable.getFileTableModel().setFilesMarked(filter, addToSelection);
        // Notify registered listeners that currently marked files have changed on this FileTable
        activeTable.fireMarkedFilesChangedEvent();
        activeTable.repaint();
    }
    dispose();
}
Also used : AttributeFileFilter(com.mucommander.commons.file.filter.AttributeFileFilter) FileTable(com.mucommander.ui.main.table.FileTable) EndsWithFilenameFilter(com.mucommander.commons.file.filter.EndsWithFilenameFilter) ContainsFilenameFilter(com.mucommander.commons.file.filter.ContainsFilenameFilter) AndFileFilter(com.mucommander.commons.file.filter.AndFileFilter) PassThroughFileFilter(com.mucommander.commons.file.filter.PassThroughFileFilter) EqualsFilenameFilter(com.mucommander.commons.file.filter.EqualsFilenameFilter) StartsWithFilenameFilter(com.mucommander.commons.file.filter.StartsWithFilenameFilter) RegexpFilenameFilter(com.mucommander.commons.file.filter.RegexpFilenameFilter) AndFileFilter(com.mucommander.commons.file.filter.AndFileFilter) PassThroughFileFilter(com.mucommander.commons.file.filter.PassThroughFileFilter) AttributeFileFilter(com.mucommander.commons.file.filter.AttributeFileFilter) FileFilter(com.mucommander.commons.file.filter.FileFilter) PatternSyntaxException(java.util.regex.PatternSyntaxException)

Example 3 with AndFileFilter

use of com.mucommander.commons.file.filter.AndFileFilter in project mucommander by mucommander.

the class AssociationFactory method startAssociation.

public void startAssociation(String command) {
    filter = new AndFileFilter();
    this.command = command;
}
Also used : AndFileFilter(com.mucommander.commons.file.filter.AndFileFilter)

Aggregations

AndFileFilter (com.mucommander.commons.file.filter.AndFileFilter)3 AttributeFileFilter (com.mucommander.commons.file.filter.AttributeFileFilter)2 EqualsFilenameFilter (com.mucommander.commons.file.filter.EqualsFilenameFilter)2 StartsWithFilenameFilter (com.mucommander.commons.file.filter.StartsWithFilenameFilter)2 AbstractFile (com.mucommander.commons.file.AbstractFile)1 ContainsFilenameFilter (com.mucommander.commons.file.filter.ContainsFilenameFilter)1 EndsWithFilenameFilter (com.mucommander.commons.file.filter.EndsWithFilenameFilter)1 FileFilter (com.mucommander.commons.file.filter.FileFilter)1 PassThroughFileFilter (com.mucommander.commons.file.filter.PassThroughFileFilter)1 RegexpFilenameFilter (com.mucommander.commons.file.filter.RegexpFilenameFilter)1 FileTable (com.mucommander.ui.main.table.FileTable)1 IOException (java.io.IOException)1 PatternSyntaxException (java.util.regex.PatternSyntaxException)1