Search in sources :

Example 1 with Index

use of org.talend.designer.neo4j.data.Index in project tbd-studio-se by Talend.

the class Neo4jManager method convert.

public void convert(Neo4jComponent externalNode, IMetadataTable outputMetaTable) {
    List<IMetadataColumn> exts = new ArrayList<IMetadataColumn>();
    for (IMetadataColumn column : outputMetaTable.getListColumns()) {
        if (column instanceof MetadataColumnExt) {
            exts.add(column.clone());
        } else if (column instanceof MetadataColumn) {
            MetadataColumnExt ext = new MetadataColumnExt((MetadataColumn) column);
            ext.setData(new Neo4jData());
            List<Map<String, Object>> mapValues = getNeo4jComponent().getOriginalValuesList();
            for (Map<String, Object> mapValue : mapValues) {
                if (ext.getLabel().equals(mapValue.get(Neo4jComponent.SCHEMA_COLUMN))) {
                    ext.getData().setAutoIndexed(Boolean.valueOf((String) mapValue.get(Neo4jComponent.AUTO_INDEXED)));
                }
            }
            mapValues = getNeo4jComponent().getOriginalIndexesList();
            for (Map<String, Object> mapValue : mapValues) {
                if (ext.getLabel().equals(mapValue.get(Neo4jComponent.SCHEMA_COLUMN))) {
                    Index index = new Index();
                    index.setName((String) mapValue.get(Neo4jComponent.INDEX_NAME));
                    index.setKey((String) mapValue.get(Neo4jComponent.KEY));
                    index.setUnique(Boolean.valueOf((String) mapValue.get(Neo4jComponent.UNIQUE)));
                    index.setValue((String) mapValue.get(Neo4jComponent.VALUE));
                    ext.getData().getIndexes().add(index);
                }
            }
            mapValues = getNeo4jComponent().getOriginalRelationshipsList();
            for (Map<String, Object> mapValue : mapValues) {
                if (ext.getLabel().equals(mapValue.get(Neo4jComponent.SCHEMA_COLUMN))) {
                    Relationship relationship = new Relationship();
                    Index index = new Index();
                    index.setName((String) mapValue.get(Neo4jComponent.INDEX_NAME));
                    index.setKey((String) mapValue.get(Neo4jComponent.KEY));
                    index.setValue((String) mapValue.get(Neo4jComponent.VALUE));
                    relationship.setIndex(index);
                    relationship.setType((String) mapValue.get(Neo4jComponent.TYPE));
                    relationship.setDirection(Direction.getFromName((String) mapValue.get(Neo4jComponent.DIRECTION)));
                    ext.getData().getRelationships().add(relationship);
                }
            }
            exts.add(ext);
        }
    }
    outputMetaTable.setListColumns(exts);
}
Also used : IMetadataColumn(org.talend.core.model.metadata.IMetadataColumn) MetadataColumn(org.talend.core.model.metadata.MetadataColumn) Relationship(org.talend.designer.neo4j.data.Relationship) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) List(java.util.List) Index(org.talend.designer.neo4j.data.Index) IMetadataColumn(org.talend.core.model.metadata.IMetadataColumn) Map(java.util.Map) Neo4jData(org.talend.designer.neo4j.data.Neo4jData) MetadataColumnExt(org.talend.designer.neo4j.ui.editor.MetadataColumnExt)

Example 2 with Index

use of org.talend.designer.neo4j.data.Index in project tbd-studio-se by Talend.

the class Neo4jUI method updateTabs.

public void updateTabs(Table table) {
    if (table.getSelection().length < 1) {
        return;
    }
    TableItem item = table.getSelection()[0];
    if (item.getData() != null) {
        List<Index> indexes = ((MetadataColumnExt) item.getData()).getData().getIndexes();
        tabFolderEditors.getInputIndexEditor().getExtendedToolbar().getAddButton().getButton().setEnabled(true);
        if (indexes != null) {
            tabFolderEditors.getInputIndexEditor().update((MetadataColumnExt) item.getData());
        }
        List<Relationship> relationships = ((MetadataColumnExt) item.getData()).getData().getRelationships();
        tabFolderEditors.getInputRelationshipEditor().getExtendedToolbar().getAddButton().getButton().setEnabled(true);
        if (relationships != null) {
            tabFolderEditors.getInputRelationshipEditor().update((MetadataColumnExt) item.getData());
        }
    }
}
Also used : TableItem(org.eclipse.swt.widgets.TableItem) Relationship(org.talend.designer.neo4j.data.Relationship) Index(org.talend.designer.neo4j.data.Index)

Example 3 with Index

use of org.talend.designer.neo4j.data.Index in project tbd-studio-se by Talend.

the class IndexTableView method createIndexNameColumn.

private void createIndexNameColumn(TableViewerCreator<Index> tableViewerCreator, final Table table) {
    TableViewerCreatorColumn<Index, String> column = new TableViewerCreatorColumn<Index, String>(tableViewerCreator);
    // TODO: Internationalize this
    column.setTitle("Name");
    column.setModifiable(true);
    column.setWidth(115);
    column.setBeanPropertyAccessors(new IBeanPropertyAccessors<Index, String>() {

        @Override
        public String get(Index bean) {
            return bean.getName() == null ? "" : bean.getName();
        }

        @Override
        public void set(Index bean, String value) {
            bean.setName(value);
        }
    });
    column.setCellEditor(new TextCellEditor(table));
}
Also used : Index(org.talend.designer.neo4j.data.Index) TextCellEditor(org.eclipse.jface.viewers.TextCellEditor) TableViewerCreatorColumn(org.talend.commons.ui.swt.tableviewer.TableViewerCreatorColumn)

Example 4 with Index

use of org.talend.designer.neo4j.data.Index in project tbd-studio-se by Talend.

the class IndexTableView method createIndexValueColumn.

private void createIndexValueColumn(TableViewerCreator<Index> tableViewerCreator, final Table table) {
    TableViewerCreatorColumn<Index, String> column = new TableViewerCreatorColumn<Index, String>(tableViewerCreator);
    // TODO: Internationalize this
    column.setTitle("Value (empty for current row)");
    column.setModifiable(true);
    column.setWidth(215);
    column.setBeanPropertyAccessors(new IBeanPropertyAccessors<Index, String>() {

        @Override
        public String get(Index bean) {
            return bean.getValue() == null ? "" : bean.getValue();
        }

        @Override
        public void set(Index bean, String value) {
            bean.setValue(value);
        }
    });
    column.setCellEditor(new TextCellEditor(table));
}
Also used : Index(org.talend.designer.neo4j.data.Index) TextCellEditor(org.eclipse.jface.viewers.TextCellEditor) TableViewerCreatorColumn(org.talend.commons.ui.swt.tableviewer.TableViewerCreatorColumn)

Example 5 with Index

use of org.talend.designer.neo4j.data.Index in project tbd-studio-se by Talend.

the class UIManager method getNewIndexesList.

private List<Map<String, Object>> getNewIndexesList() {
    List<Map<String, Object>> map = new ArrayList<Map<String, Object>>();
    MetadataTable table = (MetadataTable) neo4jManager.getNeo4jComponent().getMetadataList().get(0);
    neo4jManager.convert(neo4jManager.getNeo4jComponent(), table);
    for (IMetadataColumn col : table.getListColumns()) {
        MetadataColumnExt ext = (MetadataColumnExt) col;
        for (Index index : ext.getData().getIndexes()) {
            Map<String, Object> value = new HashMap<String, Object>();
            value.put(Neo4jComponent.SCHEMA_COLUMN, ext.getLabel());
            value.put(Neo4jComponent.INDEX_NAME, index.getName());
            value.put(Neo4jComponent.KEY, index.getKey());
            value.put(Neo4jComponent.VALUE, index.getValue());
            value.put(Neo4jComponent.UNIQUE, String.valueOf(index.isUnique()));
            map.add(value);
        }
    }
    return map;
}
Also used : HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) MetadataTable(org.talend.core.model.metadata.MetadataTable) Index(org.talend.designer.neo4j.data.Index) IMetadataColumn(org.talend.core.model.metadata.IMetadataColumn) HashMap(java.util.HashMap) Map(java.util.Map) MetadataColumnExt(org.talend.designer.neo4j.ui.editor.MetadataColumnExt)

Aggregations

Index (org.talend.designer.neo4j.data.Index)7 TableViewerCreatorColumn (org.talend.commons.ui.swt.tableviewer.TableViewerCreatorColumn)4 TextCellEditor (org.eclipse.jface.viewers.TextCellEditor)3 ArrayList (java.util.ArrayList)2 Map (java.util.Map)2 IMetadataColumn (org.talend.core.model.metadata.IMetadataColumn)2 Relationship (org.talend.designer.neo4j.data.Relationship)2 MetadataColumnExt (org.talend.designer.neo4j.ui.editor.MetadataColumnExt)2 HashMap (java.util.HashMap)1 List (java.util.List)1 CheckboxCellEditor (org.eclipse.jface.viewers.CheckboxCellEditor)1 Image (org.eclipse.swt.graphics.Image)1 TableItem (org.eclipse.swt.widgets.TableItem)1 EImage (org.talend.commons.ui.runtime.image.EImage)1 MetadataColumn (org.talend.core.model.metadata.MetadataColumn)1 MetadataTable (org.talend.core.model.metadata.MetadataTable)1 Neo4jData (org.talend.designer.neo4j.data.Neo4jData)1