package org.pentaho.mantle.client.solutionbrowser;
import org.pentaho.gwt.widgets.client.dialogs.IDialogCallback;
import org.pentaho.gwt.widgets.client.dialogs.MessageDialogBox;
import org.pentaho.gwt.widgets.client.filechooser.RepositoryFile;
import org.pentaho.mantle.client.dialogs.scheduling.ScheduleHelper;
import org.pentaho.mantle.client.messages.Messages;
public class ScheduleCallback implements IDialogCallback {
private final RepositoryFile repositoryFile;
public ScheduleCallback( RepositoryFile repositoryFile ) {
this.repositoryFile = repositoryFile;
}
@Override
public void okPressed() {
String extension = ""; //$NON-NLS-1$
if ( repositoryFile.getPath().lastIndexOf( "." ) > 0 ) { //$NON-NLS-1$
extension = repositoryFile.getPath().substring( repositoryFile.getPath().lastIndexOf( "." ) + 1 ); //$NON-NLS-1$
}
if ( SolutionBrowserPanel.getInstance().getExecutableFileExtensions().contains( extension ) ) {
IDialogCallback callback = new IDialogCallback() {
@Override
public void okPressed() {
ScheduleCreateStatusDialog dialog = new ScheduleCreateStatusDialog();
dialog.center();
}
@Override
public void cancelPressed() {
}
};
ScheduleHelper.showScheduleDialog( repositoryFile.getPath(), callback );
} else {
final MessageDialogBox dialogBox =
new MessageDialogBox(
Messages.getString( "open" ), Messages.getString( "scheduleInvalidFileType", repositoryFile.getPath() ), false, false, true ); //$NON-NLS-1$ //$NON-NLS-2$
dialogBox.setCallback( new IDialogCallback() {
public void cancelPressed() {
}
public void okPressed() {
dialogBox.hide();
}
} );
dialogBox.center();
return;
}
}
@Override
public void cancelPressed() {
}
}