Skip to content

Commit

Permalink
Version 1.4
Browse files Browse the repository at this point in the history
Refactored code.
Minor visual adjustments.
Fixed bugs with files that doesn't have an extension.
  • Loading branch information
Usbac committed Oct 31, 2018
1 parent 47deeda commit d2b0a76
Show file tree
Hide file tree
Showing 29 changed files with 235 additions and 512 deletions.
7 changes: 7 additions & 0 deletions nbactions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,12 @@
<runfx.args>-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address} -Dglass.disableGrab=true -jar "${project.build.directory}/${project.build.finalName}.jar"</runfx.args>
<jpda.listen>true</jpda.listen>
</properties>
</action>
<action>
<actionName>CUSTOM-Create Installer</actionName>
<displayName>Create Installer</displayName>
<goals>
<goal>nbm:build-installers</goal>
</goals>
</action>
</actions>
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<groupId>usbac</groupId>
<artifactId>Namely</artifactId>
<version>1.2</version>
<version>1.4</version>
<packaging>jar</packaging>

<name>Namely</name>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,37 @@

import java.io.File;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.ZoneOffset;
import java.time.*;
import javafx.scene.control.DatePicker;

public class ListController {
private final MainController main;
import javafx.stage.DirectoryChooser;

public final class Controller {

DirectoryChooser directoryChooser;
File directory;
int foldersNumber, filesNumber;
private final View view;
private final SimpleDateFormat date;
protected boolean showFile, isSpaceInChangeOrder, recursive;
protected int casesOptionSelected;
private DateFilter dateFilter;
private SizeFilter sizeFilter;
protected boolean showFile, isSpaceInChangeOrder, recursive;
protected int casesOptionSelected;

private enum DateFilter {
OLDER,
NEWER
}

protected enum SizeFilter {
private enum SizeFilter {
SMALLER,
BIGGER
}


public ListController(MainController main) {
this.main = main;
public Controller(View view) {
this.view = view;
date = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
directoryChooser = new DirectoryChooser();
recursive = true;
}

Expand All @@ -45,84 +50,95 @@ public void setSizeFilter(String size) {


public void updateListView(boolean preview) {
if (main.directory != null) {
main.folderPath.setText(main.directory.getPath());
}
main.folder = new File(main.folderPath.getText());
if (main.folder.isDirectory()) {
main.table.getItems().clear();
main.filesNumber = 0;
main.foldersNumber = 0;
ListFiles(main.folder.listFiles(), preview);
main.countItemsQuantity();
if (directory != null && directory.isDirectory()) {
view.folderPath.setText(directory.getPath());
clearFilesNumber();
addFilesToList(directory.listFiles(), preview);
countItemsQuantity();
}
}


public void ListFiles(File[] listOfFiles, boolean preview) {
public void addFilesToList(File[] listOfFiles, boolean preview) {
for (File file: listOfFiles) {
if (file.isFile()) {
showFile = true;
String name = preview?
getFilePreview(file, false).getName():file.getName();
SingleFile newfile = new SingleFile(name,
String name = preview? getFilePreview(file, false).getName():file.getName();
SingleFile newFile = new SingleFile(name,
date.format(file.lastModified()),
FileFunctions.getSizeInKb(file)+" kB");
if (showFile) {
main.table.getItems().add(newfile);
main.filesNumber++;
view.table.getItems().add(newFile);
filesNumber++;
}
} else if (recursive) {
main.foldersNumber++;
if (file.listFiles()!=null)
ListFiles(file.listFiles(), preview);
foldersNumber++;
if (file.listFiles() != null)
addFilesToList(file.listFiles(), preview);
}
}
}


public File getFilePreview(File aux, boolean deleteFile) {
String regex = main.regexInput.getText();
int selectedTab = main.tabPane.getSelectionModel().getSelectedIndex();
if ((!regex.isEmpty() && FileFunctions.getNameNoExtension(aux)!=null && FileFunctions.getNameNoExtension(aux).matches(regex)) ||
(regex.isEmpty() && FileFunctions.getNameNoExtension(aux)!=null) || selectedTab == 4)
public File getFilePreview(File file, boolean deleteFile) {
String regex = view.regexInput.getText();
int selectedTab = view.tabPane.getSelectionModel().getSelectedIndex();
if ((!regex.isEmpty() && FileFunctions.getNameNoExtension(file)!=null && FileFunctions.getNameNoExtension(file).matches(regex)) ||
(regex.isEmpty() && FileFunctions.getNameNoExtension(file)!=null) || selectedTab == 4)
switch (selectedTab) {
case 0:
return FileFunctions.inverse(aux);
return FileFunctions.inverse(file);
case 1:
char charSeparator = (main.separator.getText().length() > 0)?
main.separator.getText().charAt(0): ' ';
return FileFunctions.changeOrder(aux, charSeparator, isSpaceInChangeOrder);
char charSeparator = (view.separator.getText().length() > 0)?
view.separator.getText().charAt(0): ' ';
return FileFunctions.changeOrder(file, charSeparator, isSpaceInChangeOrder);
case 2:
return FileFunctions.cases(aux, casesOptionSelected);
return FileFunctions.cases(file, casesOptionSelected);
case 3:
return FileFunctions.replace(aux, main.renameOriginal.getText(), main.renameReplacement.getText());
return FileFunctions.replace(file, view.renameOriginal.getText(), view.renameReplacement.getText());
case 4:
showFile = deleteFile(aux, deleteFile);
showFile = deleteFile(file, deleteFile);
}
return aux;
return file;
}


public void applyChangesToFiles(File[] listOfFiles) {
for (File file: listOfFiles)
if (file.isFile())
file.renameTo(getFilePreview(file, true));
else if (recursive)
applyChangesToFiles(file.listFiles());
}


public void clearFilesNumber() {
view.table.getItems().clear();
filesNumber = 0;
foldersNumber = 0;
view.itemsQuantity.setText("No files...");
}


public boolean deleteFile(File file, boolean delete) {
boolean fileMatchesFields = true;
String regex = main.regexInput.getText();
String regex = view.regexInput.getText();
String fileExtension = FileFunctions.getExtension(file.getName())
.substring(1);
float fileSize = Float.parseFloat(FileFunctions.getSizeInKb(file));
long fileModified = file.lastModified();
//If file doesn't matches the indicated extension
if (!main.extensionField.getText().isEmpty() && !main.extensionField.getText().matches(fileExtension))
if (!view.extensionField.getText().isEmpty() && !view.extensionField.getText().matches(fileExtension))
fileMatchesFields = false;
//If file doesn't matches Date filter (Older or Newer than the indicated date)
if (main.datePicker.getValue()!=null && !main.datePicker.getValue().toString().isEmpty()) {
if ((dateFilter == DateFilter.NEWER && fileModified < getDateInMilli(main.datePicker)) ||
(dateFilter == DateFilter.OLDER && fileModified > getDateInMilli(main.datePicker)))
if (view.datePicker.getValue()!=null && !view.datePicker.getValue().toString().isEmpty()) {
if ((dateFilter == DateFilter.NEWER && fileModified < getDateInMilli(view.datePicker)) ||
(dateFilter == DateFilter.OLDER && fileModified > getDateInMilli(view.datePicker)))
fileMatchesFields = false;
}
//If file doesn't matches Size filter (Smaller or Bigger than the indicated size)
if (!main.sizeField.getText().isEmpty() && main.sizeField.getText().chars().allMatch(Character::isDigit)) {
float comparativeSize = Float.parseFloat(main.sizeField.getText());
if (!view.sizeField.getText().isEmpty() && view.sizeField.getText().chars().allMatch(Character::isDigit)) {
float comparativeSize = Float.parseFloat(view.sizeField.getText());
if ((sizeFilter == SizeFilter.SMALLER && fileSize > comparativeSize) ||
(sizeFilter == SizeFilter.BIGGER && fileSize < comparativeSize))
fileMatchesFields = false;
Expand All @@ -143,4 +159,16 @@ public long getDateInMilli(DatePicker d) {
.toInstant()
.toEpochMilli();
}


public void countItemsQuantity() {
if (filesNumber > 0) {
view.itemsQuantity.setText(String.valueOf(filesNumber) + " Files");
if (foldersNumber > 0)
view.itemsQuantity.setText(view.itemsQuantity.getText() + ", " + String.valueOf(foldersNumber) + " Folders");
} else {
view.itemsQuantity.setText("No files...");
}
}

}
Loading

0 comments on commit d2b0a76

Please sign in to comment.