/** * @file * @brief Save and Load Words * A quick little composition to Save and Load 3-lines of text. Hopefully you find it useful in your projects. * * @lastSavedInVuoVersion 2.2.0 * @keywords Save, Load, Text * @copyright Copyright © 2020 Christopher Wilms * @license This composition may be modified and distributed under the terms of the Creative Commons: Attribution (CC BY) License. For more information, see https://creativecommons.org/licenses/by/4.0/ . * @see This is a Vuo Composition source code file. See https://vuo.org for further information. */ digraph G { AppendTexts2 [type="vuo.text.append" version="1.2.0" label="Append Texts|refresh\l|texts\l|separator\l|includeEmptyParts\l|compositeText\r" pos="60,-555" fillcolor="magenta" _separator="\"\\n\"" _includeEmptyParts="true"]; ChangeWindowSize [type="vuo.window.size2" version="2.0.1" label="Change Window Size|refresh\l|windowDescription\l|width\l|height\l|unit\l|changedWindowDescription\r" pos="-45,30" fillcolor="cyan" _width="640" _height="480" _unit="\"points\""]; ConvertDataToText2 [type="vuo.type.data.text" version="1.0.0" label="Convert Data to Text|refresh\l|data\l|text\r" pos="-855,-795"]; ConvertTextToData2 [type="vuo.type.text.data" version="1.0.0" label="Convert Text to Data|refresh\l|text\l|data\r" pos="165,255"]; DisplayOpenWindow [type="vuo.ui.open" version="1.0.0" label="Display \"Open\" Window|refresh\l|show\l|title\l|<buttonLabel>buttonLabel\l|<fileType>fileType\l|<defaultURL>defaultURL\l|<selectMultiple>selectMultiple\l|<parentWindow>parentWindow\l|<selectedURLs>selectedURLs\r|<canceled>canceled\r" pos="450,-945" fillcolor="green" _title="\"Open\"" _buttonLabel="\"Open\"" _fileType="\"xml\"" _defaultURL="\"~\\/Desktop\"" _selectMultiple="false"]; DisplaySaveWindow [type="vuo.ui.save" version="1.0.0" label="Display \"Save\" Window|<refresh>refresh\l|<show>show\l|<title>title\l|<fieldLabel>fieldLabel\l|<defaultFileName>defaultFileName\l|<buttonLabel>buttonLabel\l|<fileType>fileType\l|<defaultURL>defaultURL\l|<parentWindow>parentWindow\l|<selectedURL>selectedURL\r|<canceled>canceled\r" pos="465,-780" fillcolor="blue" _title="\"Save\"" _fieldLabel="\"Save As:\"" _defaultFileName="\"Untitled\"" _buttonLabel="\"Save\"" _fileType="\"xml\"" _defaultURL="\"~\\/Desktop\""]; FetchData [type="vuo.data.fetch" version="1.0.0" label="Fetch Data|<refresh>refresh\l|<url>url\l|<data>data\r" pos="825,-945" fillcolor="violet"]; GetFirstItemInList [type="vuo.list.get.first.VuoText" version="1.0.0" label="Get First Item in List|<refresh>refresh\l|<list>list\l|<firstItem>firstItem\r" pos="-765,-810"]; GetItemFromList [type="vuo.list.get.VuoText" version="1.0.1" label="Get Item from List|<refresh>refresh\l|<list>list\l|<which>which\l|<item>item\r" pos="-840,-555" fillcolor="magenta" _which="1"]; GetItemFromList2 [type="vuo.list.get.VuoText" version="1.0.1" label="Get Item from List|<refresh>refresh\l|<list>list\l|<which>which\l|<item>item\r" pos="-840,-405" fillcolor="magenta" _which="2"]; GetItemFromList3 [type="vuo.list.get.VuoText" version="1.0.1" label="Get Item from List|<refresh>refresh\l|<list>list\l|<which>which\l|<item>item\r" pos="-840,-270" fillcolor="magenta" _which="3"]; HoldValue [type="vuo.data.hold2.VuoText" version="3.0.0" label="Hold Save Value|<refresh>refresh\l|<update>update\l|<value>value\l|<heldValue>heldValue\r" pos="705,-570" fillcolor="magenta"]; MakeActionButton [type="vuo.ui.make.button" version="1.0.0" label="Save Button|<refresh>refresh\l|<window>window\l|<label>label\l|<anchor>anchor\l|<position>position\l|<theme>theme\l|<updatedLayer>updatedLayer\r|<pressed>pressed\r" pos="-540,-795" fillcolor="blue" _label="\"Save\"" _anchor="\{\"horizontalAlignment\":\"center\",\"verticalAlignment\":\"center\"\}" _position="\{\"x\":0.20000000298023224,\"y\":-0.20000000298023224\}" _updatedLayer_eventThrottling="enqueue" _pressed_eventThrottling="enqueue"]; MakeList [type="vuo.list.make.5.VuoLayer" version="2.0.0" label="Make List|<refresh>refresh\l|<1>1\l|<2>2\l|<3>3\l|<4>4\l|<5>5\l|<list>list\r" pos="8,-94" fillcolor="cyan"]; MakeList2 [type="vuo.list.make.3.VuoText" version="2.0.0" label="Make List|<refresh>refresh\l|<1>1\l|<2>2\l|<3>3\l|<list>list\r" pos="1,-544" fillcolor="magenta"]; MakeTextField [type="vuo.ui.make.text" version="1.0.0" label="Text: Line 1|<refresh>refresh\l|<renderedLayers>renderedLayers\l|<setValue>setValue\l|<placeholderText>placeholderText\l|<anchor>anchor\l|<position>position\l|<width>width\l|<theme>theme\l|<updatedLayer>updatedLayer\r|<updatedValue>updatedValue\r" pos="-540,-570" fillcolor="magenta" _placeholderText="\"Click to enter text\"" _anchor="\"center-center\"" _position="\{\"x\":0,\"y\":0.20000000298023224\}" _width="0.94999999999999996" _updatedLayer_eventThrottling="enqueue" _updatedValue_eventThrottling="enqueue"]; MakeTextField2 [type="vuo.ui.make.text" version="1.0.0" label="Text: Line 2|<refresh>refresh\l|<renderedLayers>renderedLayers\l|<setValue>setValue\l|<placeholderText>placeholderText\l|<anchor>anchor\l|<position>position\l|<width>width\l|<theme>theme\l|<updatedLayer>updatedLayer\r|<updatedValue>updatedValue\r" pos="-540,-420" fillcolor="magenta" _placeholderText="\"Click to enter text\"" _anchor="\"center-center\"" _position="\{\"x\":0,\"y\":0.10000000149011612\}" _width="0.94999999999999996" _updatedLayer_eventThrottling="enqueue" _updatedValue_eventThrottling="enqueue"]; MakeTextField4 [type="vuo.ui.make.text" version="1.0.0" label="Text: Line 3|<refresh>refresh\l|<renderedLayers>renderedLayers\l|<setValue>setValue\l|<placeholderText>placeholderText\l|<anchor>anchor\l|<position>position\l|<width>width\l|<theme>theme\l|<updatedLayer>updatedLayer\r|<updatedValue>updatedValue\r" pos="-540,-270" fillcolor="magenta" _placeholderText="\"Click to enter text\"" _anchor="\"center-center\"" _position="\{\"x\":0,\"y\":0\}" _width="0.94999999999999996" _updatedLayer_eventThrottling="enqueue" _updatedValue_eventThrottling="enqueue"]; RenderLayersToWindow [type="vuo.layer.render.window2" version="3.0.0" label="Render Layers to Window|<refresh>refresh\l|<layers>layers\l|<multisampling>multisampling\l|<setWindowDescription>setWindowDescription\l|<updatedWindow>updatedWindow\r" pos="60,-105" fillcolor="cyan" _multisampling="\"4\"" _updatedWindow_eventThrottling="enqueue"]; SaveButton2 [type="vuo.ui.make.button" version="1.0.0" label="Open Button|<refresh>refresh\l|<window>window\l|<label>label\l|<anchor>anchor\l|<position>position\l|<theme>theme\l|<updatedLayer>updatedLayer\r|<pressed>pressed\r" pos="-540,-960" fillcolor="green" _label="\"Open\"" _anchor="\{\"horizontalAlignment\":\"center\",\"verticalAlignment\":\"center\"\}" _position="\{\"x\":-0.20000000298023224,\"y\":-0.20000000298023224\}" _updatedLayer_eventThrottling="enqueue" _pressed_eventThrottling="enqueue"]; SaveData3 [type="vuo.data.save" version="1.1.0" label="Save Data|<refresh>refresh\l|<url>url\l|<saveData>saveData\l|<overwriteUrl>overwriteUrl\l|<done>done\r" pos="825,-675" fillcolor="blue" _overwriteUrl="false"]; SplitText3 [type="vuo.text.split.VuoText" version="1.0.0" label="Split Text|<refresh>refresh\l|<text>text\l|<separator>separator\l|<includeEmptyParts>includeEmptyParts\l|<splitTexts>splitTexts\r" pos="-855,-855" fillcolor="violet" _separator="\"\\n\"" _includeEmptyParts="true"]; AppendTexts2:compositeText -> HoldValue:value; ChangeWindowSize:changedWindowDescription -> RenderLayersToWindow:setWindowDescription; ConvertDataToText2:text -> SplitText3:text; ConvertTextToData2:data -> SaveData3:saveData; DisplayOpenWindow:selectedURLs -> GetFirstItemInList:list; DisplaySaveWindow:selectedURL -> HoldValue:update; DisplaySaveWindow:selectedURL -> SaveData3:url; FetchData:data -> ConvertDataToText2:data; GetFirstItemInList:firstItem -> FetchData:url; GetItemFromList2:item -> MakeTextField2:setValue; GetItemFromList3:item -> MakeTextField4:setValue; GetItemFromList:item -> MakeTextField:setValue; HoldValue:heldValue -> ConvertTextToData2:text; MakeActionButton:pressed -> DisplaySaveWindow:show; MakeActionButton:updatedLayer -> MakeList:2; MakeList2:list -> AppendTexts2:texts; MakeList:list -> RenderLayersToWindow:layers; MakeTextField2:updatedLayer -> MakeList:4; MakeTextField2:updatedValue -> MakeList2:2; MakeTextField4:updatedLayer -> MakeList:5; MakeTextField4:updatedValue -> MakeList2:3; MakeTextField:updatedLayer -> MakeList:3; MakeTextField:updatedValue -> MakeList2:1; RenderLayersToWindow:updatedWindow -> DisplayOpenWindow:parentWindow; RenderLayersToWindow:updatedWindow -> DisplaySaveWindow:parentWindow; RenderLayersToWindow:updatedWindow -> MakeActionButton:window; RenderLayersToWindow:updatedWindow -> MakeTextField2:renderedLayers; RenderLayersToWindow:updatedWindow -> MakeTextField4:renderedLayers; RenderLayersToWindow:updatedWindow -> MakeTextField:renderedLayers; RenderLayersToWindow:updatedWindow -> SaveButton2:window; SaveButton2:pressed -> DisplayOpenWindow:show; SaveButton2:updatedLayer -> MakeList:1; SplitText3:splitTexts -> GetItemFromList2:list; SplitText3:splitTexts -> GetItemFromList3:list; SplitText3:splitTexts -> GetItemFromList:list; }