use of org.talend.designer.mapper.ui.visualmap.zone.scrollable.TablesZoneView in project tdi-studio-se by Talend.
the class MapperManager method addRejectOutput.
public void addRejectOutput() {
String baseName = ERROR_REJECT;
IProcess process = getAbstractMapComponent().getProcess();
String tableName = baseName;
if (!process.checkValidConnectionName(baseName) && process instanceof IProcess2) {
final String uniqueName = ((IProcess2) process).generateUniqueConnectionName("row", baseName);
tableName = uniqueName;
((IProcess2) process).addUniqueConnectionName(uniqueName);
} else if (process instanceof IProcess2) {
tableName = baseName;
((IProcess2) process).addUniqueConnectionName(baseName);
}
IMetadataTable metadataTable = getNewMetadataTable();
metadataTable.setTableName(tableName);
MetadataColumn errorMessageCol = new MetadataColumn();
errorMessageCol.setLabel(ERROR_REJECT_MESSAGE);
errorMessageCol.setTalendType(DesignerPlugin.getDefault().getPreferenceStore().getString(MetadataTypeLengthConstants.FIELD_DEFAULT_TYPE));
errorMessageCol.setNullable(true);
errorMessageCol.setOriginalDbColumnName(ERROR_REJECT_MESSAGE);
errorMessageCol.setReadOnly(true);
errorMessageCol.setCustom(true);
errorMessageCol.setCustomId(0);
metadataTable.getListColumns().add(errorMessageCol);
MetadataColumn errorStackTrace = new MetadataColumn();
errorStackTrace.setLabel(ERROR_REJECT_STACK_TRACE);
errorStackTrace.setTalendType(DesignerPlugin.getDefault().getPreferenceStore().getString(MetadataTypeLengthConstants.FIELD_DEFAULT_TYPE));
errorStackTrace.setNullable(true);
errorStackTrace.setOriginalDbColumnName(ERROR_REJECT_STACK_TRACE);
errorStackTrace.setReadOnly(true);
errorStackTrace.setCustom(true);
errorStackTrace.setCustomId(1);
metadataTable.getListColumns().add(errorStackTrace);
OutputTable abstractDataMapTable = new OutputTable(this, metadataTable, tableName);
abstractDataMapTable.setErrorRejectTable(true);
abstractDataMapTable.initFromExternalData(null);
TablesZoneView tablesZoneViewOutputs = uiManager.getTablesZoneViewOutputs();
DataMapTableView rejectDataMapTableView = uiManager.createNewOutputTableView(null, abstractDataMapTable, tablesZoneViewOutputs);
tablesZoneViewOutputs.setSize(tablesZoneViewOutputs.computeSize(SWT.DEFAULT, SWT.DEFAULT));
List<DataMapTableView> outputsTablesView = uiManager.getOutputsTablesView();
int sizeList = outputsTablesView.size();
for (int i = 0; i < sizeList; i++) {
if (i + 1 < sizeList) {
FormData formData = (FormData) outputsTablesView.get(i + 1).getLayoutData();
formData.top = new FormAttachment(outputsTablesView.get(i));
}
}
CustomTableManager.addCustomManagementToTable(uiManager.getOutputMetaEditorView(), true);
tablesZoneViewOutputs.setSize(tablesZoneViewOutputs.computeSize(SWT.DEFAULT, SWT.DEFAULT));
tablesZoneViewOutputs.layout();
uiManager.moveOutputScrollBarZoneToMax();
uiManager.refreshBackground(true, false);
uiManager.selectDataMapTableView(rejectDataMapTableView, true, false);
}
use of org.talend.designer.mapper.ui.visualmap.zone.scrollable.TablesZoneView in project tdi-studio-se by Talend.
the class MapperManager method addOutput.
/**
* DOC amaumont Comment method "addOutput".
*/
public void addOutput() {
String joinTableName = null;
OutputTable abstractDataMapTable = null;
String name = uiManager.openNewOutputCreationDialog();
if (name == null) {
return;
}
String[] split = name.split(uiManager.NAME_SEPARATOR);
String tableName = split[0];
boolean isCreatingJoinTable = split.length == 2;
if (isCreatingJoinTable) {
joinTableName = split[1];
}
IProcess process = getAbstractMapComponent().getProcess();
OutputTable orignalOutputTable = null;
if (isCreatingJoinTable) {
orignalOutputTable = getOutputTableByName(tableName);
if (orignalOutputTable != null) {
IMetadataTable metadataTable = orignalOutputTable.getMetadataTable();
if (metadataTable != null) {
process.addUniqueConnectionName(joinTableName);
abstractDataMapTable = new OutputTable(this, metadataTable, joinTableName);
abstractDataMapTable.setIsJoinTableOf(tableName);
}
}
} else {
process.addUniqueConnectionName(tableName);
IMetadataTable metadataTable = getNewMetadataTable();
metadataTable.setTableName(tableName);
abstractDataMapTable = new OutputTable(this, metadataTable, tableName);
}
if (abstractDataMapTable == null) {
return;
}
abstractDataMapTable.initFromExternalData(null);
List<DataMapTableView> outputsTablesView = uiManager.getOutputsTablesView();
int sizeOutputsView = outputsTablesView.size();
Control lastChild = null;
if (sizeOutputsView - 1 >= 0) {
lastChild = outputsTablesView.get(sizeOutputsView - 1);
}
TablesZoneView tablesZoneViewOutputs = uiManager.getTablesZoneViewOutputs();
DataMapTableView dataMapTableView = uiManager.createNewOutputTableView(lastChild, abstractDataMapTable, tablesZoneViewOutputs);
tablesZoneViewOutputs.setSize(tablesZoneViewOutputs.computeSize(SWT.DEFAULT, SWT.DEFAULT));
tablesZoneViewOutputs.layout();
uiManager.moveOutputScrollBarZoneToMax();
uiManager.refreshBackground(true, false);
tablesZoneViewOutputs.layout();
uiManager.selectDataMapTableView(dataMapTableView, true, false);
}
use of org.talend.designer.mapper.ui.visualmap.zone.scrollable.TablesZoneView in project tdi-studio-se by Talend.
the class InsertionIndicator method updatePosition.
/**
* Update position of the indicator at top of <code>itemIndexTarget</code> position of the
* <code>draggableTable</code>.
*
* @param currentTable
* @param itemIndexTarget
*/
public void updatePosition(Table currentTable, int itemIndexTarget) {
// System.out.println(itemIndexTarget);
this.draggableTable = currentTable;
removeTablePaintListener();
if (tablePaintListener == null) {
tablePaintListener = new Listener() {
public void handleEvent(Event event) {
drawIndicatorLineInTable(event);
}
};
}
FormLayout formLayout = tablesZoneViewParent.getLayout();
UIManager uiManager = mapperManager.getUiManager();
TablesZoneView tablesZoneViewOutputs = uiManager.getTablesZoneViewOutputs();
Display display = tablesZoneViewOutputs.getDisplay();
Point tablePositionRefZone = display.map(currentTable, tablesZoneViewParent, new Point(0, 0));
FormData formDataLeftArrow = (FormData) leftArrowDraggingIndicator.getLayoutData();
FormData formDataRightArrow = (FormData) rightArrowDraggingIndicator.getLayoutData();
ScrollBar verticalBar = currentTable.getVerticalBar();
// System.out.println("verticalBar.getSelection()="+verticalBar.getSelection() + "
// currentTable.getItemHeight()="+currentTable.getItemHeight());
DataMapTableView dataMapTableView = mapperManager.retrieveDataMapTableView(currentTable);
int indicYPositionRefZone = 0;
if (WindowSystem.isGTK()) {
int offsetVerticalBar = -verticalBar.getSelection();
if (itemIndexTarget == 0) {
indicYPositionRefTable = 0 + offsetVerticalBar;
} else {
indicYPositionRefTable = itemIndexTarget * (currentTable.getItemHeight() + 2) + offsetVerticalBar;
}
// System.out.println("indicYPositionRefTable="+indicYPositionRefTable);
indicYPositionRefZone = indicYPositionRefTable + tablePositionRefZone.y + formLayout.marginTop - HEIGHT_INDICATOR / 2;
indicYPositionRefZone -= currentTable.getItemHeight() + 1;
// System.out.println("indicYPositionRefZone="+indicYPositionRefZone);
} else {
int offsetVerticalBar = -verticalBar.getSelection() * currentTable.getItemHeight();
if (itemIndexTarget == 0) {
indicYPositionRefTable = 0 + offsetVerticalBar;
} else {
indicYPositionRefTable = itemIndexTarget * currentTable.getItemHeight() - 1 + offsetVerticalBar;
}
Point point = currentTable.getDisplay().map(currentTable, tablesZoneViewParent, new Point(0, indicYPositionRefTable));
indicYPositionRefZone = point.y + 5;
}
Rectangle boundsTableView = dataMapTableView.getBounds();
int testValue = boundsTableView.y + boundsTableView.height - formLayout.marginTop - HEIGHT_INDICATOR / 2 - 5;
if (indicYPositionRefZone > testValue) {
indicYPositionRefZone = testValue;
}
currentTable.addListener(SWT.Paint, tablePaintListener);
if (lastIndicYPositionRefZone != indicYPositionRefZone) {
formDataLeftArrow.top.offset = indicYPositionRefZone;
formDataRightArrow.top.offset = indicYPositionRefZone;
formDataRightArrow.left.offset = currentTable.getSize().x + 2;
currentTable.redraw();
tablesZoneViewParent.layout();
}
lastIndicYPositionRefZone = indicYPositionRefZone;
}
use of org.talend.designer.mapper.ui.visualmap.zone.scrollable.TablesZoneView in project tdi-studio-se by Talend.
the class UIManager method minimizeAllTables.
public void minimizeAllTables(Zone zone, boolean minimize, ToolItem minimizeButton) {
List<DataMapTableView> tablesView = null;
TablesZoneView tablesZoneView = null;
if (zone == Zone.INPUTS) {
tablesView = mapperManager.getUiManager().getInputsTablesView();
tablesZoneView = getTablesZoneViewInputs();
} else if (zone == Zone.OUTPUTS) {
tablesZoneView = getTablesZoneViewOutputs();
tablesView = mapperManager.getUiManager().getOutputsTablesView();
} else {
//$NON-NLS-1$
throw new RuntimeException("Case not found:" + zone);
}
Layout layout = tablesZoneView.getLayout();
try {
tablesZoneView.setLayout(null);
for (DataMapTableView view : tablesView) {
view.minimizeTable(minimize);
}
} catch (RuntimeException e) {
ExceptionHandler.process(e);
} finally {
tablesZoneView.setLayout(layout);
}
tablesZoneView.layout();
for (DataMapTableView view : tablesView) {
view.layout();
}
resizeTablesZoneViewAtComputedSize(zone);
moveScrollBarZoneAtSelectedTable(zone);
}
use of org.talend.designer.mapper.ui.visualmap.zone.scrollable.TablesZoneView in project tdi-studio-se by Talend.
the class UIManager method resizeTablesZoneViewAtComputedSize.
/**
* recalculate parent size don't hide DataMapTableView when resized.
*/
public void resizeTablesZoneViewAtComputedSize(Zone zone) {
TablesZoneView tablesZoneView = null;
if (zone == Zone.INPUTS) {
tablesZoneView = getTablesZoneViewInputs();
} else if (zone == Zone.OUTPUTS) {
tablesZoneView = getTablesZoneViewOutputs();
} else if (zone == Zone.VARS) {
tablesZoneView = getTablesZoneViewVars();
}
tablesZoneView.setSize(tablesZoneView.computeSize(SWT.DEFAULT, SWT.DEFAULT));
}
Aggregations