Search in sources :

Example 26 with NameSpaceNode

use of org.talend.metadata.managment.ui.wizard.metadata.xml.node.NameSpaceNode in project tdi-studio-se by Talend.

the class SetJSONGroupAction method selectionChanged.

@Override
public void selectionChanged(IStructuredSelection selection) {
    FOXTreeNode node = (FOXTreeNode) this.getStructuredSelection().getFirstElement();
    if (node == null) {
        this.setEnabled(false);
        return;
    }
    if (((node instanceof Attribute) || node.hasLink())) {
        this.setEnabled(TreeUtil.checkTreeGoupNode(node));
        return;
    }
    if (node instanceof NameSpaceNode) {
        this.setEnabled(false);
        return;
    }
    this.setEnabled(TreeUtil.checkTreeGoupNode(node));
}
Also used : FOXTreeNode(org.talend.metadata.managment.ui.wizard.metadata.xml.node.FOXTreeNode) NameSpaceNode(org.talend.metadata.managment.ui.wizard.metadata.xml.node.NameSpaceNode) Attribute(org.talend.metadata.managment.ui.wizard.metadata.xml.node.Attribute)

Example 27 with NameSpaceNode

use of org.talend.metadata.managment.ui.wizard.metadata.xml.node.NameSpaceNode in project tdi-studio-se by Talend.

the class CreateJSONNameSpaceAction method createChildNode.

private void createChildNode(FOXTreeNode node) {
    String label = null;
    String defaultValue = null;
    while (!JSONUtil.validateLabelForNameSpace(label) || !JSONUtil.validateLabelForFixedValue(defaultValue)) {
        NameSpaceDialog nsDialog = new NameSpaceDialog(null);
        int status = nsDialog.open();
        if (status == nsDialog.OK) {
            defaultValue = nsDialog.getNSValue();
            if (defaultValue != null) {
                defaultValue = defaultValue.trim();
            }
            label = nsDialog.getPrefix().trim();
        }
        if (status == nsDialog.CANCEL) {
            return;
        }
    }
    FOXTreeNode child = new NameSpaceNode(label);
    child.setDefaultValue(defaultValue);
    // add by wzhang. set the row name
    child.setRow(node.getRow());
    node.addChild(child);
    this.jsonViewer.refresh();
    jsonViewer.expandAll();
    form.redrawLinkers();
}
Also used : FOXTreeNode(org.talend.metadata.managment.ui.wizard.metadata.xml.node.FOXTreeNode) NameSpaceDialog(org.talend.metadata.managment.ui.wizard.metadata.xml.dialog.NameSpaceDialog) NameSpaceNode(org.talend.metadata.managment.ui.wizard.metadata.xml.node.NameSpaceNode)

Example 28 with NameSpaceNode

use of org.talend.metadata.managment.ui.wizard.metadata.xml.node.NameSpaceNode in project tdi-studio-se by Talend.

the class JSONFileOutputStep2Form method initJSONTreeData.

private void initJSONTreeData() {
    treeData.clear();
    // metadataColumnList.clear();
    EList root = getConnection().getRoot();
    EList loop = getConnection().getLoop();
    EList group = getConnection().getGroup();
    // initialMetadataColumn();
    FOXTreeNode rootNode = null;
    FOXTreeNode current = null;
    FOXTreeNode temp = null;
    FOXTreeNode mainNode = null;
    String mainPath = null;
    String currentPath = null;
    String defaultValue = null;
    int nodeOrder = 0;
    boolean haveOrder = true;
    // build root tree
    for (int i = 0; i < root.size(); i++) {
        JSONFileNode node = (JSONFileNode) root.get(i);
        String newPath = node.getJSONPath();
        defaultValue = node.getDefaultValue();
        String type = node.getType();
        String orderValue = String.valueOf(node.getOrder());
        if (orderValue == null || "".equals(orderValue)) {
            haveOrder = false;
        }
        if (haveOrder) {
            nodeOrder = node.getOrder();
        }
        if (node.getAttribute().equals("attri")) {
            temp = new Attribute(newPath);
            temp.setDefaultValue(defaultValue);
            temp.setAttribute(true);
            temp.setDataType(type);
            current.addChild(temp);
        } else if (node.getAttribute().equals("ns")) {
            temp = new NameSpaceNode(newPath);
            temp.setDefaultValue(defaultValue);
            temp.setNameSpace(true);
            temp.setDataType(type);
            current.addChild(temp);
        } else {
            temp = this.addElement(current, currentPath, newPath, defaultValue);
            temp.setDataType(type);
            if (rootNode == null) {
                rootNode = temp;
            }
            if (node.getAttribute().equals("main")) {
                temp.setMain(true);
                mainNode = temp;
                mainPath = newPath;
            }
            current = temp;
            currentPath = newPath;
        }
        if (haveOrder) {
            temp.setOrder(nodeOrder);
        }
        String columnName = node.getRelatedColumn();
        if (columnName != null && columnName.length() > 0) {
            temp.setColumn(getColumn(columnName));
        }
    }
    // build group tree
    current = mainNode;
    currentPath = mainPath;
    boolean isFirst = true;
    for (int i = 0; i < group.size(); i++) {
        JSONFileNode node = (JSONFileNode) group.get(i);
        String newPath = node.getJSONPath();
        defaultValue = node.getDefaultValue();
        String type = node.getType();
        String orderValue = String.valueOf(node.getOrder());
        if (orderValue == null || "".equals(orderValue)) {
            haveOrder = false;
        }
        if (haveOrder) {
            nodeOrder = node.getOrder();
        }
        if (node.getAttribute().equals("attri")) {
            temp = new Attribute(newPath);
            temp.setDefaultValue(defaultValue);
            temp.setAttribute(true);
            temp.setDataType(type);
            current.addChild(temp);
        } else if (node.getAttribute().equals("ns")) {
            temp = new NameSpaceNode(newPath);
            temp.setDefaultValue(defaultValue);
            temp.setNameSpace(true);
            temp.setDataType(type);
            current.addChild(temp);
        } else {
            temp = this.addElement(current, currentPath, newPath, defaultValue);
            temp.setDataType(type);
            if (node.getAttribute().equals("main")) {
                temp.setMain(true);
                mainNode = temp;
                mainPath = newPath;
            }
            if (isFirst) {
                temp.setGroup(true);
                isFirst = false;
            }
            current = temp;
            currentPath = newPath;
        }
        if (haveOrder) {
            temp.setOrder(nodeOrder);
        }
        String columnName = node.getRelatedColumn();
        if (columnName != null && columnName.length() > 0) {
            temp.setColumn(getColumn(columnName));
        }
    }
    // build loop tree
    current = mainNode;
    currentPath = mainPath;
    isFirst = true;
    for (int i = 0; i < loop.size(); i++) {
        JSONFileNode node = (JSONFileNode) loop.get(i);
        String newPath = node.getJSONPath();
        defaultValue = node.getDefaultValue();
        String type = node.getType();
        String orderValue = String.valueOf(node.getOrder());
        if (orderValue == null || "".equals(orderValue)) {
            haveOrder = false;
        }
        if (haveOrder) {
            nodeOrder = node.getOrder();
        }
        if (node.getAttribute().equals("attri")) {
            temp = new Attribute(newPath);
            temp.setDefaultValue(defaultValue);
            temp.setAttribute(true);
            temp.setDataType(type);
            temp.setDataType(type);
            current.addChild(temp);
        } else if (node.getAttribute().equals("ns")) {
            temp = new NameSpaceNode(newPath);
            temp.setDefaultValue(defaultValue);
            temp.setNameSpace(true);
            temp.setDataType(type);
            current.addChild(temp);
        } else {
            temp = this.addElement(current, currentPath, newPath, defaultValue);
            temp.setDataType(type);
            // fix for TDI-18802 , if root node is loop
            if (rootNode == null) {
                rootNode = temp;
            }
            if (node.getAttribute().equals("main")) {
                temp.setMain(true);
                mainNode = temp;
                mainPath = newPath;
            }
            if (isFirst) {
                temp.setLoop(true);
                isFirst = false;
            }
            current = temp;
            currentPath = newPath;
        }
        if (haveOrder) {
            temp.setOrder(nodeOrder);
        }
        String columnName = node.getRelatedColumn();
        if (columnName != null && columnName.length() > 0) {
            temp.setColumn(getColumn(columnName));
        }
    }
    if (rootNode == null) {
        rootNode = new Element("rootTag");
    }
    rootNode.setParent(null);
    if (haveOrder) {
        orderNode(rootNode);
    }
    treeData.add(rootNode);
}
Also used : FOXTreeNode(org.talend.metadata.managment.ui.wizard.metadata.xml.node.FOXTreeNode) EList(org.eclipse.emf.common.util.EList) NameSpaceNode(org.talend.metadata.managment.ui.wizard.metadata.xml.node.NameSpaceNode) JSONFileNode(org.talend.repository.model.json.JSONFileNode) Attribute(org.talend.metadata.managment.ui.wizard.metadata.xml.node.Attribute) Element(org.talend.metadata.managment.ui.wizard.metadata.xml.node.Element)

Aggregations

FOXTreeNode (org.talend.metadata.managment.ui.wizard.metadata.xml.node.FOXTreeNode)28 NameSpaceNode (org.talend.metadata.managment.ui.wizard.metadata.xml.node.NameSpaceNode)28 Attribute (org.talend.metadata.managment.ui.wizard.metadata.xml.node.Attribute)26 Element (org.talend.metadata.managment.ui.wizard.metadata.xml.node.Element)17 Iterator (java.util.Iterator)8 ArrayList (java.util.ArrayList)7 TreePath (org.eclipse.jface.viewers.TreePath)4 TreeNode (org.talend.designer.xmlmap.model.emf.xmlmap.TreeNode)3 HashMap (java.util.HashMap)2 List (java.util.List)2 Map (java.util.Map)2 IMetadataTable (org.talend.core.model.metadata.IMetadataTable)2 XMLFileNode (org.talend.core.model.metadata.builder.connection.XMLFileNode)2 IConnection (org.talend.core.model.process.IConnection)2 NameSpaceDialog (org.talend.metadata.managment.ui.wizard.metadata.xml.dialog.NameSpaceDialog)2 EList (org.eclipse.emf.common.util.EList)1 MetadataTable (org.talend.core.model.metadata.MetadataTable)1 ATreeNode (org.talend.datatools.xml.utils.ATreeNode)1 NodeType (org.talend.designer.xmlmap.model.emf.xmlmap.NodeType)1 JSONFileNode (org.talend.repository.model.json.JSONFileNode)1