// ============================================================================ // // 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.wizard.folder; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.wizard.Wizard; import org.talend.commons.exception.ExceptionHandler; import org.talend.commons.exception.LoginException; import org.talend.commons.exception.PersistenceException; import org.talend.core.model.repository.ERepositoryObjectType; import org.talend.core.repository.model.ProxyRepositoryFactory; import org.talend.dataprofiler.core.CorePlugin; import org.talend.dataprofiler.core.ImageLib; import org.talend.dataprofiler.core.i18n.internal.DefaultMessagesImpl; import org.talend.dataprofiler.core.manager.DQStructureManager; import org.talend.dataprofiler.core.ui.views.DQRespositoryView; import org.talend.dq.helper.RepositoryNodeHelper; import org.talend.dq.nodes.DQRepositoryNode; import org.talend.repository.RepositoryWorkUnit; import org.talend.repository.model.IRepositoryNode; import org.talend.resource.ResourceManager; import org.talend.utils.sugars.ReturnCode; /** * This class is a wizard to create a folder on workspace. * * @deprecated use org.talend.repository.ui.wizards.folder.FolderWizard instead. */ @Deprecated public class FolderWizard extends Wizard { /** Main page. */ private FolderWizardPage mainPage; private IPath path; private final String defaultLabel; /** * Constructs a new NewProjectWizard. * * @param author Project author. * @param server * @param password */ public FolderWizard(IPath path, String defaultLabel) { super(); this.path = path; this.defaultLabel = defaultLabel; setDefaultPageImageDescriptor(ImageLib.getImageDescriptor(ImageLib.FOLDER_WIZ_IMAGE)); } /** * @see org.eclipse.jface.wizard.Wizard#addPages() */ @Override public void addPages() { mainPage = new FolderWizardPage(defaultLabel); addPage(mainPage); setWindowTitle(DefaultMessagesImpl.getString("FolderWizard.newFolder")); //$NON-NLS-1$ } /** * @see org.eclipse.jface.wizard.Wizard#performFinish() */ @Override public boolean performFinish() { final ReturnCode returncode = new ReturnCode(true); RepositoryWorkUnit<Object> workUnit = new RepositoryWorkUnit<Object>( DefaultMessagesImpl.getString("FolderWizard.newFolder")) { //$NON-NLS-1$ @Override protected void run() throws LoginException, PersistenceException { String folderName = mainPage.getName(); if (defaultLabel == null) { IRepositoryNode currentSelectionNode = CorePlugin.getDefault().getCurrentSelectionNode(); IFolder folder = ResourcesPlugin.getWorkspace().getRoot().getFolder(path); IFolder newFolder = folder.getFolder(folderName); try { if (ResourceManager.getConnectionFolder().getFullPath().isPrefixOf(folder.getFullPath())) { // when create folder under dbconnections ProxyRepositoryFactory.getInstance().createFolder(ERepositoryObjectType.METADATA_CONNECTIONS, path.makeRelativeTo(ResourceManager.getConnectionFolder().getFullPath()), folderName); } else { // when create folder under other nodes newFolder.create(false, true, null); } // do refresh folder.refreshLocal(IResource.DEPTH_INFINITE, null); DQRespositoryView findView = CorePlugin.getDefault().getRepositoryView(); if (findView != null) { findView.getCommonViewer().setExpandedState(newFolder, true); findView.getCommonViewer().refresh(currentSelectionNode); } // MOD gdbu 2011-11-18 TDQ-3969 : after create folder re-filter the tree , to create a new // list . if (DQRepositoryNode.isOnFilterring()) { RepositoryNodeHelper.fillTreeList(null); RepositoryNodeHelper.setFilteredNode(RepositoryNodeHelper.getRootNode( ERepositoryObjectType.TDQ_DATA_PROFILING, true)); } } catch (CoreException e) { MessageDialog.openError(getShell(), DefaultMessagesImpl.getString("FolderWizard.error"), //$NON-NLS-1$ DefaultMessagesImpl.getString("FolderWizard.folderCreatedError")); //$NON-NLS-1$ ExceptionHandler.process(e); returncode.setOk(false); return; } } } }; workUnit.setAvoidUnloadResources(true); ProxyRepositoryFactory.getInstance().executeRepositoryWorkUnit(workUnit); return returncode.isOk(); } public boolean isValid(String folderName) { DQStructureManager manager = DQStructureManager.getInstance(); return manager.isPathValid(path, folderName); } }