Created a function to get user attributes, created a main viewer populate method and a method to populate each panel by getting user attributes based on panel name
This commit is contained in:
1 parent
7b9f08a859
commit
8245777db1
2 files changed
+78
No files matched your search
@@ -8,6 +8,20 @@ public class User {
|
|||||||
private String phone;
|
private String phone;
|
||||||
private String address;
|
private String address;
|
||||||
|
|
||||||
|
|
||||||
|
private String getUserAttribute(User user, String panelName) {
|
||||||
|
return switch (panelName.toLowerCase()) {
|
||||||
|
case "title" -> user.getTitle();
|
||||||
|
case "name" -> user.getName();
|
||||||
|
case "email" -> user.getEmail();
|
||||||
|
case "phone" -> user.getPhone();
|
||||||
|
case "address" -> user.getAddress();
|
||||||
|
default -> "method error";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//basic getters and setters
|
//basic getters and setters
|
||||||
public String getAddress() {
|
public String getAddress() {
|
||||||
return address;
|
return address;
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
package cvbuilder.view;
|
package cvbuilder.view;
|
||||||
|
|
||||||
|
import cvbuilder.model.User;
|
||||||
|
import cvbuilder.model.UserGroup;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
|
|
||||||
|
|
||||||
public class MainViewer {
|
public class MainViewer {
|
||||||
|
|
||||||
public MainViewer() {
|
public MainViewer() {
|
||||||
@@ -9,5 +13,65 @@ public class MainViewer {
|
|||||||
viewer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
viewer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
viewer.setSize(800, 500);
|
viewer.setSize(800, 500);
|
||||||
viewer.setVisible(true);
|
viewer.setVisible(true);
|
||||||
|
|
||||||
|
JMenuBar menuBar = new JMenuBar();
|
||||||
|
JMenu menu = new JMenu("Menu");
|
||||||
|
menuBar.add(menu);
|
||||||
|
viewer.setJMenuBar(menuBar);
|
||||||
|
|
||||||
|
populateMainPanel(viewer);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void populateMainPanel(JFrame viewer) {
|
||||||
|
JTabbedPane outer = new JTabbedPane();
|
||||||
|
JTabbedPane userT = new JTabbedPane();
|
||||||
|
JTabbedPane contactT = new JTabbedPane();
|
||||||
|
|
||||||
|
// User tab
|
||||||
|
JPanel title = new JPanel();
|
||||||
|
title.setName("title");
|
||||||
|
JPanel name = new JPanel();
|
||||||
|
name.setName("name");
|
||||||
|
JPanel email = new JPanel();
|
||||||
|
email.setName("email");
|
||||||
|
|
||||||
|
populatePanel(title);
|
||||||
|
populatePanel(name);
|
||||||
|
populatePanel(email);
|
||||||
|
|
||||||
|
userT.addTab("Title", title);
|
||||||
|
userT.addTab("Name", name);
|
||||||
|
userT.addTab("Email", email);
|
||||||
|
outer.addTab("User", userT);
|
||||||
|
|
||||||
|
// Contact tab
|
||||||
|
JPanel phone = new JPanel();
|
||||||
|
phone.setName("phone");
|
||||||
|
JPanel address = new JPanel();
|
||||||
|
address.setName("address");
|
||||||
|
|
||||||
|
populatePanel(phone);
|
||||||
|
populatePanel(address);
|
||||||
|
|
||||||
|
contactT.addTab("Phone", phone);
|
||||||
|
contactT.addTab("Address", address);
|
||||||
|
outer.addTab("Contact", contactT);
|
||||||
|
|
||||||
|
viewer.add(outer);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void populatePanel(JPanel panel) {
|
||||||
|
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
|
||||||
|
ButtonGroup group = new ButtonGroup();
|
||||||
|
String panelName = panel.getName();
|
||||||
|
|
||||||
|
for (User user : UserGroup.getUsers()) {
|
||||||
|
JRadioButton radioButton = new JRadioButton(getUserAttribute(user, panelName));
|
||||||
|
group.add(radioButton);
|
||||||
|
panel.add(radioButton);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Reference in new issue
Block a user