From 69b48c30ecbce303fa98d6d40e3094e5dccff101 Mon Sep 17 00:00:00 2001 From: heshunme Date: Sun, 14 Jul 2024 14:51:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Ekeyword=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=8C=89=E9=92=AE=EF=BC=9B=E4=BC=98=E5=8C=96=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E5=8F=AA=E4=BF=AE=E6=94=B9=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=BA=86=E7=9A=84=E8=80=8C=E4=B8=8D=E6=98=AF=E6=95=B4?= =?UTF-8?q?=E4=B8=AAprojects=E5=88=97=E8=A1=A8=EF=BC=8C=E5=87=8F=E5=B0=91?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E6=93=8D=E4=BD=9C=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/web/web_assignment/ProjectBean.java | 26 +++++++++++++-- src/main/webapp/edit.xhtml | 33 +++++++++++++------ 2 files changed, 47 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/web/web_assignment/ProjectBean.java b/src/main/java/com/web/web_assignment/ProjectBean.java index 08e338c..23f2510 100644 --- a/src/main/java/com/web/web_assignment/ProjectBean.java +++ b/src/main/java/com/web/web_assignment/ProjectBean.java @@ -19,11 +19,13 @@ import java.util.stream.Collectors; public class ProjectBean implements Serializable { private final DatabaseService databaseService = new DatabaseService(); private List projects; // List to store all projects + private int projectIdx; private Project project; // Current project being worked on private UserInfo userInfo; // User info for the current user private String username; private String password; public String projectKeywords = ""; // String to hold project keywords + public String newKeyword = ""; public String projectCollaborators = ""; // String to hold project collaborators public List allProjectsKeywords; // List of all unique keywords from all projects @@ -39,7 +41,7 @@ public class ProjectBean implements Serializable { loadProjects(); // Load projects from the database System.out.println("Projects loaded: " + projects.size()); loadAllKeywords(); // Load all unique keywords from all projects - if (projects.isEmpty()){ + if (projects.isEmpty()) { Project emptyProject = new Project("", "", "", new ArrayList<>(), "", new ArrayList<>(), "", ""); } setProject(projects.get(0)); // Set the first project as the current project @@ -76,6 +78,13 @@ public class ProjectBean implements Serializable { .collect(Collectors.toList()); } + public void addKeyword() { + if (!newKeyword.isEmpty() && !allProjectsKeywords.contains(newKeyword)) { + selectedKeywords.add(newKeyword); + allProjectsKeywords.add(newKeyword); + } + } + public List getProjects() { return projects; } @@ -89,6 +98,7 @@ public class ProjectBean implements Serializable { } public void setProject(Project project) { + this.projectIdx = projects.indexOf(project); this.project = project; this.projectKeywords = getKeywordsAsString(); // Update keywords string this.projectCollaborators = getCollaboratorsAsString(); @@ -113,8 +123,12 @@ public class ProjectBean implements Serializable { project.setKeywords(new ArrayList<>(selectedKeywords)); try { - databaseService.saveProjects(username, projects); + ArrayList newProject = new ArrayList<>(); + newProject.add(project); + projects.set(projectIdx,project); + databaseService.saveProjects(username, newProject); context.addMessage("saveButton", new FacesMessage(FacesMessage.SEVERITY_INFO, "Submission Succeeded", null)); + loadAllKeywords(); } catch (SQLException e) { e.printStackTrace(); } @@ -217,4 +231,12 @@ public class ProjectBean implements Serializable { public void setSelectedKeywords(List selectedKeywords) { this.selectedKeywords = selectedKeywords; } + + public String getNewKeyword() { + return newKeyword; + } + + public void setNewKeyword(String newKeyword) { + this.newKeyword = newKeyword; + } } diff --git a/src/main/webapp/edit.xhtml b/src/main/webapp/edit.xhtml index c98e63d..4d9181d 100644 --- a/src/main/webapp/edit.xhtml +++ b/src/main/webapp/edit.xhtml @@ -11,7 +11,7 @@
- +

Select Project to Edit

@@ -55,15 +55,27 @@
-
- - - - - -
+ +
+ + + + + + + + + + + + + +
+
@@ -77,7 +89,8 @@
-