// ============================================================================ // // 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.table; import java.util.ArrayList; import java.util.List; 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.cwm.helper.ConnectionHelper; import org.talend.cwm.relational.TdTable; import org.talend.dataprofiler.core.i18n.internal.DefaultMessagesImpl; import org.talend.dataprofiler.core.ui.wizard.analysis.AnalysisDPSelectionPage; import org.talend.dq.analysis.parameters.NamedColumnSetAnalysisParameter; import org.talend.dq.helper.RepositoryNodeHelper; import org.talend.dq.nodes.DBCatalogRepNode; import org.talend.dq.nodes.DBConnectionRepNode; import org.talend.dq.nodes.DBSchemaRepNode; import org.talend.dq.nodes.DBTableRepNode; import org.talend.repository.model.IRepositoryNode; import org.talend.repository.model.RepositoryNode; import orgomg.cwm.resource.relational.NamedColumnSet; /** * DOC xqliu class global comment. Detailled comment */ @Deprecated public class TableAnalysisDPSelectionPage extends AnalysisDPSelectionPage { private static String newAnaStr = DefaultMessagesImpl.getString("TableAnalysisPageStep0.newAnalysis"); //$NON-NLS-1$ private static String chooseConnStr = DefaultMessagesImpl.getString("TableAnalysisPageStep0.chooseTable"); //$NON-NLS-1$ private static String connsStr = DefaultMessagesImpl.getString("TableAnalysisPageStep0.tables"); //$NON-NLS-1$ public Connection connection = null; public TableAnalysisDPSelectionPage() { super(newAnaStr, chooseConnStr, connsStr, new TableContentProvider(), true); } @Override protected void addListeners() { addListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { Object object = ((IStructuredSelection) event.getSelection()).getFirstElement(); if (object instanceof NamedColumnSet) { advanceToNextPageOrFinish(); } } }); addListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { // Connection oldTdDataProvider = null; NamedColumnSetAnalysisParameter paraneter = (NamedColumnSetAnalysisParameter) getConnectionParams(); List tempList = ((IStructuredSelection) event.getSelection()).toList(); List<NamedColumnSet> setList = new ArrayList<NamedColumnSet>(); for (Object object : tempList) { if (object instanceof DBTableRepNode) { DBTableRepNode tableNode = (DBTableRepNode) object; // MOD klliu if table node is not initialized , then init that . bug 20097 2011-03-31 if (!tableNode.isInitialized()) { tableNode.getChildren().get(0).getChildren(); } // ~ setList.add(tableNode.getTdTable()); } // if (object instanceof NamedColumnSet) { // NamedColumnSet set = (NamedColumnSet) object; // Connection tdProvider = ConnectionHelper.getTdDataProvider(TableHelper // .getParentCatalogOrSchema(set)); // oldTdDataProvider = oldTdDataProvider == null ? tdProvider : oldTdDataProvider; // if (oldTdDataProvider != null && !oldTdDataProvider.equals(tdProvider)) { // MessageUI.openWarning(DefaultMessagesImpl // .getString("TableAnalysisDPSelectionPage.TableSelectWarning")); //$NON-NLS-1$ // } else if (tdProvider != null && paraneter != null) { // setList.add(set); // paraneter.setTdDataProvider(oldTdDataProvider); // } // } } if (setList.size() > 0 && paraneter != null) { paraneter.setNamedColumnSets(setList.toArray(new NamedColumnSet[setList.size()])); DBTableRepNode recursiveFind = (DBTableRepNode) RepositoryNodeHelper.recursiveFind((TdTable) setList.get(0)); RepositoryNode parent = recursiveFind.getParent().getParent(); // MOD qiongli 2011-3-16 bug 19475 RepositoryNode catalogNode = parent; if (parent instanceof DBCatalogRepNode) { parent = parent.getParent(); } else if (parent instanceof DBSchemaRepNode) { parent = parent.getParent(); if (parent instanceof DBCatalogRepNode) { catalogNode = parent; parent = parent.getParent(); } } // TdTableRepositoryObject tableViewObject = (TdTableRepositoryObject) recursiveFind.getObject(); // IRepositoryViewObject viewObject = parent.getObject(); DBConnectionRepNode connNode = (DBConnectionRepNode) parent; paraneter.setConnectionRepNode(connNode); Connection connection = ConnectionHelper.getConnection((TdTable) setList.get(0)); paraneter.setTdDataProvider(connection); List<IRepositoryNode> packagesNode = new ArrayList<IRepositoryNode>(); packagesNode.add(catalogNode); paraneter.setPackages(packagesNode); setPageComplete(true); } else { setPageComplete(false); } } }); } }