Search in sources :

Example 1 with AttributeFileFilter

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

the class CombineFilesAction method performAction.

@Override
public void performAction(FileSet files) {
    // Filter out files that are not regular files
    FileFilter filter = new AttributeFileFilter(FileAttribute.FILE);
    filter.filter(files);
    if (files.size() == 0)
        return;
    AbstractFile destFolder = mainFrame.getInactivePanel().getCurrentFolder();
    new CombineFilesDialog(mainFrame, files, destFolder).showDialog();
}
Also used : AbstractFile(com.mucommander.commons.file.AbstractFile) CombineFilesDialog(com.mucommander.ui.dialog.file.CombineFilesDialog) AttributeFileFilter(com.mucommander.commons.file.filter.AttributeFileFilter) AttributeFileFilter(com.mucommander.commons.file.filter.AttributeFileFilter) FileFilter(com.mucommander.commons.file.filter.FileFilter)

Example 2 with AttributeFileFilter

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

the class CommandManager method buildFilter.

// - Associations building -------------------------------------------------
// -------------------------------------------------------------------------
private static void buildFilter(FileFilter filter, AssociationBuilder builder) throws CommandException {
    // Filter on the file type.
    if (filter instanceof AttributeFileFilter) {
        AttributeFileFilter attributeFilter;
        attributeFilter = (AttributeFileFilter) filter;
        switch(attributeFilter.getAttribute()) {
            case HIDDEN:
                builder.setIsHidden(!attributeFilter.isInverted());
                break;
            case SYMLINK:
                builder.setIsSymlink(!attributeFilter.isInverted());
                break;
        }
    } else if (filter instanceof PermissionsFileFilter) {
        PermissionsFileFilter permissionFilter = (PermissionsFileFilter) filter;
        switch(permissionFilter.getPermission()) {
            case READ:
                builder.setIsReadable(permissionFilter.getFilter());
                break;
            case WRITE:
                builder.setIsWritable(permissionFilter.getFilter());
                break;
            case EXECUTE:
                builder.setIsExecutable(permissionFilter.getFilter());
                break;
        }
    } else if (filter instanceof RegexpFilenameFilter) {
        RegexpFilenameFilter regexpFilter = (RegexpFilenameFilter) filter;
        builder.setMask(regexpFilter.getRegularExpression(), regexpFilter.isCaseSensitive());
    }
}
Also used : AttributeFileFilter(com.mucommander.commons.file.filter.AttributeFileFilter) RegexpFilenameFilter(com.mucommander.commons.file.filter.RegexpFilenameFilter)

Example 3 with AttributeFileFilter

use of com.mucommander.commons.file.filter.AttributeFileFilter 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 4 with AttributeFileFilter

use of com.mucommander.commons.file.filter.AttributeFileFilter 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)

Aggregations

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