// ============================================================================ // // Copyright (C) 2006-2016 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.dataprofiler.core.ui.action; import java.io.File; import java.util.HashMap; import java.util.Map; import org.eclipse.core.resources.IFolder; import org.eclipse.core.runtime.IPath; import org.eclipse.swt.widgets.FileDialog; import org.eclipse.ui.PlatformUI; import org.talend.core.model.properties.ByteArray; import org.talend.core.model.properties.Item; import org.talend.core.model.properties.PropertiesFactory; import org.talend.dataprofiler.core.ui.utils.WorkbenchUtils; import org.talend.dataquality.properties.TDQFileItem; import org.talend.dq.helper.FileUtils; import org.talend.repository.model.RepositoryNode; import org.talend.resource.ResourceManager; /** * DOC bZhou class global comment. Detailled comment */ public abstract class AbstractImportSourceFileAction extends AbstractImportFileAction { private static String historyFilePath = "./"; /** * DOC bZhou AddSqlFileAction constructor comment. * * @param folder */ public AbstractImportSourceFileAction(RepositoryNode node) { super(node); } /* * (non-Javadoc) * * @see org.talend.dataprofiler.core.ui.action.AbstractImportFileAction#computeFilePath() */ @Override public Map<File, IPath> computeFilePath() throws Exception { Map<File, IPath> resultMap = new HashMap<File, IPath>(); FileDialog dialog = new FileDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell()); if (historyFilePath != null) { dialog.setFilterPath(historyFilePath); } if (getFilterExtensions() != null) { dialog.setFilterExtensions(getFilterExtensions()); } String path = dialog.open(); if (path != null) { File file = new File(path); historyFilePath = file.getParent(); IFolder folder = WorkbenchUtils.getFolder(node); IPath filePath = folder.getFullPath().makeRelativeTo(ResourceManager.getSourceFileFolder().getFullPath()); resultMap.put(file, filePath); } return resultMap; } /* * (non-Javadoc) * * @see org.talend.dataprofiler.core.ui.action.AbstractImportFileAction#initItem(java.io.File) */ @Override public Item initItem(File srcFile) throws Exception { TDQFileItem fileItem = createTDQFileItem(); fileItem.setExtension(FileUtils.getExtension(srcFile)); fileItem.setName(FileUtils.getName(srcFile)); ByteArray byteArray = PropertiesFactory.eINSTANCE.createByteArray(); byteArray.setInnerContentFromFile(srcFile); fileItem.setContent(byteArray); return fileItem; } protected abstract TDQFileItem createTDQFileItem(); protected abstract String[] getFilterExtensions(); }