001 package org.hackystat.projectbrowser.page.projects; 002 003 import org.apache.wicket.markup.html.basic.Label; 004 import org.apache.wicket.markup.html.form.Button; 005 import org.apache.wicket.markup.html.form.Form; 006 import org.apache.wicket.markup.html.form.TextField; 007 import org.apache.wicket.markup.html.panel.Panel; 008 import org.apache.wicket.model.PropertyModel; 009 import org.hackystat.projectbrowser.ProjectBrowserSession; 010 import org.hackystat.sensorbase.client.SensorBaseClient; 011 import org.hackystat.sensorbase.client.SensorBaseClientException; 012 013 /** 014 * Panel that will be rendered within the popup project rename window. 015 * 016 * @author Randy Cox 017 */ 018 public class ProjRenamePanel extends Panel { 019 020 /** Support serialization. */ 021 private static final long serialVersionUID = 1L; 022 023 /** 024 * Constructor for this class. 025 * 026 * @param id the wicket id. 027 */ 028 public ProjRenamePanel(String id) { 029 super(id); 030 031 final ProjectsSession session = ProjectBrowserSession.get().getProjectsSession(); 032 final ProjectsModel model = session.getProjectsModel(); 033 034 Form projectForm = new Form("projRenameForm"); 035 036 TextField projName = new TextField("projectName", new PropertyModel(model, "projectName")); 037 projName.setEnabled(false); 038 projectForm.add(projName); 039 040 TextField projRename = new TextField("projectRename", new PropertyModel(model, 041 "projectRename")); 042 projectForm.add(projRename); 043 044 Button renameButton = new Button("renameButton") { 045 /** For serialization. */ 046 private static final long serialVersionUID = 1L; 047 048 /** Bring up rename panel for project. */ 049 @Override 050 public void onSubmit() { 051 String email = ProjectBrowserSession.get().getEmail(); 052 SensorBaseClient client = ProjectBrowserSession.get().getSensorBaseClient(); 053 try { 054 client.renameProject(email, model.getProjectName(), model.getProjectRename()); 055 session.getProjRenamePanel().setVisible(false); 056 session.getProjListPanel().setVisible(true); 057 } 058 catch (SensorBaseClientException e) { 059 model.setFeedback(e.getMessage()); 060 } 061 } 062 }; 063 projectForm.add(renameButton); 064 065 Button cancelButton = new Button("cancelButton") { 066 /** For serialization. */ 067 private static final long serialVersionUID = 1L; 068 069 /** Cancel. */ 070 @Override 071 public void onSubmit() { 072 ProjectsSession session = ProjectBrowserSession.get().getProjectsSession(); 073 session.getProjRenamePanel().setVisible(false); 074 session.getProjListPanel().setVisible(true); 075 } 076 }; 077 projectForm.add(cancelButton); 078 079 Label feedbackLabel = new Label("renameFeedback", new PropertyModel(model, "feedback")); 080 session.setFeedbackLabel(feedbackLabel); 081 projectForm.add(feedbackLabel); 082 083 add(projectForm); 084 } 085 }