// ============================================================================
//
// 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.editor.analysis;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import org.apache.log4j.Logger;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.forms.IManagedForm;
import org.eclipse.ui.forms.editor.FormEditor;
import org.eclipse.ui.forms.widgets.Section;
import org.talend.dataquality.record.linkage.ui.section.DuplicateRecordStatisticsSection;
import org.talend.dataquality.record.linkage.ui.section.GroupStatisticsSection;
import org.talend.dq.analysis.AnalysisHandler;
/**
* DOC yyin class global comment. Detailled comment
*/
public class MatchAnalysisResultPage extends AbstractAnalysisResultPage implements PropertyChangeListener {
protected static Logger log = Logger.getLogger(MatchAnalysisResultPage.class);
private Composite resultComp;
private MatchAnalysisDetailsPage matchAnalysisMasterPage;
private DuplicateRecordStatisticsSection duplicateRecordStatisticsSection;
private GroupStatisticsSection groupStatisticsSection;
/**
* DOC yyin MatchAnalysisResultPage constructor comment.
*
* @param editor
* @param id
* @param title
*/
public MatchAnalysisResultPage(FormEditor editor, String id, String title) {
super(editor, id, title);
AnalysisEditor analysisEditor = (AnalysisEditor) editor;
this.matchAnalysisMasterPage = (MatchAnalysisDetailsPage) analysisEditor.getMasterPage();
}
/*
* (non-Javadoc)
*
* @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
*/
public void propertyChange(PropertyChangeEvent evt) {
// No implementation
}
/*
* (non-Javadoc)
*
* @see org.talend.dataprofiler.core.ui.editor.analysis.AbstractAnalysisResultPage#getAnalysisHandler()
*/
@Override
protected AnalysisHandler getAnalysisHandler() {
return matchAnalysisMasterPage.getAnalysisHandler();
}
/*
* (non-Javadoc)
*
* @see
* org.talend.dataprofiler.core.ui.editor.analysis.AbstractAnalysisResultPage#refresh(org.talend.dataprofiler.core
* .ui.editor.analysis.AbstractAnalysisMetadataPage)
*/
@Override
public void refresh(AbstractAnalysisMetadataPage masterPage) {
if (summaryComp != null && !summaryComp.isDisposed()) {
summaryComp.dispose();
}
if (resultComp != null && !resultComp.isDisposed()) {
resultComp.dispose();
}
createFormContent(getManagedForm());
duplicateRecordStatisticsSection.refreshChart();
groupStatisticsSection.refreshChart();
}
@Override
protected void createFormContent(IManagedForm managedForm) {
super.createFormContent(managedForm);
if (topComposite != null && !topComposite.isDisposed()) {
resultComp = toolkit.createComposite(topComposite);
resultComp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING));
resultComp.setLayout(new GridLayout());
createResultSection(resultComp);
form.reflow(true);
}
}
@Override
protected void createResultSection(Composite parent) {
duplicateRecordStatisticsSection = new DuplicateRecordStatisticsSection(form, parent, Section.TWISTIE | Section.TITLE_BAR
| Section.EXPANDED, toolkit, getAnalysisHandler().getAnalysis());
duplicateRecordStatisticsSection.createContent();
duplicateRecordStatisticsSection.getSection().setExpanded(
getExpandedStatus(duplicateRecordStatisticsSection.getSection().getText()));
groupStatisticsSection = new GroupStatisticsSection(form, parent, Section.TWISTIE | Section.TITLE_BAR | Section.EXPANDED,
toolkit, getAnalysisHandler().getAnalysis());
groupStatisticsSection.createContent();
groupStatisticsSection.getSection().setExpanded(getExpandedStatus(groupStatisticsSection.getSection().getText()));
}
/*
* (non-Javadoc)
*
* @see org.talend.dataprofiler.core.ui.editor.AbstractFormPage#setDirty(boolean)
*/
@Override
public void setDirty(boolean isDirty) {
// no dirty event in this result page.
}
}