// ============================================================================ // // 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.analysis.connection; import org.eclipse.core.resources.IFile; import org.eclipse.jface.viewers.DoubleClickEvent; import org.eclipse.jface.viewers.IDoubleClickListener; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.talend.core.model.metadata.builder.connection.Connection; import org.talend.core.model.properties.ConnectionItem; import org.talend.core.model.repository.IRepositoryViewObject; import org.talend.dataprofiler.core.i18n.internal.DefaultMessagesImpl; import org.talend.dataprofiler.core.ui.wizard.analysis.AnalysisDPSelectionPage; import org.talend.dataprofiler.core.ui.wizard.analysis.provider.ConnectionsContentProvider; import org.talend.dq.analysis.parameters.AnalysisFilterParameter; import org.talend.dq.nodes.DBConnectionRepNode; /** * @author zqin */ public class ConnAnalysisDPSelectionPage extends AnalysisDPSelectionPage { private static String newAnaStr = DefaultMessagesImpl.getString("ConnAnalysisPageStep0.newAnalysis"); //$NON-NLS-1$ private static String chooseConnStr = DefaultMessagesImpl.getString("ConnAnalysisPageStep0.chooseConnection"); //$NON-NLS-1$ private static String connsStr = DefaultMessagesImpl.getString("ConnAnalysisPageStep0.connections"); //$NON-NLS-1$ /** * @param pageName */ public ConnAnalysisDPSelectionPage() { super(newAnaStr, chooseConnStr, connsStr, new ConnectionsContentProvider()); setPageComplete(false); } @Override protected void addListeners() { addListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { Object object = ((IStructuredSelection) event.getSelection()).getFirstElement(); if (object instanceof IFile) { IFile file = (IFile) object; if (file.getParent() != null) { advanceToNextPageOrFinish(); } } } }); addListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { // get the dataprovider from the seleted connection Object object = ((IStructuredSelection) event.getSelection()).getFirstElement(); AnalysisFilterParameter connPanameter = (AnalysisFilterParameter) getConnectionParams(); if (object instanceof DBConnectionRepNode) { DBConnectionRepNode connNode = (DBConnectionRepNode) object; IRepositoryViewObject reposViewObj = connNode.getObject(); Connection connection = ((ConnectionItem) reposViewObj.getProperty().getItem()).getConnection(); if (connection != null && connPanameter != null) { connPanameter.setTdDataProvider(connection); connPanameter.setConnectionRepNode(connNode); } setPageComplete(true); } else { setPageComplete(false); } } }); } }