Created buffered Reader, edited it so that it uses the first two parts of a line to determine which section it is to be in.

This commit is contained in:
bobbert committed 2025-04-02 14:24:17 +01:00
1 parent e48e5305f3
commit faeab294c0
3 files changed
+48 -18

No files matched your search

+27 -8
View File
@@ -1,5 +1,7 @@
package cvbuilder; package cvbuilder;
import cvbuilder.model.User;
import cvbuilder.model.UserGroup;
import cvbuilder.view.MainViewer; import cvbuilder.view.MainViewer;
import java.io.*; import java.io.*;
@@ -7,22 +9,39 @@ import java.io.*;
public class Main { public class Main {
public static void main(String[] args) { public static void main(String[] args) {
String file = "data/cv_repo_0.csv"; String file = "data/cv_repo_0.csv";
// Buffered Reader: UserGroup userGroup = UserGroup.getInstance();
try (BufferedReader r = new BufferedReader(new FileReader(file))) { try (BufferedReader r = new BufferedReader(new FileReader(file))) {
while (r.ready()) { // Skip the first line (Section,Sub-Section,Variants)
String line = r.readLine(); r.readLine();
String[] split = line.split(",");
// Read all lines into memory so we can process by column
String[] lines = r.lines().toArray(String[]::new);
// Parse each line
for (int lineIndex = 0; lineIndex < lines.length; lineIndex++) {
String[] parts = lines[lineIndex].split(",");
// Process each user column (starting from column 2, index 2)
for (int colIndex = 2; colIndex < parts.length; colIndex++) {
int userIndex = colIndex - 2; // User index starts from 0
User user = userGroup.getUser(userIndex);
// Assign attribute based on line content
String sectionType = parts[0] + "," + parts[1];
switch (sectionType) {
case "User,Name" -> user.setName(parts[colIndex]);
case "User,Title" -> user.setTitle(parts[colIndex]);
case "User,Email" -> user.setEmail(parts[colIndex]);
case "Contact Information,Phone" -> user.setPhone(parts[colIndex]);
case "Contact Information,Address" -> user.setAddress(parts[colIndex]);
}
}
} }
} catch (Exception e) { } catch (Exception e) {
System.out.print(e); System.out.print(e);
} }
// code outside buffered reader
new MainViewer(); new MainViewer();
} }
} }
+4 -3
View File
@@ -27,9 +27,10 @@ public class UserGroup {
} }
public User getUser(int index) { public User getUser(int index) {
if (index >= 0 && index < users.size()) { // Expand the list if necessary to accommodate the requested index
while (index >= users.size()) {
users.add(new User());
}
return users.get(index); return users.get(index);
} }
return null;
}
} }
+17 -7
View File
@@ -12,17 +12,22 @@ public class MainViewer {
public MainViewer() { public MainViewer() {
userGroup = UserGroup.getInstance(); userGroup = UserGroup.getInstance();
// Create the main frame
JFrame viewer = new JFrame("CV Builder"); JFrame viewer = new JFrame("CV Builder");
viewer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); viewer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
viewer.setSize(800, 500); viewer.setSize(800, 500);
viewer.setVisible(true);
// Create menu bar
JMenuBar menuBar = new JMenuBar(); JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("File"); JMenu menu = new JMenu("Menu");
menuBar.add(menu); menuBar.add(menu);
viewer.setJMenuBar(menuBar); viewer.setJMenuBar(menuBar);
// Add content to the frame
populateMainPanel(viewer); populateMainPanel(viewer);
// Make the frame visible after all content is added
viewer.setVisible(true);
} }
public void populateMainPanel(JFrame viewer) { public void populateMainPanel(JFrame viewer) {
@@ -60,7 +65,8 @@ public class MainViewer {
contactT.addTab("Address", address); contactT.addTab("Address", address);
outer.addTab("Contact", contactT); outer.addTab("Contact", contactT);
viewer.add(outer); viewer.getContentPane().add(outer);
viewer.revalidate();
} }
private void populatePanel(JPanel panel) { private void populatePanel(JPanel panel) {
@@ -68,14 +74,18 @@ public class MainViewer {
ButtonGroup group = new ButtonGroup(); ButtonGroup group = new ButtonGroup();
String panelName = panel.getName(); String panelName = panel.getName();
if (userGroup.getUsers().isEmpty()) {
panel.add(new JLabel("No users available"));
return;
}
for (User user : userGroup.getUsers()) { for (User user : userGroup.getUsers()) {
JRadioButton radioButton = new JRadioButton(user.getUserAttribute(panelName)); String value = user.getUserAttribute(panelName);
if (value != null && !value.isEmpty()) {
JRadioButton radioButton = new JRadioButton(value);
group.add(radioButton); group.add(radioButton);
panel.add(radioButton); panel.add(radioButton);
} }
} }
public static void main(String[] args) {
SwingUtilities.invokeLater(MainViewer::new);
} }
} }