use of org.talend.commons.ui.runtime.swt.tableviewer.TableViewerCreatorColumnNotModifiable in project tdi-studio-se by Talend.
the class TableController method updateContextList.
private void updateContextList(IElementParameter param) {
List<String> contextParameterNamesList = new ArrayList<String>();
IElementParameter processTypeParam = elem.getElementParameterFromField(EParameterFieldType.PROCESS_TYPE);
if (processTypeParam == null) {
processTypeParam = elem.getElementParameterFromField(EParameterFieldType.ROUTE_INPUT_PROCESS_TYPE);
if (processTypeParam == null) {
return;
}
}
boolean haveContextParamList = false;
for (Object valueParam : param.getListItemsValue()) {
if (valueParam instanceof IElementParameter) {
IElementParameter vParam = (IElementParameter) valueParam;
if (vParam.getFieldType() == EParameterFieldType.CONTEXT_PARAM_NAME_LIST) {
haveContextParamList = true;
break;
}
}
}
if (!haveContextParamList) {
return;
}
IElementParameter jobElemParam = processTypeParam.getChildParameters().get(EParameterName.PROCESS_TYPE_PROCESS.getName());
IElementParameter jobVersionParam = processTypeParam.getChildParameters().get(EParameterName.PROCESS_TYPE_VERSION.getName());
IElementParameter contextElemParam = processTypeParam.getChildParameters().get(EParameterName.PROCESS_TYPE_CONTEXT.getName());
// get context list
String processId = (String) jobElemParam.getValue();
String contextName = (String) contextElemParam.getValue();
if (contextName == null) {
contextName = new String();
}
if (processId == null || contextName == null) {
revertToolBarButtonState(false);
return;
}
IElementParameter useDynamic = elem.getElementParameter("USE_DYNAMIC_JOB");
if (useDynamic != null && Boolean.valueOf(String.valueOf(useDynamic.getValue()))) {
String[] split = processId.split(";");
processId = split[0];
}
ProcessItem processItem = ItemCacheManager.getProcessItem(processId, (String) jobVersionParam.getValue());
String[] contextParameterNames = null;
if (processItem != null) {
// achen modify to fix bug 0006107
IDesignerCoreService service = CorePlugin.getDefault().getDesignerCoreService();
// process = new Process(processItem.getProperty());
// process.loadXmlFile();
IContextManager contextManager = service.getProcessContextFromItem(processItem);
if (contextManager != null) {
IContext context = contextManager.getContext(contextName);
for (IContextParameter contextParam : context.getContextParameterList()) {
contextParameterNamesList.add(contextParam.getName());
}
}
contextParameterNames = contextParameterNamesList.toArray(new String[0]);
}
if (contextParameterNames == null || contextParameterNames.length == 0) {
contextParameterNamesList.clear();
// we rerebuild the list here from what was saved in the job before
for (HashMap<String, Object> values : (List<HashMap<String, Object>>) param.getValue()) {
//$NON-NLS-1$
String name = (String) values.get("PARAM_NAME_COLUMN");
contextParameterNamesList.add(name);
}
contextParameterNames = contextParameterNamesList.toArray(new String[0]);
}
// update table values
TableViewerCreator tableViewerCreator = (TableViewerCreator) hashCurControls.get(param.getName());
Object[] itemsValue = param.getListItemsValue();
if (tableViewerCreator != null) {
List colList = tableViewerCreator.getColumns();
for (int j = 0; j < itemsValue.length; j++) {
if ((j + 1) >= colList.size()) {
break;
}
if (itemsValue[j] instanceof IElementParameter) {
IElementParameter tmpParam = (IElementParameter) itemsValue[j];
if (tmpParam.getFieldType() == EParameterFieldType.CONTEXT_PARAM_NAME_LIST) {
tmpParam.setListItemsDisplayCodeName(contextParameterNames);
tmpParam.setListItemsDisplayName(contextParameterNames);
tmpParam.setListItemsValue(contextParameterNames);
// TDI-35251 won't set default, if not fount, keep error
// if (contextParameterNames.length > 0) {
// tmpParam.setDefaultClosedListValue(contextParameterNames[0]);
// } else {
//$NON-NLS-1$
tmpParam.setDefaultClosedListValue("");
// }
// j + 1 because first column is masked
TableViewerCreatorColumnNotModifiable column = (TableViewerCreatorColumnNotModifiable) colList.get(j + 1);
CCombo combo = (CCombo) column.getCellEditor().getControl();
String[] oldItems = combo.getItems();
combo.setItems(contextParameterNames);
List<Map<String, Object>> paramValues = (List<Map<String, Object>>) param.getValue();
String[] items = param.getListItemsDisplayCodeName();
for (int currentIndex = 0; currentIndex < paramValues.size(); currentIndex++) {
Map<String, Object> currentLine = paramValues.get(currentIndex);
Object o = currentLine.get(items[j]);
if (o instanceof Integer) {
Integer nb = (Integer) o;
if ((nb >= oldItems.length) || (nb == -1)) {
currentLine.put(items[j], tmpParam.getDefaultClosedListValue());
} else {
currentLine.put(items[j], oldItems[nb]);
}
} else {
if (o instanceof String) {
Integer nb = new Integer(tmpParam.getIndexOfItemFromList((String) o));
if (nb == -1 && !"".equals(tmpParam.getDefaultClosedListValue())) {
currentLine.put(items[j], tmpParam.getDefaultClosedListValue());
}
}
}
}
}
}
}
}
// (bug 3740)
boolean checked = contextParameterNames != null && contextParameterNames.length > 0;
revertToolBarButtonState(checked);
}
use of org.talend.commons.ui.runtime.swt.tableviewer.TableViewerCreatorColumnNotModifiable in project tdi-studio-se by Talend.
the class TableController method updateColumnList.
private void updateColumnList(IElementParameter param) {
if (elem instanceof Node) {
ColumnListController.updateColumnList((Node) elem, null);
} else if (elem instanceof Connection) {
ColumnListController.updateColumnList(((Connection) elem).getSource(), null);
}
TableViewerCreator tableViewerCreator = (TableViewerCreator) hashCurControls.get(param.getName());
Object[] itemsValue = param.getListItemsValue();
if (tableViewerCreator != null) {
List colList = tableViewerCreator.getColumns();
for (int j = 0; j < itemsValue.length; j++) {
if (itemsValue[j] instanceof IElementParameter) {
IElementParameter tmpParam = (IElementParameter) itemsValue[j];
if (tmpParam.getFieldType() == EParameterFieldType.COLUMN_LIST || tmpParam.getFieldType() == EParameterFieldType.PREV_COLUMN_LIST || tmpParam.getFieldType() == EParameterFieldType.LOOKUP_COLUMN_LIST) {
if ((j + 1) >= colList.size()) {
break;
}
TableViewerCreatorColumnNotModifiable column = (TableViewerCreatorColumnNotModifiable) colList.get(j + 1);
CellEditor cellEditor = column.getCellEditor();
String[] oldItems = null;
if (cellEditor instanceof ComboBoxCellEditor) {
CCombo combo = (CCombo) cellEditor.getControl();
oldItems = combo.getItems();
combo.setItems(tmpParam.getListItemsDisplayName());
}
List<Map<String, Object>> paramValues = (List<Map<String, Object>>) param.getValue();
String[] items = param.getListItemsDisplayCodeName();
for (int currentIndex = 0; currentIndex < paramValues.size(); currentIndex++) {
Map<String, Object> currentLine = paramValues.get(currentIndex);
Object o = currentLine.get(items[j]);
if (o instanceof Integer) {
Integer nb = (Integer) o;
if ((nb >= oldItems.length) || (nb == -1)) {
nb = new Integer(tmpParam.getIndexOfItemFromList((String) tmpParam.getDefaultClosedListValue()));
currentLine.put(items[j], nb);
} else {
nb = new Integer(tmpParam.getIndexOfItemFromList(oldItems[nb]));
currentLine.put(items[j], nb);
}
}
}
}
}
}
}
}
use of org.talend.commons.ui.runtime.swt.tableviewer.TableViewerCreatorColumnNotModifiable in project tdi-studio-se by Talend.
the class TableController method updateComponentList.
private void updateComponentList(IElementParameter param) {
// update table values
TableViewerCreator tableViewerCreator = (TableViewerCreator) hashCurControls.get(param.getName());
Object[] itemsValue = param.getListItemsValue();
if (tableViewerCreator != null) {
List colList = tableViewerCreator.getColumns();
for (int j = 0; j < itemsValue.length; j++) {
if ((j + 1) >= colList.size()) {
break;
}
if (itemsValue[j] instanceof IElementParameter) {
IElementParameter tmpParam = (IElementParameter) itemsValue[j];
if (tmpParam.getFieldType() == EParameterFieldType.COMPONENT_LIST) {
String[] contextParameterNames = null;
ComponentListController.updateComponentList(elem, tmpParam);
contextParameterNames = tmpParam.getListItemsDisplayName();
tmpParam.setListItemsDisplayCodeName(contextParameterNames);
// tmpParam.setListItemsValue(contextParameterNames);
if (contextParameterNames.length > 0) {
tmpParam.setDefaultClosedListValue(contextParameterNames[0]);
} else {
//$NON-NLS-1$
tmpParam.setDefaultClosedListValue("");
}
// j + 1 because first column is masked
TableViewerCreatorColumnNotModifiable column = (TableViewerCreatorColumnNotModifiable) colList.get(j + 1);
CCombo combo = (CCombo) column.getCellEditor().getControl();
String[] oldItems = combo.getItems();
combo.setItems(contextParameterNames);
List<Map<String, Object>> paramValues = (List<Map<String, Object>>) param.getValue();
String[] items = param.getListItemsDisplayCodeName();
for (int currentIndex = 0; currentIndex < paramValues.size(); currentIndex++) {
Map<String, Object> currentLine = paramValues.get(currentIndex);
Object o = currentLine.get(items[j]);
if (o instanceof Integer) {
Integer nb = (Integer) o;
if ((nb >= oldItems.length) || (nb == -1)) {
nb = new Integer(tmpParam.getIndexOfItemFromList((String) tmpParam.getDefaultClosedListValue()));
currentLine.put(items[j], nb);
} else {
nb = new Integer(tmpParam.getIndexOfItemFromList(oldItems[nb]));
currentLine.put(items[j], nb);
}
}
}
}
}
}
}
}
use of org.talend.commons.ui.runtime.swt.tableviewer.TableViewerCreatorColumnNotModifiable in project tdi-studio-se by Talend.
the class CheckColumnSelectionListener method widgetSelected.
/*
* (non-Javadoc)
*
* @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
@Override
public void widgetSelected(SelectionEvent e) {
if (tableViewerCreator != null && tableViewerCreator.isReadOnly()) {
return;
}
// TableItem items[] = tableViewerCreator.getTable().getItems();
// String columnId = tableViewerCreatorColumn.getId();
// boolean modified = false;
// for (TableItem tableItem : items) {
// tableViewerCreator.getCellModifier().modify(tableItem, columnId, checked ? false : true);
// if (!modified) {
// modified = true;
// }
// }
// if (modified) {
// this.param.getValue();
// if (checked) {
// checked = false;
// } else {
// checked = true;
// }
// tableViewerCreatorColumn.getTableColumn().setImage(
// checked ? ImageProvider.getImage(EImage.CHECKED_ICON) : ImageProvider.getImage(EImage.UNCHECKED_ICON));
// this.param.setValue(new Boolean(checked));
// }
String columnId = tableViewerCreatorColumn.getId();
TableViewerCreatorColumnNotModifiable column = tableViewerCreator.getColumn(columnId);
IBeanPropertyAccessors accessor = column.getBeanPropertyAccessors();
List inputList = tableViewerCreator.getInputList();
for (int i = 0; i < inputList.size(); i++) {
if (tableViewerCreator instanceof TableViewerCreator && column instanceof TableViewerCreatorColumn) {
((TableViewerCreator) tableViewerCreator).setBeanValue((TableViewerCreatorColumn) column, inputList.get(i), checked ? false : true, true);
} else {
accessor.set(inputList.get(i), checked ? false : true);
}
}
if (checked) {
checked = false;
} else {
checked = true;
}
tableViewerCreatorColumn.getTableColumn().setImage(checked ? ImageProvider.getImage(EImage.CHECKED_ICON) : ImageProvider.getImage(EImage.UNCHECKED_ICON));
this.param.setValue(new Boolean(checked));
tableViewerCreator.refreshTableEditorControls();
}
use of org.talend.commons.ui.runtime.swt.tableviewer.TableViewerCreatorColumnNotModifiable in project tdi-studio-se by Talend.
the class InputDataMapTableView method getCellColor.
/**
* DOC amaumont Comment method "getCellColor".
*
* @param tableViewerCreator
* @param element
* @param columnIndex
* @param isBackground TODO
* @return
*/
protected Color getCellColor(TableViewerCreator tableViewerCreator, Object element, int columnIndex, boolean isBackground) {
ITableEntry entry = (ITableEntry) element;
TableViewerCreatorColumnNotModifiable column = (TableViewerCreatorColumnNotModifiable) tableViewerCreator.getColumns().get(columnIndex);
if (column.getId().equals(ID_OPERATOR)) {
return getExpressionColorProvider().getColor(isBackground, entry.getProblems(), ProblemsManager.KEY_OPERATOR_EMPTY);
}
if (column.getId().equals(ID_NAME_COLUMN)) {
return getExpressionColorProvider().getColor(isBackground, entry.getProblems(), ProblemsManager.KEY_NO_MATCHING);
}
return super.getCellColor(tableViewerCreator, element, columnIndex, isBackground);
}
Aggregations