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 provides delete confirmation. 015 * 016 * @author Randy Cox 017 */ 018 public class ProjDeletePanel 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 ProjDeletePanel(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("projDeleteForm") { 035 /** Support serialization. */ 036 private static final long serialVersionUID = 1L; 037 }; 038 039 TextField projName = new TextField("projectName", new PropertyModel(model, "projectName")); 040 projName.setEnabled(false); 041 projectForm.add(projName); 042 043 Button deleteButton = new Button("deleteButton") { 044 /** Support serialization. */ 045 private static final long serialVersionUID = 1L; 046 047 /** Deletes project. */ 048 @Override 049 public void onSubmit() { 050 String email = ProjectBrowserSession.get().getEmail(); 051 SensorBaseClient client = ProjectBrowserSession.get().getSensorBaseClient(); 052 try { 053 client.deleteProject(email, model.getProjectName()); 054 session.getProjDeletePanel().setVisible(false); 055 session.getProjListPanel().setVisible(true); 056 } 057 catch (SensorBaseClientException e) { 058 model.setFeedback(e.getMessage()); 059 } 060 } 061 }; 062 projectForm.add(deleteButton); 063 064 Button cancelButton = new Button("cancelButton") { 065 /** For serialization. */ 066 private static final long serialVersionUID = 1L; 067 068 /** Cancel delete and return to list page. */ 069 @Override 070 public void onSubmit() { 071 ProjectsSession session = ProjectBrowserSession.get().getProjectsSession(); 072 session.getProjDeletePanel().setVisible(false); 073 session.getProjListPanel().setVisible(true); 074 } 075 }; 076 projectForm.add(cancelButton); 077 078 Label feedbackLabel = new Label("deleteFeedback", new PropertyModel(model, "feedback")); 079 session.setFeedbackLabel(feedbackLabel); 080 projectForm.add(feedbackLabel); 081 add(projectForm); 082 } 083 084 }