Added edit and delete buttons, added dialogue box for editing attributes, added a separater to add a footer to the panel which is to add a new user.
This commit is contained in:
1 parent
fd3d90ed15
commit
41740249ca
1 file changed
+38
-13
@@ -4,6 +4,7 @@ import cvbuilder.model.User;
|
|||||||
import cvbuilder.model.UserGroup;
|
import cvbuilder.model.UserGroup;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
|
import java.awt.*;
|
||||||
|
|
||||||
public class MainViewer {
|
public class MainViewer {
|
||||||
|
|
||||||
@@ -101,18 +102,8 @@ public class MainViewer {
|
|||||||
JButton editButton = new JButton("Edit");
|
JButton editButton = new JButton("Edit");
|
||||||
final int userIndex = i;
|
final int userIndex = i;
|
||||||
editButton.addActionListener(e -> {
|
editButton.addActionListener(e -> {
|
||||||
JTextField textField = new JTextField(value, 20);
|
String newValue = showDialog("Edit " + panelName, value);
|
||||||
JPanel dialogPanel = new JPanel();
|
if (newValue != null && !newValue.isEmpty()) {
|
||||||
dialogPanel.add(new JLabel("Edit:"));
|
|
||||||
dialogPanel.add(textField);
|
|
||||||
|
|
||||||
int result = JOptionPane.showConfirmDialog(panel, dialogPanel,
|
|
||||||
"Edit " + panelName, JOptionPane.OK_CANCEL_OPTION,
|
|
||||||
JOptionPane.PLAIN_MESSAGE);
|
|
||||||
|
|
||||||
if (result == JOptionPane.OK_OPTION) {
|
|
||||||
String newValue = textField.getText();
|
|
||||||
if (!newValue.isEmpty()) {
|
|
||||||
// Update the user attribute
|
// Update the user attribute
|
||||||
switch (panelName.toLowerCase()) {
|
switch (panelName.toLowerCase()) {
|
||||||
case "title" -> user.setTitle(newValue);
|
case "title" -> user.setTitle(newValue);
|
||||||
@@ -125,7 +116,6 @@ public class MainViewer {
|
|||||||
// Update the radio button label
|
// Update the radio button label
|
||||||
radioButton.setText(newValue);
|
radioButton.setText(newValue);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
});
|
||||||
entryPanel.add(editButton);
|
entryPanel.add(editButton);
|
||||||
|
|
||||||
@@ -169,6 +159,7 @@ public class MainViewer {
|
|||||||
// Add the "Add Row" interface at the bottom
|
// Add the "Add Row" interface at the bottom
|
||||||
JPanel addRowPanel = new JPanel();
|
JPanel addRowPanel = new JPanel();
|
||||||
addRowPanel.setLayout(new BoxLayout(addRowPanel, BoxLayout.X_AXIS));
|
addRowPanel.setLayout(new BoxLayout(addRowPanel, BoxLayout.X_AXIS));
|
||||||
|
addRowPanel.setMaximumSize(new Dimension(Integer.MAX_VALUE, 80));
|
||||||
|
|
||||||
JTextField newValueField = new JTextField(15);
|
JTextField newValueField = new JTextField(15);
|
||||||
JButton addButton = new JButton("Add Row");
|
JButton addButton = new JButton("Add Row");
|
||||||
@@ -182,6 +173,7 @@ public class MainViewer {
|
|||||||
addButton.addActionListener(e -> {
|
addButton.addActionListener(e -> {
|
||||||
String newValue = newValueField.getText().trim();
|
String newValue = newValueField.getText().trim();
|
||||||
if (!newValue.isEmpty()) {
|
if (!newValue.isEmpty()) {
|
||||||
|
|
||||||
// Create a new user
|
// Create a new user
|
||||||
User newUser = new User();
|
User newUser = new User();
|
||||||
|
|
||||||
@@ -225,4 +217,37 @@ public class MainViewer {
|
|||||||
// Add vertical glue to push all components to the top
|
// Add vertical glue to push all components to the top
|
||||||
panel.add(Box.createVerticalGlue());
|
panel.add(Box.createVerticalGlue());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String showDialog(String title, String initialValue) {
|
||||||
|
JTextField textField = new JTextField(initialValue);
|
||||||
|
JLabel label = new JLabel("Enter new text:");
|
||||||
|
|
||||||
|
JPanel panel = new JPanel();
|
||||||
|
panel.setLayout(new GridLayout(0, 1));
|
||||||
|
|
||||||
|
panel.add(label);
|
||||||
|
panel.add(textField);
|
||||||
|
|
||||||
|
JOptionPane pane = new JOptionPane(panel, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
|
||||||
|
JDialog dialog = pane.createDialog("Rename Dialogue Box");
|
||||||
|
dialog.setVisible(true);
|
||||||
|
|
||||||
|
// Process the user's choice
|
||||||
|
Object value = pane.getValue();
|
||||||
|
if (value instanceof Integer) {
|
||||||
|
int choice = (Integer) value;
|
||||||
|
|
||||||
|
if (choice == JOptionPane.OK_OPTION) {
|
||||||
|
String newValue = textField.getText().trim();
|
||||||
|
System.out.println("OK option pressed and set text to: " + newValue + " for tab: " + title);
|
||||||
|
return newValue;
|
||||||
|
} else if (choice == JOptionPane.CANCEL_OPTION) {
|
||||||
|
System.out.println("Cancel option pressed for tab: " + title);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dialog.dispose();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user