Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions src/File.java
Original file line number Diff line number Diff line change
@@ -1,23 +1,31 @@
import java.util.ArrayList;
import java.util.Date;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class File {
private String name;
private String content;
private double size;
private Date creationDate;
private LocalDateTime creationDate;
private Date modificationDate;
private ArrayList<Integer> storedBlocks;

public File(String name) {
this.name = name;
this.content = "";
this.size = 0;
this.creationDate = new Date();
this.creationDate = LocalDateTime.now();
this.modificationDate = new Date();
this.storedBlocks = new ArrayList<>();
}

public String getcreateDate() {//changed the data to datetimeformatter to sim dates on windows
return creationDate.format(DateTimeFormatter.ofPattern("MM-dd-yyyy HH:mm:ss"));
}
public String getmodDate() {
return modificationDate.toString();
}
public String getName() {
return name;
}
Expand Down
50 changes: 46 additions & 4 deletions src/FileManagementUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,18 @@ public class FileManagementUI extends JFrame {
private FileSystem fileSystem;
private DefaultListModel<String> fileListModel;
private JList<String> fileList;
private DefaultListModel<String> fileDateModel;
private JList<String> fileDateList;
private DefaultListModel<String> fileSizeModel;
private JList<String> fileSizeList;
private DefaultListModel<String> openFilesModel;
private JList<String> openFilesList;

public FileManagementUI() {
fileSystem = new FileSystem();

setTitle("File Management System");
setSize(700, 500);
setSize(1000, 500);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new BorderLayout(10, 10));

Expand All @@ -31,11 +35,31 @@ public FileManagementUI() {
JPanel leftPanel = new JPanel(new BorderLayout(5, 5));
leftPanel.setBorder(BorderFactory.createTitledBorder("All Files"));

//JPanel midPanel = new JPanel(new BorderLayout(5, 5));
JPanel midPanel = new JPanel(new GridLayout(1,2));//used a gird for put two scroll panes
// midPanel.setBorder(BorderFactory.createTitledBorder("Creation Date"));
fileDateModel = new DefaultListModel<>();
fileDateList = new JList<>(fileDateModel);
fileDateList.setFont(new Font("Monospaced", Font.PLAIN, 14));
JScrollPane dateScroll = new JScrollPane(fileDateList);
fileSizeModel = new DefaultListModel<>();
fileSizeList = new JList<>(fileSizeModel);
fileSizeList.setFont(new Font("Monospaced", Font.PLAIN, 14));
JScrollPane sizeScroll = new JScrollPane(fileSizeList);
dateScroll.setBorder(BorderFactory.createTitledBorder("Date Modified"));
sizeScroll.setBorder(BorderFactory.createTitledBorder("Size"));
midPanel.add(dateScroll);
midPanel.add(sizeScroll);
//JPanel fakepanel = new JPanel(new GridLayout(2, 2, 5, 60));
//midPanel.add(fakepanel,BorderLayout.SOUTH);


fileListModel = new DefaultListModel<>();
fileList = new JList<>(fileListModel);
fileList.setFont(new Font("Monospaced", Font.PLAIN, 14));
JScrollPane fileScroll = new JScrollPane(fileList);
leftPanel.add(fileScroll, BorderLayout.CENTER);


JPanel leftButtonPanel = new JPanel(new GridLayout(2, 2, 5, 5));

Expand Down Expand Up @@ -78,6 +102,7 @@ public FileManagementUI() {
rightPanel.add(rightButtonPanel, BorderLayout.SOUTH);

centerPanel.add(leftPanel);
centerPanel.add(midPanel);
centerPanel.add(rightPanel);

add(centerPanel, BorderLayout.CENTER);
Expand Down Expand Up @@ -113,14 +138,21 @@ private void openFile() {
if (file != null) {
fileSystem.openFile(file);
refreshOpenFilesList();
refreshFileList();
}
}

private void writeFile() {
String selected = openFilesList.getSelectedValue();
if (selected == null) return;

if (selected == null){
JOptionPane.showMessageDialog(this,
"Please select a file to write",
"No Selection",
JOptionPane.WARNING_MESSAGE);
return;
}
File file = fileSystem.searchFile(selected);

if (file == null) return;

String content = JOptionPane.showInputDialog(this, "Content:", file.getContent());
Expand All @@ -141,8 +173,10 @@ private void closeFile() {

File file = fileSystem.searchFile(selected);
if (file != null) {
fileSystem.closeFile(file);

refreshOpenFilesList();
refreshFileList();
fileSystem.closeFile(file);
}
}

Expand Down Expand Up @@ -192,17 +226,25 @@ private void searchFile() {

private void refreshFileList() {
fileListModel.clear();
fileDateModel.clear();
fileSizeModel.clear();
ArrayList<File> files = fileSystem.getFiles();
for (File file : files) {
fileListModel.addElement(file.getName());
fileDateModel.addElement(file.getcreateDate());
fileSizeModel.addElement(String.valueOf(file.getSize()));
}
}

private void refreshOpenFilesList() {
openFilesModel.clear();
fileDateModel.clear();
fileSizeModel.clear();
ArrayList<File> openFiles = fileSystem.getOpenFiles();
for (File file : openFiles) {
openFilesModel.addElement(file.getName());
fileDateModel.addElement(file.getcreateDate());
fileSizeModel.addElement(String.valueOf(file.getSize()));
}
}

Expand Down