use of org.talend.dq.nodes.DBSchemaRepNode in project tdq-studio-se by Talend.
the class ResourceViewContentProvider method hasChildren.
@Override
public boolean hasChildren(Object element) {
try {
if (element instanceof IRepositoryNode) {
IRepositoryNode node = (IRepositoryNode) element;
IRepositoryViewObject viewObject = node.getObject();
if (viewObject instanceof MetadataColumnRepositoryObject) {
return false;
} else if (node instanceof ExchangeFolderRepNode || node instanceof ExchangeCategoryRepNode || node instanceof SysIndicatorFolderRepNode || element instanceof DBTableRepNode || element instanceof DBViewRepNode || element instanceof DBCatalogRepNode || element instanceof DBSchemaRepNode) {
// ExchangeCategoryRepNode always have children
return true;
} else if (node instanceof ExchangeComponentRepNode) {
// ExchangeComponentRepNode always don't have children
return false;
} else if (element instanceof DBTableFolderRepNode) {
// MOD gdbu 2011-9-1 TDQ-3457
if (DQRepositoryNode.isOnFilterring()) {
return true;
}
DBTableFolderRepNode dbTableFolder = (DBTableFolderRepNode) element;
return dbTableFolder.hasChildren();
} else if (element instanceof DBViewFolderRepNode) {
if (DQRepositoryNode.isOnFilterring()) {
return true;
}
DBViewFolderRepNode dbViewFolder = (DBViewFolderRepNode) element;
return dbViewFolder.hasChildren();
// ~TDQ-3457
}
} else if (element instanceof IEcosCategory) {
return true;
}
// // MOD qiongli feature 9486
// if (element instanceof IFolder) {
// // MOD yyi 2010-09-30 15271: svn project can't load exchange nodes
// if (ResourceManager.isExchangeFolder((IFolder) element)) {
// return true;
// }
// // ~15271
// List<Object> obsLs = Arrays.asList(super.getChildren(element));
// if (obsLs.size() == 1) {
// Object obj = (Object) obsLs.get(0);
// if (obj instanceof IFolder && ((IFolder) obj).getName().equals(PluginConstant.SVN_SUFFIX))
// return false;
// }
// } else if (element instanceof DQRecycleBinNode) {
// DQRecycleBinNode rbn = (DQRecycleBinNode) element;
// Object obj = rbn.getObject();
// if (obj instanceof IFolder) {
// try {
// return ((IFolder) obj).members().length > 0;
// } catch (CoreException e) {
// log.error(e);
// }
// }
// return false;
// }
} catch (MissingDriverException e) {
if (PluginChecker.isOnlyTopLoaded()) {
MessageDialog.openWarning(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), // $NON-NLS-1$
DefaultMessagesImpl.getString("ResourceViewContentProvider.warining"), e.getErrorMessage());
} else {
log.error(e, e);
}
return false;
}
return super.hasChildren(element);
}
use of org.talend.dq.nodes.DBSchemaRepNode in project tdq-studio-se by Talend.
the class RespositoryDetailView method selectionChanged.
/*
* (non-Javadoc)
*
* @seeorg.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui. IWorkbenchPart,
* org.eclipse.jface.viewers.ISelection)
*/
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
clearContainer();
boolean isNeedcreateDefault = true;
try {
if (part instanceof DQRespositoryView) {
StructuredSelection sel = (StructuredSelection) selection;
// MOD by zshen for bug 15750 TODO 39(13) make Detail View can be used.
Object fe = sel.getFirstElement();
// MOD klliu 2011-02-24 if choose diffirent node ,that will load diffirent child ,so that not use up.
if (fe instanceof AnalysisRepNode || fe instanceof ReportRepNode || fe instanceof SysIndicatorDefinitionRepNode || fe instanceof PatternRepNode || fe instanceof RuleRepNode) {
fe = ((IRepositoryNode) fe).getObject();
}
if (fe instanceof IFile) {
IFile fe2 = (IFile) fe;
isNeedcreateDefault = createFileDetail(isNeedcreateDefault, fe2);
} else if (fe instanceof IRepositoryViewObject) {
isNeedcreateDefault = createFileDetail(isNeedcreateDefault, (IRepositoryViewObject) fe);
} else if (fe instanceof DBConnectionRepNode) {
DBConnectionRepNode connNode = (DBConnectionRepNode) fe;
// MOD sizhaoliu TDQ-6316
ConnectionItem connectionItem = (ConnectionItem) connNode.getObject().getProperty().getItem();
createDataProviderDetail(connectionItem);
isNeedcreateDefault = false;
} else if (fe instanceof DBCatalogRepNode) {
DBCatalogRepNode catalogNode = (DBCatalogRepNode) fe;
Catalog catalog = catalogNode.getCatalog();
createTdCatalogDetail(catalog);
isNeedcreateDefault = false;
} else if (fe instanceof DBSchemaRepNode) {
DBSchemaRepNode schemaNode = (DBSchemaRepNode) fe;
Schema schema = schemaNode.getSchema();
createTdSchemaDetail(schema);
isNeedcreateDefault = false;
} else if (fe instanceof DBTableRepNode) {
DBTableRepNode tableNode = (DBTableRepNode) fe;
// MOD gdbu 2011-9-14 TDQ-3243
if (!DQRepositoryNode.isOnFilterring()) {
tableNode.getChildren().get(0).getChildren();
}
// ~TDQ-3243
TdTable tdTable = tableNode.getTdTable();
createTableDetail(tdTable);
isNeedcreateDefault = false;
} else if (fe instanceof DBViewRepNode) {
DBViewRepNode viewNode = (DBViewRepNode) fe;
// MOD gdbu 2011-9-14 TDQ-3243
if (!DQRepositoryNode.isOnFilterring()) {
viewNode.getChildren().get(0).getChildren();
}
// ~TDQ-3243
createNameCommentDetail(viewNode.getTdView());
isNeedcreateDefault = false;
} else if (fe instanceof DBColumnRepNode) {
DBColumnRepNode columnNode = (DBColumnRepNode) fe;
TdColumn column = columnNode.getTdColumn();
createTdColumn(column);
isNeedcreateDefault = false;
} else if (fe instanceof IEcosComponent) {
IEcosComponent component = (IEcosComponent) fe;
createEcosComponent(component);
isNeedcreateDefault = false;
} else if (fe instanceof RegularExpression) {
// MOD mzhao 2009-04-20,Bug 6349.
RegularExpression regularExpression = (RegularExpression) fe;
createRegularExpression(regularExpression);
isNeedcreateDefault = false;
} else if (fe instanceof PatternLanguageRepNode) {
// MOD mzhao 2012-08-15,feature TDQ-4037.
PatternLanguageRepNode pattLangNode = (PatternLanguageRepNode) fe;
createRegularExpression(pattLangNode.getRegularExpression());
isNeedcreateDefault = false;
} else if (fe instanceof SourceFileRepNode) {
// MOD klliu 2001-02-28 bug 19154
IPath filePath = WorkbenchUtils.getFilePath((SourceFileRepNode) fe);
DQRepositoryNode node = (DQRepositoryNode) fe;
IFile file = ResourceManager.getRoot().getProject(node.getProject().getTechnicalLabel()).getFile(filePath);
createSqlFileDetail(file);
} else if (fe instanceof ExchangeComponentRepNode) {
// MOD klliu 2001-02-28 bug 19154
IEcosComponent ecosComponent = ((ExchangeComponentRepNode) fe).getEcosComponent();
IEcosComponent component = ecosComponent;
createEcosComponent(component);
isNeedcreateDefault = false;
// ADD by msjian 2011-5-12 21186: don't check whether the selected object is "MDMConnectionRepNode"
} else if (fe instanceof DFConnectionRepNode) {
DFConnectionRepNode dfNode = (DFConnectionRepNode) fe;
DelimitedFileConnection dfConnection = dfNode.getDfConnection();
createDFconnectionName(dfNode.getObject().getLabel());
createDataProviderDetail(dfConnection);
isNeedcreateDefault = false;
}
if (PluginChecker.isTDQLoaded()) {
if (fe instanceof EObject) {
createTechnicalDetail((EObject) fe);
} else if (fe instanceof IFile) {
createTechnicalDetail((IFile) fe);
} else if (fe instanceof IRepositoryViewObject) {
createTechnicalDetail((IRepositoryViewObject) fe);
} else {
createExtDefault();
}
}
if (!scomp.isDisposed()) {
scomp.setMinSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
composite.layout();
}
} else if (part instanceof CommonFormEditor) {
CommonFormEditor editor = (CommonFormEditor) part;
IEditorInput editorInput = editor.getEditorInput();
if (editorInput instanceof IFileEditorInput) {
IFileEditorInput input = (IFileEditorInput) editorInput;
IFile file = input.getFile();
isNeedcreateDefault = createFileDetail(isNeedcreateDefault, file);
}
}
if (isNeedcreateDefault) {
createDefault();
}
// feature 19053
if (!gContainer.isDisposed()) {
gContainer.layout();
if (tContainer != null) {
tContainer.layout();
}
}
} catch (MissingDriverException e) {
if (PluginChecker.isOnlyTopLoaded()) {
MessageDialog.openWarning(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), // $NON-NLS-1$
DefaultMessagesImpl.getString("RespositoryDetailView.warning"), e.getErrorMessage());
} else {
log.error(e, e);
}
}
}
use of org.talend.dq.nodes.DBSchemaRepNode in project tdq-studio-se by Talend.
the class AnalyzeColumnSetAction method run.
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.Action#run()
*/
@Override
public void run() {
PackagesAnalyisParameter packaFilterParameter = new PackagesAnalyisParameter();
if (nodeColumns != null) {
DQRepositoryNode tFolder = (DQRepositoryNode) nodeColumns.getParent();
if (tFolder != null) {
IRepositoryNode node = tFolder.getParent();
if (node instanceof DBCatalogRepNode) {
IRepositoryNode connNode = ((DBCatalogRepNode) node).getParent();
packaFilterParameter.setConnectionRepNode(connNode);
catalogs.add(node);
packaFilterParameter.setPackages(catalogs);
} else if (node instanceof DBSchemaRepNode) {
schemaNode = (DBSchemaRepNode) node;
RepositoryNode parent = schemaNode.getParent();
if (parent instanceof DBCatalogRepNode) {
catalogs.add(parent);
packaFilterParameter.setConnectionRepNode(parent);
} else {
catalogs.add(schemaNode);
packaFilterParameter.setConnectionRepNode(schemaNode);
}
packaFilterParameter.setPackages(catalogs);
}
}
}
if (needselection) {
IRepositoryNode firstElement = (RepositoryNode) this.selection.getFirstElement();
IRepositoryViewObject viewObject = firstElement.getObject();
Item item = viewObject.getProperty().getItem();
ConnectionItem connectionItem = (ConnectionItem) item;
Connection connection = connectionItem.getConnection();
IRepositoryNode repositoryNode = RepositoryNodeHelper.recursiveFind(connection);
packaFilterParameter.setConnectionRepNode(repositoryNode);
}
if (opencolumnSetAnalysisDialog(packaFilterParameter) == Window.OK) {
AnalysisEditor editor = (AnalysisEditor) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
if (editor != null) {
ColumnSetAnalysisDetailsPage page = (ColumnSetAnalysisDetailsPage) editor.getMasterPage();
if (this.needselection && !this.selection.isEmpty()) {
IRepositoryNode[] nodeArray = new IRepositoryNode[selection.size()];
Iterator it = this.selection.iterator();
int i = 0;
while (it.hasNext()) {
nodeArray[i] = (IRepositoryNode) it.next();
i++;
}
page.setTreeViewInput(nodeArray);
} else if (!this.needselection && null != this.nodeColumns) {
List<IRepositoryNode> column = new ArrayList<IRepositoryNode>();
for (IRepositoryNode columnFolder : nodeColumns.getChildren()) {
if (columnFolder instanceof DBColumnFolderRepNode) {
column.addAll(columnFolder.getChildren());
}
}
page.setTreeViewInput(column.toArray());
}
page.doSave(null);
}
}
}
use of org.talend.dq.nodes.DBSchemaRepNode in project tdq-studio-se by Talend.
the class SchemaAnalysisDPSelectionPage method addListeners.
@Override
protected void addListeners() {
addListener(new IDoubleClickListener() {
public void doubleClick(DoubleClickEvent event) {
Object object = ((IStructuredSelection) event.getSelection()).getFirstElement();
if (object instanceof Schema) {
advanceToNextPageOrFinish();
}
}
});
addListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
Object object = ((IStructuredSelection) event.getSelection()).getFirstElement();
PackagesAnalyisParameter schemaPanameter = (PackagesAnalyisParameter) getConnectionParams();
List<IRepositoryNode> nodes = new ArrayList<IRepositoryNode>();
if (object instanceof DBSchemaRepNode) {
DBSchemaRepNode schemaNode = (DBSchemaRepNode) object;
Schema schema = ((MetadataSchemaRepositoryObject) schemaNode.getObject()).getSchema();
Connection tdProvider = ConnectionHelper.getTdDataProvider(SwitchHelpers.PACKAGE_SWITCH.doSwitch(schema));
RepositoryNode parent = schemaNode.getParent();
if (tdProvider != null && schemaPanameter != null) {
if (parent instanceof DBCatalogRepNode) {
schemaPanameter.setConnectionRepNode((DBConnectionRepNode) parent.getParent());
} else {
schemaPanameter.setConnectionRepNode((DBConnectionRepNode) parent);
}
schemaPanameter.setTdDataProvider(tdProvider);
}
nodes.add(schemaNode);
schemaPanameter.setPackages(nodes);
setPageComplete(true);
} else {
setPageComplete(false);
}
}
});
}
use of org.talend.dq.nodes.DBSchemaRepNode in project tdq-studio-se by Talend.
the class ColumnsSelectionDialog method handleTreeExpanded.
/**
* Added TDQ-8718 20140506 yyin: when expand the nodes in the column select dialog, should refresh the table/view
* folder. otherwise: if the parent catalog is checked before expanding, it may get no children(without connecting
* to db) If the user has checked some high level node, must refresh the table/view folder node. otherwise, it
* always return 0
*/
@Override
protected void handleTreeExpanded(TreeItem item) {
Object node = item.getData();
if (node instanceof DBCatalogRepNode || node instanceof DBSchemaRepNode) {
TreeItem[] children = item.getItems();
if (children != null) {
for (TreeItem child : children) {
Object data = child.getData();
if (data != null) {
if (!(data instanceof DQDBFolderRepositoryNode)) {
break;
} else {
getTreeViewer().refresh(data, true);
}
}
}
}
}
super.handleTreeExpanded(item);
}
Aggregations