Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    setValues ignoring values

    I am still having problems loading a valuesManager. I am working with the guidance given under Canvas.dataPath:
    Code:
    isc.ValuesManager.create({
          ID:'vm',
          values: { companyName:"Some Company",
                  address:{    street:"123 Main Street", city:"New York", state:"NY"  }
                  parentCompany:{
                      companyName:"Some Corporation",
                      address:{   street:"1 High Street", city:"New York", state:"NY" }
                  }
          }
     });
    
     isc.Layout.create({
          valuesManager:"vm",
          members:[
              isc.DynamicForm.create({
                  dataPath:"/",
                  items:[{name:"companyName"}]
              }),
              isc.DynamicForm.create({
                  dataPath:"address",
                  items:[{name:"street"}, {name:"city"}, {name:"state"}]
              }),
              isc.Layout.create({
                  dataPath:"parentCompany",
                  members:[
                      isc.DynamicForm.create({
                          dataPath:"/",
                          items:[{name:"companyName", type:"staticText"}]
                      }),
                      isc.DetailViewer.create({
                          dataPath:"address",
                          fields:[{name:"street", name:"city", name:"state"}]
                      })
                  ]
              })
          ]
     });
    Below is a comparison.

    First the values from the example, then the dataPath structure I believe the example uses. At the end of each canvas line is an expression that shows the full dataPath to reach its items. -> [path] / fields
    Code:
    values: { companyName:"Some Company",
                  address:{    street:"123 Main Street", city:"New York", state:"NY"  }
                  parentCompany:{
                      companyName:"Some Corporation",
                      address:{   street:"1 High Street", city:"New York", state:"NY" }
                  }
             }
    
    Layout:MeetingWindow with valuesManager:"vm"
    +---DynamicForm: (dataPath:"/") -> companyName [/]
    +---DynamicForm: (dataPath:"address") -> [address] / street, city, state  
    +---Layout: (dataPath:"parentCompany")
        +---DynamicForm: (dataPath:"/") -> companyName [parentCompany/]
        +---DetailViewer: (dataPath:"address") -> [parentCompany/address] / street, city, state
    Below are my values and structure (just the very top to keep it manageable.)
    Code:
    values: { "Agenda": {
                  "Options": {
                      "MeetingDetails": true,
    
    
    Window:MeetingWindow with valuesManager:"meetingTypeVM"
    +---DynamicForm: MeetingForm
    +---HLayout: MeetingBottomHalf
        +---HLayout: MeetingContentOptions
            +---TabSet: MeetingContentTabs
                +---VLayout: AgendaOptionsLayout          (dataPath:"Agenda")
                |   +---DynamicForm: AgendaOptionsForm        (dataPath:"Options") -> [Agenda/Options] / MeetingDetails 
                |   +---TabSet: AgendaOptionsTabs
                |       +---DynamicForm: AgendaOptionsTopicForm   (dataPath:"Topic") -> [Agenda/Topic]
                |       +---DynamicForm: AgendaOptionsIssueForm   (dataPath:"Issue")
                |       +---DynamicForm: AgendaOptionsTaskForm    (dataPath:"Task")
                |       +---DynamicForm: AgendaOptionsSpecialForm (dataPath:"Special")
                |
                +---VLayout: MinutesOptionsLayout         (dataPath:"Minutes")		
                    +---DynamicForm: MinutesOptionsForm        (dataPath:"/Options")
                    +---TabSet: MinutesOptionsTabs	           (dataPath:"/")
                        +---DynamicForm: MinutesOptionsTopicForm   (dataPath:"Topic")
                        +---DynamicForm: MinutesOptionsIssueForm   (dataPath:"Issue")
                        +---DynamicForm: MinutesOptionsTaskForm    (dataPath:"Task")
                        +---DynamicForm: MinutesOptionsSpecialForm (dataPath:"Special")
    This is not working. I get errors in the developer console. I get one for each formitem I am trying to set a value for. I am only showing the first one below.
    14:30:28.755:MUP1:DEBUG:Log:*************** MeetingForm.visibilityChanged
    14:30:28.755:MUP1:DEBUG:Log:*** starting meetingTypeVM: {}
    14:30:28.756:MUP1:WARN:ValuesManager:meetingTypeVM:Member Form: [DynamicForm ID:AgendaOptionsForm] has explicitly specified value for field[s] 'Agenda/Options/MeetingDetails', but has no item associated with this fieldName. Ignoring this value. Values may be set for fields with no associated form item directly on the valuesManager via valuesManager.setValues(), but not on member forms. See ValuesManager documentation for more info.
    I note that the correct form (AgendaOptionsForm) has been found from the "Agenda/Options" in the path. So far, so good (Yahoo!). However, the item is not found. But, it should be. Here is the form and field in question.
    Code:
    isc.DynamicForm.create({
        ID:"AgendaOptionsForm",
        autoDraw:false,
        numCols:5,
        overflow:"visible",
        dataPath:"Options",
        fields:[
            {
                name:"MeetingDetails",
                title:"Meeting Details",
                disabled:false,
                _constructor:"CheckboxItem"
            },
    My claim is that this is the same structure used in the example: -> [parentCompany/address] / street, city, state. parentCompany is a top level object. Its member 'address' has that as specified as a dataPath. And, it would find the 'street' field, if this was a true example that runs.

    Absent any specifications, I will continue different dataPath schemes. The examples all show dataPath names on all intervening canvases. So, I am in uncharted territory. If I happen upon the solution the error will dissappear.

    Any help in the meantime would be appreciated.

    Thanks,

    Rick

    P.S. I am running SmartClient_v8.2p_2013-12-27/EVAL on Mozilla Firefox 20.0 with Firebug using Windows 7 Premium 64 bit.

    #2
    I have tried to duplicate the structure implied by your example. My datapath scheme did not start at the top canvas under the one that owned the valuesManager. So, I fixed that. Here is the new structure:
    Code:
    var newOptions = {
        Meeting: {
            Content: {
                Document: {
                    Agenda: { Options: agendaOptions,
                              Details: { Topic:   agendaTopicOptions,
                                         Issue:   agendaIssueOptions,
                                         Task:    agendaTaskOptions,
                                         Special: agendaSpecialOptions
                              }
                    },
    
    
    Window:MeetingWindow with valuesManager:"meetingTypeVM"
    +---DynamicForm: MeetingForm
    +---HLayout: MeetingBottomHalf	(dataPath:"Meeting")
        +---HLayout: MeetingContentOptions	 (dataPath:"Content")
            +---TabSet: MeetingContentTabs		 (dataPath:"Document")
                +---VLayout: AgendaOptionsLayout          (dataPath:"Agenda")
                |   +---DynamicForm: AgendaOptionsForm        (dataPath:"Options") -> [Meeting/Content/Document/Agenda/Options] / MeetingDetails 
                |   +---TabSet: AgendaOptionsTabs             (dataPath:"Details")
                |       +---DynamicForm: AgendaOptionsTopicForm   (dataPath:"Topic") -> [Meeting/Content/Document/Agenda/Details/Topic]
                |       +---DynamicForm: AgendaOptionsIssueForm   (dataPath:"Issue")
                |       +---DynamicForm: AgendaOptionsTaskForm    (dataPath:"Task")
                |       +---DynamicForm: AgendaOptionsSpecialForm (dataPath:"Special")
                |
                +---VLayout: MinutesOptionsLayout         (dataPath:"Minutes")		
                    +---DynamicForm: MinutesOptionsForm        (dataPath:"Options")
                    +---TabSet: MinutesOptionsTabs	           (dataPath:"Details")
                        +---DynamicForm: MinutesOptionsTopicForm   (dataPath:"Topic")
                        +---DynamicForm: MinutesOptionsIssueForm   (dataPath:"Issue")
                        +---DynamicForm: MinutesOptionsTaskForm    (dataPath:"Task")
                        +---DynamicForm: MinutesOptionsSpecialForm (dataPath:"Special")
    
    values: { companyName:"Some Company",
                  address:{    street:"123 Main Street", city:"New York", state:"NY"  }
                  parentCompany:{
                      companyName:"Some Corporation",
                      address:{   street:"1 High Street", city:"New York", state:"NY" }
                  }
             }
    
    Layout:MeetingWindow with valuesManager:"vm"
    +---DynamicForm: (dataPath:"/") -> companyName [/]
    +---DynamicForm: (dataPath:"address") -> [address] / street, city, state  
    +---Layout: (dataPath:"parentCompany")
        +---DynamicForm: (dataPath:"/") -> companyName [parentCompany/]
        +---DetailViewer: (dataPath:"address") -> [parentCompany/address] / street, city, state
    Here is the result:
    12:15:06.027:MUP2:DEBUG:Log:*** agendaOptionString: {"MeetingDetails":true,"IncludeParticipants":true,"TopicDetails":true,"TopicIssues":true,"IssueDetails":true,"IssueTasks":true,"TaskDetails":true,"CompletedTasks":false}
    12:15:06.029:MUP2:WARN:ValuesManager:meetingTypeVM:Member Form: [DynamicForm ID:AgendaOptionsForm] has explicitly specified value for field[s] 'Meeting/Content/Document/Agenda/Options/MeetingDetails', but has no item associated with this fieldName. Ignoring this value. Values may be set for fields with no associated form item directly on the valuesManager via valuesManager.setValues(), but not on member forms. See ValuesManager documentation for more info.
    12:15:06.031:MUP2:WARN:ValuesManager:meetingTypeVM:Member Form: [DynamicForm ID:AgendaOptionsForm] has explicitly specified value for field[s] 'Meeting/Content/Document/Agenda/Options/IncludeParticipants', but has no item associated with this fieldName. Ignoring this value. Values may be set for fields with no associated form item directly on the valuesManager via valuesManager.setValues(), but not on member forms. See ValuesManager documentation for more info.
    The correct structure is captured in the error message. The correct form was found. Yet, the target fields were not found.
    Code:
    isc.Window.create({ ID:"MeetingWindow",
        autoDraw:false,
        overflow:"hidden",
        isModal:true,
        visibility:"hidden",
        title:"Meeting Window",
        showMinimizeButton:false,
        showMaximizeButton:true,
        showStatusBar:false,
        showResizer:false,
        items:[
            MeetingForm,
            MeetingBottomHalf
        ],
        showModalMask:true,
        modalMaskOpacity:10,
        width:"100%",
        height:665,
        top:84,
        canDragReposition:false,
        canDragResize:false,
        valuesManager:isc.ValuesManager.create({
            ID:"meetingTypeVM"
        })
    ,
    Code:
    isc.HLayout.create({ ID:"MeetingBottomHalf", dataPath:"Meeting",
        autoDraw:false,
        members:[
            MeetingTabs,
            MeetingContentOptions
        ],
        membersMargin:15,
        width:"100%",
        height:"*"
    })
    Code:
    isc.HLayout.create({ ID:"MeetingContentOptions", dataPath:"Content",
        autoDraw:false,
        members:[
            MeetingContentTabs
        ],
        width:"45%",
        height:390
    })
    Code:
    isc.TabSet.create({ ID:"MeetingContentTabs", dataPath:"Document",
        autoDraw:false,
        overflow:"visible",
        tabs:[
            {
                title:"Agenda Options",
                pane:AgendaOptionsLayout,
                ID:"AgendaOptions",
                width:120
            },
            {
                title:"Minutes Options",
                pane:MinutesOptionsLayout,
                ID:"MinutesOptions",
                width:120
            }
        ],
        destroyPanes:false,
        width:"50%",
        height:390
    })
    Code:
    isc.VLayout.create({ ID:"AgendaOptionsLayout", dataPath:"Agenda",
        autoDraw:false,
        members:[
            AgendaOptionsForm,
            AgendaOptionsTabs
        ],
        width:"100%",
        height:280
    })
    Code:
    isc.DynamicForm.create({ ID:"AgendaOptionsForm", dataPath:"Options",
        autoDraw:false,
        numCols:5,
        overflow:"visible",
        fields:[
            {
    //         dataPath:"MeetingDetails",
                name:"MeetingDetails",
                title:"Meeting Details",
                disabled:false,
                _constructor:"CheckboxItem"
            },
            {
                dataPath:"IncludeParticipants",
                name:"IncludeParticipants",
                title:"Include Participants",
                disabled:false,
                _constructor:"CheckboxItem"
            },
    The macro loads the valuesManager using a values structure similar to the example.
    Code:
    function MeetingForm_visibilityChanged(form,MTVM,window, AOfrm){
    	Log.setPriority("Log", 5);
    	Log.logDebug("*************** MeetingForm.visibilityChanged");
    
    	if (form.isVisible()) {
    		if (typeof MTVM == "undefined") { isc.logWarn("*** meetingTypeVM is not defined.");
    			MTVM = {}; MTVM = isc.ValuesManager.create({ID: "meetingTypeVM" });
    			Log.logDebug("*** meetingTypeVM created.");
    		} else {
    			Log.logDebug("*** members meetingTypeVM: " + form.echoAll(MTVM.getMembers()));
    			Log.logDebug("*** starting meetingTypeVM: " + form.echoAll(MTVM.getValues()));
    			Log.logDebug("*** starting meetingTypeVM: " + JSON.stringify(MTVM.getValues(), null, 4));
    			if ( !MTVM.hasOwnProperty("AgendaOptions")) { // checking to see if it is abnormal
    				if (delete MTVM["AgendaIssue"]) {Log.logDebug("meetingTypeVM[AgendaIssue] deleted.")};
    				if (delete MTVM["AgendaTask"]) {Log.logDebug("meetingTypeVM[AgendaTask] deleted.")};
    			}
    		}
    		var agendaPrintOptionString = form.getValue("AgendaPrintOptions");
    		var minutesPrintOptionString = form.getValue("MinutesPrintOptions");
    		if (typeof agendaPrintOptionString == "undefined") { agendaPrintOptionString = null; }
    		if (typeof minutesPrintOptionString == "undefined") { minutesPrintOptionString = null; }
    		if (agendaPrintOptionString != null)  {
    			if (minutesPrintOptionString != null)  {
    				var allOptions = { Agenda: isc.JSON.decode(agendaPrintOptionString), Minutes: isc.JSON.decode(minutesPrintOptionString) } ;
    				Log.logDebug("*** allOptions: " + form.echoAll(allOptions));
    			    Log.logDebug("*** allOptions: " + JSON.stringify(allOptions, null, 4));
    
    				var agendaSpecialOptions = {}; agendaSpecialOptions = allOptions.Agenda.Special;
    					Log.logDebug("*** agendaSpecialOptions: " + JSON.stringify(agendaSpecialOptions, null, 4));
    				var agendaTaskOptions = {}; agendaTaskOptions =  allOptions.Agenda.Task;
    					Log.logDebug("*** agendaTaskOptions: " + JSON.stringify(agendaTaskOptions, null, 4));
    				var agendaIssueOptions = {}; agendaIssueOptions = allOptions.Agenda.Issue;
    					Log.logDebug("*** agendaIssueOptions: " + JSON.stringify(agendaIssueOptions, null, 4));
    				var agendaTopicOptions = {}; agendaTopicOptions = allOptions.Agenda.Topic;
    					Log.logDebug("*** agendaTopicOptions: " + JSON.stringify(agendaTopicOptions, null, 4));
    				var agendaOptions = {}; agendaOptions = allOptions.Agenda["Options"];
    					Log.logDebug("*** allOptions.Agenda[Options]: " + JSON.stringify(allOptions.Agenda["Options"], null, 4));
    					Log.logDebug("*** agendaOptions: " + JSON.stringify(agendaOptions, null, 4));
    					Log.logDebug("*** agendaOptions: " + form.echoAll(agendaOptions));
    
    				var minutesOptions =        allOptions.Minutes.Options; //Log.logDebug("*** minutesOptions: " + JSON.stringify(minutesOptions, null, 4));
    				var minutesTopicOptions =   allOptions.Minutes.Topic;   //Log.logDebug("*** minutesTopicOptions: " + JSON.stringify(minutesTopicOptions, null, 4));
    				var minutesIssueOptions =   allOptions.Minutes.Issue;   //Log.logDebug("*** minutesIssueOptions: " + JSON.stringify(minutesIssueOptions, null, 4));
    				var minutesTaskOptions =    allOptions.Minutes.Task;    //Log.logDebug("*** minutesTaskOptions: " + JSON.stringify(minutesTaskOptions, null, 4));
    				var minutesSpecialOptions = allOptions.Minutes.Special; //Log.logDebug("*** minutesSpecialOptions: " + JSON.stringify(minutesSpecialOptions, null, 4));
    
    				var agendaOptionString = JSON.stringify(agendaOptions);
    				Log.logDebug("*** agendaOptionString: " + agendaOptionString);
    
    				var newOptions = {
    					Meeting: {
    						Content: {
    							Document: {
    								Agenda: {
    									        Options: allOptions.Agenda.Options,
    											Details: {	Topic: agendaTopicOptions,
    														Issue: agendaIssueOptions,
    														Task: agendaTaskOptions,
    														Special: agendaSpecialOptions
    											}
    								},
    //								Minutes: {
    //					               MinutesOptions: minutesOptions, MinutesTopic: minutesTopicOptions, MinutesIssue: minutesIssueOptions,
    //					               MinutesTask: minutesTaskOptions, MinutesSpecial: minutesSpecialOptions
    //								}
    						    }
    						}
    					}
    				};
    				MTVM.setValues(newOptions);
    //					AgendaZOptions:	allOptions.Agenda["Options"] ,
    //					AgendaTopic:	agendaTopicOptions ,
    //					AgendaIssue:	agendaIssueOptions ,
    //					AgendaTask:		agendaTaskOptions ,
    //					AgendaSpecial:	agendaSpecialOptions ,
    //					MinutesOptions: minutesOptions, MinutesTopic: minutesTopicOptions, MinutesIssue: minutesIssueOptions,
    //					MinutesTask: minutesTaskOptions, MinutesSpecial: minutesSpecialOptions
    //					});
    				Log.logDebug("*** newOptions.AgendaOptions used to setValues: " + form.echoAll(newOptions.AgendaOptions, null, 4));
    				Log.logDebug("*** assembled newOptions used to setValues: " + JSON.stringify(newOptions, null, 4));
    			} else { isc.logWarn("*** MinutesPrintOptions are missing."); }
    		} else { isc.logWarn("*** AgendaPrintOptions are missing."); }
    
            Log.logDebug("*** resulting meetingTypeVM: " + form.echoAll(MTVM.getValues()));
    		Log.logDebug("*** resulting meetingTypeVM: " + JSON.stringify(MTVM.getValues(), null, 4));
    
    		MeetingTopicsGrid.setCriteria({ "MeetingTypeID" : Application.currentMeetingTypeID } ) ;
    		MeetingParticipantsGrid.setCriteria({ "MeetingTypeID" : Application.currentMeetingTypeID } ) ;
    
    		Log.logDebug("*** resulting AgendaOptionsForm.MeetingDetails: " + AOfrm.getValue("MeetingDetails"));
    
    /*		form.getField("Private").setDisabled(false);
    		if (form.getValue("MeatingLeaderID") != null) {
    			if (! form.getValue("Internal")) {
    				if (form.getValue("Private")) form.setValue("Private", false);
    				form.getField("Private").setDisabled(true);
    			} else {
    				form.getField("Private").setDisabled(false);
    			}
    		} else {
    			form.getField("Private").setDisabled(false);
    		}
    		if (! form.getField("Private").disabled) {
    			if (COUNT OF EXTERNAL PARTICIPANTS > 0) {
    				if (form.getValue("Private")) form.setValue("Private", false);
    				form.getField("Private").setDisabled(true);
    			}
    		}*/
    	}
    
    	Log.logDebug("***END***END***END*** MeetingForm.visibilityChanged");
    }
    The valuesManager has recognized all the forms.
    12:15:06.023:MUP2:DEBUG:Log:*** members meetingTypeVM: [
    Window{ID: "MeetingWindow",
    autoDraw: false,
    isModal: true,
    title: "Meeting Window",
    showMinimizeButton: false,
    showMaximizeButton: true,
    showStatusBar: false,
    showResizer: false,
    items: Array[2],
    showModalMask: true,
    modalMaskOpacity: 10,
    width: 1143,
    height: 665,
    top: 84,
    canDragReposition: false,
    showShadow: false,
    members: Array[2],
    position: "absolute",
    className: "normal",
    vertical: true,
    children: Array[2],
    zIndex: 800594,
    peers: Array[1],
    valuesManager: [ValuesManager ID:meetingTypeVM],
    modalMask: [ScreenSpan ID:MeetingWindow_modalMask],
    header: [HLayout ID:MeetingWindow_header],
    headerIcon: [Img ID:MeetingWindow_headerIcon],
    headerLabel: [Label ID:MeetingWindow_headerLabel],
    maximizeButton: [ImgButton ID:MeetingWindow_maximizeButton],
    closeButton: [ImgButton ID:MeetingWindow_closeButton],
    bodyConstructor: "Layout",
    body: [Layout ID:MeetingWindow_body],
    cacheOffsetCoords: true,
    tabIndex: 4668,
    memberSizes: Array[2],
    lastScrollLeft: 0,
    lastScrollTop: 0,
    lastScrollDirection: "vertical",
    scrollTop: -10011,
    },
    DynamicForm{ID: "AgendaOptionsForm",
    dataPath: "Options",
    autoDraw: false,
    numCols: 5,
    fields: Array[8],
    width: 493,
    height: 100,
    extraSpace: 10,
    position: "absolute",
    className: "normal",
    items: Array[8],
    values: Obj,
    originalFields: Array[8],
    tabIndex: 5009,
    errors: Obj,
    parentElement: [VLayout ID:AgendaOptionsLayout],
    topElement: [Window ID:MeetingWindow],
    valuesManager: [ValuesManager ID:meetingTypeVM],
    cacheOffsetCoords: true,
    zIndex: 204140,
    },
    DynamicForm{ID: "AgendaOptionsTopicForm",
    dataPath: "Topic",
    autoDraw: false,
    numCols: 5,
    overflow: "hidden",
    fields: Array[10],
    width: 423,
    height: 180,
    position: "absolute",
    className: "normal",
    left: 5,
    top: 5,
    items: Array[10],
    values: Obj,
    originalFields: Array[10],
    tabIndex: 5071,
    errors: Obj,
    parentElement: [PaneContainer ID:AgendaOptionsTabs_paneContainer],
    topElement: [Window ID:MeetingWindow],
    valuesManager: [ValuesManager ID:meetingTypeVM],
    cacheOffsetCoords: true,
    zIndex: 204266,
    },
    DynamicForm{ID: "AgendaOptionsIssueForm",
    dataPath: "Issue",
    autoDraw: false,
    colWidths: Array[7],
    numCols: 6,
    overflow: "hidden",
    fields: Array[20],
    width: 423,
    height: 180,
    position: "absolute",
    className: "normal",
    left: 5,
    top: 5,
    items: Array[20],
    values: Obj,
    originalFields: Array[20],
    tabIndex: 5080,
    errors: Obj,
    visibility: "hidden",
    parentElement: [PaneContainer ID:AgendaOptionsTabs_paneContainer],
    topElement: [Window ID:MeetingWindow],
    valuesManager: [ValuesManager ID:meetingTypeVM],
    },
    DynamicForm{ID: "AgendaOptionsTaskForm",
    dataPath: "Task",
    autoDraw: false,
    colWidths: Array[6],
    numCols: 6,
    overflow: "hidden",
    fields: Array[16],
    autoFocus: true,
    width: 423,
    height: 180,
    position: "absolute",
    className: "normal",
    left: 5,
    top: 5,
    items: Array[16],
    values: Obj,
    originalFields: Array[16],
    tabIndex: 5099,
    errors: Obj,
    visibility: "hidden",
    parentElement: [PaneContainer ID:AgendaOptionsTabs_paneContainer],
    topElement: [Window ID:MeetingWindow],
    valuesManager: [ValuesManager ID:meetingTypeVM],
    },
    DynamicForm{ID: "AgendaOptionsSpecialForm",
    dataPath: "Special",
    autoDraw: false,
    colWidths: Array[2],
    overflow: "hidden",
    fields: Array[3],
    width: 423,
    height: 180,
    position: "absolute",
    className: "normal",
    left: 5,
    top: 5,
    items: Array[3],
    values: Obj,
    originalFields: Array[3],
    tabIndex: 5113,
    errors: Obj,
    visibility: "hidden",
    parentElement: [PaneContainer ID:AgendaOptionsTabs_paneContainer],
    topElement: [Window ID:MeetingWindow],
    valuesManager: [ValuesManager ID:meetingTypeVM],
    },
    DynamicForm{ID: "MinutesOptionsForm",
    dataPath: "MinutesOptions",
    autoDraw: false,
    numCols: 5,
    fields: Array[8],
    height: 100,
    extraSpace: 10,
    position: "absolute",
    className: "normal",
    width: 100,
    items: Array[8],
    values: Obj,
    originalFields: Array[8],
    tabIndex: 5119,
    errors: Obj,
    parentElement: [VLayout ID:MinutesOptionsLayout],
    topElement: [Window ID:MeetingWindow],
    valuesManager: [ValuesManager ID:meetingTypeVM],
    },
    DynamicForm{ID: "MinutesOptionsTopicForm",
    dataPath: "MinutesTopic",
    autoDraw: false,
    numCols: 5,
    fields: Array[10],
    width: 423,
    height: 180,
    position: "absolute",
    className: "normal",
    items: Array[10],
    values: Obj,
    originalFields: Array[10],
    tabIndex: 5131,
    errors: Obj,
    visibility: "hidden",
    parentElement: [PaneContainer ID:MinutesOptionsTabs_paneContainer],
    topElement: [Window ID:MeetingWindow],
    valuesManager: [ValuesManager ID:meetingTypeVM],
    },
    DynamicForm{ID: "MinutesOptionsIssueForm",
    dataPath: "MinutesIssue",
    autoDraw: false,
    colWidths: Array[7],
    numCols: 6,
    overflow: "hidden",
    fields: Array[20],
    width: 423,
    height: 180,
    position: "absolute",
    className: "normal",
    items: Array[20],
    values: Obj,
    originalFields: Array[20],
    tabIndex: 5140,
    errors: Obj,
    visibility: "hidden",
    parentElement: [PaneContainer ID:MinutesOptionsTabs_paneContainer],
    topElement: [Window ID:MeetingWindow],
    valuesManager: [ValuesManager ID:meetingTypeVM],
    },
    DynamicForm{ID: "MinutesOptionsTaskForm",
    dataPath: "MinutesTask",
    autoDraw: false,
    colWidths: Array[6],
    numCols: 6,
    overflow: "hidden",
    fields: Array[16],
    autoFocus: true,
    width: 423,
    height: 180,
    position: "absolute",
    className: "normal",
    items: Array[16],
    values: Obj,
    originalFields: Array[16],
    tabIndex: 5159,
    errors: Obj,
    visibility: "hidden",
    parentElement: [PaneContainer ID:MinutesOptionsTabs_paneContainer],
    topElement: [Window ID:MeetingWindow],
    valuesManager: [ValuesManager ID:meetingTypeVM],
    },
    DynamicForm{ID: "MinutesOptionsSpecialForm",
    dataPath: "MinutesSpecial",
    autoDraw: false,
    colWidths: Array[2],
    overflow: "hidden",
    fields: Array[3],
    width: 423,
    height: 180,
    position: "absolute",
    className: "normal",
    items: Array[3],
    values: Obj,
    originalFields: Array[3],
    tabIndex: 5173,
    errors: Obj,
    visibility: "hidden",
    parentElement: [PaneContainer ID:MinutesOptionsTabs_paneContainer],
    topElement: [Window ID:MeetingWindow],
    valuesManager: [ValuesManager ID:meetingTypeVM],
    }
    ]
    The resulting value structure should match that of the dataPath scheme. But, it doesn't.
    12:15:06.118:MUP2:DEBUG:Log:*** resulting meetingTypeVM: {Meeting: Obj}
    12:15:06.118:MUP2:DEBUG:Log:*** resulting meetingTypeVM: {
    "Meeting": {
    "Content": {
    "Document": {
    "Agenda": {
    "Options": {
    "MeetingDetails": true,
    "IncludeParticipants": true,
    "TopicDetails": true,
    "TopicIssues": true,
    "IssueDetails": true,
    "IssueTasks": true,
    "TaskDetails": true,
    "CompletedTasks": false
    I am trying to use the framework in the way it was intended. I may have to resort to a previous datapath scheme that sort of worked. But, it had a side effect of 'doubling up' the values inserted. I still have the scheme on the Minutes side. You can see below from a previous run what I mean. A copy of each value structure is inserted as an object into itself.

    This has the odd effect of populating the fields correctly. However, I cannot really trust it. I still have to getValues using this structure and I have not tested yet if everything is updated properly when the user changes a field.
    Code:
        "Minutes": {
            "Options": {
                "MeetingDetails": true,
                "IncludeParticipants": true,
                "TopicDetails": true,
                "TopicIssues": true,
                "IssueDetails": true,
                "IssueTasks": true,
                "TaskDetails": true,
                "CompletedTasks": false,
                "Minutes": {
                    "Options": {
                        "MeetingDetails": true,
                        "IncludeParticipants": true,
                        "TopicDetails": true,
                        "TopicIssues": true,
                        "IssueDetails": true,
                        "IssueTasks": true,
                        "TaskDetails": true,
                        "CompletedTasks": false
                    }
                }
            },
            "Topic": {
                "Leader": true,
                "TopicTime": true,
                "SearchEnabled": false,
                "SessionType": true,
                "ImpactFilter": false,
                "ExpectedResults": true,
                "CategoryFilter": false,
                "IssueTypeFilter": false,
                "Minutes": {
                    "Topic": {
                        "Leader": true,
                        "TopicTime": true,
                        "SearchEnabled": false,
                        "SessionType": true,
                        "ImpactFilter": false,
                        "ExpectedResults": true,
                        "CategoryFilter": false,
                        "IssueTypeFilter": false
                    }
                }
            },
    I am really counting on using valuesManager and getting it working. I will use it on many dialogs because print options default top down communities to projects to meetings and reports.

    When I get it working here I will clone it all over. And, then, my application is close to being complete. I still have to hook it up to Twitter, but that is a Java back end function.

    I cannot imagine that something is broken in the framework. It works so well for everything else I ask of it.

    I could really use some help.

    Thanks,

    Rick

    Comment

    Working...
    X