Search in sources :

Example 16 with TdReport

use of org.talend.dataquality.reports.TdReport in project tdq-studio-se by Talend.

the class OpenItemEditorAction method computeEditorInput.

/**
 * get the ItemEditorInput according to the repNode, if there no ItemEditorInput return null.
 *
 * @param repNode
 * @param isOpenItemEditorAction
 * @return IEditorInput
 * @throws PersistenceException
 */
public IEditorInput computeEditorInput(IRepositoryNode repNode, boolean isOpenItemEditorAction) throws BusinessException {
    // TDQ-12499 msjian add : when click the node under recyclebin, no need to find a EditorInput
    if (repNode != null && !isOpenItemEditorAction) {
        IRepositoryNode currentNode = repNode;
        do {
            RepositoryNode parentNode = currentNode.getParent();
            if (parentNode != null && parentNode instanceof RecycleBinRepNode) {
                return null;
            }
            currentNode = parentNode;
        } while (currentNode != null);
    }
    // TDQ-12499~
    IEditorInput result = null;
    IRepositoryViewObject repViewObj = repNode.getObject();
    if (repViewObj != null) {
        // Connection editor
        String key = repViewObj.getRepositoryObjectType().getKey();
        Item item = repViewObj.getProperty().getItem();
        if (item instanceof TDQItem && !(item instanceof TDQFileItem)) {
            ModelElement modelElement = PropertyHelper.getModelElement(repViewObj.getProperty());
            if (modelElement.eIsProxy() && repNode != null) {
                modelElement = (ModelElement) EObjectHelper.resolveObject(modelElement);
                item = repViewObj.getProperty().getItem();
            }
            if (modelElement == null || modelElement.eResource() == null) {
                throw ExceptionFactory.getInstance().createBusinessException(((TDQItem) item).getFilename());
            }
        }
        if (ERepositoryObjectType.METADATA_CONNECTIONS.getKey().equals(key) || ConnectionUtils.isTcompJdbc(key)) {
            result = new ConnectionItemEditorInput(repNode);
            Connection connection = ((ConnectionItem) item).getConnection();
            if (connection == null || connection.getDataPackage().size() == 0) {
                throw ExceptionFactory.getInstance().createBusinessException(repViewObj);
            }
            editorID = ConnectionEditor.class.getName();
        } else if (ERepositoryObjectType.TDQ_ANALYSIS_ELEMENT.getKey().equals(key)) {
            result = new AnalysisItemEditorInput(repNode);
            Analysis analysis = ((TDQAnalysisItem) item).getAnalysis();
            if (analysis == null || analysis.getContext() == null) {
                throw ExceptionFactory.getInstance().createBusinessException(repViewObj);
            }
            EList<ModelElement> analysedElements = analysis.getContext().getAnalysedElements();
            RepositoryNode connectionRepositoryNode = null;
            if (!analysedElements.isEmpty()) {
                Connection connection = null;
                ModelElement modelElement = analysedElements.get(0);
                if (modelElement instanceof Connection) {
                    connection = (Connection) modelElement;
                } else if (modelElement instanceof Catalog) {
                    Catalog catalog = SwitchHelpers.CATALOG_SWITCH.caseCatalog((Catalog) modelElement);
                    connection = ConnectionHelper.getConnection(catalog);
                } else if (modelElement instanceof Schema) {
                    Schema schema = SwitchHelpers.SCHEMA_SWITCH.caseSchema((Schema) modelElement);
                    if (schema != null) {
                        connection = ConnectionHelper.getConnection(schema);
                    }
                } else if (modelElement instanceof TdTable) {
                    TdTable tdTable = SwitchHelpers.TABLE_SWITCH.caseTdTable((TdTable) modelElement);
                    connection = ConnectionHelper.getConnection(tdTable);
                } else if (modelElement instanceof TdView) {
                    TdView tdView = SwitchHelpers.VIEW_SWITCH.caseTdView((TdView) modelElement);
                    connection = ConnectionHelper.getConnection(tdView);
                } else if (modelElement instanceof TdColumn) {
                    TdColumn tdColumn = SwitchHelpers.COLUMN_SWITCH.caseTdColumn((TdColumn) modelElement);
                    connection = ConnectionHelper.getConnection(tdColumn);
                } else if (modelElement instanceof MetadataColumn) {
                    MetadataColumn mColumn = SwitchHelpers.METADATA_COLUMN_SWITCH.doSwitch(modelElement);
                    connection = ConnectionHelper.getTdDataProvider(mColumn);
                }
                connectionRepositoryNode = RepositoryNodeHelper.recursiveFind(connection);
            }
            ((AnalysisItemEditorInput) result).setConnectionNode(connectionRepositoryNode);
            if (analysis.getParameters() != null && analysis.getParameters().getAnalysisType().equals(AnalysisType.MATCH_ANALYSIS)) {
                editorID = MatchAnalysisEditor.class.getName();
            } else {
                editorID = AnalysisEditor.class.getName();
            }
        } else if (ERepositoryObjectType.TDQ_INDICATOR_ELEMENT.getKey().equals(key)) {
            result = new IndicatorDefinitionItemEditorInput(repNode);
            TDQIndicatorDefinitionItem definitionItem = (TDQIndicatorDefinitionItem) item;
            if (definitionItem.getIndicatorDefinition().eResource() == null) {
                throw ExceptionFactory.getInstance().createBusinessException(definitionItem.getFilename());
            }
            if (UDIHelper.getUDICategory(definitionItem.getIndicatorDefinition()) == null) {
                throw ExceptionFactory.getInstance().createBusinessException(definitionItem.getFilename());
            }
            editorID = IndicatorEditor.class.getName();
        } else if (ERepositoryObjectType.TDQ_RULES_SQL.getKey().equals(key) || ERepositoryObjectType.TDQ_RULES_PARSER.getKey().equals(key) || ERepositoryObjectType.TDQ_RULES_MATCHER.getKey().equals(key)) {
            result = new BusinessRuleItemEditorInput(repNode);
            editorID = DQRuleEditor.class.getName();
        } else if (ERepositoryObjectType.TDQ_PATTERN_ELEMENT.getKey().equals(key)) {
            result = new PatternItemEditorInput(repNode);
            TDQPatternItem patternItem = (TDQPatternItem) item;
            if (patternItem.getPattern() == null || patternItem.getPattern().eResource() == null) {
                throw ExceptionFactory.getInstance().createBusinessException(patternItem.getFilename());
            }
            editorID = PatternEditor.class.getName();
        } else if (ERepositoryObjectType.TDQ_REPORT_ELEMENT.getKey().equals(key)) {
            result = new ReportItemEditorInput(repNode);
            TDQReportItem reportItem = (TDQReportItem) item;
            if (!(reportItem.getReport() instanceof TdReport)) {
                throw ExceptionFactory.getInstance().createBusinessException(reportItem.getFilename());
            }
            for (AnalysisMap anaMap : ((TdReport) reportItem.getReport()).getAnalysisMap()) {
                Analysis analysis = anaMap.getAnalysis();
                if (analysis.eResource() == null) {
                    throw ExceptionFactory.getInstance().createBusinessException(reportItem.getFilename());
                }
            }
            // $NON-NLS-1$
            editorID = "org.talend.dataprofiler.core.tdq.ui.editor.report.ReportEditror";
        } else if (ERepositoryObjectType.TDQ_SOURCE_FILE_ELEMENT.getKey().equals(key) || ERepositoryObjectType.TDQ_JRAXML_ELEMENT.getKey().equals(key)) {
            IPath append = WorkbenchUtils.getFilePath(repViewObj.getRepositoryNode());
            DQRepositoryNode node = (DQRepositoryNode) repViewObj.getRepositoryNode();
            file = ResourceManager.getRoot().getProject(node.getProject().getTechnicalLabel()).getFile(append);
            if (!file.exists()) {
                throw ExceptionFactory.getInstance().createBusinessException(repViewObj);
            }
            if (ERepositoryObjectType.TDQ_SOURCE_FILE_ELEMENT.getKey().equals(key)) {
                editorID = SqlExplorerUtils.SQLEDITOR_ID;
            } else {
                editorID = TDQFileEditorInput.DEFAULT_EDITOR_ID;
            }
            result = new TDQFileEditorInput(file);
            // Added TDQ-7143 yyin 20130531
            ((TDQFileEditorInput) result).setFileItem(item);
            CorePlugin.getDefault().refreshDQView(repNode);
        // ~
        }
        // ADD msjian TDQ-4209 2012-2-7 : return the editorInput of *.jrxml and *.sql files
        if (!isOpenItemEditorAction) {
            if (ERepositoryObjectType.TDQ_JRAXML_ELEMENT.getKey().equals(key) || ERepositoryObjectType.TDQ_SOURCE_FILE_ELEMENT.getKey().equals(key)) {
                // if there don't found the correct ItemEditorInput, try to open it as a File
                result = new FileEditorInput(file);
                editorID = FileEditorInput.class.getName();
            }
        }
    // TDQ-4209~
    }
    return result;
}
Also used : TDQFileItem(org.talend.dataquality.properties.TDQFileItem) ConnectionEditor(org.talend.dataprofiler.core.ui.editor.connection.ConnectionEditor) TDQIndicatorDefinitionItem(org.talend.dataquality.properties.TDQIndicatorDefinitionItem) ConnectionItem(org.talend.core.model.properties.ConnectionItem) Schema(orgomg.cwm.resource.relational.Schema) BusinessRuleItemEditorInput(org.talend.dataprofiler.core.ui.editor.dqrules.BusinessRuleItemEditorInput) TDQPatternItem(org.talend.dataquality.properties.TDQPatternItem) Item(org.talend.core.model.properties.Item) TDQIndicatorDefinitionItem(org.talend.dataquality.properties.TDQIndicatorDefinitionItem) TDQAnalysisItem(org.talend.dataquality.properties.TDQAnalysisItem) ConnectionItem(org.talend.core.model.properties.ConnectionItem) TDQItem(org.talend.core.model.properties.TDQItem) TDQPatternItem(org.talend.dataquality.properties.TDQPatternItem) TDQFileItem(org.talend.dataquality.properties.TDQFileItem) TDQReportItem(org.talend.dataquality.properties.TDQReportItem) ModelElement(orgomg.cwm.objectmodel.core.ModelElement) MetadataColumn(org.talend.core.model.metadata.builder.connection.MetadataColumn) DQRepositoryNode(org.talend.dq.nodes.DQRepositoryNode) TdView(org.talend.cwm.relational.TdView) AnalysisMap(org.talend.dataquality.reports.AnalysisMap) TDQFileEditorInput(org.talend.dataprofiler.core.ui.editor.TDQFileEditorInput) AnalysisItemEditorInput(org.talend.dataprofiler.core.ui.editor.analysis.AnalysisItemEditorInput) TDQReportItem(org.talend.dataquality.properties.TDQReportItem) ReportItemEditorInput(org.talend.dataprofiler.core.ui.editor.report.ReportItemEditorInput) ConnectionItemEditorInput(org.talend.dataprofiler.core.ui.editor.connection.ConnectionItemEditorInput) TdTable(org.talend.cwm.relational.TdTable) IRepositoryNode(org.talend.repository.model.IRepositoryNode) IPath(org.eclipse.core.runtime.IPath) TdReport(org.talend.dataquality.reports.TdReport) Connection(org.talend.core.model.metadata.builder.connection.Connection) PatternItemEditorInput(org.talend.dataprofiler.core.ui.editor.pattern.PatternItemEditorInput) DQRepositoryNode(org.talend.dq.nodes.DQRepositoryNode) RepositoryNode(org.talend.repository.model.RepositoryNode) IRepositoryNode(org.talend.repository.model.IRepositoryNode) RecycleBinRepNode(org.talend.dq.nodes.RecycleBinRepNode) Catalog(orgomg.cwm.resource.relational.Catalog) EList(org.eclipse.emf.common.util.EList) TdColumn(org.talend.cwm.relational.TdColumn) PatternEditor(org.talend.dataprofiler.core.ui.editor.pattern.PatternEditor) Analysis(org.talend.dataquality.analysis.Analysis) IndicatorEditor(org.talend.dataprofiler.core.ui.editor.indicator.IndicatorEditor) TDQFileEditorInput(org.talend.dataprofiler.core.ui.editor.TDQFileEditorInput) FileEditorInput(org.eclipse.ui.part.FileEditorInput) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) TDQItem(org.talend.core.model.properties.TDQItem) IndicatorDefinitionItemEditorInput(org.talend.dataprofiler.core.ui.editor.indicator.IndicatorDefinitionItemEditorInput) IEditorInput(org.eclipse.ui.IEditorInput)

Example 17 with TdReport

use of org.talend.dataquality.reports.TdReport in project tdq-studio-se by Talend.

the class UpdateReportBeginEndDateTask method doExecute.

@Override
protected boolean doExecute() throws Exception {
    List<? extends ModelElement> allElement = RepResourceFileHelper.getInstance().getAllElement();
    for (ModelElement me : allElement) {
        if (me instanceof TdReport) {
            TdReport tdReport = (TdReport) me;
            boolean isChanged = false;
            // dateFrom
            String oldDateFromStr = tdReport.getDateFrom();
            if (oldDateFromStr != null) {
                if (!ContextHelper.isContextVar(oldDateFromStr)) {
                    if (oldDateFromStr.length() > 10) {
                        // like: 2004-06-12T00:00:00.000+0800 --> 06/12/2004
                        Date oldDateFromDate = new SimpleDateFormat("yyyy-MM-dd").parse(oldDateFromStr);
                        tdReport.setDateFrom(new SimpleDateFormat("MM/dd/yyyy").format(oldDateFromDate));
                        isChanged = true;
                    }
                }
            }
            // dateTo
            String oldDateToStr = tdReport.getDateTo();
            if (oldDateToStr != null) {
                if (!ContextHelper.isContextVar(oldDateToStr)) {
                    if (oldDateToStr.length() > 10) {
                        // like: 2004-06-12T00:00:00.000+0800 --> 06/12/2004
                        Date oldDateToDate = new SimpleDateFormat("yyyy-MM-dd").parse(oldDateToStr);
                        tdReport.setDateTo(new SimpleDateFormat("MM/dd/yyyy").format(oldDateToDate));
                        isChanged = true;
                    }
                }
            }
            if (isChanged) {
                ElementWriterFactory.getInstance().createReportWriter().save(me);
            }
        }
    }
    return true;
}
Also used : ModelElement(orgomg.cwm.objectmodel.core.ModelElement) TdReport(org.talend.dataquality.reports.TdReport) SimpleDateFormat(java.text.SimpleDateFormat) Date(java.util.Date)

Example 18 with TdReport

use of org.talend.dataquality.reports.TdReport in project tdq-studio-se by Talend.

the class ReportDuplicateHandle method update.

@Override
protected ModelElement update(ModelElement oldObject, ModelElement newObject) {
    TdReport report = (TdReport) super.update(oldObject, newObject);
    // copy the client dependency if any
    newObject.getClientDependency().addAll(oldObject.getClientDependency());
    return report;
}
Also used : TdReport(org.talend.dataquality.reports.TdReport)

Aggregations

TdReport (org.talend.dataquality.reports.TdReport)18 Analysis (org.talend.dataquality.analysis.Analysis)9 AnalysisMap (org.talend.dataquality.reports.AnalysisMap)8 ModelElement (orgomg.cwm.objectmodel.core.ModelElement)7 ArrayList (java.util.ArrayList)5 IPath (org.eclipse.core.runtime.IPath)5 Property (org.talend.core.model.properties.Property)5 TDQReportItem (org.talend.dataquality.properties.TDQReportItem)4 IFile (org.eclipse.core.resources.IFile)3 EList (org.eclipse.emf.common.util.EList)3 Item (org.talend.core.model.properties.Item)3 IFolder (org.eclipse.core.resources.IFolder)2 Path (org.eclipse.core.runtime.Path)2 Test (org.junit.Test)2 PersistenceException (org.talend.commons.exception.PersistenceException)2 Connection (org.talend.core.model.metadata.builder.connection.Connection)2 IRepositoryViewObject (org.talend.core.model.repository.IRepositoryViewObject)2 Pattern (org.talend.dataquality.domain.pattern.Pattern)2 ReportType (org.talend.dataquality.helpers.ReportHelper.ReportType)2 IndicatorDefinition (org.talend.dataquality.indicators.definition.IndicatorDefinition)2