use of org.talend.designer.mapper.model.tableentry.GlobalMapEntry in project tdi-studio-se by Talend.
the class InputDataMapTableView method getMapSettingValueAccess.
@Override
protected IBeanPropertyAccessors<GlobalMapEntry, Object> getMapSettingValueAccess(final CellEditor cellEditor) {
return new IBeanPropertyAccessors<GlobalMapEntry, Object>() {
public Object get(GlobalMapEntry bean) {
IDataMapTable parent = bean.getParent();
InputTable inputTable = (InputTable) parent;
if (cellEditor instanceof ComboBoxCellEditor) {
ComboBoxCellEditor functComboBox = (ComboBoxCellEditor) cellEditor;
if (LOOKUP_MODEL_SETTING.equals(bean.getName())) {
IUILookupMode[] availableJoins = { TMAP_LOOKUP_MODE.LOAD_ONCE, TMAP_LOOKUP_MODE.RELOAD, TMAP_LOOKUP_MODE.CACHE_OR_RELOAD };
List<String> names = new ArrayList<String>();
for (IUILookupMode availableJoin : availableJoins) {
names.add(availableJoin.getLabel());
}
functComboBox.setItems(names.toArray(new String[names.size()]));
final IUILookupMode lookupMode = ((InputTable) parent).getLookupMode();
if (lookupMode != null) {
return lookupMode.getLabel();
}
} else if (MATCH_MODEL_SETTING.equals(bean.getName())) {
IUIMatchingMode[] matchModel = getMatchModel();
List<String> names = new ArrayList<String>();
for (IUIMatchingMode element : matchModel) {
names.add(element.getLabel());
}
functComboBox.setItems(names.toArray(new String[names.size()]));
IUIMatchingMode matchingMode = ((InputTable) parent).getMatchingMode();
if (names.contains(matchingMode.getLabel())) {
return matchingMode.getLabel();
}
} else if (JOIN_MODEL_SETTING.equals(bean.getName())) {
String[] items = new String[] { INNER_JOIN, LEFT_OUTER_JOIN };
functComboBox.setItems(items);
boolean innerJoin = ((InputTable) parent).isInnerJoin();
if (innerJoin) {
return items[0];
}
return items[1];
} else if (PERSISTENCE_MODEL_SETTING.equals(bean.getName())) {
functComboBox.setItems(new String[] { "true", "false" });
boolean persistent = ((InputTable) parent).isPersistent();
return String.valueOf(persistent);
}
} else if (cellEditor instanceof CustomDialogCellEditor) {
CustomDialogCellEditor customDialogCellEditor = (CustomDialogCellEditor) cellEditor;
if (LOOKUP_MODEL_SETTING.equals(bean.getName())) {
customDialogCellEditor.setType(CellValueType.LOOKUP_MODEL);
final IUILookupMode lookupMode = inputTable.getLookupMode();
if (lookupMode != null) {
return lookupMode.getLabel();
}
} else if (MATCH_MODEL_SETTING.equals(bean.getName())) {
customDialogCellEditor.setType(CellValueType.MATCH_MODEL);
IUIMatchingMode matchingMode = inputTable.getMatchingMode();
if (matchingMode != null) {
return matchingMode.getLabel();
}
} else if (JOIN_MODEL_SETTING.equals(bean.getName())) {
customDialogCellEditor.setType(CellValueType.JOIN_MODEL);
boolean innerJoin = inputTable.isInnerJoin();
return innerJoin ? INNER_JOIN : LEFT_OUTER_JOIN;
} else if (PERSISTENCE_MODEL_SETTING.equals(bean.getName())) {
customDialogCellEditor.setType(CellValueType.BOOL);
boolean persistent = inputTable.isPersistent();
return String.valueOf(persistent);
} else if (SCHEMA_TYPE.equals(bean.getName())) {
customDialogCellEditor.setType(CellValueType.SCHEMA_TYPE);
enableDiaplayViewer(inputTable.isRepository());
return inputTable.isRepository() ? REPOSITORY : BUILT_IN;
} else if (SCHEMA_ID.equals(bean.getName())) {
customDialogCellEditor.setType(CellValueType.SCHEMA_ID);
return getSchemaDisplayName(inputTable.getId());
}
}
return "";
}
public void set(GlobalMapEntry bean, Object value) {
IDataMapTable parent = bean.getParent();
InputTable inputTable = (InputTable) parent;
if (LOOKUP_MODEL_SETTING.equals(bean.getName())) {
IUILookupMode[] availableJoins = { TMAP_LOOKUP_MODE.LOAD_ONCE, TMAP_LOOKUP_MODE.RELOAD, TMAP_LOOKUP_MODE.CACHE_OR_RELOAD };
for (final IUILookupMode lookupMode : availableJoins) {
if (value != null && value.equals(lookupMode.getLabel())) {
inputTable.setLookupMode(lookupMode);
if (TMAP_LOOKUP_MODE.CACHE_OR_RELOAD == lookupMode) {
persistentCheckEditable = false;
} else {
persistentCheckEditable = true;
}
if (lookupMode == TMAP_LOOKUP_MODE.RELOAD || lookupMode == TMAP_LOOKUP_MODE.CACHE_OR_RELOAD) {
showTableGlobalMap(true);
} else {
showTableGlobalMap(false);
}
enableDisablePersistentMode((TMAP_LOOKUP_MODE) lookupMode);
mapperManager.getProblemsManager().checkProblemsForTableEntry(bean, true);
checkChangementsAfterEntryModifiedOrAdded(true);
}
}
} else if (MATCH_MODEL_SETTING.equals(bean.getName())) {
for (IUIMatchingMode model : TMAP_MATCHING_MODE.values()) {
if (value != null && value.equals(model.getLabel())) {
inputTable.setMatchingMode(model);
previousMatchingModeSelected = model;
}
}
} else if (JOIN_MODEL_SETTING.equals(bean.getName())) {
if (LEFT_OUTER_JOIN.equals(value)) {
((InputTable) parent).setInnerJoin(false);
previousInnerJoinSelection = false;
} else {
((InputTable) parent).setInnerJoin(true);
previousInnerJoinSelection = true;
}
} else if (PERSISTENCE_MODEL_SETTING.equals(bean.getName())) {
if ("true".equals(value) || "false".equals(value)) {
((InputTable) parent).setPersistent(Boolean.valueOf(value.toString()));
previousValidPersistentMode = Boolean.valueOf(value.toString());
}
} else if (SCHEMA_TYPE.equals(bean.getName())) {
inputTable.setRepository(REPOSITORY.equals(value));
showSchemaIDSetting(REPOSITORY.equals(value));
enableDiaplayViewer(REPOSITORY.equals(value));
} else if (SCHEMA_ID.equals(bean.getName())) {
inputTable.setId(String.valueOf(value));
}
refreshCondensedImage((InputTable) bean.getParent(), bean.getName());
}
};
}
use of org.talend.designer.mapper.model.tableentry.GlobalMapEntry 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;
}
use of org.talend.designer.mapper.model.tableentry.GlobalMapEntry in project tdi-studio-se by Talend.
the class AbstractInOutTable method initFromExternalData.
@Override
protected void initFromExternalData(ExternalMapperTable externalMapperTable) {
super.initFromExternalData(externalMapperTable);
expressionFilterEntry = new ExpressionFilterEntry(this);
tableMapSettingEntriesModel = new ExtendedTableModel<GlobalMapEntry>("Model for map setting", mapSettingEntries);
if (externalMapperTable != null) {
this.expressionFilterEntry.setExpression(externalMapperTable.getExpressionFilter());
this.activateExpressionFilter = externalMapperTable.isActivateExpressionFilter();
this.activateCondensedTool = externalMapperTable.isActivateCondensedTool();
this.activateColumnNameFilter = externalMapperTable.isActivateColumnNameFilter();
this.id = externalMapperTable.getId();
this.isRepository = this.id == null ? false : true;
}
List<IMetadataColumn> columns = new ArrayList<IMetadataColumn>();
Map<String, ExternalMapperTableEntry> nameToPerTabEntry = new HashMap<String, ExternalMapperTableEntry>();
if (externalMapperTable != null && externalMapperTable.getMetadataTableEntries() != null) {
for (ExternalMapperTableEntry perTableEntry : externalMapperTable.getMetadataTableEntries()) {
nameToPerTabEntry.put(perTableEntry.getName(), perTableEntry);
}
}
String originalTableName = null;
if (metadataTable != null) {
originalTableName = metadataTable.getTableName();
}
if (isRepository) {
IMetadataTable table = MetadataToolHelper.getMetadataFromRepository(id);
if (table == null) {
this.id = null;
this.isRepository = false;
} else {
this.metadataTable = table;
this.metadataTable.setTableName(originalTableName);
}
}
if (metadataTable != null) {
columns = this.metadataTable.getListColumns();
}
updateTableEntries(columns, nameToPerTabEntry);
}
use of org.talend.designer.mapper.model.tableentry.GlobalMapEntry in project tdi-studio-se by Talend.
the class TableEntriesManager method addTableEntry.
/**
* DOC amaumont Comment method "addTableEntry".
*
* @param dataMapTableEntry
* @param index
*/
public void addTableEntry(ITableEntry dataMapTableEntry, Integer index) {
if (dataMapTableEntry == null) {
throw new IllegalArgumentException(Messages.getString(//$NON-NLS-1$
"TableEntriesManager.exceptionMessage.dataMapTableEntryCannotNull"));
}
add(dataMapTableEntry);
IDataMapTable dataMapTable = dataMapTableEntry.getParent();
if (dataMapTableEntry instanceof IColumnEntry) {
if (index == null) {
dataMapTable.addColumnEntry((IColumnEntry) dataMapTableEntry);
} else {
dataMapTable.addColumnEntry((IColumnEntry) dataMapTableEntry, index);
}
} else if (dataMapTableEntry instanceof FilterTableEntry) {
if (index == null) {
((OutputTable) dataMapTable).addFilterEntry((FilterTableEntry) dataMapTableEntry);
} else {
((OutputTable) dataMapTable).addFilterEntry((FilterTableEntry) dataMapTableEntry, index);
}
} else if (dataMapTableEntry instanceof GlobalMapEntry) {
if (index == null) {
((InputTable) dataMapTable).addGlobalMapEntry((GlobalMapEntry) dataMapTableEntry);
} else {
((InputTable) dataMapTable).addGlobalMapEntry((GlobalMapEntry) dataMapTableEntry, index);
}
} else {
String exceptionMessage = Messages.getString("TableEntriesManager.exceptionMessage.typeIsNotValid", //$NON-NLS-1$
dataMapTableEntry.getClass().toString());
throw new IllegalArgumentException(exceptionMessage);
}
// TableEntriesManagerEvent event = new TableEntriesManagerEvent(EVENT_TYPE.ADD);
// event.entry = dataMapTableEntry;
// fireEvent(event);
}
use of org.talend.designer.mapper.model.tableentry.GlobalMapEntry in project tdi-studio-se by Talend.
the class InputTable method initFromExternalData.
/*
* (non-Javadoc)
*
* @see
* org.talend.designer.mapper.model.table.AbstractInOutTable#initFromExternalData(org.talend.designer.mapper.external
* .data.ExternalMapperTable)
*/
@Override
public void initFromExternalData(ExternalMapperTable externalMapperTable) {
super.initFromExternalData(externalMapperTable);
if (externalMapperTable != null) {
this.innerJoin = externalMapperTable.isInnerJoin();
this.persistent = externalMapperTable.isPersistent();
this.matchingMode = TMAP_MATCHING_MODE.parse(externalMapperTable.getMatchingMode());
if (matchingMode == null) {
if (mapperManager.isTableHasAtLeastOneHashKey(this)) {
matchingMode = mapperManager.isMRProcess() ? TMAP_MATCHING_MODE.ALL_MATCHES : TMAP_MATCHING_MODE.UNIQUE_MATCH;
} else {
matchingMode = TMAP_MATCHING_MODE.ALL_ROWS;
}
}
if (matchingMode == TMAP_MATCHING_MODE.LAST_MATCH) {
matchingMode = mapperManager.isMRProcess() ? TMAP_MATCHING_MODE.ALL_MATCHES : TMAP_MATCHING_MODE.UNIQUE_MATCH;
;
}
this.lookupMode = TMAP_LOOKUP_MODE.parse(externalMapperTable.getLookupMode());
if (lookupMode == null) {
lookupMode = TMAP_LOOKUP_MODE.LOAD_ONCE;
}
List<ExternalMapperTableEntry> globalMapEntries = externalMapperTable.getGlobalMapKeysValues();
if (globalMapEntries != null) {
for (ExternalMapperTableEntry externalMapperTableEntry : globalMapEntries) {
GlobalMapEntry entry = new GlobalMapEntry(this, externalMapperTableEntry.getName(), // , externalMapperTableEntry.getType());
externalMapperTableEntry.getExpression());
// if (LanguageManager.getCurrentLanguage() == ECodeLanguage.JAVA) {
// varTableEntry.setNullable(externalMapperTableEntry.isNullable());
// }
addGlobalMapEntry(entry);
}
}
}
}
Aggregations