From 393e5a860850a2301e446e061e60391a23246511 Mon Sep 17 00:00:00 2001 From: miettinen Date: Thu, 21 Nov 2013 11:45:46 +0000 Subject: [PATCH] Sysdyn loop text to diagram. Hover around loop image. (refs #3012) git-svn-id: https://www.simantics.org/svn/simantics/sysdyn/trunk@28350 ac1ea38d-2e2b-0410-8846-a27921b304fc --- org.simantics.sysdyn.ontology/graph.tg | Bin 163845 -> 164076 bytes .../graph/CommentSymbols.pgraph | 2 +- .../graph/svg/loop.svg | 96 +++--- .../sysdyn/ui/browser/nodes/ExportTester.java | 15 +- .../CreateVariablesShortcutParticipant.java | 5 +- .../ui/elements/HoverTextElementNoBounds.java | 6 +- .../sysdyn/ui/elements/LoopFactory.java | 324 +++++++++++++++--- .../ui/elements/SysdynElementFactory.java | 12 +- .../sysdyn/ui/properties/LoopTab.java | 2 + .../simantics/sysdyn/representation/Loop.java | 6 +- 10 files changed, 362 insertions(+), 106 deletions(-) diff --git a/org.simantics.sysdyn.ontology/graph.tg b/org.simantics.sysdyn.ontology/graph.tg index 848075d67a95bded08f5f8d5bf1ab12b1d5375e6..ec145e4c8a035d98ef83b94ddd820e4955b57586 100644 GIT binary patch literal 164076 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 Y;Xsy!p2RMEe86jUvSnZ;Ox;)XFU=Fhwg3PC diff --git a/org.simantics.sysdyn.ontology/graph/CommentSymbols.pgraph b/org.simantics.sysdyn.ontology/graph/CommentSymbols.pgraph index 22f149e7..82666f45 100644 --- a/org.simantics.sysdyn.ontology/graph/CommentSymbols.pgraph +++ b/org.simantics.sysdyn.ontology/graph/CommentSymbols.pgraph @@ -27,7 +27,7 @@ SYSDYN.Loop + d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + transform="scale(-0.8,-0.8)" + inkscape:connector-curvature="0" /> + style="overflow:visible"> + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + inkscape:connector-curvature="0" /> + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="matrix(1.1,0,0,1.1,1.1,0)" + inkscape:connector-curvature="0" /> + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + transform="matrix(0.8,0,0,0.8,10,0)" + inkscape:connector-curvature="0" /> + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + style="overflow:visible"> + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + inkscape:window-maximized="0" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> @@ -123,7 +133,7 @@ image/svg+xml - + @@ -131,7 +141,7 @@ inkscape:label="Taso 1" inkscape:groupmode="layer" id="layer1" - style="opacity:1"> + transform="translate(-0.13537823,-1042.2366)"> + transform="matrix(0.00747689,-0.00472065,0.00249533,0.01414476,2.177026,1048.1856)" /> diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/nodes/ExportTester.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/nodes/ExportTester.java index df9343b5..dad1cd44 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/nodes/ExportTester.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/browser/nodes/ExportTester.java @@ -15,6 +15,7 @@ package org.simantics.sysdyn.ui.browser.nodes; import java.util.Collection; import org.eclipse.core.expressions.PropertyTester; +import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IWorkbenchPage; import org.simantics.DatabaseJob; import org.simantics.browsing.ui.common.node.AbstractNode; @@ -53,14 +54,12 @@ public class ExportTester extends PropertyTester { if (inputResource == null) { IWorkbenchPage page = SysdynWorkbenchUtils.getActivePageOfEditor(); - DiagramEditor editor = (DiagramEditor)page.getActiveEditor(); - if (editor != null) { - if (editor instanceof DiagramEditor) { - inputResource = editor.getInputResource(); - } - } else { - return false; - } + IEditorPart editor = page.getActiveEditor(); + if (editor instanceof DiagramEditor) { + inputResource = ((DiagramEditor)editor).getInputResource(); + } else { + return false; + } } final Resource resource = inputResource; diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/editor/participant/CreateVariablesShortcutParticipant.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/editor/participant/CreateVariablesShortcutParticipant.java index 4919ec2b..96d6f930 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/editor/participant/CreateVariablesShortcutParticipant.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/editor/participant/CreateVariablesShortcutParticipant.java @@ -48,6 +48,7 @@ import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.ui.elements.AuxiliaryFactory; import org.simantics.sysdyn.ui.elements.CloudFactory; import org.simantics.sysdyn.ui.elements.InputFactory; +import org.simantics.sysdyn.ui.elements.LoopFactory; import org.simantics.sysdyn.ui.elements.ShadowFactory; import org.simantics.sysdyn.ui.elements.StockFactory; import org.simantics.sysdyn.ui.elements.ValveFactory; @@ -163,12 +164,12 @@ public class CreateVariablesShortcutParticipant extends AbstractDiagramParticipa SysdynResource.URIs.ShadowSymbol, (ShapeNode)ShadowFactory.GHOST_IMAGE.init(parent) ); - /*} else if (kpe.keyCode == java.awt.event.KeyEvent.VK_L) { + } else if (kpe.keyCode == java.awt.event.KeyEvent.VK_L) { variableInformation = new VariableInformation( java.awt.event.KeyEvent.VK_L, SysdynResource.URIs.LoopSymbol, (ShapeNode)LoopFactory.LOOP_STATIC_IMAGE.init(parent) - );*/ + ); } if (variableInformation != null) { diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/HoverTextElementNoBounds.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/HoverTextElementNoBounds.java index 9ac131dc..41c548d9 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/HoverTextElementNoBounds.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/HoverTextElementNoBounds.java @@ -289,8 +289,10 @@ public class HoverTextElementNoBounds extends TextElementNoBounds implements Lif return; } - // If the resource is just been created, activate editing its name. - activateEdit(node, e); + // If the resource is just been created, activate editing its name. + if (!graph.isInstanceOf(r, SR.Loop)) { + activateEdit(node, e); + } graph.deny(component, SR.IndependentVariable_isUninitialized, r); } }); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/LoopFactory.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/LoopFactory.java index f606fc72..68952772 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/LoopFactory.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/LoopFactory.java @@ -12,21 +12,38 @@ package org.simantics.sysdyn.ui.elements; import java.awt.BasicStroke; +import java.awt.Color; +import java.awt.Paint; import java.awt.Shape; +import java.awt.geom.AffineTransform; import java.awt.geom.Arc2D; import java.awt.geom.Path2D; +import java.awt.geom.Rectangle2D; +import java.awt.geom.RectangularShape; import java.util.Collection; import org.simantics.db.ReadGraph; import org.simantics.db.Resource; +import org.simantics.db.WriteGraph; +import org.simantics.db.common.request.ReadRequest; +import org.simantics.db.common.request.WriteRequest; import org.simantics.db.common.utils.NameUtils; import org.simantics.db.exception.DatabaseException; +import org.simantics.diagram.elements.ITextListener; +import org.simantics.diagram.elements.TextNode; import org.simantics.diagram.stubs.G2DResource; import org.simantics.g2d.canvas.ICanvasContext; +import org.simantics.g2d.diagram.DiagramUtils; import org.simantics.g2d.diagram.IDiagram; import org.simantics.g2d.element.ElementClass; +import org.simantics.g2d.element.ElementHints; +import org.simantics.g2d.element.ElementUtils; +import org.simantics.g2d.element.IElement; +import org.simantics.g2d.element.SceneGraphNodeKey; +import org.simantics.g2d.element.handler.HandleMouseEvent; import org.simantics.g2d.element.handler.impl.BoundsOutline; import org.simantics.g2d.element.handler.impl.DefaultTransform; +import org.simantics.g2d.element.handler.impl.HoverImpl; import org.simantics.g2d.element.handler.impl.ObjectTerminal; import org.simantics.g2d.element.handler.impl.OutlinePick; import org.simantics.g2d.element.handler.impl.SimpleElementLayers; @@ -41,59 +58,282 @@ import org.simantics.g2d.image.DefaultImages; import org.simantics.g2d.image.Image; import org.simantics.g2d.image.impl.ShapeImage; import org.simantics.g2d.svg.SVGImage; +import org.simantics.g2d.utils.Alignment; +import org.simantics.modeling.ModelingResources; +import org.simantics.scenegraph.g2d.G2DParentNode; +import org.simantics.scenegraph.g2d.nodes.SVGNode; +import org.simantics.scenegraph.g2d.nodes.ShapeNode; +import org.simantics.sysdyn.SysdynResource; +import org.simantics.sysdyn.ui.properties.LoopTab; +import org.simantics.ui.SimanticsUI; +import org.simantics.utils.datastructures.Callback; +import org.simantics.utils.datastructures.hints.IHintContext.Key; +import org.simantics.utils.datastructures.hints.IHintListener; +import org.simantics.utils.datastructures.hints.IHintObservable; /** + * Factory for loops. + * * @author Tuomas Miettinen */ public class LoopFactory extends SysdynElementFactory { - public static final Image LOOP_STATIC_IMAGE = new ShapeImage(getLoopShape(), null, new BasicStroke(1), true); - - @Override - public ElementClass create(ReadGraph graph, ICanvasContext canvas, - IDiagram diagram, Resource elementType) throws DatabaseException { - - G2DResource g2d = G2DResource.getInstance(graph); - String svgDoc = graph.getPossibleRelatedValue(elementType, g2d.HasSVGDocument); - Image image = null; - String id = "TextElement: " + NameUtils.getSafeName(graph, elementType); - if (svgDoc != null) - image = new SVGImage(id+".svg", svgDoc); - else - image = DefaultImages.ERROR_DECORATOR.get(); - - return ElementClass.compile( - SimpleElementLayers.INSTANCE, - OutlinePick.INSTANCE, - TextImpl.INSTANCE, - TextColorImpl.BLACK, - TextFontImpl.DEFAULT, - DefaultTransform.INSTANCE, - new StaticSymbolImpl(image), - new StaticImageElementHandler(image), - new StaticObjectAdapter(elementType), - StaticSymbolImageInitializer.INSTANCE, - //new HoverTextElementHandler(0, 0, Alignment.LEADING, 0, 1.5, 1.5, true), - BoundsOutline.INSTANCE - ).setId(LoopFactory.class.getSimpleName()); - } - - static Shape getLoopShape() { - Path2D loop = new Path2D.Double(); - loop.moveTo(1, 2); - loop.lineTo(0, 0); - loop.lineTo(-1, 2); - loop.closePath(); - - loop.append(new Arc2D.Double(-10, -3, 10, 10, 0, -270, Arc2D.OPEN), false); - return loop; - } + public static final Image LOOP_STATIC_IMAGE = new ShapeImage(getLoopShape(), null, new BasicStroke(1), true); + private static Image image = null; + + @Override + public ElementClass create(ReadGraph graph, ICanvasContext canvas, + IDiagram diagram, Resource elementType) throws DatabaseException { + + // Create the loop symbol svg image + G2DResource g2d = G2DResource.getInstance(graph); + String svgDoc = graph.getPossibleRelatedValue(elementType, g2d.HasSVGDocument); + String id = "TextElement: " + NameUtils.getSafeName(graph, elementType); + if (svgDoc != null) + image = new SVGImage(id+".svg", svgDoc); + else + image = DefaultImages.ERROR_DECORATOR.get(); + + return ElementClass.compile( + SimpleElementLayers.INSTANCE, + OutlinePick.INSTANCE, + TextImpl.INSTANCE, + TextColorImpl.BLACK, + TextFontImpl.DEFAULT, + DefaultTransform.INSTANCE, + new StaticObjectAdapter(elementType), + new StaticSymbolImpl(image), + StaticSymbolImageInitializer.INSTANCE, + new LoopImageSceneGraph(image), + HoverImpl.INSTANCE, + LoopSceneGraph.INSTANCE, + BoundsOutline.INSTANCE + ).setId(LoopFactory.class.getSimpleName()); + } + + static Shape getLoopShape() { + // Used in shortcut. + Path2D loop = new Path2D.Double(); + loop.moveTo(1, 2); + loop.lineTo(0, 0); + loop.lineTo(-1, 2); + loop.closePath(); + + loop.append(new Arc2D.Double(-10, -3, 10, 10, 0, -270, Arc2D.OPEN), false); + return loop; + } + + @Override + protected String getText(ReadGraph graph, Resource element) throws DatabaseException { + // Get loop comment instead of loop name. + SysdynResource sr = SysdynResource.getInstance(graph); + ModelingResources mr = ModelingResources.getInstance(graph); + Resource component = graph.getPossibleObject(element, mr.ElementToComponent); + String text = null; + if (component != null) { + text = (String) graph.getPossibleRelatedValue(component, sr.Loop_Comment); + } + if (text == null || LoopTab.AUTO.equals(text)) + text = ""; + return text; + } @Override protected ElementClass compileElementClass(Resource elementType, Collection terminals) { - // TODO Auto-generated method stub return null; } + /** + * Handling for the loop image on diagram. + * @author Tuomas Miettinen + * + */ + public static class LoopImageSceneGraph extends StaticImageElementHandler { + + private static final long serialVersionUID = -185893525553743589L; + + private IHintListener hoverHintListener; + + private static final Key NODE = new SceneGraphNodeKey(HoverShapeNode.class, "LOOP_NODE"); + + public LoopImageSceneGraph(Image i) { + super(i); + } + + @Override + public void init(IElement e, G2DParentNode parent) { + super.init(e, parent); + + // Create new hover shape node for the loop image + final HoverShapeNode node = ElementUtils.getOrCreateNode(e, parent, NODE, "loopHover", HoverShapeNode.class); + + // Set the shape of the shape node to match the shape of the image + SVGNode image = e.getHint(getNodeKey()); + RectangularShape bounds = (RectangularShape)image.getBounds().clone(); + node.setShape(bounds); + + // Set the shape node transparent + Paint paint = new Color(0,0,0,0); + node.setColor(paint); + + // Handle hover + Boolean hover = e.getHint(ElementHints.KEY_HOVER); + node.setHover(hover != null ? hover : false); + hoverHintListener = new IHintListener() { + + @Override + public void hintRemoved(IHintObservable sender, Key key, Object oldValue) { + } + + @Override + public void hintChanged(IHintObservable sender, Key key, Object oldValue, Object newValue) { + IElement e = (IElement)sender; + HoverShapeNode shape = (HoverShapeNode) e.getHint(NODE); + if(shape == null) { + return; + } + boolean hover = ElementUtils.isHovering(e); + shape.setHover(hover); + } + }; + e.addHintListener(hoverHintListener); + } + + @Override + public void cleanup(IElement e) { + super.cleanup(e); + e.removeHintListener(hoverHintListener); + } + } + + /** + * Handling for the text box of loop in diagram. + * @author Tuomas Miettinen + * + */ + public static class LoopSceneGraph extends HoverTextElementNoBounds implements HandleMouseEvent { + + private static final long serialVersionUID = -5093461687773246286L; + + public static final LoopSceneGraph INSTANCE = new LoopSceneGraph(); + + private static final Key NODE = new SceneGraphNodeKey(ShapeNode.class, "LOOP_COMMENT_NODE"); + + public LoopSceneGraph() { + super(0, 0, Alignment.CENTER, 0, 1, 1, true); + } + + @Override + public void init(IElement e, G2DParentNode parent) { + super.init(e, parent); + + // Move the text box into (around) the middle of the loop image + AffineTransform at = ElementUtils.getTransform(e); + final HoverShapeNode node = ElementUtils.getOrCreateNode(e, parent, NODE, "loopComment", HoverShapeNode.class); + + if(at != null) { + node.setTransform(at); + + TextNode name = (TextNode) e.getHint(SG_NODE); + if(name != null) { + AffineTransform at2 = (AffineTransform) at.clone(); + at2.translate(getXCoordShift(e), getYCoordShift(e)); + + Alignment alignment = Alignment.CENTER; + + name.setTransform(at2); + if(alignment != null) + name.setHorizontalAlignment((byte) alignment.ordinal()); + } + } + + } + + private static double getXCoordShift(IElement e) { + //String location = e.getHint(SysdynElementHints.KEY_LOCATION); + return 0.4; + } + + private static double getYCoordShift(IElement e) { + //String location = e.getHint(SysdynElementHints.KEY_LOCATION); + return 10.7; + } + + @Override + protected Callback getCallback(final IElement e, G2DParentNode parent, Class nodeClass) { + return new Callback() { + @Override + public void run(T node) { + node.setTextListener(new ITextListener() { + + Resource component; + + @Override + public void textChanged() { + } + + @Override + public void textEditingStarted() { + if(component != null) return; + + Object o = e.getHint(ElementHints.KEY_OBJECT); + if(o != null && o instanceof Resource) { + final Resource element = (Resource)o; + SimanticsUI.getSession().asyncRequest(new ReadRequest() { + + @Override + public void run(ReadGraph graph) throws DatabaseException { + component = graph.getPossibleObject(element, ModelingResources.getInstance(graph).ElementToComponent); + } + }); + } + } + + @Override + public void textEditingCancelled() { + TextNode node = (TextNode) e.getHint(SG_NODE); + if (node != null) { + endEdit(node); + } + } + + @Override + public void textEditingEnded() { + TextNode node = (TextNode) e.getHint(SG_NODE); + if (node == null) + return; + + // Write the changed comment of the loop + final String text = node.getText(); + try { + SimanticsUI.getSession().syncRequest(new WriteRequest() { + + @Override + public void perform(WriteGraph graph) + throws DatabaseException { + if (component != null) { + SysdynResource sr = SysdynResource.getInstance(graph); + graph.deny(component, sr.Loop_Comment); + graph.claimLiteral(component, sr.Loop_Comment, text); + } + } + + }); + } catch (DatabaseException e1) { + e1.printStackTrace(); + } + + IDiagram diagram = ElementUtils.getDiagram(e); + DiagramUtils.synchronizeHintsToBackend(diagram, e); + endEdit(node); + } + }); + } + }; + } + + } + + } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/SysdynElementFactory.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/SysdynElementFactory.java index 36996ec3..497f3de0 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/SysdynElementFactory.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/SysdynElementFactory.java @@ -66,11 +66,9 @@ public abstract class SysdynElementFactory extends SyncElementFactory { ComponentNameSynchronizer.INSTANCE, TransformSynchronizer.INSTANCE); - @Override - public void load(ReadGraph graph, final ICanvasContext canvas, final IDiagram diagram, final Resource element, final IElement e) throws DatabaseException { + protected String getText(ReadGraph graph, Resource element) throws DatabaseException { Layer0 l0 = Layer0.getInstance(graph); ModelingResources mr = ModelingResources.getInstance(graph); - Resource component = graph.getPossibleObject(element, mr.ElementToComponent); String text = null; if (component != null) { @@ -78,8 +76,12 @@ public abstract class SysdynElementFactory extends SyncElementFactory { } if (text == null) text = "[empty]"; - - ElementUtils.setText(e, text); + return text; + } + + @Override + public void load(ReadGraph graph, final ICanvasContext canvas, final IDiagram diagram, final Resource element, final IElement e) throws DatabaseException { + ElementUtils.setText(e, getText(graph, element)); getVisualProperties(graph, element, e); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/LoopTab.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/LoopTab.java index 272e98d0..27cc9a56 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/LoopTab.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/LoopTab.java @@ -129,6 +129,7 @@ public class LoopTab extends LabelPropertyTabContributor { @Override public void apply(WriteGraph graph, Resource connectionElement) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); + graph.deny(connectionElement, sr.Loop_Clockwise); graph.claimLiteral(connectionElement, sr.Loop_Clockwise, clockwise); } @@ -165,6 +166,7 @@ public class LoopTab extends LabelPropertyTabContributor { @Override public void apply(WriteGraph graph, Resource connectionElement) throws DatabaseException { SysdynResource sr = SysdynResource.getInstance(graph); + graph.deny(connectionElement, sr.Loop_Comment); graph.claimLiteral(connectionElement, sr.Loop_Comment, comment.trim()); } diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Loop.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Loop.java index fd4c6b4a..1345faa0 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Loop.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Loop.java @@ -31,10 +31,10 @@ public class Loop implements IElement { @RelatedElement(Layer0.URIs.PartOf) protected Object parent; - @RelatedElement(SysdynResource.URIs.Loop_Clockwise) - protected boolean clockwise; + @RelatedValue(SysdynResource.URIs.Loop_Clockwise) + protected Boolean clockwise; - @RelatedListElements(SysdynResource.URIs.Loop_Comment) + @RelatedValue(SysdynResource.URIs.Loop_Comment) protected String comment; @RelatedListElements(SysdynResource.URIs.Loop_Items) -- 2.47.1