Search in sources :

Example 6 with ExpressionFilterEntry

use of org.talend.designer.mapper.model.tableentry.ExpressionFilterEntry in project tdi-studio-se by Talend.

the class TableEntriesManager method retrieveTableItem.

TableItem retrieveTableItem(ITableEntry dataMapTableEntry) {
    DataMapTableView dataMapTableView = this.mapperManager.retrieveAbstractDataMapTableView(dataMapTableEntry.getParent());
    TableItem[] tableItems = new TableItem[0];
    if (dataMapTableEntry instanceof IColumnEntry) {
        tableItems = dataMapTableView.getTableViewerCreatorForColumns().getTable().getItems();
    } else if (dataMapTableEntry instanceof FilterTableEntry) {
        tableItems = dataMapTableView.getTableViewerCreatorForFilters().getTable().getItems();
    } else if (dataMapTableEntry instanceof GlobalMapEntry) {
        tableItems = dataMapTableView.getTableViewerCreatorForGlobalMap().getTable().getItems();
    } else if (dataMapTableEntry instanceof ExpressionFilterEntry) {
        return null;
    } else {
        //$NON-NLS-1$
        throw new IllegalArgumentException(Messages.getString("TableEntriesManager.exceptionMessage.caseNotFound"));
    }
    TableItem tableItem = null;
    for (int i = 0; i < tableItems.length; i++) {
        if (tableItems[i].getData() == dataMapTableEntry) {
            tableItem = tableItems[i];
            break;
        }
    }
    getTableEntryProperties(dataMapTableEntry).setTableItem(tableItem);
    return tableItem;
}
Also used : TableItem(org.eclipse.swt.widgets.TableItem) FilterTableEntry(org.talend.designer.mapper.model.tableentry.FilterTableEntry) DataMapTableView(org.talend.designer.mapper.ui.visualmap.table.DataMapTableView) IColumnEntry(org.talend.designer.abstractmap.model.tableentry.IColumnEntry) GlobalMapEntry(org.talend.designer.mapper.model.tableentry.GlobalMapEntry) ExpressionFilterEntry(org.talend.designer.mapper.model.tableentry.ExpressionFilterEntry)

Example 7 with ExpressionFilterEntry

use of org.talend.designer.mapper.model.tableentry.ExpressionFilterEntry in project tdi-studio-se by Talend.

the class SearchZoneMapper method search.

public void search(Map<Integer, Map<Integer, ITableEntry>> searchMaps, String searchValue) {
    if (searchValue.equals("")) {
        uiManager.unselectAllEntriesOfAllTables();
        return;
    }
    // SearchPattern
    matcher.setPattern("*" + searchValue.trim() + "*");
    List<InputTable> inputTables = mapperManager.getInputTables();
    List<VarsTable> varsTables = mapperManager.getVarsTables();
    List<OutputTable> outputTables = mapperManager.getOutputTables();
    int index = -1;
    // for the InputTables
    for (InputTable inputTable : inputTables) {
        for (IColumnEntry column : inputTable.getColumnEntries()) {
            int i = -1;
            Map<Integer, ITableEntry> map = new HashMap<Integer, ITableEntry>();
            boolean modified = false;
            if (column.getExpression() != null && matcher.matches(column.getExpression())) {
                i++;
                map.put(i, column);
                modified = true;
            }
            if (column.getName() != null && matcher.matches(column.getName())) {
                i++;
                map.put(i, column);
                modified = true;
            }
            if (modified) {
                index++;
                searchMaps.put(index, map);
            }
        }
        // ExpressionFilter
        ExpressionFilterEntry expressionFilterEntry = inputTable.getExpressionFilter();
        if (expressionFilterEntry.getExpression() != null && matcher.matches(expressionFilterEntry.getExpression())) {
            Map<Integer, ITableEntry> map = new HashMap<Integer, ITableEntry>();
            map.put(0, expressionFilterEntry);
            index++;
            searchMaps.put(index, map);
        }
    }
    // for the VarsTables
    for (VarsTable varsTable : varsTables) {
        for (IColumnEntry column : varsTable.getColumnEntries()) {
            int i = -1;
            Map<Integer, ITableEntry> map = new HashMap<Integer, ITableEntry>();
            boolean modified = false;
            if (column.getExpression() != null && matcher.matches(column.getExpression())) {
                i++;
                map.put(i, column);
                modified = true;
            }
            if (column.getName() != null && matcher.matches(column.getName())) {
                i++;
                map.put(i, column);
                modified = true;
            }
            if (modified) {
                index++;
                searchMaps.put(index, map);
            }
        }
    }
    // for the OutputTables
    for (OutputTable outputTable : outputTables) {
        for (IColumnEntry column : outputTable.getColumnEntries()) {
            int i = -1;
            Map<Integer, ITableEntry> map = new HashMap<Integer, ITableEntry>();
            boolean modified = false;
            if (column.getExpression() != null && matcher.matches(column.getExpression())) {
                i++;
                map.put(i, column);
                modified = true;
            }
            if (column.getName() != null && matcher.matches(column.getName())) {
                i++;
                map.put(i, column);
                modified = true;
            }
            if (modified) {
                index++;
                searchMaps.put(index, map);
            }
        }
        // ExpressionFilter
        ExpressionFilterEntry expressionFilterEntry = outputTable.getExpressionFilter();
        if (expressionFilterEntry.getExpression() != null && matcher.matches(expressionFilterEntry.getExpression())) {
            Map<Integer, ITableEntry> map = new HashMap<Integer, ITableEntry>();
            map.put(0, expressionFilterEntry);
            index++;
            searchMaps.put(index, map);
        }
    }
}
Also used : VarsTable(org.talend.designer.mapper.model.table.VarsTable) HashMap(java.util.HashMap) ITableEntry(org.talend.designer.abstractmap.model.tableentry.ITableEntry) IColumnEntry(org.talend.designer.abstractmap.model.tableentry.IColumnEntry) OutputTable(org.talend.designer.mapper.model.table.OutputTable) InputTable(org.talend.designer.mapper.model.table.InputTable) ExpressionFilterEntry(org.talend.designer.mapper.model.tableentry.ExpressionFilterEntry)

Example 8 with ExpressionFilterEntry

use of org.talend.designer.mapper.model.tableentry.ExpressionFilterEntry in project tdi-studio-se by Talend.

the class StyleLinkFactory method getStyleLink.

// public static DrawableLinkFactory getInstance() {
// if (instance == null) {
// instance = new DrawableLinkFactory();
// }
// return instance;
// }
//
// public IDrawableLink getDrawableLink(IMapperLink link) {
// IDrawableLink drawableLink = null;
// PointLinkDescriptor pointLinkDescriptorSource = link.getPointLinkDescriptorSource();
// PointLinkDescriptor pointLinkDescriptorTarget = link.getPointLinkDescriptorTarget();
// if (pointLinkDescriptorSource.getZone() != pointLinkDescriptorTarget.getZone()) {
// drawableLink = new HorizontalBezierLink();
// } else if (pointLinkDescriptorSource.getZone() == pointLinkDescriptorTarget.getZone()) {
// drawableLink = new VerticalRoundedCornerLink();
// }
// return drawableLink;
// }
//
public IStyleLink getStyleLink(IMapperLink link) {
    ILinkState linkState = link.getState();
    PointLinkDescriptor pointLinkDescriptorSource = link.getPointLinkDescriptor1();
    PointLinkDescriptor pointLinkDescriptorTarget = link.getPointLinkDescriptor2();
    ITableEntry targetTableEntry = pointLinkDescriptorTarget.getTableEntry();
    boolean targetIsConstraint = false;
    if (targetTableEntry instanceof FilterTableEntry || targetTableEntry instanceof ExpressionFilterEntry) {
        targetIsConstraint = true;
    }
    boolean targetIsGlobalMap = false;
    if (targetTableEntry instanceof GlobalMapEntry) {
        targetIsGlobalMap = true;
    }
    IStyleLink style = null;
    if (pointLinkDescriptorSource.getZone() != pointLinkDescriptorTarget.getZone()) {
        if (linkState == LinkState.SELECTED) {
            if (targetIsConstraint) {
                style = selectedZoneToZoneFilterStyle;
            } else {
                style = selectedZoneToZoneStyle;
            }
        } else if (linkState == LinkState.UNSELECTED) {
            if (targetIsConstraint) {
                style = unselectedZoneToZoneFilterStyle;
            } else {
                style = unselectedZoneToZoneStyle;
            }
        }
    } else if (pointLinkDescriptorSource.getZone() == Zone.INPUTS && pointLinkDescriptorSource.getZone() == pointLinkDescriptorTarget.getZone()) {
        if (linkState == LinkState.SELECTED) {
            if (pointLinkDescriptorTarget.getTableEntry() instanceof ExpressionFilterEntry) {
                style = selectedSameZoneFilterStyle;
            } else if (pointLinkDescriptorTarget.getTableEntry() instanceof GlobalMapEntry) {
                style = selectedSameZoneGlobalMapStyle;
            } else {
                style = selectedSameInputZoneStyle;
            }
        } else if (linkState == LinkState.UNSELECTED) {
            if (pointLinkDescriptorTarget.getTableEntry() instanceof ExpressionFilterEntry) {
                style = unselectedSameZoneFilterStyle;
            } else if (pointLinkDescriptorTarget.getTableEntry() instanceof GlobalMapEntry) {
                style = unselectedSameZoneGlobalMapStyle;
            } else {
                style = unselectedSameInputZoneStyle;
            }
        }
    } else if (pointLinkDescriptorSource.getZone() == Zone.VARS && pointLinkDescriptorSource.getZone() == pointLinkDescriptorTarget.getZone()) {
        if (linkState == LinkState.SELECTED) {
            style = selectedSameVarsZoneStyle;
        } else if (linkState == LinkState.UNSELECTED) {
            style = unselectedSameVarsZoneStyle;
        }
    }
    return style;
}
Also used : PointLinkDescriptor(org.talend.designer.abstractmap.ui.visualmap.link.PointLinkDescriptor) ITableEntry(org.talend.designer.abstractmap.model.tableentry.ITableEntry) ILinkState(org.talend.designer.abstractmap.ui.visualmap.link.ILinkState) FilterTableEntry(org.talend.designer.mapper.model.tableentry.FilterTableEntry) IStyleLink(org.talend.commons.ui.swt.drawing.link.IStyleLink) ExpressionFilterEntry(org.talend.designer.mapper.model.tableentry.ExpressionFilterEntry) GlobalMapEntry(org.talend.designer.mapper.model.tableentry.GlobalMapEntry)

Example 9 with ExpressionFilterEntry

use of org.talend.designer.mapper.model.tableentry.ExpressionFilterEntry in project tdi-studio-se by Talend.

the class MapperManager method changeEntryExpression.

/**
     * DOC amaumont Comment method "changeEntryExpression".
     * 
     * @param currentEntry
     * @param text
     */
public void changeEntryExpression(final ITableEntry currentEntry, String text) {
    currentEntry.setExpression(text);
    DataMapTableView dataMapTableView = retrieveDataMapTableView(currentEntry);
    TableViewer tableViewer = null;
    if (currentEntry instanceof IColumnEntry || currentEntry instanceof FilterTableEntry) {
        getProblemsManager().checkProblemsForTableEntryWithDelayLimiter(currentEntry);
        if (currentEntry instanceof IColumnEntry) {
            tableViewer = dataMapTableView.getTableViewerCreatorForColumns().getTableViewer();
        } else if (currentEntry instanceof FilterTableEntry) {
            tableViewer = dataMapTableView.getTableViewerCreatorForFilters().getTableViewer();
        }
        if (currentEntry.getProblems() != null) {
            tableViewer.getTable().deselectAll();
        }
        tableViewer.refresh(currentEntry);
    } else if (currentEntry instanceof ExpressionFilterEntry) {
        dataMapTableView.getExpressionFilterText().setTextWithoutNotifyListeners(text);
        if (!dataMapTableView.getExpressionFilterText().isFocusControl()) {
            dataMapTableView.checkProblemsForExpressionFilterWithDelay();
        }
    }
    uiManager.parseNewExpression(text, currentEntry, false);
}
Also used : FilterTableEntry(org.talend.designer.mapper.model.tableentry.FilterTableEntry) DataMapTableView(org.talend.designer.mapper.ui.visualmap.table.DataMapTableView) IColumnEntry(org.talend.designer.abstractmap.model.tableentry.IColumnEntry) ExpressionFilterEntry(org.talend.designer.mapper.model.tableentry.ExpressionFilterEntry) TableViewer(org.eclipse.jface.viewers.TableViewer)

Example 10 with ExpressionFilterEntry

use of org.talend.designer.mapper.model.tableentry.ExpressionFilterEntry in project tdi-studio-se by Talend.

the class UIManager method processColumnNameChanged.

/**
     * DOC amaumont Comment method "processNewProcessColumnName".
     * 
     * @param previousColumnName TODO
     * @param dataMapTableView
     * @param text
     * @param entry
     */
public void processColumnNameChanged(final String previousColumnName, final String newColumnName, final DataMapTableView dataMapTableView, final ITableEntry currentModifiedITableEntry) {
    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;
            }
        }
        // for the input/output table expression filter
        if (dataMapTable instanceof AbstractInOutTable) {
            ExpressionFilterEntry expressionFilterEntry = ((AbstractInOutTable) dataMapTable).getExpressionFilter();
            if (expressionFilterEntry != null && expressionFilterEntry.getExpression() != null) {
                if (parseExpression(expressionFilterEntry.getExpression(), expressionFilterEntry, true, true, false).isAtLeastOneLinkRemoved()) {
                    atLeastOneLinkHasBeenRemoved = true;
                }
            }
        }
    }
    mapperManager.getUiManager().refreshBackground(false, false);
    dataMapTableView.getTableViewerCreatorForColumns().getTableViewer().refresh(currentModifiedITableEntry);
    if (atLeastOneLinkHasBeenRemoved) {
        new AsynchronousThreading(20, false, dataMapTableView.getDisplay(), new Runnable() {

            public void run() {
                TableViewerCreator tableViewerCreatorForColumns = dataMapTableView.getTableViewerCreatorForColumns();
                boolean propagate = MessageDialog.openQuestion(tableViewerCreatorForColumns.getTable().getShell(), //$NON-NLS-1$
                Messages.getString("UIManager.propagateTitle"), //$NON-NLS-1$
                Messages.getString("UIManager.propagateMessage"));
                if (propagate) {
                    TableEntryLocation previousLocation = new TableEntryLocation(currentModifiedITableEntry.getParentName(), previousColumnName);
                    TableEntryLocation newLocation = new TableEntryLocation(currentModifiedITableEntry.getParentName(), newColumnName);
                    mapperManager.replacePreviousLocationInAllExpressions(previousLocation, newLocation);
                }
            }
        }).start();
    }
}
Also used : TableViewerCreator(org.talend.commons.ui.swt.tableviewer.TableViewerCreator) AbstractInOutTable(org.talend.designer.mapper.model.table.AbstractInOutTable) TableEntryLocation(org.talend.designer.mapper.model.tableentry.TableEntryLocation) IDataMapTable(org.talend.designer.abstractmap.model.table.IDataMapTable) InputDataMapTableView(org.talend.designer.mapper.ui.visualmap.table.InputDataMapTableView) OutputDataMapTableView(org.talend.designer.mapper.ui.visualmap.table.OutputDataMapTableView) VarsDataMapTableView(org.talend.designer.mapper.ui.visualmap.table.VarsDataMapTableView) DataMapTableView(org.talend.designer.mapper.ui.visualmap.table.DataMapTableView) IColumnEntry(org.talend.designer.abstractmap.model.tableentry.IColumnEntry) ExpressionFilterEntry(org.talend.designer.mapper.model.tableentry.ExpressionFilterEntry) AsynchronousThreading(org.talend.commons.ui.runtime.thread.AsynchronousThreading)

Aggregations

ExpressionFilterEntry (org.talend.designer.mapper.model.tableentry.ExpressionFilterEntry)12 IColumnEntry (org.talend.designer.abstractmap.model.tableentry.IColumnEntry)8 FilterTableEntry (org.talend.designer.mapper.model.tableentry.FilterTableEntry)7 GlobalMapEntry (org.talend.designer.mapper.model.tableentry.GlobalMapEntry)7 DataMapTableView (org.talend.designer.mapper.ui.visualmap.table.DataMapTableView)6 InputTable (org.talend.designer.mapper.model.table.InputTable)4 ArrayList (java.util.ArrayList)3 TableViewerCreator (org.talend.commons.ui.swt.tableviewer.TableViewerCreator)3 IDataMapTable (org.talend.designer.abstractmap.model.table.IDataMapTable)3 ITableEntry (org.talend.designer.abstractmap.model.tableentry.ITableEntry)3 AbstractInOutTable (org.talend.designer.mapper.model.table.AbstractInOutTable)3 OutputTable (org.talend.designer.mapper.model.table.OutputTable)3 HashMap (java.util.HashMap)2 List (java.util.List)2 TableItem (org.eclipse.swt.widgets.TableItem)2 IMetadataTable (org.talend.core.model.metadata.IMetadataTable)2 InputColumnTableEntry (org.talend.designer.mapper.model.tableentry.InputColumnTableEntry)2 TableEntryLocation (org.talend.designer.mapper.model.tableentry.TableEntryLocation)2 InputDataMapTableView (org.talend.designer.mapper.ui.visualmap.table.InputDataMapTableView)2 OutputDataMapTableView (org.talend.designer.mapper.ui.visualmap.table.OutputDataMapTableView)2