use of org.talend.commons.ui.swt.advanced.dataeditor.button.PastePushButtonForExtendedTable in project tdi-studio-se by Talend.
the class PropertiesTableToolbarEditorView method createPastePushButton.
/*
* (non-Javadoc)
*
* @see org.talend.core.ui.extended.ExtendedToolbarView#createPastButton()
*/
@Override
public PastePushButton createPastePushButton() {
PastePushButton pastePushButton = new PastePushButtonForExtendedTable(toolbar, extendedTableViewer) {
@Override
public boolean getEnabledState() {
PropertiesTableEditorModel tableEditorModel = (PropertiesTableEditorModel) getExtendedTableViewer().getExtendedControlModel();
Object data = SimpleClipboard.getInstance().getData();
if (data == null || !(data instanceof List) || tableEditorModel.getElemParameter() == null || tableEditorModel.getElemParameter().getListItemsDisplayCodeName() == null) {
return false;
}
@SuppressWarnings("rawtypes") List dataList = (List) data;
boolean sameNumberOfParamAssSourceTable = true;
if (dataList.isEmpty() || !(dataList.get(0) instanceof HashMap)) {
// only accept data from another property (list of HashMap)
return false;
}
@SuppressWarnings("rawtypes") HashMap sourceMap = (HashMap) dataList.get(0);
int sourceColumnNumber = sourceMap.size();
Object[] sourceArray = sourceMap.keySet().toArray();
ArrayList<Object> sourceList = new ArrayList<Object>(Arrays.asList(sourceArray));
String[] listItemsDisplayCodeName = tableEditorModel.getElemParameter().getListItemsDisplayCodeName();
List<String> itemDisCodeNameList = null;
int colNum = 0;
if (listItemsDisplayCodeName != null) {
itemDisCodeNameList = Arrays.asList(listItemsDisplayCodeName);
colNum = listItemsDisplayCodeName.length;
}
ArrayList<String> list = new ArrayList<String>(itemDisCodeNameList);
list.removeAll(sourceList);
if (data != null) {
if (colNum <= sourceColumnNumber && list.size() == 0) {
sameNumberOfParamAssSourceTable = true;
} else {
sameNumberOfParamAssSourceTable = false;
}
}
return super.getEnabledState() && (model == null || !model.getElemParameter().isBasedOnSubjobStarts()) && sameNumberOfParamAssSourceTable;
}
@Override
protected Command getCommandToExecute(ExtendedTableModel extendedTableModel, Integer indexWhereInsert) {
return new PropertyTablePasteCommand<Map<String, Object>>(extendedTableModel, indexWhereInsert);
}
};
// TDI-6568, after paste, fire change
pastePushButton.addListener(getPropertyChangeListener(), false);
return pastePushButton;
}
use of org.talend.commons.ui.swt.advanced.dataeditor.button.PastePushButtonForExtendedTable in project tdi-studio-se by Talend.
the class HL7MetadataEmfToolbarEditor method createPastePushButton.
/*
* (non-Javadoc)
*
* @see org.talend.core.ui.extended.ExtendedToolbarView#createPastButton()
*/
@Override
public PastePushButton createPastePushButton() {
return new PastePushButtonForExtendedTable(toolbar, extendedTableViewer) {
@Override
protected Command getCommandToExecute(ExtendedTableModel extendedTableModel, Integer indexWhereInsert) {
return new MetadataEmfPasteCommand(extendedTableModel, indexWhereInsert);
}
@Override
public boolean getEnabledState() {
// 13749
return super.getEnabledState() && !isRepository;
}
@Override
protected void afterCommandExecution(Command executedCommand) {
MetadataEmfTableEditor tableEditorModel = (MetadataEmfTableEditor) getExtendedTableViewer().getExtendedControlModel();
IStructuredSelection selection = (IStructuredSelection) ((HL7MultiSchemaUI) linker.getMainui()).getMetaTableViewer().getSelection();
Object selectedObj = selection.getFirstElement();
if (selectedObj != null) {
String key = ((IModel) selectedObj).getDisplayName();
List<MetadataColumn> metadataColumnList = tableEditorModel.getMetadataColumnList();
Map<String, List<MetadataColumn>> schemaRelationMap = linker.getManager().getSchemaRelationMap();
if (schemaRelationMap != null) {
List<MetadataColumn> schemas = new ArrayList<MetadataColumn>();
schemas.addAll(metadataColumnList);
schemaRelationMap.put(key, schemas);
}
}
}
};
}
use of org.talend.commons.ui.swt.advanced.dataeditor.button.PastePushButtonForExtendedTable in project tdi-studio-se by Talend.
the class ExtractionFieldsWithJSONXPathEditorView method initToolBar.
/*
* (non-Javadoc)
*
* @see org.talend.commons.ui.swt.advanced.dataeditor.AbstractDataTableEditorView#initToolBar()
*/
@Override
protected ExtendedToolbarView initToolBar() {
return new ExtendedToolbarView(getMainComposite(), SWT.NONE, getExtendedTableViewer()) {
@Override
protected AddPushButtonForExtendedTable createAddPushButton() {
return new AddPushButtonForExtendedTable(this.toolbar, getExtendedTableViewer()) {
@Override
protected Object getObjectToAdd() {
UniqueStringGenerator<SchemaTarget> generator = new UniqueStringGenerator<SchemaTarget>("column", getModel().getBeansList()) {
@Override
protected String getBeanString(SchemaTarget bean) {
// TODO Auto-generated method stub
return bean.getRelativeXPathQuery();
}
};
SchemaTarget tarhe = getModel().createNewSchemaTarget();
tarhe.setRelativeXPathQuery(generator.getUniqueString());
tarhe.setTagName(generator.getUniqueString());
return tarhe;
}
};
}
/*
* (non-Javadoc)
*
* @see org.talend.core.ui.extended.ExtendedToolbarView#createPastePushButton()
*/
@Override
protected PastePushButton createPastePushButton() {
return new PastePushButtonForExtendedTable(toolbar, extendedTableViewer) {
@Override
protected Command getCommandToExecute(ExtendedTableModel extendedTableModel, Integer indexWhereInsert) {
return new ExtendedTablePasteCommand(extendedTableModel, indexWhereInsert) {
@Override
public List createPastableBeansList(ExtendedTableModel extendedTableModel, List copiedObjectsList) {
ArrayList list = new ArrayList();
JSONExtractorFieldModel fieldsModel = (JSONExtractorFieldModel) extendedTableModel;
for (Object current : copiedObjectsList) {
if (current instanceof SchemaTarget) {
SchemaTarget original = (SchemaTarget) current;
SchemaTarget copy = fieldsModel.createNewSchemaTarget();
copy.setRelativeXPathQuery(original.getRelativeXPathQuery());
copy.setTagName(original.getTagName());
list.add(copy);
}
}
return list;
}
};
}
};
}
};
}
use of org.talend.commons.ui.swt.advanced.dataeditor.button.PastePushButtonForExtendedTable in project tdi-studio-se by Talend.
the class AutoConversionTypesEditorView method initToolBar.
@Override
protected ExtendedToolbarView initToolBar() {
return new ExtendedToolbarView(getMainComposite(), SWT.NONE, getExtendedTableViewer()) {
@Override
protected AddPushButtonForExtendedTable createAddPushButton() {
return new AddPushButtonForExtendedTable(this.toolbar, getExtendedTableViewer()) {
@Override
protected Object getObjectToAdd() {
AutoConversionType bean = new AutoConversionType();
bean.setSourceDataType(JavaTypesManager.getDefaultJavaType().getId());
bean.setTargetDataType(JavaTypesManager.getDefaultJavaType().getId());
//$NON-NLS-1$
bean.setConversionFunction("String.valueOf(${0})");
return bean;
}
};
}
@Override
protected PastePushButton createPastePushButton() {
return new PastePushButtonForExtendedTable(toolbar, extendedTableViewer) {
@Override
protected Command getCommandToExecute(ExtendedTableModel extendedTableModel, Integer indexWhereInsert) {
return new ExtendedTablePasteCommand(extendedTableModel, indexWhereInsert) {
@Override
public List<AutoConversionType> createPastableBeansList(ExtendedTableModel extendedTableModel, List copiedObjectsList) {
List<AutoConversionType> beans = new ArrayList<>();
beans.addAll(copiedObjectsList);
return beans;
}
};
}
};
}
};
}
Aggregations