Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * This program is free software; you can redistribute it and/or modify it under the 
   * terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software 
   * Foundation.
   *
   * You should have received a copy of the GNU Lesser General Public License along with this 
   * program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html 
   * or from the Free Software Foundation, Inc., 
   * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  *
  * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 
  * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  * See the GNU Lesser General Public License for more details.
  *
  * Copyright 2008 Pentaho Corporation.  All rights reserved.
  */
 package org.pentaho.gwt.widgets.client.controls;
 
 import java.util.Date;
 
 
 import  com.google.gwt.i18n.client.DateTimeFormat;
 import  com.google.gwt.user.client.ui.CaptionPanel;
 import  com.google.gwt.user.client.ui.ClickListener;
 import  com.google.gwt.user.client.ui.HorizontalPanel;
 import  com.google.gwt.user.client.ui.KeyboardListener;
 import  com.google.gwt.user.client.ui.Label;
 import  com.google.gwt.user.client.ui.RadioButton;
 import  com.google.gwt.user.client.ui.VerticalPanel;
 import  com.google.gwt.user.client.ui.Widget;
 import  com.google.gwt.user.datepicker.client.DateBox.DefaultFormat;

Author(s):
Steven Barkdull
 
 @SuppressWarnings("deprecation")
 public class DateRangeEditor extends CaptionPanel implements IChangeHandler {
 
   private static final WidgetsLocalizedMessages MSGS = WidgetsLocalizedMessagesSingleton.getInstance().getMessages();
   private static final String SCHEDULE_EDITOR_CAPTION_PANEL = "schedule-editor-caption-panel"//$NON-NLS-1$
 
   private static final String END_DATE_RB_GROUP = "end-date-group"//$NON-NLS-1$
   private static final String END_DATE_PICKER = "end-date-picker"//$NON-NLS-1$
   private static final String START_DATE_PICKER = "start-date-picker"//$NON-NLS-1$
 
   private DatePickerEx startDatePicker = null;
   private EndDatePanel endDatePanel = null;
   
   private ErrorLabel startLabel = null;
   private ICallback<IChangeHandleronChangeHandler = null;
 
   public DateRangeEditorDate date ) {
 
     super.rangeOfRecurrence() );
     
     HorizontalPanel outerHP = new HorizontalPanel();
     add( outerHP );
     
     HorizontalPanel hp = new HorizontalPanel();
     Label l = new Label( .startLabel() );
     l.setStyleName("startLabel"); //$NON-NLS-1$
     hp.add( l );
     DefaultFormat format = new DefaultFormat(DateTimeFormat.getShortDateFormat());
      = new DatePickerEx(format);
     hp.add(.getDatePicker());
      = new ErrorLabelhp );
     outerHP.add();
 
      = new EndDatePaneldate );
     outerHP.add();
     
     resetdate );
   }
   
   public void setStartDateErrorString errorMsg ) {
     .setErrorMsgerrorMsg );
   }
   
   public Date getStartDate() {
     return .getSelectedDate();
   }
   
   public void setStartDateDate d ) {
     .getDatePicker().setValue(d);
   }
   
   public Date getEndDate() {
     return .getDate();
   }
   
   public void setEndDateDate d ) {
    .setDated );
  }
  
  public void resetDate d ) {
    .getDatePicker().setValue( d );
    .resetd );
  }
  
  public void setNoEndDate() {
  }
  
  public boolean isEndBy() {
    return .isEndBy();
  }
  
  public void setEndBy() {
  }
  
  public boolean isNoEndDate() {
    return .isNoEndDate();
  }
  
  public void setEndByErrorString errorMsg ) {
    .setEndByErrorerrorMsg );
  }
  public void setOnChangeHandlerICallback<IChangeHandlerhandler ) {
    this. = handler;
  }
  
  private void changeHandler() {
    if ( null !=  ) {
      .onHandlethis );
    }
  }
  
  private void configureOnChangeHandler() {
    final DateRangeEditor localThis = this;
    
    ICallback<IChangeHandlerhandler = new ICallback<IChangeHandler>() {
      public void onHandle(IChangeHandler o) {
        localThis.changeHandler();
      }
    };
  }
  private class EndDatePanel extends VerticalPanel implements IChangeHandler {
    private DatePickerEx endDatePicker = null;
    private RadioButton noEndDateRb = null;
    private RadioButton endByRb = null;
    private ErrorLabel endByLabel = null;
    private ICallback<IChangeHandleronChangeHandler = null;
    
    public EndDatePanelDate date ) {
      final EndDatePanel localThis = this;
  
       = new RadioButton(.noEndDateLabel() );
      .setStyleName("recurrenceRadioButton"); //$NON-NLS-1$
      .setChecked(true);
      add();
      HorizontalPanel hp = new HorizontalPanel();
      add(hp);
  
      HorizontalPanel endByPanel = new HorizontalPanel();
       = new RadioButton(.endByLabel() );
      .setStyleName("recurrenceRadioButton"); //$NON-NLS-1$
      endByPanel.add();
      DefaultFormat format = new DefaultFormat(DateTimeFormat.getShortDateFormat());
       = new DatePickerEx(format);
      .getDatePicker().setStyleName();
      .getDatePicker().setEnabled(false);
      endByPanel.add(.getDatePicker());
       = new ErrorLabelendByPanel );
      hp.add(  );
  
      .addClickListener(new ClickListener() {
        public void onClick(Widget sender) {
          localThis.endDatePicker.getDatePicker().setEnabled(false);
        }
      });
  
      .addClickListener(new ClickListener() {
        public void onClick(Widget sender) {
          localThis.endDatePicker.getDatePicker().setEnabled(true);
        }
      });
      resetdate );
    }
    
    public void resetDate d ) {
      setNoEndDate();
      .getDatePicker().setValue( d );
    }
    
    public DatePickerEx getEndDatePicker() {
      return ;
    }
    
    public void setNoEndDate() {
      .setChecked( false );
      .setChecked( true );
      .getDatePicker().setEnabled( false );
    }
    
    public boolean isEndBy() {
      return .isChecked();
    }
    
    public void setEndBy() {
      .setChecked( false );
      .setChecked( true );
      .getDatePicker().setEnabled( true );
    }
    
    public boolean isNoEndDate() {
      return .isChecked();
    }
    
    public Date getDate() {
      return isEndBy()
        ? .getSelectedDate()
        : null;
    }
    
    public void setDateDate d ) {
      .getDatePicker().setValue( d );
    }
    
    public void setEndByErrorString errorMsg ) {
      .setErrorMsgerrorMsg );
    }
    
    public void setOnChangeHandlerICallback<IChangeHandlerhandler ) {
      this. = handler;
    }
    
    private void changeHandler() {
      if ( null !=  ) {
        .onHandlethis );
      }
    }
    
    private void configureOnChangeHandler() {
      final EndDatePanel localThis = this;
      
      ICallback<IChangeHandlerhandler = new ICallback<IChangeHandler>() {
        public void onHandle(IChangeHandler o) {
          localThis.changeHandler();
        }
      };
      KeyboardListener keyboardListener = new KeyboardListener() {
        public void onKeyDown(Widget senderchar keyCodeint modifiers) {
        }
        public void onKeyPress(Widget senderchar keyCodeint modifiers) {
        }
        public void onKeyUp(Widget senderchar keyCodeint modifiers) {
          localThis.changeHandler();
        }
      };
      
      ClickListener clickListener = new ClickListener() {
        public void onClick(Widget sender) {
          localThis.changeHandler();
        }
      };
      
      .setOnChangeHandler(handler);
      .addClickListener( clickListener );
      .addKeyboardListener( keyboardListener );
      .addClickListener( clickListener );
      .addKeyboardListener( keyboardListener );
    }
  } // end EndDatePanel
New to GrepCode? Check out our FAQ X