package org.jboss.tools.seam.pages.xml.model.helpers.autolayout; import java.util.HashSet; import java.util.Set; import org.jboss.tools.common.model.XModelException; import org.jboss.tools.common.model.XModelObject; import org.jboss.tools.jst.web.model.helpers.autolayout.Items; import org.jboss.tools.jst.web.model.helpers.autolayout.LayuotConstants; import org.jboss.tools.jst.web.model.helpers.autolayout.TransitionArranger; import org.jboss.tools.seam.pages.xml.model.SeamPagesConstants; import org.jboss.tools.seam.pages.xml.model.helpers.SeamPagesDiagramStructureHelper; public class SeamPagesItems extends Items { public boolean isZigzagging() { return false; } protected LayuotConstants createConstants() { return new SeamLayoutConstants(); } protected TransitionArranger createTransitionArranger() { return new SeamPagesTransitionArranger(); } } class SeamLayoutConstants extends LayuotConstants { public void update() { deltaX = 320; } } class SeamPagesTransitionArranger extends TransitionArranger { public void execute() { super.execute(); for (int i = 0; i < items.length; i++) { XModelObject[] links = items[i].getObject().getChildren(); if(links.length < 2) continue; Set<String> paths = new HashSet<String>(); for (int j = 0; j < links.length; j++) { String path = links[j].getAttributeValue(SeamPagesConstants.ATTR_PATH); if(paths.contains(path)) { if(!SeamPagesDiagramStructureHelper.getInstance().isShortcut(links[j])) { try { links[j].getModel().changeObjectAttribute(links[j], "shortcut", "yes"); } catch (XModelException e) { e.printStackTrace(); } System.out.println("Set shortcut " + path); } } else { paths.add(path); } } } } }