use of org.talend.cwm.relational.TdView in project tdq-studio-se by Talend.
the class AnalysisTableTreeViewer method setInput.
/**
* DOC xqliu Comment method "setInput".
*
* @param objs
*/
@Override
public void setInput(Object[] objs) {
List<DBTableRepNode> tableNodeList = RepositoryNodeHelper.getTableNodeList(objs);
List<TableIndicator> tableIndicatorList = new ArrayList<TableIndicator>();
// MOD by zshen for 2011.06.13 add the support for the view.
List<DBViewRepNode> viewNodeList = RepositoryNodeHelper.getViewNodeList(objs);
if (tableNodeList.size() == 0 && viewNodeList.size() == 0) {
// feature 22206 : fixed another bug, when deselect all, the view is not changed
this.tableIndicators = tableIndicatorList.toArray(new TableIndicator[tableIndicatorList.size()]);
this.setElements(tableIndicators);
return;
}
List<RepositoryNode> setList = new ArrayList<RepositoryNode>();
Connection tdProvider = null;
for (DBTableRepNode tableNode : tableNodeList) {
if (tdProvider == null) {
tdProvider = ConnectionHelper.getTdDataProvider(TableHelper.getParentCatalogOrSchema(tableNode.getTdTable()));
}
if (tdProvider == null) {
MessageUI.openError(DefaultMessagesImpl.getString("AnalysisTableTreeViewer.TableProviderIsNull", // $NON-NLS-1$
tableNode.getLabel()));
} else if (this.getAnalysis().getContext().getConnection() != null && !tdProvider.equals(this.getAnalysis().getContext().getConnection())) {
MessageUI.openError(DefaultMessagesImpl.getString("AnalysisTableTreeViewer.TableDataProviderIsInvalid", // $NON-NLS-1$
tableNode.getLabel()));
} else {
setList.add(tableNode);
}
}
for (DBViewRepNode tableNode : viewNodeList) {
if (tdProvider == null) {
tdProvider = ConnectionHelper.getTdDataProvider(TableHelper.getParentCatalogOrSchema(tableNode.getTdView()));
}
if (tdProvider == null) {
MessageUI.openError(DefaultMessagesImpl.getString("AnalysisTableTreeViewer.TableProviderIsNull", // $NON-NLS-1$
tableNode.getLabel()));
} else if (this.getAnalysis().getContext().getConnection() != null && !tdProvider.equals(this.getAnalysis().getContext().getConnection())) {
MessageUI.openError(DefaultMessagesImpl.getString("AnalysisTableTreeViewer.TableDataProviderIsInvalid", // $NON-NLS-1$
tableNode.getLabel()));
} else {
setList.add(tableNode);
}
}
for (TableIndicator tableIndicator : tableIndicators) {
// ADDED yyin 20120606 TDQ-5343
NamedColumnSet selectedTable = tableIndicator.getColumnSet();
DQRepositoryNode tableNode = null;
if (selectedTable instanceof TdTable) {
tableNode = RepositoryNodeHelper.recursiveFindTdTable(((TdTable) selectedTable));
} else if (selectedTable instanceof TdView) {
tableNode = RepositoryNodeHelper.recursiveFindTdView(((TdView) selectedTable));
}
// ~
if (setList.contains(tableNode)) {
tableIndicatorList.add(tableIndicator);
setList.remove(tableNode);
}
}
for (RepositoryNode set : setList) {
TableIndicator tableIndicator = null;
if (set instanceof DBViewRepNode) {
tableIndicator = TableIndicator.createTableIndicatorWithRowCountIndicator(((DBViewRepNode) set).getTdView());
} else if (set instanceof DBTableRepNode) {
tableIndicator = TableIndicator.createTableIndicatorWithRowCountIndicator(((DBTableRepNode) set).getTdTable());
} else {
continue;
}
tableIndicatorList.add(tableIndicator);
}
this.tableIndicators = tableIndicatorList.toArray(new TableIndicator[tableIndicatorList.size()]);
this.setElements(tableIndicators);
}
use of org.talend.cwm.relational.TdView 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;
}
use of org.talend.cwm.relational.TdView in project tdq-studio-se by Talend.
the class AbstractPredefinedAnalysisAction method getStandardAnalysisWizardDialog.
protected WizardDialog getStandardAnalysisWizardDialog(AnalysisType type) {
// MOD klliu 2011-02-17 feature 15387
AnalysisLabelParameter parameter = null;
Object firstElement = this.selection.getFirstElement();
if (firstElement instanceof IRepositoryNode) {
IRepositoryNode node = (IRepositoryNode) firstElement;
Item item = node.getObject().getProperty().getItem();
if (item instanceof ConnectionItem) {
ConnectionItem connectionItem = (ConnectionItem) item;
Connection connection = connectionItem.getConnection();
IRepositoryNode repositoryNode = RepositoryNodeHelper.recursiveFind(connection);
parameter = new AnalysisLabelParameter();
parameter.setCategoryLabel(getCategoryLabel());
parameter.setColumnNodes(getColumns());
parameter.setConnectionRepNode(repositoryNode);
return getStandardAnalysisWizardDialog(type, parameter);
}
} else if (firstElement instanceof TdTable) {
Connection connection = ConnectionHelper.getConnection((TdTable) firstElement);
IRepositoryNode repositoryNode = RepositoryNodeHelper.recursiveFind(connection);
parameter = new AnalysisLabelParameter();
parameter.setCategoryLabel(getCategoryLabel());
parameter.setColumnNodes(getColumns());
parameter.setConnectionRepNode(repositoryNode);
return getStandardAnalysisWizardDialog(type, parameter);
} else if (firstElement instanceof TdView) {
// Added yyin 20120522 TDQ-4945, support tdView
Connection connection = ConnectionHelper.getConnection((TdView) firstElement);
IRepositoryNode repositoryNode = RepositoryNodeHelper.recursiveFind(connection);
parameter = new AnalysisLabelParameter();
parameter.setCategoryLabel(getCategoryLabel());
parameter.setColumnNodes(getColumns());
parameter.setConnectionRepNode(repositoryNode);
return getStandardAnalysisWizardDialog(type, parameter);
// ~4945
}
return getStandardAnalysisWizardDialog(type, null);
}
use of org.talend.cwm.relational.TdView in project tdq-studio-se by Talend.
the class AnalysisSubFolderRepNode method doSwichNode.
/**
* DOC klliu Comment method "doSwichNode".
*
* @param analyzedElement
* @return
*/
private IRepositoryNode doSwichNode(ModelElement analyzedElement, AnalysisSubFolderRepNode childNodeFolder) {
Property anaEleProperty = PropertyHelper.getProperty(analyzedElement);
IRepositoryViewObject medataViewObject = null;
try {
medataViewObject = ProxyRepositoryFactory.getInstance().getLastVersion(anaEleProperty.getId());
} catch (Exception e) {
log.error(e);
}
// }
if (medataViewObject != null) {
if (analyzedElement instanceof DatabaseConnection) {
DBConnectionRepNode connNode = new DBConnectionRepNode(medataViewObject, this, ENodeType.REPOSITORY_ELEMENT, getProject());
connNode.setProperties(EProperties.CONTENT_TYPE, ERepositoryObjectType.METADATA_CONNECTIONS);
connNode.setProperties(EProperties.LABEL, ERepositoryObjectType.METADATA_CONNECTIONS);
medataViewObject.setRepositoryNode(connNode);
return connNode;
} else if (analyzedElement instanceof Catalog) {
RepositoryNode catalogNode = DQRepNodeCreateFactory.createDBCatalogRepNode(new MetadataCatalogRepositoryObject(medataViewObject, (Catalog) analyzedElement), this, ENodeType.TDQ_REPOSITORY_ELEMENT, getProject());
catalogNode.setProperties(EProperties.LABEL, ERepositoryObjectType.METADATA_CON_CATALOG);
catalogNode.setProperties(EProperties.CONTENT_TYPE, ERepositoryObjectType.METADATA_CON_CATALOG);
medataViewObject.setRepositoryNode(catalogNode);
return catalogNode;
} else if (analyzedElement instanceof Schema) {
RepositoryNode schemaNode = new DBSchemaRepNode(new MetadataSchemaRepositoryObject(medataViewObject, (Schema) analyzedElement), this, ENodeType.TDQ_REPOSITORY_ELEMENT, getProject());
schemaNode.setProperties(EProperties.LABEL, ERepositoryObjectType.METADATA_CON_SCHEMA);
schemaNode.setProperties(EProperties.CONTENT_TYPE, ERepositoryObjectType.METADATA_CON_SCHEMA);
medataViewObject.setRepositoryNode(schemaNode);
return schemaNode;
} else if (analyzedElement instanceof TdTable) {
DBTableRepNode tableNode = new DBTableRepNode(new TdTableRepositoryObject(medataViewObject, (TdTable) analyzedElement), childNodeFolder, ENodeType.TDQ_REPOSITORY_ELEMENT, getProject());
tableNode.setProperties(EProperties.LABEL, ERepositoryObjectType.METADATA_CON_TABLE);
tableNode.setProperties(EProperties.CONTENT_TYPE, ERepositoryObjectType.METADATA_CON_TABLE);
medataViewObject.setRepositoryNode(tableNode);
return tableNode;
} else if (analyzedElement instanceof TdView) {
DBViewRepNode viewNode = new DBViewRepNode(new TdViewRepositoryObject(medataViewObject, (TdView) analyzedElement), childNodeFolder, ENodeType.TDQ_REPOSITORY_ELEMENT, getProject());
viewNode.setProperties(EProperties.LABEL, ERepositoryObjectType.METADATA_CON_VIEW);
viewNode.setProperties(EProperties.CONTENT_TYPE, ERepositoryObjectType.METADATA_CON_VIEW);
medataViewObject.setRepositoryNode(viewNode);
return viewNode;
} else if (analyzedElement instanceof MetadataColumn) {
RepositoryNode columnNode = null;
if (analyzedElement instanceof TdColumn) {
columnNode = new DBColumnRepNode(new MetadataColumnRepositoryObject(medataViewObject, (MetadataColumn) analyzedElement), childNodeFolder, ENodeType.TDQ_REPOSITORY_ELEMENT, getProject());
} else {
columnNode = new DFColumnRepNode(new MetadataColumnRepositoryObject(medataViewObject, (MetadataColumn) analyzedElement), this, ENodeType.TDQ_REPOSITORY_ELEMENT, getProject());
}
columnNode.setProperties(EProperties.LABEL, ERepositoryObjectType.METADATA_CON_COLUMN);
columnNode.setProperties(EProperties.CONTENT_TYPE, ERepositoryObjectType.METADATA_CON_COLUMN);
medataViewObject.setRepositoryNode(columnNode);
return columnNode;
}
}
return null;
}
use of org.talend.cwm.relational.TdView in project tdq-studio-se by Talend.
the class DBViewFolderRepNode method createRepositoryNodeViewFolderNode.
/**
* Create ViewFolderNodeRepositoryNode.
*
* @param metadataObject parent CatalogViewObject or SchemaViewObject
*/
private void createRepositoryNodeViewFolderNode(IRepositoryViewObject metadataObject) {
List<TdView> views = new ArrayList<TdView>();
String filterCharacter = null;
try {
if (metadataObject instanceof MetadataCatalogRepositoryObject) {
viewObject = ((MetadataCatalogRepositoryObject) metadataObject).getViewObject();
setItem((ConnectionItem) viewObject.getProperty().getItem());
setConnection(getItem().getConnection());
if (((MetadataCatalogRepositoryObject) metadataObject).getCatalog().eIsProxy()) {
// reload the connection to make sure the connection(and all it's owned elements) is not proxy
reloadConnectionViewObject();
}
catalog = ((MetadataCatalogRepositoryObject) metadataObject).getCatalog();
views = PackageHelper.getViews(catalog);
filterCharacter = RepositoryNodeHelper.getViewFilter(catalog, schema);
// select dialog cares about if connect to DB or not.
if (views.isEmpty()) {
if (isCallingFromColumnDialog()) {
views = DqRepositoryViewService.getViews(getConnection(), catalog, null, isLoadDBFromDialog(), true);
} else if (!isOnFilterring()) {
// MOD gdbu 2011-7-21 bug 23220
views = DqRepositoryViewService.getViews(getConnection(), catalog, null, true, true);
}
if (views != null && views.size() > 0) {
ProxyRepositoryFactory.getInstance().save(getItem(), false);
}
}
} else {
viewObject = ((MetadataSchemaRepositoryObject) metadataObject).getViewObject();
setItem((ConnectionItem) viewObject.getProperty().getItem());
setConnection(getItem().getConnection());
if (((MetadataSchemaRepositoryObject) metadataObject).getSchema().eIsProxy()) {
// reload the connection to make sure the connection(and all it's owned elements) is not proxy
reloadConnectionViewObject();
}
schema = ((MetadataSchemaRepositoryObject) metadataObject).getSchema();
views = PackageHelper.getViews(schema);
filterCharacter = RepositoryNodeHelper.getViewFilter(catalog, schema);
RepositoryNode parent = metadataObject.getRepositoryNode().getParent();
IRepositoryViewObject object = parent.getObject();
if (object instanceof MetadataCatalogRepositoryObject && filterCharacter.equals(PluginConstant.EMPTY_STRING)) {
filterCharacter = RepositoryNodeHelper.getViewFilter(((MetadataCatalogRepositoryObject) object).getCatalog(), null);
}
// MOD gdbu 2011-6-29 bug : 22204
if (views.isEmpty()) {
if (isCallingFromColumnDialog()) {
views = DqRepositoryViewService.getViews(getConnection(), schema, null, isLoadDBFromDialog(), true);
} else if (!isOnFilterring()) {
// MOD gdbu 2011-7-21 bug 23220
views = DqRepositoryViewService.getViews(getConnection(), schema, null, true, true);
}
if (views != null && views.size() > 0) {
ProxyRepositoryFactory.getInstance().save(getItem(), false);
}
}
// ~22204
}
ConnectionUtils.retrieveColumn(views);
} catch (Exception e) {
log.error(e, e);
}
if (filterCharacter != null && !filterCharacter.equals(PluginConstant.EMPTY_STRING)) {
views = RepositoryNodeHelper.filterViews(views, filterCharacter);
}
createViewRepositoryNode(views, children);
}
Aggregations