Java tutorial
/********************************************************************************* * Ephesoft is a Intelligent Document Capture and Mailroom Automation program * developed by Ephesoft, Inc. Copyright (C) 2010-2012 Ephesoft Inc. * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU Affero General Public License version 3 as published by the * Free Software Foundation with the addition of the following permission added * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK * IN WHICH THE COPYRIGHT IS OWNED BY EPHESOFT, EPHESOFT DISCLAIMS THE WARRANTY * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS. * * 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 Affero General Public License for more * details. * * You should have received a copy of the GNU Affero General Public License along with * this program; if not, see http://www.gnu.org/licenses or write to the Free * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301 USA. * * You can contact Ephesoft, Inc. headquarters at 111 Academy Way, * Irvine, CA 92617, USA. or at email address info@ephesoft.com. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "Ephesoft" logo. * If the display of the logo is not reasonably feasible for * technical reasons, the Appropriate Legal Notices must display the words * "Powered by Ephesoft". ********************************************************************************/ package com.ephesoft.dcma.gwt.rv.client.presenter; import java.util.ArrayList; import java.util.List; import com.ephesoft.dcma.batch.schema.Batch; import com.ephesoft.dcma.batch.schema.Document; import com.ephesoft.dcma.batch.schema.Page; import com.ephesoft.dcma.batch.schema.Batch.Documents; import com.ephesoft.dcma.gwt.rv.client.ReviewValidateDocServiceAsync; import com.ephesoft.dcma.gwt.rv.client.event.DocExpandEvent; import com.ephesoft.dcma.gwt.rv.client.event.DocExpandEventHandler; import com.google.gwt.event.shared.HandlerManager; import com.google.gwt.user.client.ui.HasWidgets; public class PreImageLoadingPresenter implements Presenter { public final ReviewValidateDocServiceAsync rpcService; public final HandlerManager eventBus; public final ReviewValidatePresenter reviewValidatePresenter; @Override public void onPresenterLoad(HasWidgets container) { // no need to implement anything in the go method. } public PreImageLoadingPresenter(ReviewValidateDocServiceAsync rpcService, HandlerManager eventBus, ReviewValidatePresenter reviewValidatePresenter) { this.rpcService = rpcService; this.eventBus = eventBus; this.reviewValidatePresenter = reviewValidatePresenter; this.injectEvent(eventBus); } private void injectEvent(HandlerManager eventBus) { eventBus.addHandler(DocExpandEvent.type, new DocExpandEventHandler() { @Override public void onExpand(DocExpandEvent event) { Document nextDocument = reviewValidatePresenter.getView().getDocTree().getNextDocument(); if (nextDocument != null && nextDocument.getPages() != null) { List<Page> pageList = nextDocument.getPages().getPage(); for (Page page : pageList) { if (page != null) { setDocImageUrl(page); } } } } /** * @param page */ private void setDocImageUrl(Page page) { String newFileName = page.getNewFileName(); if (newFileName != null && !newFileName.isEmpty()) { reviewValidatePresenter.getView().getDocTree().getTempImage() .setUrl(reviewValidatePresenter.batchDTO.getAbsoluteURLFor(page.getNewFileName())); } String thumbNailFile = page.getThumbnailFileName(); if (thumbNailFile != null && !thumbNailFile.isEmpty()) { reviewValidatePresenter.getView().getDocTree().getTempImage().setUrl( reviewValidatePresenter.batchDTO.getAbsoluteURLFor(page.getThumbnailFileName())); } } }); } public void loadInvalidDocuments(String batchId, int numberOfInvalidDocs) { Batch batch = reviewValidatePresenter.batchDTO.getBatch(); List<Document> documentList = new ArrayList<Document>(); Documents documents = batch.getDocuments(); if (documents != null) { List<Document> docList = documents.getDocument(); switch (reviewValidatePresenter.batchDTO.getBatchInstanceStatus()) { case READY_FOR_REVIEW: // Loading un reviewed document. for (Document document : docList) { if (document != null && !document.isReviewed()) { if (documentList.size() < numberOfInvalidDocs) { documentList.add(document); } else { break; } } } break; case READY_FOR_VALIDATION: // Loading invalidated document for (Document document : docList) { if (document != null && (!document.isReviewed() || !document.isValid())) { if (documentList.size() < numberOfInvalidDocs) { documentList.add(document); } else { break; } } } break; default: break; } for (Document document : documentList) { if (document != null && document.getPages() != null) { List<Page> pageList = document.getPages().getPage(); for (Page page : pageList) { if (page != null) { String newFileName = page.getNewFileName(); if (newFileName != null && !newFileName.isEmpty()) { reviewValidatePresenter.getView().getDocTree().getTempImage().setUrl( reviewValidatePresenter.batchDTO.getAbsoluteURLFor(page.getNewFileName())); } String thumbNailFile = page.getThumbnailFileName(); if (thumbNailFile != null && !thumbNailFile.isEmpty()) { reviewValidatePresenter.getView().getDocTree().getTempImage() .setUrl(reviewValidatePresenter.batchDTO .getAbsoluteURLFor(page.getThumbnailFileName())); } } } } } } } }