Search in sources :

Example 1 with ColumnDependencyExplorer

use of org.talend.dq.analysis.explore.ColumnDependencyExplorer in project tdq-studio-se by Talend.

the class FunctionalDependencyAnalysisResultPage method createTable.

/**
 * DOC xqliu Comment method "createTable".
 *
 * @param composite
 */
private void createTable(Composite composite) {
    final TableViewer tableViewer = new TableViewer(composite, SWT.FULL_SELECTION | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    Table resultTable = tableViewer.getTable();
    resultTable.setLinesVisible(true);
    resultTable.setHeaderVisible(true);
    // create table headers
    TableStructureEntity tableStructure = getTableStructure();
    String[] fieldNames = tableStructure.getFieldNames();
    Integer[] fieldWidths = tableStructure.getFieldWidths();
    for (int i = 0; i < fieldNames.length; ++i) {
        TableColumn columnHeader = new TableColumn(resultTable, SWT.LEFT);
        columnHeader.setText(fieldNames[i]);
        columnHeader.setWidth(fieldWidths[i]);
    }
    // create table items
    CustomerDefaultCategoryDataset dataset = initCustomerDataset();
    ChartDataEntity[] dataEntities = dataset.getDataEntities();
    if (dataEntities != null) {
        // MOD mzhao bug 8839 There might be duplicate dependencies on left and right columnSet.
        if (canShowChartForResultPage() && TOPChartUtils.getInstance().getColumnCount(dataset.getDataset()) < dataEntities.length) {
            // $NON-NLS-1$
            MessageDialog.openError(// $NON-NLS-1$
            this.getEditor().getSite().getShell(), // $NON-NLS-1$
            "Duplicate dependencies", // $NON-NLS-1$
            "There might be duplicate dependencies on left and right columnSet.");
        } else {
            for (ChartDataEntity dataEntity : dataEntities) {
                TableItem item = new TableItem(resultTable, SWT.NULL);
                String numMatch = ((PatternChartDataEntity) dataEntity).getNumMatch();
                String numNoMatch = ((PatternChartDataEntity) dataEntity).getNumNoMatch();
                Number match = Long.parseLong(numMatch);
                Number notMatch = Long.parseLong(numNoMatch);
                Number row = match.intValue() + notMatch.intValue();
                item.setText(0, dataEntity.getLabel());
                item.setText(1, String.valueOf(match.intValue()));
                // TDQ-8695 display "N/A" if it is infinite or NaN
                double percentage = match.doubleValue() / row.doubleValue();
                if (Double.isNaN(percentage) || Double.isInfinite(percentage)) {
                    item.setText(2, PluginConstant.NA_STRING);
                } else {
                    item.setText(2, StringFormatUtil.format(String.valueOf(percentage), StringFormatUtil.PERCENT).toString());
                }
                item.setText(3, String.valueOf(row));
                item.setData(dataEntity);
            }
        }
    }
    GridData gd = new GridData();
    gd.heightHint = 180;
    gd.widthHint = 450;
    resultTable.setLayoutData(gd);
    // add menus
    ChartTableFactory.addMenuAndTip(tableViewer, new ColumnDependencyExplorer(), this.masterPage.getCurrentModelElement());
}
Also used : Table(org.eclipse.swt.widgets.Table) TableItem(org.eclipse.swt.widgets.TableItem) TableStructureEntity(org.talend.dataprofiler.core.ui.editor.preview.model.entity.TableStructureEntity) PatternChartDataEntity(org.talend.dq.indicators.preview.table.PatternChartDataEntity) ChartDataEntity(org.talend.dq.indicators.preview.table.ChartDataEntity) TableColumn(org.eclipse.swt.widgets.TableColumn) CustomerDefaultCategoryDataset(org.talend.dataprofiler.common.ui.editor.preview.CustomerDefaultCategoryDataset) PatternChartDataEntity(org.talend.dq.indicators.preview.table.PatternChartDataEntity) GridData(org.eclipse.swt.layout.GridData) ColumnDependencyExplorer(org.talend.dq.analysis.explore.ColumnDependencyExplorer) TableViewer(org.eclipse.jface.viewers.TableViewer)

Example 2 with ColumnDependencyExplorer

use of org.talend.dq.analysis.explore.ColumnDependencyExplorer in project tdq-studio-se by Talend.

the class FunctionalDependencyAnalysisResultPage method createChart.

/**
 * DOC jet create result chart.
 * <p>
 * the chart must include
 *
 * @param sectionClient
 * @param analysis
 */
private void createChart(Composite sectionClient, Analysis analysis) {
    CustomerDefaultCategoryDataset dataset = initCustomerDataset();
    Object createChart = TOPChartUtils.getInstance().createStackedBarChart(DefaultMessagesImpl.getString("ColumnDependencyResultPage.dependencyStrength"), dataset, true, // $NON-NLS-1$
    true);
    TOPChartUtils.getInstance().decorateColumnDependency(createChart);
    Object chartComp = TOPChartUtils.getInstance().createChartComposite(sectionClient, SWT.NONE, createChart, true);
    addMenuToChartComp(chartComp, new ColumnDependencyExplorer(), getAnalysisHandler().getAnalysis(), ((ICustomerDataset) dataset).getDataEntities());
}
Also used : ColumnDependencyExplorer(org.talend.dq.analysis.explore.ColumnDependencyExplorer) CustomerDefaultCategoryDataset(org.talend.dataprofiler.common.ui.editor.preview.CustomerDefaultCategoryDataset)

Aggregations

CustomerDefaultCategoryDataset (org.talend.dataprofiler.common.ui.editor.preview.CustomerDefaultCategoryDataset)2 ColumnDependencyExplorer (org.talend.dq.analysis.explore.ColumnDependencyExplorer)2 TableViewer (org.eclipse.jface.viewers.TableViewer)1 GridData (org.eclipse.swt.layout.GridData)1 Table (org.eclipse.swt.widgets.Table)1 TableColumn (org.eclipse.swt.widgets.TableColumn)1 TableItem (org.eclipse.swt.widgets.TableItem)1 TableStructureEntity (org.talend.dataprofiler.core.ui.editor.preview.model.entity.TableStructureEntity)1 ChartDataEntity (org.talend.dq.indicators.preview.table.ChartDataEntity)1 PatternChartDataEntity (org.talend.dq.indicators.preview.table.PatternChartDataEntity)1