use of org.talend.metadata.managment.ui.wizard.metadata.xml.node.Element in project tdi-studio-se by Talend.
the class MultiFOXManager method getGroupTable.
@Override
public List<Map<String, String>> getGroupTable() {
List<Map<String, String>> result = new ArrayList<Map<String, String>>();
for (FOXTreeNode rootNode : this.getOriginalNodes()) {
Element groupNode = (Element) TreeUtil.getGroupNode(rootNode);
if (groupNode != null) {
String path = TreeUtil.getPath(groupNode);
//$NON-NLS-1$
tableLoader(groupNode, path.substring(0, path.lastIndexOf("/")), result, groupNode.getDefaultValue());
}
}
return result;
}
use of org.talend.metadata.managment.ui.wizard.metadata.xml.node.Element in project tdi-studio-se by Talend.
the class FOXManager method getLoopTable.
public List<Map<String, String>> getLoopTable() {
if (currentSchema != null) {
treeData = contents.get(currentSchema);
}
List<Map<String, String>> result = new ArrayList<Map<String, String>>();
Element loopNode = (Element) TreeUtil.getLoopNode(this.treeData.get(0));
if (loopNode != null) {
String path = TreeUtil.getPath(loopNode);
//$NON-NLS-1$
tableLoader(loopNode, path.substring(0, path.lastIndexOf("/")), result, loopNode.getDefaultValue());
}
return result;
}
use of org.talend.metadata.managment.ui.wizard.metadata.xml.node.Element in project tdi-studio-se by Talend.
the class MoveUpTreeNodeButton method handleSelectionEvent.
/*
* (non-Javadoc)
*
* @see org.talend.designer.fileoutputxml.ui.footer.AbstractTreeNodeButton#handleSelectionEvent()
*/
@Override
protected void handleSelectionEvent(TreeSelection selection) {
if (!selection.isEmpty()) {
final Element parentNode = (Element) ((FOXTreeNode) selection.getFirstElement()).getParent();
final List<? extends FOXTreeNode> attrChildren = parentNode.getAttributeChildren();
final List<? extends FOXTreeNode> nameSpaceChildren = parentNode.getNameSpaceChildren();
final List<FOXTreeNode> elementChildren = parentNode.getElementChildren();
List<Integer> attrIndices = new ArrayList<Integer>();
List<Integer> nameSpaceIndices = new ArrayList<Integer>();
List<Integer> elementIndices = new ArrayList<Integer>();
final Iterator iterator = selection.iterator();
while (iterator.hasNext()) {
final Object next = iterator.next();
if (next instanceof Attribute) {
if (attrChildren.contains(next)) {
attrIndices.add(attrChildren.indexOf(next));
}
} else if (next instanceof NameSpaceNode) {
if (nameSpaceChildren.contains(next)) {
nameSpaceIndices.add(nameSpaceChildren.indexOf(next));
}
} else if (next instanceof Element) {
if (elementChildren.contains(next)) {
elementIndices.add(elementChildren.indexOf(next));
}
}
}
Collections.sort(attrIndices);
Collections.sort(nameSpaceIndices);
Collections.sort(elementIndices);
swapElements(attrChildren, attrIndices);
swapElements(nameSpaceChildren, nameSpaceIndices);
swapElements(elementChildren, elementIndices);
treeViewer.refresh(parentNode);
treeViewer.expandAll();
manager.getUiManager().getFoxUI().redrawLinkers();
treeViewer.setSelection(selection);
}
}
use of org.talend.metadata.managment.ui.wizard.metadata.xml.node.Element in project tdi-studio-se by Talend.
the class MoveDownTreeNodeButton method handleSelectionEvent.
/*
* (non-Javadoc)
*
* @see org.talend.designer.fileoutputxml.ui.footer.AbstractTreeNodeButton#handleSelectionEvent()
*/
@Override
protected void handleSelectionEvent(TreeSelection selection) {
if (!selection.isEmpty()) {
FOXTreeNode foxNode = (FOXTreeNode) selection.getFirstElement();
if (!(foxNode.getParent() instanceof Element)) {
return;
}
final Element parentNode = (Element) foxNode.getParent();
final List<? extends FOXTreeNode> attrChildren = parentNode.getAttributeChildren();
final List<? extends FOXTreeNode> nameSpaceChildren = parentNode.getNameSpaceChildren();
final List<FOXTreeNode> elementChildren = parentNode.getElementChildren();
List<Integer> attrIndices = new ArrayList<Integer>();
List<Integer> nameSpaceIndices = new ArrayList<Integer>();
List<Integer> elementIndices = new ArrayList<Integer>();
final Iterator iterator = selection.iterator();
while (iterator.hasNext()) {
final Object next = iterator.next();
if (next instanceof Attribute) {
if (attrChildren.contains(next)) {
attrIndices.add(attrChildren.indexOf(next));
}
} else if (next instanceof NameSpaceNode) {
if (nameSpaceChildren.contains(next)) {
nameSpaceIndices.add(nameSpaceChildren.indexOf(next));
}
} else if (next instanceof Element) {
if (elementChildren.contains(next)) {
elementIndices.add(elementChildren.indexOf(next));
}
}
}
Collections.sort(attrIndices);
Collections.sort(nameSpaceIndices);
Collections.sort(elementIndices);
swapElements(attrChildren, attrIndices);
swapElements(nameSpaceChildren, nameSpaceIndices);
swapElements(elementChildren, elementIndices);
treeViewer.refresh(parentNode);
treeViewer.expandAll();
manager.getUiManager().getFoxUI().redrawLinkers();
treeViewer.setSelection(selection);
}
}
use of org.talend.metadata.managment.ui.wizard.metadata.xml.node.Element in project tdi-studio-se by Talend.
the class MoveDownTreeNodeButton method updateStatus.
/*
* (non-Javadoc)
*
* @see org.talend.designer.fileoutputxml.ui.footer.AbstractTreeNodeButton#updateButtonStatus()
*/
@Override
protected void updateStatus(TreeSelection selection) {
if (selection.isEmpty()) {
getButton().setEnabled(false);
return;
}
final TreePath[] paths = selection.getPaths();
boolean sameSegment = true;
for (int i = 0; i < paths.length - 1; i++) {
if (paths[i].getSegmentCount() != paths[i + 1].getSegmentCount()) {
sameSegment = false;
}
}
if (sameSegment) {
getButton().setEnabled(true);
} else {
getButton().setEnabled(false);
return;
}
// if same segment ,they have the same parent and parent must be an element
FOXTreeNode foxNode = (FOXTreeNode) selection.getFirstElement();
if (foxNode.getParent() instanceof Element) {
final Element parent = (Element) foxNode.getParent();
if (parent == null) {
getButton().setEnabled(false);
return;
}
final List<? extends FOXTreeNode> attrChildren = parent.getAttributeChildren();
final List<? extends FOXTreeNode> nameSpaceChildren = parent.getNameSpaceChildren();
final List<FOXTreeNode> elementChildren = parent.getElementChildren();
final Iterator iterator = selection.iterator();
while (iterator.hasNext()) {
final Object next = iterator.next();
if (next instanceof Attribute) {
if (attrChildren.contains(next) && attrChildren.indexOf(next) == attrChildren.size() - 1) {
getButton().setEnabled(false);
return;
}
} else if (next instanceof NameSpaceNode) {
if (nameSpaceChildren.contains(next) && nameSpaceChildren.indexOf(next) == nameSpaceChildren.size() - 1) {
getButton().setEnabled(false);
return;
}
} else if (next instanceof Element) {
if (elementChildren.contains(next) && elementChildren.indexOf(next) == elementChildren.size() - 1) {
getButton().setEnabled(false);
return;
}
}
}
}
}
Aggregations