Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
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
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
import java.io.FileOutputStream;
import java.io.IOException;

public class Main {

abstract static class FileTransfer {

void sendFile(String fileName) {
// Default implementation for sending a file
System.out.println("Sending file: " + fileName);
}

abstract void saveFile(byte[] fileData, String fileName);
}

public interface FileTransferListener {
void onFileSent(String fileName);
void onFileSaved(String fileName);
}

public static class FileTransferClient extends FileTransfer implements FileTransferListener {

void sendFile(String fileName) {
// Custom implementation for sending a file using socket programming
System.out.println("Sending file over the network: " + fileName);
}

public void onFileSaved(String fileName) {
System.out.println("File saved on the client side: " + fileName);
}

public void onFileSent(String fileName) {
System.out.println("File sent from the client side: " + fileName);
}

void saveFile(byte[] fileData, String fileName) {
// Not applicable for the client side
}
}

public static class FileTransferServer extends FileTransfer implements FileTransferListener {

@Override
void saveFile(byte[] fileData, String fileName) {
try {
FileOutputStream fileOutputStream = new FileOutputStream(fileName);
fileOutputStream.write(fileData);
fileOutputStream.close();
} catch (IOException e) {
System.out.println("Failed to save file: " + fileName);
return;
}

onFileSaved(fileName);
}

void sendFile(String fileName) {
// Not applicable for the server side
}

public void onFileSaved(String fileName) {
System.out.println("File saved on the server side: " + fileName);
}

public void onFileSent(String fileName) {
System.out.println("File sent from the server side: " + fileName);
}

void start() {
// Server initialization and listening for incoming file transfers
System.out.println("Server started. Listening for incoming file transfers.");
}
}

public static void main(String[] args) {
FileTransferClient client = new FileTransferClient();
FileTransferServer server = new FileTransferServer();

// Start the server to listen for incoming file transfers
server.start();

// Demonstrate sending a file from the client to the server
client.sendFile("file.txt");

// Demonstrate saving a file on the server
byte[] fileData = "This has been overwritten from here".getBytes();
server.saveFile(fileData, "file.txt");

// print the contents of the file from server side
System.out.println("File contents on the server side: " + new String(fileData));

}
}
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,235 @@
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;

public class AddressBookApplication extends JFrame {
private JTable contactTable;
private DefaultTableModel tableModel;
private JTextField nameField;
private JTextField phoneNumberField;
private JTextField emailField;
private JButton addButton;
private JButton editButton;
private JButton deleteButton;

private List<Contact> contacts;

public AddressBookApplication() {
contacts = new ArrayList<>();

setTitle("Address Book");
setSize(600, 400);
setDefaultCloseOperation(EXIT_ON_CLOSE);

createComponents();
addComponentsToFrame();
}

private void createComponents() {
// Table
tableModel = new DefaultTableModel();
tableModel.addColumn("Name");
tableModel.addColumn("Phone Number");
tableModel.addColumn("Email");
contactTable = new JTable(tableModel);

// Buttons
addButton = new JButton("Add");
editButton = new JButton("Edit");
deleteButton = new JButton("Delete");

// Form fields
nameField = new JTextField(20);
phoneNumberField = new JTextField(20);
emailField = new JTextField(20);

// Button listeners
addButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
addContact();
}
});

editButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
editContact();
}
});

deleteButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
deleteContact();
}
});
}

private void addComponentsToFrame() {
// Main layout
setLayout(new BorderLayout());

// Create a panel for the form fields
JPanel formPanel = new JPanel();
formPanel.setLayout(new GridLayout(3, 2));
formPanel.add(new JLabel("Name:"));
formPanel.add(nameField);
formPanel.add(new JLabel("Phone Number:"));
formPanel.add(phoneNumberField);
formPanel.add(new JLabel("Email:"));
formPanel.add(emailField);

// Create a panel for the buttons
JPanel buttonPanel = new JPanel();
buttonPanel.add(addButton);
buttonPanel.add(editButton);
buttonPanel.add(deleteButton);

// Add the table, form, and button panels to the frame
add(new JScrollPane(contactTable), BorderLayout.CENTER);
add(formPanel, BorderLayout.NORTH);
add(buttonPanel, BorderLayout.SOUTH);
}

private void addContact() {
String name = nameField.getText();
String phoneNumber = phoneNumberField.getText();
String email = emailField.getText();

if (name.isEmpty()) {
showErrorDialog("Please enter a name.");
return;
}

if (!isValidPhoneNumber(phoneNumber)) {
showErrorDialog("Invalid phone number format.");
return;
}

if (!isValidEmail(email)) {
showErrorDialog("Invalid email format.");
return;
}

Contact contact = new Contact(name, phoneNumber, email);
contacts.add(contact);
tableModel.addRow(new Object[]{contact.getName(), contact.getPhoneNumber(), contact.getEmail()});
clearFormFields();
}

private void editContact() {
int selectedRow = contactTable.getSelectedRow();

if (selectedRow == -1) {
showErrorDialog("Please select a contact to edit.");
return;
}

Contact contact = contacts.get(selectedRow);
String name = nameField.getText();
String phoneNumber = phoneNumberField.getText();
String email = emailField.getText();

if (name.isEmpty()) {
showErrorDialog("Please enter a name.");
return;
}

if (!isValidPhoneNumber(phoneNumber)) {
showErrorDialog("Invalid phone number format.");
return;
}

if (!isValidEmail(email)) {
showErrorDialog("Invalid email format.");
return;
}

contact.setName(name);
contact.setPhoneNumber(phoneNumber);
contact.setEmail(email);
tableModel.setValueAt(name, selectedRow, 0);
tableModel.setValueAt(phoneNumber, selectedRow, 1);
tableModel.setValueAt(email, selectedRow, 2);
clearFormFields();
}

private void deleteContact() {
int selectedRow = contactTable.getSelectedRow();

if (selectedRow == -1) {
showErrorDialog("Please select a contact to delete.");
return;
}

contacts.remove(selectedRow);
tableModel.removeRow(selectedRow);
clearFormFields();
}

private void clearFormFields() {
nameField.setText("");
phoneNumberField.setText("");
emailField.setText("");
}

private void showErrorDialog(String message) {
JOptionPane.showMessageDialog(this, message, "Error", JOptionPane.ERROR_MESSAGE);
}

private boolean isValidPhoneNumber(String phoneNumber) {
// Add your phone number validation logic here
return true;
}

private boolean isValidEmail(String email) {
// Add your email validation logic here
return true;
}

private static class Contact {
private String name;
private String phoneNumber;
private String email;

public Contact(String name, String phoneNumber, String email) {
this.name = name;
this.phoneNumber = phoneNumber;
this.email = email;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getPhoneNumber() {
return phoneNumber;
}

public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new AddressBookApplication().setVisible(true);
}
});
}
}
Loading