package name.abuchen.portfolio.ui.wizards.datatransfer; import java.io.File; import java.util.List; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.wizard.Wizard; import org.eclipse.swt.graphics.Image; import name.abuchen.portfolio.datatransfer.Extractor; import name.abuchen.portfolio.datatransfer.actions.InsertAction; import name.abuchen.portfolio.model.Client; import name.abuchen.portfolio.ui.ConsistencyChecksJob; import name.abuchen.portfolio.ui.Images; import name.abuchen.portfolio.ui.Messages; import name.abuchen.portfolio.ui.wizards.AbstractWizardPage; public class ImportExtractedItemsWizard extends Wizard { private Client client; private Extractor extractor; private IPreferenceStore preferences; private List<File> files; private ReviewExtractedItemsPage page; public ImportExtractedItemsWizard(Client client, Extractor extractor, IPreferenceStore preferences, List<File> files) { this.client = client; this.extractor = extractor; this.preferences = preferences; this.files = files; setWindowTitle(Messages.PDFImportWizardTitle); setNeedsProgressMonitor(true); } @Override public Image getDefaultPageImage() { return Images.BANNER.image(); } @Override public void addPages() { page = new ReviewExtractedItemsPage(client, extractor, preferences, files); addPage(page); AbstractWizardPage.attachPageListenerTo(getContainer()); } @Override public boolean performFinish() { page.afterPage(); InsertAction action = new InsertAction(client); action.setConvertBuySellToDelivery(page.doConvertToDelivery()); boolean isDirty = false; for (ExtractedEntry entry : page.getEntries()) { if (entry.isImported()) { entry.getItem().apply(action, page); isDirty = true; } } if (isDirty) { client.markDirty(); // run consistency checks in case bogus transactions have been // created (say: an outbound delivery of a security where there no // held shares) new ConsistencyChecksJob(client, false).schedule(); } return true; } }