Announcement

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

    Attempting to unmask error

    Greetings,

    I've got a strange problem and I'm chasing my tail. I'm hoping the folks at Isomorphic can shed a little light.

    I have a tab set where each tab uses a ViewLoader to load a .jsp. The first jsp has a form with a number of select items generated from a datasource. Works perfectly. The second tab, loading another .jsp with a form, throws an error and displays incorrectly when the select list has a datasource attached. I've check the DS definition, made the startrow, endrow and totalrows are set. I've checked the RPC responses. I've stripped down the code to almost nothing, and yet the select item won't display right (appears in upper left hand corner instead of inside the tab). Again, this only happens when I specify the datasource. Without the datasource, it works fine. The error I get is:
    Code:
    12:01:44.334:XRP5:WARN:clickMask:Attempting to unmask target canvas:isc_PickListMenu_65 with respect to a hard click mask. This is not a top level Canvas - all ancestors of this Canvas will also be unmasked.
    Viewing the html source, the datasource looks like this:
    Code:
    isc.DataSource.create({
        serverType:"generic",
        dataFormat:"iscServer",
        fields:[
            {name:"option_value", type:"text"},
            {name:"display_value", type:"text"},
            {name:"db_field", type:"text"}
        ],
        operationBindings:[
            {methodArguments:"$request, $dsRequest", serverMethod:"fetch", operationType:"fetch"}
        ],
        ID:"AdvancedSearchValueMapDS"
    })
    The form creation that gets pulled into the tabset through the viewloader looks like this:
    Code:
    	isc.DynamicForm.create({
    		ID:"financialSearchForm",
    		fields: [
    		         {name:"criteriaField",
    			        	showTitle:true,
    			        	title:"Criteria",
    			        	type:"select",
    			            pickListFields: [
    			                     {name: "display_value"}
                            ],
    			            optionDataSource:"AdvancedSearchValueMapDS"            
    			  	 }
    			]
    	});
    The RPC response looks like this:
    Code:
    [
        {
            invalidateCache:false,
            data:[
                {display_value:"TEST", option_value:"TEST"},
                {display_value:"TEST", option_value:"TEST"},
                {display_value:"TEST", option_value:"TEST"},
                {display_value:"TEST", option_value:"TEST"},
                {display_value:"TEST", option_value:"TEST"},
                {display_value:"TEST", option_value:"TEST"}
            ],
            endRow:6,
            status:0,
            totalRows:6,
            startRow:0,
            isDSResponse:true
        }
    ]
    Does the error message above give any hints as to what is going on?

    #2
    After more testing, I see it must have something to do with the tabset. Because I can put any select item with any datasource and get the exact same problem. Perhaps you can't use more than one viewloader with a tab set?

    Here's the tabset:
    Code:
    	isc.TabSet.create({
    	    ID: "quickSearchTabSet",
    	    tabBarPosition: "top",
    	    width:panelWidth-5,
    	    height:companyDetailHeightMin,
    	    left:1,
    	    tabs: [
    	        {title: "Company Detail", 
    	        	pane:isc.ViewLoader.create({
    	        		ID:"cdetail",
    		            autoDraw:false,
    		            viewURL:"/iap/ng/jsp/advancedSearch/companyDetail.jsp",
    		            loadingMessage:"Loading..."
    		          })
    	        },
    	        {title: "Financial Criteria",          
    	        	pane:isc.ViewLoader.create({
    	        	ID:"fdetail",
    	            autoDraw:false,
    	            viewURL:"/iap/ng/jsp/advancedSearch/financialCriteria.jsp",
    	            loadingMessage:"Loading..."
    	          })},
    	        {title: "Ratio"},
    	        {title: "State/Line of Business"},
    	        {title: "Insurance Type"},
    	        {title: "Investments"}
    	    ]
    	});

    Comment


      #3
      This problem has been solved by setting autoDraw:false on the dynamicform that's having problems. I previously did not have autoDraw set at all for the form. However, his alone does not solve the problem. The other setting it must have is defaultToFirstOption:false. If it is true, I get the same problem again and the same log error.

      I can work around defaultToFirstOption, but I'm still curious to know why that's a problem.

      Comment


        #4
        Note, it's only a WARN, not an error.

        What the message is telling you is that some code is trying cause a PickListMenu (a drop-down list from a SelectItem) to be shown when the UI is being blocked (hard click mask) to prevent user interaction.

        The autodraw warning is pretty telling. Have you looked over the interaction as a whole to see if you are receiving warnings about incorrect settings for autodraw causing clear()s?

        Comment


          #5
          No, the logs are pretty clean. I work hard to keep errors and warnings to a minimum. Here's everything for this part of the application:
          Code:
          16:41:29.141:INFO:Log:initialized
          16:41:29.751:INFO:Log:isc.Page is loaded
          16:41:31.408:XRP3:WARN:Log:firing the callback from global eval with...
          16:41:31.408:XRP3:WARN:Log:viewLoader is:[ViewLoader ID:contentPaneLoader]
          16:41:31.579:XRP3:WARN:Log:firing the callback from global eval with...
          16:41:31.579:XRP3:WARN:Log:viewLoader is:[ViewLoader ID:tabsetViewLoader1]
          16:41:32.955:XRP2:WARN:Log:firing the callback from global eval with...
          16:41:32.955:XRP2:WARN:Log:viewLoader is:[ViewLoader ID:tabsetViewLoader2
          I think I'm going to take another approach. The SelectItem that's causing the problem on this tab, should appear on all tabs. I was recreating it (different ID) on all the tabs. But now I've created it outside all of the other containers and have it floating on top (z-axis), giving the appearance that it appears on all tabs. It'll be tricky to manage all of the change() event handling for all of the tabs, but I think this will solve all of the other problems I'm having around this one object.

          Comment

          Working...
          X