use of org.eclipse.draw2d.Figure in project tdi-studio-se by Talend.
the class XmlMapNodeDirectEditManager method createCellEditorOn.
@Override
protected CellEditor createCellEditorOn(Composite composite) {
Composite parent = (Composite) source.getViewer().getControl();
CellEditor cellEditor = null;
Figure figure = null;
if (this.locator instanceof XmlMapNodeCellEditorLocator) {
XmlMapNodeCellEditorLocator lo = (XmlMapNodeCellEditorLocator) locator;
figure = lo.getFigure();
}
if (figure instanceof IComboCell) {
try {
// tree setting can be edit or not
if (source instanceof InputXmlTreeEditPart) {
InputXmlTree inputTree = (InputXmlTree) ((InputXmlTreeEditPart) source).getModel();
if (DirectEditType.JOIN_MODEL.equals(((IComboCell) figure).getDirectEditType())) {
if (!XmlMapUtil.hasAtLeastOneHashKey(inputTree)) {
return null;
}
}
if (DirectEditType.PERSISTENT_MODEL.equals(((IComboCell) figure).getDirectEditType())) {
if (LOOKUP_MODE.CACHE_OR_RELOAD.toString().equals(inputTree.getLookupMode())) {
return null;
}
}
}
if (source instanceof OutputXmlTreeEditPart) {
OutputXmlTree outputTree = (OutputXmlTree) ((OutputXmlTreeEditPart) source).getModel();
if (DirectEditType.ALL_IN_ONE.equals(((IComboCell) figure).getDirectEditType())) {
if (!XmlMapUtil.hasDocument(outputTree)) {
return null;
}
boolean hasAggregate = false;
for (int i = 0; i < outputTree.getNodes().size(); i++) {
OutputTreeNode outputTreeNode = outputTree.getNodes().get(i);
hasAggregate = hasAggreage(outputTreeNode);
if (hasAggregate) {
break;
}
}
if (hasAggregate) {
return null;
}
} else if (DirectEditType.ENABLE_EMPTY_ELEMENT.equals(((IComboCell) figure).getDirectEditType())) {
if (!XmlMapUtil.hasDocument(outputTree)) {
return null;
}
}
}
cellEditor = new XmlComboCellEditor();
cellEditor.create(composite);
((XmlComboCellEditor) cellEditor).setItems(getComboItemsByType(((IComboCell) figure).getDirectEditType()));
cellAndType.put(cellEditor, ((IComboCell) figure).getDirectEditType());
} catch (Exception e) {
return null;
}
} else if (figure instanceof ITextCell) {
// this one is created for direct doc child name , no use anymore...
cellEditor = new TextCellEditor(composite);
cellAndType.put(cellEditor, ((ITextCell) figure).getDirectEditType());
// for the search
XmlMapNodeCellEditorLocator lo = (XmlMapNodeCellEditorLocator) locator;
if (lo.getFigure() != null && lo.getFigure() instanceof VarNodeTextLabel) {
figure = (VarNodeTextLabel) lo.getFigure();
if (figure.getParent() != null && figure.getParent() instanceof XmlMapSearchZoneToolBar) {
XmlMapSearchZoneToolBar searchZone = (XmlMapSearchZoneToolBar) figure.getParent();
if (searchZone.getSearchMaps().size() > 0) {
searchZone.getSearchZoneMapper().hightlightAll(searchZone.getSearchMaps(), false);
searchZone.getSearchZoneMapper().setHightlightAll(false);
searchZone.getSearchMaps().clear();
searchZone.hightLightAll.setSelected(false);
}
}
}
} else if (figure instanceof IExpressionBuilderCell && model instanceof AbstractNode) {
IService expressionBuilderDialogService = GlobalServiceRegister.getDefault().getService(IExpressionBuilderDialogService.class);
CellEditorDialogBehavior behavior = new CellEditorDialogBehavior();
cellEditor = new ExpressionCellEditor(composite, behavior, source, DirectEditType.EXPRESSION);
((ExpressionCellEditor) cellEditor).setOwnerId(((AbstractNode) model).getExpression());
IExpressionBuilderDialogController dialog = ((IExpressionBuilderDialogService) expressionBuilderDialogService).getExpressionBuilderInstance(parent, (ExpressionCellEditor) cellEditor, null);
cellAndType.put(cellEditor, DirectEditType.EXPRESSION);
behavior.setCellEditorDialog(dialog);
} else if (figure instanceof ITextAreaCell) {
TextAreaBehavior behavior = new TextAreaBehavior();
cellEditor = new ExpressionCellEditor(composite, behavior, source, DirectEditType.EXPRESSION_FILTER);
cellAndType.put(cellEditor, DirectEditType.EXPRESSION_FILTER);
} else if (figure instanceof IExpressionBuilderCell && model instanceof InputXmlTree) {
IService expressionBuilderDialogService = GlobalServiceRegister.getDefault().getService(IExpressionBuilderDialogService.class);
CellEditorDialogBehavior behavior = new CellEditorDialogBehavior();
cellEditor = new ExpressionCellEditor(composite, behavior, source, DirectEditType.EXPRESSION);
((ExpressionCellEditor) cellEditor).setOwnerId(((InputXmlTree) model).getLookupMode());
IExpressionBuilderDialogController dialog = ((IExpressionBuilderDialogService) expressionBuilderDialogService).getExpressionBuilderInstance(parent, (ExpressionCellEditor) cellEditor, null);
cellAndType.put(cellEditor, DirectEditType.EXPRESSION);
behavior.setCellEditorDialog(dialog);
}
// }
return cellEditor;
}
use of org.eclipse.draw2d.Figure in project tdi-studio-se by Talend.
the class InputTreeSettingTable method createColumns.
/*
* (non-Javadoc)
*
* @see org.talend.designer.newabstractmap.figures.table.AbstractTable#createColumns()
*/
@Override
protected void createColumns() {
TableColumn column = new TableColumn(ColumnKeyConstant.TREE_SETTING_PROPERTY);
column.setText("Property");
addColumn(column);
ColumnSash sash = new ColumnSash(this);
sash.setLeftColumn(column);
addSeparator(sash);
column = new TableColumn(ColumnKeyConstant.TREE_SETTING_VALUE);
column.setText("Value");
sash.setRightColumn(column);
addColumn(column);
Figure container = getTableItemContainer();
lookupModelRow = new Figure();
lookupModelRow.setLayoutManager(new RowLayout());
Label label = new Label();
label.setText("Lookup Model");
label.setLabelAlignment(PositionConstants.LEFT);
CompoundBorder compoundBorder = new CompoundBorder(new ColumnBorder(), new RowBorder(2, 5, 2, -1));
label.setBorder(compoundBorder);
lookupModelRow.add(label);
lookupModel = new ComboCellLabel();
lookupModel.setDirectEditType(DirectEditType.LOOKUP_MODEL);
lookupModel.setText(getLookupDisplayName(inputxmlTree.getLookupMode()));
lookupModel.setLabelAlignment(PositionConstants.LEFT);
lookupModel.setBorder(new RowBorder(2, 5, 2, -1));
lookupModelRow.add(lookupModel);
container.add(lookupModelRow);
matchModelRow = new Figure();
matchModelRow.setLayoutManager(new RowLayout());
label = new Label();
label.setText("Match Model");
label.setLabelAlignment(PositionConstants.LEFT);
compoundBorder = new CompoundBorder(new ColumnBorder(), new RowBorder(2, 5, 2, -1));
label.setBorder(compoundBorder);
matchModelRow.add(label);
matchModel = new ComboCellLabel();
matchModel.setDirectEditType(DirectEditType.MATCH_MODEL);
matchModel.setText(getMatchModelDisplayName(inputxmlTree.getMatchingMode()));
matchModel.setLabelAlignment(PositionConstants.LEFT);
matchModel.setBorder(new RowBorder(2, 5, 2, -1));
matchModelRow.add(matchModel);
container.add(matchModelRow);
joinModelRow = new Figure();
joinModelRow.setLayoutManager(new RowLayout());
label = new Label();
label.setText("Join Model");
label.setLabelAlignment(PositionConstants.LEFT);
compoundBorder = new CompoundBorder(new ColumnBorder(), new RowBorder(2, 5, 2, -1));
label.setBorder(compoundBorder);
joinModelRow.add(label);
joinModel = new ComboCellLabel();
joinModel.setDirectEditType(DirectEditType.JOIN_MODEL);
String join = "";
if (inputxmlTree.isInnerJoin()) {
join = TreeSettingsConstant.INNER_JOIN;
} else {
join = TreeSettingsConstant.LEFT_OUTER_JOIN;
}
joinModel.setText(join);
joinModel.setLabelAlignment(PositionConstants.LEFT);
joinModel.setBorder(new RowBorder(2, 5, 2, -1));
joinModelRow.add(joinModel);
container.add(joinModelRow);
// TDI-17714:remove the true option in the Store temp data lookup property.
// persistentModelRow = new Figure();
// persistentModelRow.setLayoutManager(new TableItemLayout());
// label = new Label();
// label.setText("Store Temp Data");
// label.setLabelAlignment(PositionConstants.LEFT);
// compoundBorder = new CompoundBorder(new RowBorder(), new ColumnBorder());
// label.setBorder(compoundBorder);
// persistentModelRow.add(label);
// persistentModel = new ComboCellLabel();
// persistentModel.setDirectEditType(DirectEditType.PERSISTENT_MODEL);
// persistentModel.setText(String.valueOf(inputxmlTree.isPersistent()));
// persistentModel.setLabelAlignment(PositionConstants.LEFT);
// persistentModel.setBorder(new RowBorder(2, 5, 2, -1));
// persistentModelRow.add(persistentModel);
// container.add(persistentModelRow);
container.setOpaque(true);
container.setBackgroundColor(ColorConstants.white);
container.addMouseListener(new MouseListener() {
Figure selectedFigure = null;
@Override
public void mousePressed(MouseEvent me) {
boolean lookup = lookupModelRow.containsPoint(me.x, me.y);
if (lookup) {
if (selectedFigure != lookupModelRow) {
lookupModelRow.setOpaque(true);
lookupModelRow.setBackgroundColor(ColorProviderMapper.getColor(ColorInfo.COLOR_COLUMN_TREE_SETTING));
matchModelRow.setOpaque(false);
joinModelRow.setOpaque(false);
// persistentModelRow.setOpaque(false);
}
return;
}
boolean matchModel = matchModelRow.containsPoint(me.x, me.y);
if (matchModel) {
if (selectedFigure != matchModelRow) {
matchModelRow.setOpaque(true);
matchModelRow.setBackgroundColor(ColorProviderMapper.getColor(ColorInfo.COLOR_COLUMN_TREE_SETTING));
lookupModelRow.setOpaque(false);
joinModelRow.setOpaque(false);
// persistentModelRow.setOpaque(false);
}
return;
}
boolean joinModel = joinModelRow.containsPoint(me.x, me.y);
if (joinModel) {
if (selectedFigure != joinModelRow) {
joinModelRow.setOpaque(true);
joinModelRow.setBackgroundColor(ColorProviderMapper.getColor(ColorInfo.COLOR_COLUMN_TREE_SETTING));
lookupModelRow.setOpaque(false);
matchModelRow.setOpaque(false);
// persistentModelRow.setOpaque(false);
}
return;
}
// boolean persistentModel = persistentModelRow.containsPoint(me.x, me.y);
// if (persistentModel) {
// if (selectedFigure != persistentModelRow) {
// persistentModelRow.setOpaque(true);
// persistentModelRow.setBackgroundColor(ColorProviderMapper.getColor(ColorInfo.COLOR_SELECTION));
// lookupModelRow.setOpaque(false);
// matchModelRow.setOpaque(false);
// joinModelRow.setOpaque(false);
// }
// }
}
@Override
public void mouseReleased(MouseEvent me) {
}
@Override
public void mouseDoubleClicked(MouseEvent me) {
}
});
}
use of org.eclipse.draw2d.Figure in project tdi-studio-se by Talend.
the class SearchZoneMapper method getSelectedKeyAtSelectedTableItem.
public Integer getSelectedKeyAtSelectedTableItem(Map<Integer, Map<Integer, Figure>> searchMaps) {
Integer selectKey = 0;
IFigure figure = mapperManager.getSelectedFigure();
if (figure != null) {
Iterator iter = searchMaps.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Map<Integer, Figure> map = (Map<Integer, Figure>) entry.getValue();
if (map.containsValue(figure)) {
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry e = (Map.Entry) it.next();
if (e.getValue() != null && e.getValue() instanceof IFigure) {
IFigure figureTemp = (IFigure) e.getValue();
if (figure.equals(figureTemp)) {
mapperManager.setSelectedFigure(null);
return (Integer) entry.getKey();
}
}
}
}
}
}
return selectKey;
}
Aggregations