use of org.eclipse.jface.viewers.TextCellEditor in project tdi-studio-se by Talend.
the class RepositoryWebService method ctrate.
public void ctrate() {
wsdlComposite = new Composite(uiParent, SWT.NONE);
GridLayout layout = new GridLayout();
layout.marginWidth = 20;
layout.marginHeight = 20;
wsdlComposite.setLayout(layout);
wsdlComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
// WSDL URL
Composite wsdlUrlcomposite = new Composite(wsdlComposite, SWT.NONE);
GridData layoutData = new GridData(GridData.FILL_HORIZONTAL);
layoutData.verticalIndent = 2;
layoutData.verticalSpan = 1;
wsdlUrlcomposite.setLayoutData(layoutData);
layout = new GridLayout(4, false);
wsdlUrlcomposite.setLayout(layout);
wsdlField = new LabelledFileField(wsdlUrlcomposite, ExternalWebServiceUIProperties.FILE_LABEL, ExternalWebServiceUIProperties.FILE_EXTENSIONS, 1, SWT.BORDER) {
@Override
protected void setFileFieldValue(String result) {
if (result != null) {
getTextControl().setText(TalendTextUtils.addQuotes(PathUtils.getPortablePath(result)));
getDataFromNet();
isFirst = false;
}
}
};
wsdlField.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
// TODO Auto-generated method stub
URLValue = wsdlField.getText();
connection.setWSDL(URLValue);
}
});
// add a listener for ctrl+space.
TalendProposalUtils.installOn(wsdlField.getTextControl(), connector.getProcess(), connector);
//$NON-NLS-1$
String wsdlUrl = (String) connector.getElementParameter("ENDPOINT").getValue();
if (wsdlUrl != null) {
wsdlField.setText(wsdlUrl);
}
refreshbut = new Button(wsdlUrlcomposite, SWT.PUSH | SWT.CENTER);
refreshbut.setImage(ImageProvider.getImage(EImage.REFRESH_ICON));
GridData butData = new GridData();
butData.verticalSpan = 1;
refreshbut.setLayoutData(butData);
// add port name UI
Composite wsdlPortcomposite = new Composite(wsdlComposite, SWT.NONE);
GridData portlayoutData = new GridData(GridData.FILL_HORIZONTAL);
portlayoutData.verticalIndent = 2;
portlayoutData.verticalSpan = 3;
wsdlPortcomposite.setLayoutData(portlayoutData);
layout = new GridLayout(2, false);
layout.verticalSpacing = 1;
wsdlPortcomposite.setLayout(layout);
portNameLabel = new Label(wsdlPortcomposite, SWT.NONE);
//$NON-NLS-1$
portNameLabel.setText(Messages.getString("WebServiceUI.Port"));
GridData portLabelGridData = new GridData();
portLabelGridData.verticalAlignment = SWT.TOP;
portNameLabel.setLayoutData(portLabelGridData);
Composite portTabComposite = new Composite(wsdlPortcomposite, SWT.BORDER);
portTabComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
portTabComposite.setLayout(new FillLayout());
//$NON-NLS-1$
ExtendedTableModel<PortNames> portModel = new ExtendedTableModel<PortNames>("PORTNAMELIST", allPortNames);
portListTableView = new AbstractDataTableEditorView<PortNames>(portTabComposite, SWT.NONE, portModel, false, true, false) {
@Override
protected void setTableViewerCreatorOptions(TableViewerCreator<PortNames> newTableViewerCreator) {
super.setTableViewerCreatorOptions(newTableViewerCreator);
newTableViewerCreator.setHeaderVisible(false);
newTableViewerCreator.setVerticalScroll(true);
newTableViewerCreator.setReadOnly(true);
}
@Override
protected void createColumns(TableViewerCreator<PortNames> tableViewerCreator, Table table) {
TableViewerCreatorColumn rowColumn = new TableViewerCreatorColumn(tableViewerCreator);
//$NON-NLS-1$
rowColumn.setTitle(Messages.getString("WebServiceUI.COLUMN"));
rowColumn.setBeanPropertyAccessors(new IBeanPropertyAccessors<PortNames, String>() {
public String get(PortNames bean) {
return bean.getPortName();
}
public void set(PortNames bean, String value) {
bean.setPortName(value);
}
});
rowColumn.setWeight(60);
rowColumn.setModifiable(true);
rowColumn.setMinimumWidth(60);
rowColumn.setCellEditor(new TextCellEditor(tableViewerCreator.getTable()));
}
};
// WSDL Operation
Composite wsdlOperationcomposite = new Composite(wsdlComposite, SWT.NONE);
GridData operationlayoutData = new GridData(GridData.FILL_BOTH);
operationlayoutData.verticalIndent = 2;
operationlayoutData.verticalSpan = 5;
wsdlOperationcomposite.setLayoutData(operationlayoutData);
layout = new GridLayout(2, false);
layout.verticalSpacing = 3;
wsdlOperationcomposite.setLayout(layout);
// wsdlOperationcomposite.setLayoutData(new GridData(GridData.FILL_BOTH));
operationLabel = new Label(wsdlOperationcomposite, SWT.NONE);
//$NON-NLS-1$
operationLabel.setText(Messages.getString("WebServiceUI.Operation"));
GridData opertionLabelGridData = new GridData();
opertionLabelGridData.verticalAlignment = SWT.TOP;
operationLabel.setLayoutData(opertionLabelGridData);
Composite tabComposite = new Composite(wsdlOperationcomposite, SWT.BORDER);
GridData tabGridData = new GridData(GridData.FILL_BOTH);
// tabGridData.verticalSpan = 3;
tabComposite.setLayoutData(tabGridData);
tabComposite.setLayout(new FillLayout());
//$NON-NLS-1$
ExtendedTableModel<Function> funModel = new ExtendedTableModel<Function>("FUNCTIONLIST", allfunList);
listTableView = new AbstractDataTableEditorView<Function>(tabComposite, SWT.NONE, funModel, false, true, false) {
@Override
protected void setTableViewerCreatorOptions(TableViewerCreator<Function> newTableViewerCreator) {
super.setTableViewerCreatorOptions(newTableViewerCreator);
newTableViewerCreator.setHeaderVisible(false);
newTableViewerCreator.setVerticalScroll(true);
newTableViewerCreator.setReadOnly(true);
}
@Override
protected void createColumns(TableViewerCreator<Function> tableViewerCreator, Table table) {
TableViewerCreatorColumn rowColumn = new TableViewerCreatorColumn(tableViewerCreator);
//$NON-NLS-1$
rowColumn.setTitle(Messages.getString("WebServiceUI.COLUMN"));
rowColumn.setBeanPropertyAccessors(new IBeanPropertyAccessors<Function, String>() {
public String get(Function bean) {
return bean.getName();
}
public void set(Function bean, String value) {
bean.setName(value);
}
});
rowColumn.setWeight(60);
rowColumn.setModifiable(true);
rowColumn.setMinimumWidth(60);
rowColumn.setCellEditor(new TextCellEditor(tableViewerCreator.getTable()));
}
};
addListenerForWSDLCom();
}
use of org.eclipse.jface.viewers.TextCellEditor in project tdi-studio-se by Talend.
the class AddArrayIndexForParentsDialog method createDialogArea.
protected Control createDialogArea(Composite parent) {
Composite createDialogArea = (Composite) super.createDialogArea(parent);
FillLayout layout = new FillLayout();
// layout.horizontalSpacing = 1;
// layout.numColumns = 1;
GridData data = new GridData(GridData.FILL_BOTH);
createDialogArea.setLayout(layout);
createDialogArea.setLayoutData(data);
table = new TableViewer(createDialogArea, SWT.FULL_SELECTION | SWT.BORDER);
new TableColumn(table.getTable(), SWT.LEFT).setText(COLUMN_NAME[0]);
table.getTable().getColumn(0).pack();
new TableColumn(table.getTable(), SWT.LEFT).setText(COLUMN_NAME[1]);
table.getTable().getColumn(1).pack();
table.getTable().setHeaderVisible(true);
table.getTable().setLinesVisible(true);
table.setContentProvider(new IndexContentProvider());
table.setLabelProvider(new IndexLabelProvider());
table.setInput(arrayIndexList);
table.setColumnProperties(COLUMN_NAME);
CellEditor[] editors = new CellEditor[2];
editors[0] = null;
editors[1] = new TextCellEditor(table.getTable());
table.setCellEditors(editors);
table.setCellModifier(new ICellModifier() {
public boolean canModify(Object element, String property) {
if (property.equals(COLUMN_NAME[0]))
return false;
return true;
}
public Object getValue(Object element, String property) {
ArrayIndexList index = (ArrayIndexList) element;
if (property.equals(COLUMN_NAME[1])) {
if (index.getIndexNum() != null) {
return index.getIndexNum();
} else {
return "";
}
}
return null;
}
public void modify(Object element, String property, Object value) {
if (element instanceof Item)
element = ((Item) element).getData();
ArrayIndexList index = (ArrayIndexList) element;
if (property.equals(COLUMN_NAME[1]))
index.setIndexNum((String) value);
table.refresh();
}
});
return createDialogArea;
}
use of org.eclipse.jface.viewers.TextCellEditor in project tdi-studio-se by Talend.
the class PropertiesTableEditorView method createColumns.
/*
* (non-Javadoc)
*
* @see
* org.talend.commons.ui.swt.extended.macrotable.AbstractExtendedTableViewer#createColumns(org.talend.commons.ui
* .swt.tableviewer.TableViewerCreator, org.eclipse.swt.widgets.Table)
*/
@SuppressWarnings("unchecked")
@Override
protected void createColumns(final TableViewerCreator<B> tableViewerCreator, final Table table) {
// there's two lists of values, one that will be in the table
// and the other will be stored as the current value in the property
// there is two lists because of the undo / redo capabilities
PropertiesTableEditorModel model = getModel();
TalendProposalProvider processProposalProvider = new TalendProposalProvider(model.getProcess());
String[] titles = model.getTitles();
final Object[] itemsValue = model.getItemsValue();
final String[] items = model.getItems();
// final Element elem = model.getElement();
final IElementParameter param = model.getElemParameter();
final IElement element = model.getElement();
for (int i = 0; i < titles.length; i++) {
final int curCol = i;
final IElementParameter currentParam = (IElementParameter) itemsValue[i];
// if all is empty, show it always.
boolean toDisplay = currentParam.isShow(currentParam.getShowIf(), currentParam.getNotShowIf(), element.getElementParameters());
if (!toDisplay) {
List<Map<String, Object>> fullTable = (List<Map<String, Object>>) param.getValue();
for (int curLine = 0; curLine < fullTable.size(); curLine++) {
((ElementParameter) currentParam).setCurrentRow(curLine);
if (currentParam.isShow(element.getElementParameters())) {
toDisplay = true;
break;
}
}
}
if (toDisplay) {
final TableViewerCreatorColumn column = new TableViewerCreatorColumn(tableViewerCreator);
column.setTitle(titles[i]);
column.setModifiable(true);
column.setMinimumWidth(100);
column.setWeight(20);
switch(currentParam.getFieldType()) {
case CONTEXT_PARAM_NAME_LIST:
case CLOSED_LIST:
case LOOKUP_COLUMN_LIST:
case COLUMN_LIST:
case CONNECTION_LIST:
case DBTYPE_LIST:
case COMPONENT_LIST:
case PREV_COLUMN_LIST:
final ComboBoxCellEditor cellEditor = new ComboBoxCellEditor(table, currentParam.getListItemsDisplayName());
final IElementParameter copyOfTmpParam = currentParam;
((CCombo) cellEditor.getControl()).setEditable(false);
((CCombo) cellEditor.getControl()).setEnabled(!(param.isRepositoryValueUsed() || param.isReadOnly() || currentParam.isReadOnly()));
column.setCellEditor(cellEditor, new CellEditorValueAdapter() {
@Override
public String getColumnText(CellEditor cellEditor, Object bean, Object cellEditorValue) {
return (String) cellEditorValue;
}
@Override
public Object getOriginalTypedValue(CellEditor cellEditor, Object cellEditorTypedValue) {
Object returnedValue = null;
if (cellEditorTypedValue != null && cellEditorTypedValue instanceof Integer) {
int index = (Integer) cellEditorTypedValue;
String[] namesSet = ((CCombo) cellEditor.getControl()).getItems();
if (namesSet.length > 0 && index > -1 && index < namesSet.length) {
returnedValue = namesSet[index];
} else {
returnedValue = null;
}
} else {
returnedValue = null;
}
return returnedValue;
}
;
@Override
public Object getCellEditorTypedValue(CellEditor cellEditor, Object originalTypedValue) {
CCombo combo = (CCombo) cellEditor.getControl();
int rowNumber = ((Table) combo.getParent()).getSelectionIndex();
String[] listToDisplay = getItemsToDisplay(element, copyOfTmpParam, rowNumber);
if (!Arrays.equals(listToDisplay, ((ComboBoxCellEditor) cellEditor).getItems())) {
((ComboBoxCellEditor) cellEditor).setItems(listToDisplay);
}
Object returnedValue = 0;
if (originalTypedValue != null) {
String[] namesSet = listToDisplay;
for (int j = 0; j < namesSet.length; j++) {
if (namesSet[j].equals(originalTypedValue)) {
returnedValue = j;
break;
}
}
}
return returnedValue;
}
;
});
break;
case OPENED_LIST:
final EditableComboBoxCellEditor editCellEditor = new EditableComboBoxCellEditor(table, currentParam.getListItemsDisplayName());
table.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
String oldValue = null;
if (editCellEditor != null) {
if (!(editCellEditor.getValue() instanceof String)) {
return;
}
oldValue = (String) editCellEditor.getValue();
}
String[] columnItems = null;
if (table.getSelection() != null && table.getSelection().length > 0) {
TableItem tableItem = table.getSelection()[0];
if (tableItem.getData() instanceof Map) {
Map map = (Map) tableItem.getData();
if (currentParam.getFilter() != null && map.get(currentParam.getFilter()) instanceof String) {
String value = (String) map.get(currentParam.getFilter());
if (element instanceof Node) {
List<IConnection> listConnection = (List<IConnection>) ((Node) element).getInputs();
for (IConnection con : listConnection) {
if (con.getName().equals(value)) {
List<IMetadataColumn> columns = con.getMetadataTable().getListColumns();
columnItems = new String[columns.size()];
for (int i = 0; i < columns.size(); i++) {
columnItems[i] = columns.get(i).getLabel();
}
if (editCellEditor != null) {
List<String> ret = new ArrayList<String>();
for (String columnItem : columnItems) {
ret.add(columnItem);
}
for (int i = 0; i < currentParam.getListItemsDisplayName().length; i++) {
ret.add(currentParam.getListItemsDisplayName()[i]);
}
editCellEditor.setItems(ret.toArray(new String[0]));
editCellEditor.setValue(oldValue);
}
}
}
}
}
}
}
}
});
column.setCellEditor(editCellEditor);
break;
case MODULE_LIST:
column.setModifiable((!param.isRepositoryValueUsed()) && (!param.isReadOnly()) && (!currentParam.isReadOnly()));
ModuleListCellEditor moduleEditor = new ModuleListCellEditor(table, currentParam, param);
moduleEditor.setTableEditorView(this);
column.setCellEditor(moduleEditor);
break;
case COLOR:
column.setModifiable((!param.isRepositoryValueUsed()) && (!param.isReadOnly()) && (!currentParam.isReadOnly()));
// column.setDisplayedValue("");
column.setLabelProvider(null);
column.setCellEditor(new ColorCellEditor(table) {
@Override
protected void doSetValue(Object value) {
if (value instanceof String) {
super.doSetValue(ColorUtils.stringToRGB((String) value));
} else {
super.doSetValue(value);
}
}
@Override
protected void updateContents(Object value) {
if (value != null) {
if (value instanceof String) {
super.updateContents(ColorUtils.stringToRGB((String) value));
} else {
super.updateContents(value);
}
}
}
});
column.setColorProvider(new IColumnColorProvider() {
@Override
public Color getBackgroundColor(Object bean) {
Object value = ((Map<String, Object>) bean).get(items[curCol]);
if (value == null || (!(value instanceof String))) {
return Display.getCurrent().getSystemColor(SWT.COLOR_WHITE);
}
return new Color(null, ColorUtils.stringToRGB((String) value));
}
@Override
public Color getForegroundColor(Object bean) {
return null;
}
});
break;
case CHECK:
column.setModifiable((!param.isRepositoryValueUsed()) && (!param.isReadOnly()) && (!currentParam.isReadOnly()));
CheckColumnSelectionListener tableColumnSelectionListener = new CheckColumnSelectionListener(column, tableViewerCreator, currentParam);
if (!currentParam.isReadOnly()) {
column.setTableColumnSelectionListener(tableColumnSelectionListener);
}
column.setTableEditorContent(new CheckboxTableEditorContent());
Boolean curValue = (Boolean) currentParam.getValue();
if (curValue == null) {
curValue = Boolean.FALSE;
}
tableColumnSelectionListener.setChecked(curValue.booleanValue());
if (curValue.booleanValue()) {
column.setImageHeader(ImageProvider.getImage(EImage.CHECKED_ICON));
} else {
column.setImageHeader(ImageProvider.getImage(EImage.UNCHECKED_ICON));
}
//$NON-NLS-1$
column.setDisplayedValue("");
break;
case SCHEMA_TYPE:
case SCHEMA_REFERENCE:
column.setModifiable((!param.isRepositoryValueUsed()) && (!param.isReadOnly()) && (!currentParam.isReadOnly()));
final INode node = (INode) element;
// List<IMetadataTable> tables = node.getMetadataList();
// if (isEBCDICNode(node)) { // ebcdic
column.setLabelProvider(new IColumnLabelProvider() {
@Override
public String getLabel(Object bean) {
if (bean instanceof Map) {
Map<String, Object> valueMap = (Map<String, Object>) bean;
String value = (String) valueMap.get(IEbcdicConstant.FIELD_SCHEMA);
if (value != null && !"".equals(value)) {
//$NON-NLS-1$
IMetadataTable metadataTable = MetadataToolHelper.getMetadataTableFromNodeTableName(node, value);
if (metadataTable != null) {
if (isEBCDICNode(node)) {
if (isRepositorySchemaLine(node, valueMap)) {
//$NON-NLS-1$ //$NON-NLS-2$
return "Repository (" + metadataTable.getTableName() + ")";
} else {
//$NON-NLS-1$ //$NON-NLS-2$
return "Built-In (" + metadataTable.getTableName() + ")";
}
} else {
return metadataTable.getTableName();
}
} else {
return value;
}
}
}
//$NON-NLS-1$
return "";
}
});
// } else {
// column.setLabelProvider(null);
// }
SchemaCellEditor schemaEditor = new SchemaCellEditor(table, node);
schemaEditor.setTableEditorView(this);
column.setCellEditor(schemaEditor);
break;
case SAP_SCHEMA_TYPE:
column.setModifiable((!param.isRepositoryValueUsed()) && (!param.isReadOnly()) && (!currentParam.isReadOnly()));
final INode sapNode = (INode) element;
column.setLabelProvider(new IColumnLabelProvider() {
@Override
public String getLabel(Object bean) {
if (bean instanceof Map) {
Map<String, Object> valueMap = (Map<String, Object>) bean;
String value = (String) valueMap.get(IEbcdicConstant.FIELD_SCHEMA);
if (value != null && !"".equals(value)) {
//$NON-NLS-1$
IMetadataTable metadataTable = MetadataToolHelper.getMetadataTableFromNodeTableName(sapNode, value);
if (metadataTable != null) {
if (isEBCDICNode(sapNode)) {
if (isRepositorySchemaLine(sapNode, valueMap)) {
//$NON-NLS-1$ //$NON-NLS-2$
return "Repository (" + metadataTable.getTableName() + ")";
} else {
//$NON-NLS-1$ //$NON-NLS-2$
return "Built-In (" + metadataTable.getTableName() + ")";
}
} else if (isSAPNode(sapNode)) {
Object type = valueMap.get(ISAPConstant.TYPE);
if (type instanceof Integer) {
return "";
}
if (type.toString().equals(SINGLE) || type.toString().equals(STRUCTURE)) {
List<IMetadataColumn> columns = metadataTable.getListColumns(true);
StringBuffer values = new StringBuffer();
values.append(metadataTable.getTableName() + ":");
if (metadataTable.getListColumns(true).size() > 0) {
for (IMetadataColumn column : columns) {
values.append(column.getDefault() + ",");
}
String ret = values.toString();
return ret.substring(0, ret.length() - 1);
}
} else {
return metadataTable.getTableName();
}
} else {
return metadataTable.getTableName();
}
} else {
return value;
}
}
}
//$NON-NLS-1$
return "";
}
});
schemaEditor = new SchemaCellEditor(table, sapNode);
schemaEditor.setTableEditorView(this);
column.setCellEditor(schemaEditor);
break;
// hywang add for feature 6484
case RULE_TYPE:
//$NON-NLS-1$
column.setTitle("Rule");
column.setModifiable((!param.isRepositoryValueUsed()) && (!param.isReadOnly()) && (!currentParam.isReadOnly()));
final INode node1 = (INode) element;
column.setLabelProvider(new IColumnLabelProvider() {
@Override
public String getLabel(Object bean) {
if (bean instanceof Map) {
Map<String, Object> valueMap = (Map<String, Object>) bean;
String value = (String) valueMap.get(IRuleConstant.FIELD_RULE);
if (value != null && !"".equals(value)) {
//$NON-NLS-1$
IMetadataTable metadataTable = MetadataToolHelper.getMetadataTableFromNodeTableName(node1, value);
if (metadataTable != null) {
return metadataTable.getTableName();
} else {
return value;
}
}
}
//$NON-NLS-1$
return "";
}
});
RuleCellEditor ruleEditor = new RuleCellEditor(table, node1);
ruleEditor.setTableEditorView(this);
column.setCellEditor(ruleEditor);
break;
case SCHEMA_XPATH_QUERYS:
column.setModifiable((!param.isRepositoryValueUsed()) && (!param.isReadOnly()) && (!currentParam.isReadOnly()));
final INode node2 = (INode) element;
SchemaXPathQuerysCellEditor schemaXPathEditor = new SchemaXPathQuerysCellEditor(table, node2);
schemaXPathEditor.setTableEditorView(this);
column.setCellEditor(schemaXPathEditor);
break;
case MULTI_PATTERN:
column.setModifiable(true);
PatternCellEditor patternEditor = new PatternCellEditor(table, element);
patternEditor.setTableEditorView(this);
column.setCellEditor(patternEditor);
break;
case PATTERN_PROPERTY:
column.setModifiable(true);
PatternPropertyCellEditor patternPropertyEditor = new PatternPropertyCellEditor(table, element);
patternPropertyEditor.setTableEditorView(this);
column.setCellEditor(patternPropertyEditor);
break;
default:
// TEXT
TextCellEditor tcEditor = null;
if (((i == 0) && (param.isBasedOnSchema() || param.isBasedOnSubjobStarts())) || (param.isRepositoryValueUsed()) || (param.isReadOnly()) || currentParam.isReadOnly()) {
// read only cell
if (!param.getElement().isReadOnly() && (param.getName().equals("HADOOP_ADVANCED_PROPERTIES") || param.getName().equals("SPARK_ADVANCED_PROPERTIES") || param.getName().equals("HBASE_PARAMETERS"))) {
if (currentParam.isNoContextAssist()) {
tcEditor = new TextCellEditor(table);
} else {
TextCellEditorWithProposal textCellEditor = new TextCellEditorWithProposal(table, column);
textCellEditor.setContentProposalProvider(processProposalProvider);
tcEditor = textCellEditor;
}
}
} else {
// writable cell
if (currentParam.isNoContextAssist()) {
tcEditor = new TextCellEditor(table);
} else {
TextCellEditorWithProposal textCellEditor = new TextCellEditorWithProposal(table, column);
textCellEditor.setContentProposalProvider(processProposalProvider);
tcEditor = textCellEditor;
}
}
if (tcEditor != null) {
column.setCellEditor(tcEditor);
column.setModifiable((!param.isRepositoryValueUsed()) && (!param.isReadOnly()) && (!currentParam.isReadOnly()));
}
}
// for all kinds of column, check if read only or not when edit the field.
column.setColumnCellModifier(new ColumnCellModifier(column) {
@Override
public boolean canModify(Object bean) {
if (param.getName().equals("HADOOP_ADVANCED_PROPERTIES") || param.getName().equals("SPARK_ADVANCED_PROPERTIES") || param.getName().equals("HBASE_PARAMETERS")) {
boolean canModify = super.canModify(bean);
if (canModify) {
Map<String, Object> valueMap = (Map<String, Object>) bean;
List<Map<String, Object>> fullValues = (List<Map<String, Object>>) param.getValue();
((ElementParameter) currentParam).setCurrentRow(fullValues.indexOf(valueMap));
if (currentParam.isReadOnly(element.getElementParameters())) {
return false;
}
} else {
Map<String, Object> valueMap = (Map<String, Object>) bean;
if (valueMap.get("BUILDIN") != null && valueMap.get("BUILDIN").equals("TRUE")) {
return true;
} else {
return false;
}
}
return canModify;
}
boolean canModify = super.canModify(bean);
if (canModify) {
Map<String, Object> valueMap = (Map<String, Object>) bean;
List<Map<String, Object>> fullValues = (List<Map<String, Object>>) param.getValue();
((ElementParameter) currentParam).setCurrentRow(fullValues.indexOf(valueMap));
if (currentParam.isReadOnly(element.getElementParameters())) {
return false;
}
}
return canModify;
}
});
column.setColorProvider(new IColumnColorProvider<B>() {
@Override
public Color getBackgroundColor(B bean) {
Map<String, Object> valueMap = (Map<String, Object>) bean;
List<Map<String, Object>> fullValues = (List<Map<String, Object>>) param.getValue();
// hyWang add varriable index for bug 7294
int index = fullValues.indexOf(valueMap);
if (index >= 0) {
((ElementParameter) currentParam).setCurrentRow(index);
if (currentParam.isReadOnly(element.getElementParameters())) {
return AbstractMetadataTableEditorView.READONLY_CELL_BG_COLOR;
}
}
if (param.getName().equals("HADOOP_ADVANCED_PROPERTIES") || param.getName().equals("SPARK_ADVANCED_PROPERTIES") || param.getName().equals("HBASE_PARAMETERS")) {
if (valueMap.get("BUILDIN") == null || valueMap.get("BUILDIN") != null && valueMap.get("BUILDIN").equals("")) {
return Display.getCurrent().getSystemColor(SWT.COLOR_GRAY);
}
}
if (currentParam.getFieldType() == EParameterFieldType.CONTEXT_PARAM_NAME_LIST) {
Object value = ((Map<String, Object>) bean).get(items[curCol]);
boolean found = false;
Object[] items = currentParam.getListItemsValue();
for (Object item : items) {
if (item.equals(value)) {
found = true;
break;
}
}
if (!found) {
return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
}
}
return null;
}
@Override
public Color getForegroundColor(B bean) {
return null;
}
});
column.setBeanPropertyAccessors(new IBeanPropertyAccessors<B, Object>() {
@Override
public Object get(B bean) {
Object value = ((Map<String, Object>) bean).get(items[curCol]);
if (value == null) {
//$NON-NLS-1$
return "";
}
if (itemsValue[curCol] instanceof IElementParameter) {
IElementParameter tmpParam = (IElementParameter) itemsValue[curCol];
boolean hideValue = false;
if (!tmpParam.isReadOnly()) {
if ((tmpParam.getReadOnlyIf() != null || tmpParam.getNotReadOnlyIf() != null) && tmpParam.isReadOnly(element.getElementParameters())) {
hideValue = true;
}
}
switch(tmpParam.getFieldType()) {
case CONTEXT_PARAM_NAME_LIST:
case CLOSED_LIST:
case COMPONENT_LIST:
case COLUMN_LIST:
case CONNECTION_LIST:
case LOOKUP_COLUMN_LIST:
case PREV_COLUMN_LIST:
case DBTYPE_LIST:
if (hideValue) {
//$NON-NLS-1$
return "";
}
String[] namesSet = tmpParam.getListItemsDisplayName();
if (namesSet.length == 0) {
return tmpParam.getDefaultClosedListValue();
}
if (value instanceof String) {
boolean found = false;
int index = 0;
if (currentParam.getFieldType() == EParameterFieldType.CONTEXT_PARAM_NAME_LIST) {
// if not found, won't use first(index 0) instead
index = -1;
}
Object[] items = currentParam.getListItemsValue();
for (int j = 0; j < items.length && !found; j++) {
if (items[j].equals(value)) {
found = true;
index = j;
}
}
value = new Integer(index);
}
if (value != null && ((Integer) value) >= 0) {
return namesSet[(Integer) value];
}
return null;
case OPENED_LIST:
if (hideValue) {
//$NON-NLS-1$
return "";
}
String[] listItemsValue = tmpParam.getListItemsDisplayName();
if (listItemsValue.length == 0) {
return value;
}
int index = -1;
if (value instanceof String) {
boolean found = false;
Object[] items = ((IElementParameter) itemsValue[curCol]).getListItemsValue();
for (int j = 0; j < items.length && !found; j++) {
if (items[j].equals(value)) {
found = true;
index = j;
}
}
}
Integer count = new Integer(index);
if (count >= 0) {
return listItemsValue[count];
} else if (count < 0) {
return value;
}
return value;
case CHECK:
if (hideValue) {
return false;
}
if (value instanceof String) {
return new Boolean((String) value);
}
return value;
case RADIO:
if (hideValue) {
return false;
}
if (value instanceof String) {
return new Boolean((String) value);
}
return value;
case COLOR:
if (value instanceof String) {
return ColorUtils.stringToRGB((String) value);
}
// already RGB
return value;
default:
// TEXT
if (hideValue) {
//$NON-NLS-1$
return "";
}
return value;
}
}
return value;
}
@Override
public void set(B bean, Object value) {
Object finalValue = value;
IElementParameter tmpParam = (IElementParameter) itemsValue[curCol];
// TODO should test if this parameter is contained in any other show if / not show if, etc..
boolean included = false;
for (Object object : param.getListItemsValue()) {
if (object instanceof IElementParameter) {
if (((IElementParameter) object).getShowIf() != null && ((IElementParameter) object).getShowIf().contains(tmpParam.getName())) {
included = true;
break;
}
if (((IElementParameter) object).getNotShowIf() != null && ((IElementParameter) object).getNotShowIf().contains(tmpParam.getName())) {
included = true;
break;
}
if (((IElementParameter) object).getReadOnlyIf() != null && ((IElementParameter) object).getReadOnlyIf().contains(tmpParam.getName())) {
included = true;
break;
}
if (((IElementParameter) object).getNotReadOnlyIf() != null && ((IElementParameter) object).getNotReadOnlyIf().contains(tmpParam.getName())) {
included = true;
break;
}
}
}
if (included) {
IElementParameter param = element.getElementParameter(EParameterName.UPDATE_COMPONENTS.getName());
if (param != null) {
param.setValue(Boolean.TRUE);
}
}
boolean isNeedReCheck = false;
switch(tmpParam.getFieldType()) {
case CONTEXT_PARAM_NAME_LIST:
case CLOSED_LIST:
case COLUMN_LIST:
case COMPONENT_LIST:
case CONNECTION_LIST:
case LOOKUP_COLUMN_LIST:
case PREV_COLUMN_LIST:
isNeedReCheck = true;
if (value instanceof String) {
Object[] itemNames = ((IElementParameter) itemsValue[curCol]).getListItemsDisplayName();
Object[] itemValues = ((IElementParameter) itemsValue[curCol]).getListItemsValue();
boolean found = false;
int index = 0;
for (int j = 0; j < itemNames.length && !found; j++) {
if (itemNames[j].equals(value)) {
found = true;
index = j;
}
}
if (value != null && (index >= 0)) {
finalValue = itemValues[new Integer(index)];
}
}
break;
case OPENED_LIST:
if (value instanceof String) {
Object[] itemNames = ((IElementParameter) itemsValue[curCol]).getListItemsDisplayName();
Object[] itemValues = ((IElementParameter) itemsValue[curCol]).getListItemsValue();
boolean found = false;
int index = -1;
for (int j = 0; j < itemNames.length && !found; j++) {
if (itemNames[j].equals(value)) {
found = true;
index = j;
}
}
if (value != null && (index >= 0)) {
finalValue = itemValues[new Integer(index)];
} else if (value != null && (index < 0)) {
finalValue = value;
}
}
break;
case COLOR:
if (value instanceof RGB) {
RGB rgb = (RGB) value;
//$NON-NLS-1$ //$NON-NLS-2$
finalValue = rgb.red + ";" + rgb.green + ";" + rgb.blue;
}
default:
}
((Map<String, Object>) bean).put(items[curCol], finalValue);
resetValuesIfNeeded(element, param, (Map<String, Object>) bean);
/*
* TDI-6568, in fact, no need reset the value. just want to enable
* "firePropertyChange(RETURNS_CHANGED, null, null)" in Node.
*/
if (param.getFieldType().equals(EParameterFieldType.TABLE)) {
element.setPropertyValue(param.getName(), param.getValue());
}
if (isNeedReCheck && element instanceof Node) {
IProcess process = ((Node) element).getProcess();
if (process instanceof IProcess2) {
((IProcess2) process).checkProcess();
}
// enable to refresh component setting after change modules.
// so far, for cMessagingEndpoint (TUP-1119)
final IElementParameter copyOfTmpParam = currentParam;
if (element != null && "LIBPATH".equals(copyOfTmpParam.getName())) {
//$NON-NLS-1$
IElementParameter updateComponentsParam = element.getElementParameter(EParameterName.UPDATE_COMPONENTS.getName());
if (updateComponentsParam != null) {
updateComponentsParam.setValue(Boolean.TRUE);
}
}
}
}
});
}
}
}
use of org.eclipse.jface.viewers.TextCellEditor in project tdi-studio-se by Talend.
the class MultiSchemasUI method createHeaderSashForm.
private void createHeaderSashForm(Composite headerComposite) {
GridLayout layout;
headerSashForm = new SashForm(headerComposite, SWT.NONE);
headerSashForm.setLayout(new FillLayout());
headerSashForm.setLayoutData(new GridData(GridData.FILL_BOTH));
headerSashForm.setSashWidth(ExternalMultiSchemasUIProperties.SASHFORM_WIDTH);
//
multiSchemasFilePreview = new MultiSchemasShadowProcessPreview(this, headerSashForm);
multiSchemasFilePreview.newTablePreview();
Composite struComp = new Composite(headerSashForm, SWT.NONE);
layout = new GridLayout();
layout.marginWidth = 0;
layout.marginHeight = 0;
struComp.setLayout(layout);
headerSashForm.setWeights(ExternalMultiSchemasUIProperties.getHeaderSashformWeights());
//
fetchBtn = new Button(struComp, SWT.PUSH);
fetchBtn.setText(ExternalMultiSchemasUIProperties.FETCH_LABEL);
fetchBtn.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER));
//
schemaTreeViewer = new TreeViewer(struComp, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
Tree tree = schemaTreeViewer.getTree();
tree.setLayoutData(new GridData(GridData.FILL_BOTH));
tree.setHeaderVisible(true);
tree.setLinesVisible(true);
schemaTreeViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
// SchemasTreeDnD dnd = new SchemasTreeDnD(schemaTreeViewer);
// dnd.addDragAndDrop();
schemaTreeViewer.setContentProvider(new SchemasTreeContentProvider());
schemaTreeViewer.setLabelProvider(new SchemasTreeLabelProvider());
// schemaTreeViewer.setSorter(new ViewerSorter() {
//
// @SuppressWarnings("unchecked")
// @Override
// public int compare(Viewer viewer, Object e1, Object e2) {
// if (e1 instanceof SchemasKeyData && e2 instanceof SchemasKeyData) {
// return getComparator().compare(((SchemasKeyData) e1).getKeyName(), ((SchemasKeyData) e2).getKeyName());
// }
// return super.compare(viewer, e1, e2);
// }
//
// });
TreeColumn column = new TreeColumn(tree, SWT.LEFT);
column.setWidth(55);
//$NON-NLS-1$
column.setText("Schema");
column.setResizable(true);
column = new TreeColumn(tree, SWT.LEFT);
column.setWidth(100);
//$NON-NLS-1$
column.setText("Record");
column.setResizable(true);
column = new TreeColumn(tree, SWT.LEFT);
column.setWidth(20);
//$NON-NLS-1$
column.setText("Separator");
column.setResizable(true);
schemaTreeViewer.setColumnProperties(new String[] { ExternalMultiSchemasUIProperties.COLUMN_KEY, ExternalMultiSchemasUIProperties.COLUMN_RECORD, ExternalMultiSchemasUIProperties.COLUMN_SEPARATOR });
// hywang for 10263
int columnCount = schemaTreeViewer.getTree().getColumnCount();
CellEditor[] editors = new CellEditor[columnCount];
for (int i = 0; i < columnCount; i++) {
editors[i] = new TextCellEditor(schemaTreeViewer.getTree());
}
schemaTreeViewer.setCellEditors(editors);
schemaTreeViewer.setCellModifier(new ICellModifier() {
public void modify(Object element, String property, Object value) {
if (element != null) {
if (element instanceof TreeItem) {
TreeItem item = (TreeItem) element;
if (item.getData() != null) {
if (item.getData() instanceof SchemasKeyData) {
SchemasKeyData key = (SchemasKeyData) item.getData();
if (property.equals(ExternalMultiSchemasUIProperties.COLUMN_KEY)) {
final boolean flag = checkKeyValue(key.getUniqueRecord(), value.toString());
if (flag) {
key.setUniqueRecord(value.toString());
}
}
if (property.equals(ExternalMultiSchemasUIProperties.COLUMN_RECORD)) {
key.setRecordType(value.toString());
}
if (property.equals(ExternalMultiSchemasUIProperties.COLUMN_SEPARATOR)) {
key.setSeparator(value.toString());
}
// Object input = schemaTreeViewer.getInput();
// SchemasKeyData in = (SchemasKeyData) input;
// if (in.getChildren().contains(key)) {
// in.getChildren().remove(in.getChildren().indexOf(key));
// List<MultiMetadataColumn> colums = multiSchemaManager.createPropertiesColumns(key);
// key.setMetadataColumns(colums);
// in.getChildren().add(key);
// }
}
schemaTreeViewer.refresh();
}
}
}
}
public Object getValue(Object element, String property) {
String record = "";
if (element != null) {
if (element instanceof SchemasKeyData) {
SchemasKeyData key = (SchemasKeyData) element;
if (property.equals(ExternalMultiSchemasUIProperties.COLUMN_KEY)) {
record = key.getUniqueRecord();
}
if (property.equals(ExternalMultiSchemasUIProperties.COLUMN_RECORD)) {
record = key.getRecordType();
}
if (property.equals(ExternalMultiSchemasUIProperties.COLUMN_SEPARATOR)) {
record = key.getSeparator();
}
}
}
return record;
}
public boolean canModify(Object element, String property) {
return true;
}
});
Composite operateTreeComposite = new Composite(struComp, SWT.NONE);
operateTreeComposite.setLayout(new GridLayout(3, false));
operateTreeComposite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
addRow = new Button(operateTreeComposite, SWT.NONE);
addRow.setText("Add");
removeRow = new Button(operateTreeComposite, SWT.NONE);
removeRow.setText("Remove");
removeRow.setEnabled(false);
editSchema = new Button(operateTreeComposite, SWT.NONE);
editSchema.setText("Edit Columns");
editSchema.setEnabled(false);
Composite operation = new Composite(struComp, SWT.NONE);
operation.setLayout(new GridLayout(2, false));
operation.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER));
leftBtn = new Button(operation, SWT.PUSH);
leftBtn.setToolTipText("Left");
leftBtn.setImage(ImageProvider.getImage(EImage.LEFT_ICON));
leftBtn.setEnabled(false);
rightBtn = new Button(operation, SWT.PUSH);
rightBtn.setToolTipText("Right");
rightBtn.setImage(ImageProvider.getImage(EImage.RIGHT_ICON));
rightBtn.setEnabled(false);
}
use of org.eclipse.jface.viewers.TextCellEditor in project tdi-studio-se by Talend.
the class JsonTableView method createColumn.
@SuppressWarnings({ "rawtypes", "unchecked" })
private TableViewerCreatorColumn createColumn(TableViewerCreator<Map<String, Object>> tableViewerCreator, String title) {
TableViewerCreatorColumn column = new TableViewerCreatorColumn(tableViewerCreator);
column.setTitle(title);
column.setBeanPropertyAccessors(new IBeanPropertyAccessors<Map<String, Object>, String>() {
@Override
public String get(Map<String, Object> bean) {
return (String) bean.get(title);
}
@Override
public void set(Map<String, Object> bean, String value) {
bean.put(title, value);
}
});
column.setCellEditor(new TextCellEditor(tableViewerCreator.getTable()));
column.setModifiable(!isReadOnly());
column.setWeight(30);
column.setMinimumWidth(50);
//$NON-NLS-1$
column.setDefaultInternalValue("");
return column;
}
Aggregations