// ============================================================================ // // 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.database; import org.apache.log4j.Logger; import org.talend.commons.exception.PersistenceException; import org.talend.core.model.general.Project; import org.talend.core.model.metadata.builder.connection.Connection; import org.talend.core.model.properties.DatabaseConnectionItem; import org.talend.core.model.properties.Property; import org.talend.core.repository.model.ProxyRepositoryFactory; import org.talend.cwm.helper.ColumnSetHelper; import org.talend.cwm.helper.ConnectionHelper; import org.talend.dataprofiler.core.ImageLib; import org.talend.dataprofiler.core.i18n.internal.DefaultMessagesImpl; import org.talend.dataprofiler.core.ui.wizard.AbstractWizard; import org.talend.dq.analysis.parameters.ConnectionParameter; import org.talend.dq.helper.resourcehelper.ResourceFileMap; import org.talend.repository.ProjectManager; import org.talend.repository.model.IRepositoryNode; import org.talend.utils.sugars.TypedReturnCode; import orgomg.cwm.objectmodel.core.ModelElement; import orgomg.cwm.objectmodel.core.Package; /** * DOC xqliu class global comment. Detailled comment */ public class TableViewFilterWizard extends AbstractWizard { protected static Logger log = Logger.getLogger(TableViewFilterWizard.class); private TableViewFilterWizardPage tableViewFilterWizardPage; private Package packageObj; private Connection tdDataProvider; private String oldTableFilter, oldViewFilter; public String getOldTableFilter() { return oldTableFilter; } public void setOldTableFilter(String oldTableFilter) { this.oldTableFilter = oldTableFilter; } public String getOldViewFilter() { return oldViewFilter; } public void setOldViewFilter(String oldViewFilter) { this.oldViewFilter = oldViewFilter; } public Package getPackageObj() { return packageObj; } public void setPackageObj(Package packageObj) { this.packageObj = packageObj; } public Connection getTdDataProvider() { return tdDataProvider; } public void setTdDataProvider(Connection tdDataProvider) { this.tdDataProvider = tdDataProvider; } public TableViewFilterWizard() { super(); } public TableViewFilterWizard(Package packageObj) { super(); initAction(packageObj); } @Override protected String getEditorName() { return DefaultMessagesImpl.getString("TableViewFilterWizard.Table/ViewFilter"); //$NON-NLS-1$ } @Override public boolean performFinish() { boolean needSave = false; String tableFilter = this.tableViewFilterWizardPage.getTableFilterText().getText(); if (!this.getOldTableFilter().equals(tableFilter)) { needSave = true; } String viewFilter = this.tableViewFilterWizardPage.getViewFilterText().getText(); if (!this.getOldViewFilter().equals(viewFilter)) { needSave = true; } if (needSave) { Property property = org.talend.dq.helper.PropertyHelper.getProperty(tdDataProvider); DatabaseConnectionItem connectionItem = (DatabaseConnectionItem) property.getItem(); ColumnSetHelper.setTableFilter(tableFilter, packageObj); ColumnSetHelper.setViewFilter(viewFilter, packageObj); Project currentProject = ProjectManager.getInstance().getCurrentProject(); try { ProxyRepositoryFactory.getInstance().save(currentProject, connectionItem); } catch (PersistenceException e) { return false; } // return ElementWriterFactory.getInstance().createDataProviderWriter().save(tdDataProvider).isOk(); } return true; } @Override public ConnectionParameter getParameter() { return null; } @Override protected ResourceFileMap getResourceFileMap() { return null; } @Override public void addPages() { setWindowTitle(DefaultMessagesImpl.getString("TableViewFilterWizard.tableViewFilter")); //$NON-NLS-1$ setDefaultPageImageDescriptor(ImageLib.getImageDescriptor(ImageLib.RUN_IMAGE)); tableViewFilterWizardPage = new TableViewFilterWizardPage(this); tableViewFilterWizardPage.setTitle(DefaultMessagesImpl.getString("TableViewFilterWizard.tableViewFilter")); //$NON-NLS-1$ tableViewFilterWizardPage.setDescription(DefaultMessagesImpl.getString("TableViewFilterWizard.tableViewFilterDesc")); //$NON-NLS-1$ addPage(tableViewFilterWizardPage); } public TypedReturnCode<Object> createAndSaveCWMFile(ModelElement cwmElement) { return null; } public ModelElement initCWMResourceBuilder() { return this.tdDataProvider; } private void initAction(Package packageObj) { this.packageObj = packageObj; this.tdDataProvider = ConnectionHelper.getTdDataProvider(this.packageObj); this.oldTableFilter = ColumnSetHelper.getTableFilter(packageObj); this.oldViewFilter = ColumnSetHelper.getViewFilter(packageObj); } /* * (non-Javadoc) * * @see org.talend.dataprofiler.core.ui.wizard.AbstractWizard#openEditor(org.talend.repository.model.IRepositoryNode) */ @Override public void openEditor(IRepositoryNode repNode) { // do nothing until now } }