value__ntID__ntName __ntTemplate viewBounds stepChildren callingView confirmChangeSetup viewFlags  __ntDatatype __ntFlagsџа PROT@   RECT vтн   ARAY     __ntDeclare text  viewJustify  џh PROT@   TEXT   RECT б  џР NUMBprotoStaticTextstatus        textChangedindent labelviewlinespacing  џє PROT@   RECTlefttoprightbottomџџџџРџ„`  џ„func() begin local found := nil; local items := 0; foreach index, value in labelCommands do if StrEqual(value,text) then begin SetValue(status,'text,"Counting..."); RefreshViews(); items := callingView:ArrayEditorCounter(value); changeTo:Setup(items); theButton:Setup(items); found := True; break; end; if NOT found then begin items := 0; changeTo:Setup('add); theButton:Setup('add); end; SetValue(status,'text,if items = 'itemsExist then "items found" else NumberStr(items) && if items = 1 then "item" else "items" ); end SCPT  џ INTG  џ€Р NUMB  Edit Me TEXT  Œ NUMBprotoLabelInputLineoriginalArray        + viewQuitScriptviewSetupDoneScript  ,  џє PROT@   RECT 3 2 4 5џџџџќџАœ  Change To TEXT  шfunc(items) begin if items = 0 or items = nil or items = 'add then self:Hide(); else self:Show(); end SCPT  џfunc() begin self:Show(); // must be showing for the next time the view is reopened // this might be a bug end SCPT  Dfunc() begin :Setup(nil); end SCPT  џ€Р NUMB  Œ NUMB BchangeTo       buttonClickScript  confirmChangeScript   џˆ PROT@   TEXTAdd   SCPTџ <func() begin local action := Intern(text); if action = 'Change then begin if 0 = StrCompare(originalArray.entryLine.text,changeTo.entryLine.text) then begin SetValue(status,'text,"Identical items. No change."); return; end; else begin if confirmChange then begin local msg := "Change all '" & originalArray.entryLine.text & "' to '" & changeTo.entryLine.text & "' ?"; self:Confirm("List Editor",msg,self,'confirmChangeScript); end; else self:confirmChangeScript(True); end; end; if action = 'Remove then begin SetValue(status,'text,originalArray.entryLine.text&&"removed"); foreach index,value in originalArray.labelCommands do if StrEqual(value,originalArray.entryLine.text) then begin ArrayRemoveCount(originalArray.labelCommands,index,1); break; end; SetValue(self,'text,"Add"); callingView:ArrayEditorChanged('Remove,Clone(originalArray.labelCommands),originalArray.entryLine.text,nil,status); end; if action = 'Add then begin SetValue(status,'text,originalArray.entryLine.text&&"added"); AddArraySlot(originalArray.labelCommands,Clone(originalArray.entryLine.text)); Sort(originalArray.labelCommands,'|str<|,nil); SetValue(self,'text,"Remove"); callingView:ArrayEditorChanged('Add,Clone(originalArray.labelCommands),originalArray.entryLine.text,nil,status); end; end   RECT 8˜  џŽfunc(items) begin if items = 0 or items = nil then SetValue(self,'text,"Remove"); else if items = 'add then SetValue(self,'text,"Add"); else SetValue(self,'text,"Change"); end SCPT  џ|func(confirmed) begin if confirmed then begin SetValue(status,'text,"changing..."); local newItemExists := nil; foreach index,value in originalArray.labelCommands do if StrEqual(value,changeTo.entryLine.text) then begin newItemExists := True; break; end; if NOT newItemExists then begin AddArraySlot(originalArray.labelCommands,Clone(changeTo.entryLine.text)); Sort(originalArray.labelCommands,'|str<|,nil); end; callingView:ArrayEditorChanged('Change,Clone(originalArray.labelCommands),originalArray.entryLine.text,changeTo.entryLine.text,status); changeTo:Hide(); SetValue(self,'text,"Remove"); end; end SCPT  џ€ NUMBprotoTextButtontheButton           џh PROT@   TEXT   RECT р  џ NUMB % title џ  nil EVAL   BOOL  џЈfunc( view, originalLabel, theArray) begin local myArray := Clone(theArray); if doDebug then print(myArray); callingView := view; // DOESN'T WORK --> originalArray:setLabelText("originalLabl"); SetValue(title,'text,originalLabel&&"Editor"); originalArray:setLabelCommands(myArray); changeTo:setLabelCommands(myArray); end SCPT€  џ  NUMB protoFloatNGo$arrayEditorVtHick