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.dailyprojectdata.client.DailyProjectDataClient; 010 import org.hackystat.dailyprojectdata.client.DailyProjectDataClientException; 011 import org.hackystat.projectbrowser.ProjectBrowserSession; 012 import org.hackystat.telemetry.service.client.TelemetryClient; 013 import org.hackystat.telemetry.service.client.TelemetryClientException; 014 015 /** 016 * Panel that provides clear cache confirmation. 017 * 018 * @author Randy Cox 019 */ 020 public class ProjClearCachePanel extends Panel { 021 022 /** Support serialization. */ 023 private static final long serialVersionUID = 1L; 024 025 /** 026 * Constructor for this class. 027 * 028 * @param id the wicket id. 029 */ 030 public ProjClearCachePanel(String id) { 031 super(id); 032 033 final ProjectsSession session = ProjectBrowserSession.get().getProjectsSession(); 034 final ProjectsModel model = session.getProjectsModel(); 035 036 Form projectForm = new Form("projClearCacheForm") { 037 /** Support serialization. */ 038 private static final long serialVersionUID = 1L; 039 }; 040 041 TextField projName = new TextField("projectName", new PropertyModel(model, "projectName")); 042 projName.setEnabled(false); 043 projectForm.add(projName); 044 045 Button clearCacheButton = new Button("clearCacheButton") { 046 /** Support serialization. */ 047 private static final long serialVersionUID = 1L; 048 049 /** Deletes project. */ 050 @Override 051 public void onSubmit() { 052 System.err.println("ProjClearCachePanel.clearCacheButton.onSubmit()"); 053 054 DailyProjectDataClient dpdClient = ProjectBrowserSession.get().getDailyProjectDataClient(); 055 TelemetryClient telemetryClient = ProjectBrowserSession.get().getTelemetryClient(); 056 057 try { 058 dpdClient.clearServerCache(model.getProjectOwner(), model.getProjectName()); 059 telemetryClient.clearServerCache(model.getProjectOwner(), model.getProjectName()); 060 session.getProjClearCachePanel().setVisible(false); 061 session.getProjListPanel().setVisible(true); 062 } 063 catch (DailyProjectDataClientException e) { 064 model.setFeedback(e.getMessage()); 065 } 066 catch (TelemetryClientException e) { 067 model.setFeedback(e.getMessage()); 068 } 069 } 070 }; 071 projectForm.add(clearCacheButton); 072 073 Button cancelButton = new Button("cancelButton") { 074 /** For serialization. */ 075 private static final long serialVersionUID = 1L; 076 077 /** Cancel clear cache and return to list page. */ 078 @Override 079 public void onSubmit() { 080 System.err.println("ProjClearCachePanel.cancleButton.onSubmit()"); 081 ProjectsSession session = ProjectBrowserSession.get().getProjectsSession(); 082 session.getProjClearCachePanel().setVisible(false); 083 session.getProjListPanel().setVisible(true); 084 } 085 }; 086 projectForm.add(cancelButton); 087 088 Label feedbackLabel = new Label("clearCacheFeedback", new PropertyModel(model, "feedback")); 089 session.setFeedbackLabel(feedbackLabel); 090 projectForm.add(feedbackLabel); 091 add(projectForm); 092 } 093 094 }