use of org.talend.designer.dbmap.model.table.OutputTable in project tdi-studio-se by Talend.
the class UIManager method processColumnNameChanged.
/**
* DOC amaumont Comment method "processNewProcessColumnName".
*
* @param previousColumnName TODO
* @param dataMapTableView
* @param renamingDependentEntries TODO
* @param text
* @param entry
*/
public void processColumnNameChanged(final String previousColumnName, final String newColumnName, final DataMapTableView dataMapTableView, final ITableEntry currentModifiedITableEntry, boolean renamingDependentEntries) {
mapperManager.changeColumnName(currentModifiedITableEntry, previousColumnName, newColumnName);
Collection<DataMapTableView> tableViews = mapperManager.getTablesView();
boolean atLeastOneLinkHasBeenRemoved = false;
for (DataMapTableView view : tableViews) {
IDataMapTable dataMapTable = view.getDataMapTable();
List<IColumnEntry> metadataTableEntries = dataMapTable.getColumnEntries();
for (IColumnEntry entry : metadataTableEntries) {
if (parseExpression(entry.getExpression(), entry, true, true, false).isAtLeastOneLinkRemoved()) {
atLeastOneLinkHasBeenRemoved = true;
}
}
if (dataMapTable instanceof OutputTable) {
List<FilterTableEntry> constraintWhereEntries = ((OutputTable) dataMapTable).getWhereFilterEntries();
for (FilterTableEntry entry : constraintWhereEntries) {
if (parseExpression(entry.getExpression(), entry, true, true, false).isAtLeastOneLinkRemoved()) {
atLeastOneLinkHasBeenRemoved = true;
}
}
List<FilterTableEntry> constraintOtherEntries = ((OutputTable) dataMapTable).getOtherFilterEntries();
for (FilterTableEntry entry : constraintOtherEntries) {
if (parseExpression(entry.getExpression(), entry, true, true, false).isAtLeastOneLinkRemoved()) {
atLeastOneLinkHasBeenRemoved = true;
}
}
}
}
mapperManager.getUiManager().refreshBackground(false, false);
dataMapTableView.getTableViewerCreatorForColumns().getTableViewer().refresh(currentModifiedITableEntry);
TableEntryLocation previousLocation = new TableEntryLocation(currentModifiedITableEntry.getParentName(), previousColumnName);
TableEntryLocation newLocation = new TableEntryLocation(currentModifiedITableEntry.getParentName(), newColumnName);
mapperManager.replacePreviousLocationInAllExpressions(previousLocation, newLocation);
refreshSqlExpression();
if (!renamingDependentEntries) {
AbstractInOutTable currentTable = (AbstractInOutTable) currentModifiedITableEntry.getParent();
if (currentTable instanceof InputTable) {
InputTable currentInputTable = (InputTable) currentTable;
String physicalTableName = currentInputTable.getTableName();
String alias = currentInputTable.getAlias();
InputTable physicalInputTable = null;
List<InputTable> inputTables = mapperManager.getInputTables();
if (alias != null) {
for (InputTable table : inputTables) {
if (table.equals(physicalTableName)) {
physicalInputTable = table;
}
}
} else {
physicalInputTable = currentInputTable;
}
if (physicalInputTable == null) {
List<IOConnection> incomingConnections = mapperManager.getComponent().getMapperMain().getIoInputConnections();
IOConnection connectionFound = null;
for (IOConnection connection : incomingConnections) {
if (connection.getName().equals(physicalTableName)) {
connectionFound = connection;
}
}
IMetadataColumn metadataColumn = connectionFound.getTable().getColumn(previousColumnName);
if (metadataColumn != null) {
metadataColumn.setLabel(newColumnName);
}
}
for (InputTable table : inputTables) {
if ((// Physical table parent
alias != null && table.getAlias() == null && table.getName().equals(physicalTableName) || // Alias table
alias == null && table.getAlias() != null && table.getTableName().equals(physicalTableName))) {
TableEntryLocation location = new TableEntryLocation(table.getName(), previousColumnName);
DataMapTableView aliasTableView = mapperManager.retrieveDataMapTableView(location);
ITableEntry aliasTableEntry = mapperManager.retrieveTableEntry(location);
if (aliasTableEntry != null) {
processColumnNameChanged(previousColumnName, newColumnName, aliasTableView, aliasTableEntry, true);
}
}
}
}
}
// if (atLeastOneLinkHasBeenRemoved) {
// new AsynchronousThreading(20, false, dataMapTableView.getDisplay(), new Runnable() {
//
// public void run() {
// TableViewerCreator tableViewerCreatorForColumns = dataMapTableView
// .getTableViewerCreatorForColumns();
// boolean propagate = MessageDialog.openQuestion(tableViewerCreatorForColumns.getTable().getShell(),
// Messages.getString("UIManager.propagateTitle"), //$NON-NLS-1$
// Messages.getString("UIManager.propagateMessage")); //$NON-NLS-1$
// if (propagate) {
// TableEntryLocation previousLocation = new TableEntryLocation(currentModifiedITableEntry
// .getParentName(), previousColumnName);
// TableEntryLocation newLocation = new TableEntryLocation(currentModifiedITableEntry
// .getParentName(), newColumnName);
// mapperManager.replacePreviousLocationInAllExpressions(previousLocation, newLocation);
// refreshSqlExpression();
// }
// }
// }).start();
// }
}
use of org.talend.designer.dbmap.model.table.OutputTable in project tdi-studio-se by Talend.
the class TableManager method removeTable.
/**
* DOC amaumont Comment method "removeTable".
*
* @param dataTable
*/
Object removeTable(IDataMapTable dataTable) {
List<IColumnEntry> dataMapTableEntries = dataTable.getColumnEntries();
TableEntriesManager tableEntriesManager = mapperManager.getTableEntriesManager();
tableEntriesManager.removeAll(dataMapTableEntries, isPhysicalInputTable(dataTable.getName()));
if (dataTable instanceof OutputTable) {
List<FilterTableEntry> whereConstraintEntries = ((OutputTable) dataTable).getWhereFilterEntries();
tableEntriesManager.removeAll(whereConstraintEntries, false);
List<FilterTableEntry> otherConstraintEntries = ((OutputTable) dataTable).getOtherFilterEntries();
tableEntriesManager.removeAll(otherConstraintEntries, false);
}
getMatchedList(dataTable).remove(dataTable);
DataMapTableView view = abstractDataMapTableToView.remove(dataTable);
swtTableToView.remove(view.getTableViewerCreatorForColumns().getTable());
if (view.getTableViewerCreatorForWhereFilters() != null) {
swtTableToView.remove(view.getTableViewerCreatorForWhereFilters().getTable());
}
if (view.getTableViewerCreatorForOtherFilters() != null) {
swtTableToView.remove(view.getTableViewerCreatorForOtherFilters().getTable());
}
return view;
}
use of org.talend.designer.dbmap.model.table.OutputTable in project tdi-studio-se by Talend.
the class MapperManager method replacePreviousLocationInAllExpressions.
/**
* DOC amaumont Comment method "replacePreviousLocationInAllExpressions".
*/
public void replacePreviousLocationInAllExpressions(final TableEntryLocation previousLocation, final TableEntryLocation newLocation) {
DataMapExpressionParser dataMapExpressionParser = new DataMapExpressionParser(getCurrentLanguage());
Collection<IDataMapTable> tablesData = getTablesData();
for (IDataMapTable table : tablesData) {
List<IColumnEntry> columnEntries = table.getColumnEntries();
for (IColumnEntry entry : columnEntries) {
replaceLocation(previousLocation, newLocation, dataMapExpressionParser, table, entry);
}
if (table instanceof OutputTable) {
List<FilterTableEntry> whereConstraintEntries = ((OutputTable) table).getWhereFilterEntries();
for (FilterTableEntry entry : whereConstraintEntries) {
replaceLocation(previousLocation, newLocation, dataMapExpressionParser, table, entry);
}
List<FilterTableEntry> otherConstraintEntries = ((OutputTable) table).getOtherFilterEntries();
for (FilterTableEntry entry : otherConstraintEntries) {
replaceLocation(previousLocation, newLocation, dataMapExpressionParser, table, entry);
}
}
}
uiManager.refreshBackground(false, false);
}
Aggregations