001    package org.hackystat.projectbrowser.page.trajectory.dtwpanel.inputpanel;
002    
003    import java.util.logging.Level;
004    import java.util.logging.Logger;
005    
006    import org.apache.wicket.Application;
007    import org.apache.wicket.markup.html.basic.MultiLineLabel;
008    import org.apache.wicket.markup.html.form.Button;
009    import org.apache.wicket.markup.html.form.Form;
010    import org.apache.wicket.markup.html.panel.FeedbackPanel;
011    import org.apache.wicket.markup.html.panel.Panel;
012    import org.hackystat.projectbrowser.ProjectBrowserApplication;
013    import org.hackystat.projectbrowser.ProjectBrowserSession;
014    import org.hackystat.projectbrowser.page.ProjectBrowserBasePage;
015    import org.hackystat.projectbrowser.page.trajectory.TrajectorySession;
016    
017    /**
018     * The left input pabel for the DTW analysis parameters.
019     * 
020     * @author Pavel Senin
021     * 
022     */
023    public class TrajectoryDTWInputPanel extends Panel {
024    
025      /** Support serialization. */
026      private static final long serialVersionUID = 1L;
027      /** TelemetrySession that hold the page state. */
028      TrajectorySession session = ProjectBrowserSession.get().getTrajectorySession();
029    
030      /**
031       * Constructor.
032       * 
033       * @param id the wicket component id.
034       * @param page the parent pane.
035       */
036      public TrajectoryDTWInputPanel(String id, ProjectBrowserBasePage page) {
037        super(id);
038        getLogger().log(Level.FINER, "[DEBUG] TrajectoryDTWInputPanel constructed.");
039        add(new FeedbackPanel("feedback"));
040    
041        add(new MultiLineLabel("stream1Statistics", session.getDataModel().getStream1Statistics()));
042    
043        add(new MultiLineLabel("stream2Statistics", session.getDataModel().getStream2Statistics()));
044    
045        add(new DTWInputForm("dtwOptions", this));
046    
047        add(new MultiLineLabel("dtwStatistics", session.getDataModel().getDTWStatistics()));
048    
049        // add(new TrajectoryDTWInputForm("dtwInputForm", page));
050    
051        Button cancelButton = new Button("cancel") {
052          /** Support serialization. */
053          public static final long serialVersionUID = 1L;
054    
055          @Override
056          public void onSubmit() {
057            ProjectBrowserSession.get().getTrajectorySession().cancelDataUpdate();
058          }
059    
060          @Override
061          public boolean isEnabled() {
062            return ProjectBrowserSession.get().getTrajectorySession().getDataModel().isInProcess();
063          }
064        };
065        add(new Form("dtwCancelForm").add(cancelButton));
066      }
067    
068      /**
069       * @return the logger that associated to this web application.
070       */
071      private Logger getLogger() {
072        return ((ProjectBrowserApplication) Application.get()).getLogger();
073      }
074    
075    }