/*!
* 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 (c) 2002-2013 Pentaho Corporation.. All rights reserved.
*/
package org.pentaho.mantle.client.dialogs.scheduling;
import java.util.Date;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.Widget;
import org.pentaho.gwt.widgets.client.ui.ICallback;
import org.pentaho.gwt.widgets.client.ui.IChangeHandler;
import org.pentaho.gwt.widgets.client.wizards.AbstractWizardDialog;
import org.pentaho.gwt.widgets.client.wizards.AbstractWizardPanel;
import org.pentaho.mantle.client.dialogs.scheduling.validators.ScheduleEditorValidator;
import org.pentaho.mantle.client.messages.Messages;
/**
* @author wseyler
*
*/
public class ScheduleEditorWizardPanel extends AbstractWizardPanel {
private static final String PENTAHO_SCHEDULE = "pentaho-schedule-create"; //$NON-NLS-1$
ScheduleEditor scheduleEditor;
ScheduleEditorValidator scheduleEditorValidator;
public ScheduleEditorWizardPanel( final AbstractWizardDialog.ScheduleDialogType type ) {
super();
scheduleEditor = new ScheduleEditor( type );
scheduleEditorValidator = new ScheduleEditorValidator( scheduleEditor );
init();
layout();
}
/**
*
*/
private void init() {
ICallback<IChangeHandler> chHandler = new ICallback<IChangeHandler>() {
@Override
public void onHandle( IChangeHandler se ) {
panelWidgetChanged( ScheduleEditorWizardPanel.this );
}
};
scheduleEditor.setOnChangeHandler( chHandler );
}
/**
*
*/
private void layout() {
addStyleName( PENTAHO_SCHEDULE );
this.add( scheduleEditor, CENTER );
panelWidgetChanged( null );
}
/*
* (non-Javadoc)
*
* @see org.pentaho.gwt.widgets.client.wizards.IWizardPanel#getName()
*/
@Override
public String getName() {
return Messages.getString( "schedule.scheduleEdit" );
}
@Override
public boolean canContinue() {
return scheduleEditorValidator.isValid();
}
@Override
public boolean canFinish() {
return scheduleEditorValidator.isValid();
}
protected void panelWidgetChanged( Widget changedWidget ) {
panelChanged();
}
public ScheduleEditor.ScheduleType getScheduleType() {
return scheduleEditor.getScheduleType();
}
public ScheduleEditor getScheduleEditor() {
return scheduleEditor;
}
/**
* @return
*/
public String getCronString() {
return scheduleEditor.getCronString();
}
public Date getStartDate() {
return scheduleEditor.getStartDate();
}
public String getStartTime() {
return scheduleEditor.getStartTime();
}
public String getBlockoutStartTime() {
if ( scheduleEditor.getStartTimePicker() != null ) {
return scheduleEditor.getStartTimePicker().getTime();
}
return null;
}
public String getBlockoutEndTime() {
if ( scheduleEditor.getBlockoutEndTimePicker() != null ) {
return scheduleEditor.getBlockoutEndTimePicker().getTime();
}
return null;
}
public String getTimeZone() {
if ( scheduleEditor.getTimeZonePicker() != null ) {
ListBox tzPicker = scheduleEditor.getTimeZonePicker();
int selIndex = tzPicker.getSelectedIndex();
if ( selIndex != -1 ) { // Something is selected
return tzPicker.getValue( selIndex );
}
return null;
}
return null;
}
public Date getEndDate() {
return scheduleEditor.getEndDate();
}
public int getRepeatCount() {
// Repeat forever
return -1;
}
public String getRepeatInterval() {
return scheduleEditor.getRepeatInSecs().toString();
}
}