Search in sources :

Example 1 with JsonFieldModel

use of org.talend.designer.core.generic.ui.JsonFieldModel in project tdi-studio-se by Talend.

the class JsonTableController method generateTableEditorView.

private JsonTableView generateTableEditorView(Composite parent, IElementParameter param) {
    JsonTableVO vo = null;
    Object value = param.getValue();
    if (value != null) {
        String valueStr = TalendQuoteUtils.removeQuotesIfExist(String.valueOf(value));
        if (StringUtils.isNotBlank(valueStr)) {
            vo = JsonTableHandler.getInstance().parse(valueStr);
        }
    }
    if (vo != null) {
        rows = vo.getData();
        if (rows != null) {
            rowsNum = rows.size();
        }
        titles = vo.getTitles();
    }
    JsonFieldModel tableEditorModel = new JsonFieldModel(rows);
    JsonTableView tableEditorView = new JsonTableView(parent, tableEditorModel, readonly, !hideToolbar) {

        @Override
        protected List<String> getColumnTitles() {
            return titles;
        }
    };
    tableEditorView.getExtendedTableViewer().setCommandStack(getCommandStack());
    tableEditorView.setReadOnly(param.isReadOnly() || param.isRepositoryValueUsed());
    tableEditorModel.setModifiedBeanListenable(tableEditorView.getTableViewerCreator());
    final Table table = tableEditorView.getTable();
    table.setToolTipText(VARIABLE_TOOLTIP + param.getVariableName());
    // add listener to tableMetadata (listen the event of the toolbars)
    tableEditorView.getExtendedTableModel().addAfterOperationListListener(new IListenableListListener() {

        @Override
        public void handleEvent(ListenableListEvent event) {
            if (elem instanceof Node) {
                Node node = (Node) elem;
                node.checkAndRefreshNode();
            }
        }
    });
    return tableEditorView;
}
Also used : JsonFieldModel(org.talend.designer.core.generic.ui.JsonFieldModel) ListenableListEvent(org.talend.commons.utils.data.list.ListenableListEvent) Table(org.eclipse.swt.widgets.Table) Node(org.talend.designer.core.ui.editor.nodes.Node) JsonTableView(org.talend.designer.core.generic.ui.JsonTableView) IListenableListListener(org.talend.commons.utils.data.list.IListenableListListener) JsonTableVO(org.talend.designer.core.generic.ui.JsonTableVO)

Aggregations

Table (org.eclipse.swt.widgets.Table)1 IListenableListListener (org.talend.commons.utils.data.list.IListenableListListener)1 ListenableListEvent (org.talend.commons.utils.data.list.ListenableListEvent)1 JsonFieldModel (org.talend.designer.core.generic.ui.JsonFieldModel)1 JsonTableVO (org.talend.designer.core.generic.ui.JsonTableVO)1 JsonTableView (org.talend.designer.core.generic.ui.JsonTableView)1 Node (org.talend.designer.core.ui.editor.nodes.Node)1