// ============================================================================ // // 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.dataquality.record.linkage.ui.section.definition; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.ScrolledForm; import org.eclipse.ui.forms.widgets.Section; import org.talend.dataquality.record.linkage.ui.composite.MatchRuleTableComposite; import org.talend.dataquality.record.linkage.ui.composite.definition.MatchRuleTableDefinitionComposite; import org.talend.dataquality.record.linkage.ui.section.MatchingKeySection; import org.talend.dataquality.record.linkage.utils.MatchAnalysisConstant; import org.talend.dataquality.rules.MatchKeyDefinition; import org.talend.dataquality.rules.MatchRule; import org.talend.dataquality.rules.MatchRuleDefinition; /** * created by zshen on Aug 21, 2013 Detailled comment * */ public class MatchKeyDefinitionSection extends MatchingKeySection { Logger log = Logger.getLogger(MatchKeyDefinitionSection.class); private MatchRuleDefinition matchRuleDef = null; /** * DOC zshen MatchKeyDefinitionSection constructor comment. * * @param form * @param parent * @param style * @param toolkit * @param analysis */ public MatchKeyDefinitionSection(ScrolledForm form, Composite parent, FormToolkit toolkit) { super(form, parent, Section.TWISTIE | Section.TITLE_BAR | Section.EXPANDED, toolkit, null); super.setIsNeedSubChart(false); } /* * (non-Javadoc) * * @see org.talend.dataquality.record.linkage.ui.section.MatchingKeySection#getSectionName() */ @Override protected String getSectionName() { return MatchAnalysisConstant.MATCHING_KEY_DEFINITION_SECTION_NAME; } /* * (non-Javadoc) * * @see org.talend.dataquality.record.linkage.ui.section.MatchingKeySection#getMatchRuleDefinition() */ @Override protected MatchRuleDefinition getMatchRuleDefinition() { return this.matchRuleDef; } /* * (non-Javadoc) * * @see * org.talend.dataquality.record.linkage.ui.section.MatchingKeySection#createSubChart(org.eclipse.swt.widgets.Composite * ) */ @Override protected void createSubChart(Composite sectionClient) { // don't need the chart so do nothing at here } /* * (non-Javadoc) * * @see * org.talend.dataquality.record.linkage.ui.section.MatchingKeySection#createMatchKeyFromCurrentMatchRule(java.lang * .String) */ @Override public void createMatchKeyFromCurrentMatchRule(String column) { MatchRuleTableComposite matchRuleTableComp = (MatchRuleTableComposite) getCurrentMatchRuleTableComposite(); matchRuleTableComp.addKeyDefinition(column, matchRuleTableComp.getMatchRule().getMatchKeys()); } /** * Sets the matchRuleDef. * * @param matchRuleDef the matchRuleDef to set */ public void setMatchRuleDef(MatchRuleDefinition matchRuleDef) { this.matchRuleDef = matchRuleDef; } /* * (non-Javadoc) * * @see * org.talend.dataquality.record.linkage.ui.section.MatchingKeySection#removeMatchKeyFromCurrentMatchRule(java.lang * .String) */ @Override public void removeMatchKeyFromCurrentMatchRule(MatchKeyDefinition columnkey) { MatchRuleTableComposite matchRuleTableComp = (MatchRuleTableComposite) getCurrentMatchRuleTableComposite(); matchRuleTableComp.removeKeyDefinition(columnkey, matchRuleTableComp.getMatchRule().getMatchKeys()); } /** * Getter for matchRules. * * @return the matchRules */ public List<MatchRule> getMatchRules() { List<MatchRule> matchRuleKeys = new ArrayList<MatchRule>(); matchRuleKeys.addAll(EcoreUtil.copyAll(this.matchRuleDef.getMatchRules())); return matchRuleKeys; } public double getGroupQualityThreshold() { return this.matchRuleDef.getMatchGroupQualityThreshold(); } /* * (non-Javadoc) * * @see * org.talend.dataquality.record.linkage.ui.section.MatchingKeySection#createTableComposite(org.eclipse.swt.widgets * .Composite, org.talend.dataquality.rules.MatchRule) */ @Override protected MatchRuleTableComposite createTableComposite(Composite parent, MatchRule matchRule) { return new MatchRuleTableDefinitionComposite(parent, SWT.NO_FOCUS, matchRule); } /* * (non-Javadoc) * * @see * org.talend.dataquality.record.linkage.ui.section.MatchingKeySection#checkColumnNameIsEmpty(org.talend.dataquality * .rules.MatchKeyDefinition) */ @Override protected boolean checkColumnNameIsEmpty(MatchKeyDefinition mdk) { return false; } }