use of org.eclipse.swt.events.FocusEvent in project tdi-studio-se by Talend.
the class DataMapTableView method createExpressionCellEditor.
protected TextCellEditor createExpressionCellEditor(final TableViewerCreator tableViewerCreator, TableViewerCreatorColumn column, final Zone[] zones, boolean isConstraintExpressionCellEditor) {
final TextCellEditorWithProposal cellEditor = new TextCellEditorWithProposal(tableViewerCreator.getTable(), SWT.MULTI | SWT.BORDER, column);
final Text expressionTextEditor = (Text) cellEditor.getControl();
if (isConstraintExpressionCellEditor) {
// moved to it's caller to execute
// constraintExpressionTextEditor = expressionTextEditor;
} else {
columnExpressionTextEditor = expressionTextEditor;
}
cellEditor.addListener(new ICellEditorListener() {
Text text = (Text) cellEditor.getControl();
@Override
public void applyEditorValue() {
ModifiedObjectInfo modifiedObjectInfo = tableViewerCreator.getModifiedObjectInfo();
mapperManager.getUiManager().parseNewExpression(text.getText(), (ITableEntry) modifiedObjectInfo.getCurrentModifiedBean(), true);
}
@Override
public void cancelEditor() {
ModifiedObjectInfo modifiedObjectInfo = tableViewerCreator.getModifiedObjectInfo();
text.setText((String) modifiedObjectInfo.getOriginalPropertyBeanValue());
ITableEntry tableEntry = (ITableEntry) (modifiedObjectInfo.getCurrentModifiedBean() != null ? modifiedObjectInfo.getCurrentModifiedBean() : modifiedObjectInfo.getPreviousModifiedBean());
String originalExpression = (String) modifiedObjectInfo.getOriginalPropertyBeanValue();
mapperManager.getUiManager().parseNewExpression(originalExpression, tableEntry, true);
}
@Override
public void editorValueChanged(boolean oldValidState, boolean newValidState) {
if (expressionTextEditor.isFocusControl() || lastExpressionEditorTextWhichLostFocus == expressionTextEditor) {
ModifiedObjectInfo modifiedObjectInfo = tableViewerCreator.getModifiedObjectInfo();
ITableEntry tableEntry = (ITableEntry) (modifiedObjectInfo.getCurrentModifiedBean() != null ? modifiedObjectInfo.getCurrentModifiedBean() : modifiedObjectInfo.getPreviousModifiedBean());
mapperManager.getUiManager().parseNewExpression(text.getText(), tableEntry, false);
resizeTextEditor(text, tableViewerCreator);
}
}
});
expressionTextEditor.addControlListener(new ControlListener() {
ExecutionLimiter executionLimiter = null;
@Override
public void controlMoved(ControlEvent e) {
}
@Override
public void controlResized(ControlEvent e) {
if (executionLimiter == null) {
executionLimiter = new ExecutionLimiter(50, true) {
@Override
public void execute(boolean isFinalExecution, Object data) {
if (isFinalExecution && !expressionTextEditor.isDisposed()) {
expressionTextEditor.getDisplay().syncExec(new Runnable() {
@Override
public void run() {
if (expressionTextEditor.isDisposed()) {
return;
}
resizeTextEditor(expressionTextEditor, tableViewerCreator);
}
});
}
}
};
}
executionLimiter.startIfExecutable();
}
});
expressionTextEditor.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
ITableEntry currentModifiedEntry = (ITableEntry) tableViewerCreator.getModifiedObjectInfo().getCurrentModifiedBean();
initExpressionProposals(cellEditor, zones, tableViewerCreator, currentModifiedEntry);
resizeTextEditor(expressionTextEditor, tableViewerCreator);
StyledTextHandler styledTextHandler = mapperManager.getUiManager().getTabFolderEditors().getStyledTextHandler();
styledTextHandler.setCurrentEntry(currentModifiedEntry);
//$NON-NLS-1$
styledTextHandler.setTextWithoutNotifyListeners(currentModifiedEntry.getExpression() == null ? "" : currentModifiedEntry.getExpression());
}
@Override
public void focusLost(FocusEvent e) {
expressionEditorTextSelectionBeforeFocusLost = expressionTextEditor.getSelection();
lastExpressionEditorTextWhichLostFocus = expressionTextEditor;
}
});
column.setCellEditor(cellEditor, new CellEditorValueAdapter() {
@Override
public Object getCellEditorTypedValue(CellEditor cellEditor, Object originalTypedValue) {
return super.getCellEditorTypedValue(cellEditor, originalTypedValue);
}
@Override
public String getColumnText(CellEditor cellEditor, Object bean, Object cellEditorTypedValue) {
//$NON-NLS-1$ //$NON-NLS-2$
return super.getColumnText(cellEditor, bean, cellEditorTypedValue).replaceAll("[\r\n\t]+", " ... ");
}
@Override
public Object getOriginalTypedValue(CellEditor cellEditor, Object cellEditorTypedValue) {
return super.getOriginalTypedValue(cellEditor, cellEditorTypedValue);
}
});
return cellEditor;
}
use of org.eclipse.swt.events.FocusEvent in project tdi-studio-se by Talend.
the class RowGeneratorUI method addParentListeners.
/**
* qzhang Comment method "addParentListeners".
*
* @param uiManager
* @param uiProperties
*/
private void addParentListeners(final UIManager uiManager, final ExternalRowGeneratorUiProperties uiProperties) {
rowGenUIParent.addListener(SWT.Close, new Listener() {
@Override
public void handleEvent(Event event) {
if (uiManager.getRowGenResponse() == SWT.NONE) {
uiManager.closeRowGenerator(SWT.CANCEL, false);
}
}
});
rowGenUIParent.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
updateBackground(false, true);
}
@Override
public void focusLost(FocusEvent e) {
}
});
// store size if not maximized
if (rowGenUIParent instanceof Shell) {
((Shell) rowGenUIParent).addControlListener(new ControlListener() {
@Override
public void controlMoved(ControlEvent e) {
}
@Override
public void controlResized(ControlEvent e) {
if (!((Shell) e.getSource()).getMaximized()) {
ExternalRowGeneratorUiProperties.setBoundsRowGen(((Shell) e.getSource()).getBounds());
}
}
});
}
}
use of org.eclipse.swt.events.FocusEvent in project tdi-studio-se by Talend.
the class MapperUI method addParentListeners.
private void addParentListeners(final UIManager uiManager, final ExternalDbMapUiProperties uiProperties) {
mapperUIParent.addDisposeListener(new DisposeListener() {
public void widgetDisposed(DisposeEvent e) {
release();
}
});
mapperUIParent.addListener(SWT.Close, new Listener() {
public void handleEvent(Event event) {
if (uiManager.getMapperResponse() == SWT.NONE) {
uiManager.setMapperResponse(SWT.CANCEL);
}
}
});
mapperUIParent.addFocusListener(new FocusListener() {
public void focusGained(FocusEvent e) {
updateBackground(false, true);
}
public void focusLost(FocusEvent e) {
}
});
// store size if not maximized
if (mapperUIParent instanceof Shell) {
((Shell) mapperUIParent).addControlListener(new ControlListener() {
public void controlMoved(ControlEvent e) {
}
public void controlResized(ControlEvent e) {
if (!((Shell) e.getSource()).getMaximized()) {
uiProperties.setBoundsMapper(((Shell) e.getSource()).getBounds());
}
}
});
}
}
use of org.eclipse.swt.events.FocusEvent in project tdi-studio-se by Talend.
the class BasicNotePropertyComposite method createTextControl.
/**
* DOC qwei Comment method "createTextcontrol".
*/
private void createTextControl(Composite parent) {
//$NON-NLS-1$
CLabel textLabel = getWidgetFactory().createCLabel(composite, Messages.getString("TextNoteSection.Label"));
//$NON-NLS-1$
FormData data = new FormData();
data.left = new FormAttachment(0, 0);
data.top = new FormAttachment(colorsAndFontsGroup, 30);
textLabel.setLayoutData(data);
//$NON-NLS-1$
text = getWidgetFactory().createText(composite, "", SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
//$NON-NLS-1$
data = new FormData();
data.left = new FormAttachment(0, STANDARD_LABEL_WIDTH);
data.right = new FormAttachment(textLabel, 560);
data.top = new FormAttachment(textLabel, 0, SWT.TOP);
// 5 lines
data.height = 5 * text.getLineHeight();
text.setLayoutData(data);
text.setForeground(new Color(null, ColorUtils.stringToRGB((String) note.getPropertyValue(EParameterName.NOTETXT_COLOR.getName()))));
text.setText(note.getText());
text.addFocusListener(new FocusAdapter() {
@Override
public void focusLost(FocusEvent e) {
if (!text.getText().equals(note.getText())) {
ChangeNoteTextCommand command = new ChangeNoteTextCommand(note, text.getText());
getCommandStack().execute(command);
}
}
});
text.addKeyListener(new KeyListener() {
@Override
public void keyPressed(org.eclipse.swt.events.KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyReleased(org.eclipse.swt.events.KeyEvent e) {
// TODO Auto-generated method stub
if (!text.getText().equals(note.getText())) {
ChangeNoteTextCommand command = new ChangeNoteTextCommand(note, text.getText());
getCommandStack().execute(command);
}
}
});
textChanged();
}
use of org.eclipse.swt.events.FocusEvent in project tdi-studio-se by Talend.
the class SchemaDetailsColumnMouseAdapter method mouseDown.
@Override
public void mouseDown(MouseEvent e) {
currentPoint = new Point(e.x, e.y);
// Clean up any previous editor control
Control oldEditor = getEditor();
if (oldEditor != null) {
oldEditor.dispose();
}
if (getViewerCell() == null) {
return;
}
// Identify the selected row
TreeItem item = (TreeItem) getViewerCell().getViewerRow().getItem();
if (item == null) {
return;
}
if (getColumnIndex() < 1) {
// ingore first
return;
}
final Object data = item.getData();
if (!(data instanceof ColumnLineData)) {
return;
}
ColumnLineData lineData = (ColumnLineData) data;
List<MultiMetadataColumn> metadataColumnsInModel = lineData.getKeyData().getMetadataColumnsInModel();
final MultiMetadataColumn multiMetadataColumn = metadataColumnsInModel.get(getColumnIndex() - 1);
Control newEditor = null;
final EPropertyName property = lineData.getProperty();
if (UIManager.isFirstForColumnModel(property)) {
newEditor = createTextControl(item, property, multiMetadataColumn);
} else {
switch(property) {
case NAME:
case TAGLEVEL:
break;
case TYPE:
newEditor = createComboControl(item, multiMetadataColumn);
break;
case LENGTH:
// case CARD:
case PATTERN:
newEditor = createTextControl(item, property, multiMetadataColumn);
break;
case KEY:
/*
* ingore record type(first column);
*
* if existed key column, should not edit other key.
*/
if (getColumnIndex() == uiManager.getSelectedColumnIndex() + 1 || UIManager.existedKeyColumn(metadataColumnsInModel, multiMetadataColumn)) {
break;
}
newEditor = createCheckBoxControl(item, property, multiMetadataColumn);
break;
}
}
if (newEditor != null) {
newEditor.addFocusListener(new FocusAdapter() {
public void focusLost(FocusEvent e) {
if (getEditor() != null && !getEditor().isDisposed()) {
getEditor().dispose();
}
}
});
newEditor.setFocus();
getTreeEditor().setEditor(newEditor, item, getColumnIndex());
}
}
Aggregations