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:
1 parent
e48e5305f3
commit
faeab294c0
3 files changed
+48
-18
No files matched your search
@@ -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();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user