1 /* 2 * This file is a part of CAST project. 3 * (c) Copyright 2007, AGH University of Science & Technology 4 * https://caribou.iisg.agh.edu.pl/trac/cast 5 * 6 * Licensed under the Eclipse Public License, Version 1.0 (the "License"). 7 * You may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * http://www.eclipse.org/legal/epl-v10.html 10 */ 11 /* 12 * File: ValidationPage.java 13 * Created: 2009-03-11 14 * Author: bmilos 15 * $Id$ 16 */ 17 18 package pl.edu.agh.cast.importer.wizard.page; 19 20 import java.util.List; 21 22 import org.eclipse.jface.wizard.IWizardPage; 23 import org.eclipse.swt.SWT; 24 import org.eclipse.swt.widgets.Composite; 25 26 import pl.edu.agh.cast.importer.base.stat.AbstractErrorLogData; 27 import pl.edu.agh.cast.importer.base.stat.ErrorsLog; 28 import pl.edu.agh.cast.importer.wizard.util.Messages; 29 import pl.edu.agh.cast.ui.util.MsgBoxHelper; 30 31 /** 32 * Page of the import wizard, which serves for import data validation after the parsing process. 33 * 34 * @author AGH CAST Team 35 */ 36 public class ValidationPage extends AbstractImportWizardPage { 37 38 private ValidationPageComposite composite; 39 40 /** 41 * The default constructor. 42 */ 43 public ValidationPage() { 44 super(Messages.ImporterWizard_ValidationPageTitle, Messages.ImporterWizard_ValidationPageDescription); 45 } 46 47 /** 48 * {@inheritDoc} 49 * 50 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite) 51 */ 52 public void createControl(Composite parent) { 53 composite = new ValidationPageComposite(parent, SWT.NULL, this); 54 setControl(composite); 55 56 initPage(); 57 } 58 59 /** 60 * {@inheritDoc} 61 * 62 * @see pl.edu.agh.cast.importer.wizard.page.AbstractValidationPage#isComplete() 63 */ 64 protected boolean isComplete() { 65 return !composite.isDataEmpty(); 66 } 67 68 /* 69 * ----------------------------------------------------------------------------------------------------------- 70 * --------------------------OVERRIDED METHODS------------------------------------------------------- 71 * ----------------------------------------------------------------------------------------------------------- 72 */ 73 74 /** 75 * {@inheritDoc} 76 * 77 * @see pl.edu.agh.cast.importer.wizard.page.AbstractImportWizardPage#initPage() 78 */ 79 @Override 80 public void initPage() { 81 if (composite != null && getImportProcess().shouldParse()) { 82 getImportWizard().performTokenization(); 83 getImportWizard().performParsing(); 84 85 composite.refreshPage(getImportProcess().getParsedData().get(0), getImportProcess().getErrorsLog()); 86 } 87 } 88 89 /** 90 * {@inheritDoc} 91 * 92 * @see org.eclipse.jface.wizard.WizardPage#getNextPage() 93 */ 94 @Override 95 public IWizardPage getNextPage() { 96 if (composite != null && composite.isErrorsPresent()) { 97 if (MsgBoxHelper.showWarningBox(composite, Messages.ValidationPage_ErrorsPresentTitle, 98 Messages.ValidationPage_ErrorsPresentMsg) != SWT.OK) { 99 return null; 100 } 101 } 102 return super.getNextPage(); 103 } 104 105 /*----------------------------------------------------------------------------------------------------------*/ 106 107 /* 108 * ----------------------------------------------------------------------------------------------------------- 109 * --------------------------HELPER METHODS------------------------------------------------------------ 110 * ----------------------------------------------------------------------------------------------------------- 111 */ 112 113 /** 114 * Retrieves the errors log. 115 * 116 * @return errors log 117 */ 118 public ErrorsLog getErrorsLog() { 119 return getImportProcess().getErrorsLog(); 120 } 121 122 /** 123 * Delegate method. 124 * 125 * {@inheritDoc} 126 * 127 * @see pl.edu.agh.cast.importer.wizard.page.ValidationPageComposite#deleteRowsWithErrors(List) 128 */ 129 public void deleteErrors(List<AbstractErrorLogData> errorsToDelete) { 130 composite.deleteRowsWithErrors(errorsToDelete); 131 } 132 133 /*----------------------------------------------------------------------------------------------------------*/ 134 }