use of org.talend.commons.utils.data.list.UniqueStringGenerator 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;
}
};
}
};
}
};
}
Aggregations