1. #1
    Ext GWT Premium Member gslender's Avatar
    Join Date
    Mar 2008
    Location
    Brisbane, Australia
    Posts
    1,572
    Vote Rating
    4
    gslender is on a distinguished road

      0  

    Default [FIXED] b4 dialog modal 2nd show bug

    [FIXED] b4 dialog modal 2nd show bug


    When showing a dialog modal like, if you hide and then show again, the dialog is shown non-modal... ie the modal attribute is lost !!

    Simple bug that is easily reproduced as the show() does not re-enable the modal feature that is initially done in onRender()... so I guess this needs to be adjusted.

  2. #2
    Ext User
    Join Date
    May 2008
    Posts
    19
    Vote Rating
    0
    slupix is on a distinguished road

      0  

    Default


    I also came across this bug. For now I create each time a new Dialog, but it's not a good solution. Did you find a nicer workaround?

  3. #3
    Ext GWT Premium Member gslender's Avatar
    Join Date
    Mar 2008
    Location
    Brisbane, Australia
    Posts
    1,572
    Vote Rating
    4
    gslender is on a distinguished road

      0  

    Default


    Yeah - I'm confused by this... isn't creating new objects for each window/dialog a "bad thing" - I thought the reason show/hide was used, was because we really should be re-using objects rather than destroying and creating... not sure why, perhaps the DOM is the problem?

  4. #4
    Ext GWT Premium Member gslender's Avatar
    Join Date
    Mar 2008
    Location
    Brisbane, Australia
    Posts
    1,572
    Vote Rating
    4
    gslender is on a distinguished road

      0  

    Default


    code snippet that shows problem...

    1) 1st click and show is right...

    2) close window using close box

    3) 2nd click and show is non-modal and so you could click again (should be masked)

    Code:
    package com.mycompany.gxt.client;
    
    import com.google.gwt.core.client.EntryPoint;
    import com.google.gwt.user.client.ui.RootPanel;
    
    import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
    import com.extjs.gxt.ui.client.event.ComponentEvent;
    import com.extjs.gxt.ui.client.event.SelectionListener;
    import com.extjs.gxt.ui.client.widget.ContentPanel;
    import com.extjs.gxt.ui.client.widget.Dialog;
    import com.extjs.gxt.ui.client.widget.Viewport;
    import com.extjs.gxt.ui.client.widget.button.Button;
    import com.extjs.gxt.ui.client.widget.form.FormPanel;
    import com.extjs.gxt.ui.client.widget.form.TextField;
    import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;
    import com.extjs.gxt.ui.client.widget.layout.FillLayout;
    
    
    public class ModalDialog implements EntryPoint {
    
    	DialogWindow rw = new DialogWindow();
    	public void onModuleLoad() {
    
    		ContentPanel cp = new ContentPanel();
    		cp.setHeading("Test");
    		cp.setSize(600,400);
    		Button test = new Button("test");
    		SelectionListener listener = new SelectionListener() 
    	    {
    	    	public void componentSelected(ComponentEvent be) 
    	    	{
    	    		rw.show();
    	    	}
    	    };  
    	    test.addSelectionListener(listener);
    		cp.add(test);
    				
    		final Viewport vp = new Viewport();
    		vp.add(cp);
    		vp.layout();
    
    	    RootPanel.get().add(vp);
    	}
    	
    	public class DialogWindow extends Dialog 
    	{	
    		public DialogWindow()
    		{
    			super();
    			setClosable(true);
    			setModal(true);  
    			setHeading("Dialog Test");
    			setWidth(500);
    			setLayout(new FillLayout());
    		  	  
    
    	    	final FormPanel panel = new FormPanel();    	
    	    	panel.setHeaderVisible(false);
    	    	panel.setFieldWidth(300);  
    	    	panel.setLabelWidth(100);  
    	    	panel.setLabelAlign(LabelAlign.RIGHT);
    	    	panel.setButtonAlign(HorizontalAlignment.RIGHT);  
    	    	   
    	    	final TextField firstnameTxtFld = new TextField();  
    	    	firstnameTxtFld.setFieldLabel("First Name");
    	    	firstnameTxtFld.setEmptyText("Your first name");
    	    	firstnameTxtFld.setAllowBlank(false);
    	    	firstnameTxtFld.setSelectOnFocus(true);
    	    	panel.add(firstnameTxtFld);  
    
    	    	final TextField lastnameTxtFld = new TextField();  
    	    	lastnameTxtFld.setFieldLabel("Last Name");
    	    	lastnameTxtFld.setEmptyText("Your last name");
    	    	lastnameTxtFld.setAllowBlank(false);
    	    	lastnameTxtFld.setSelectOnFocus(true);
    	    	panel.add(lastnameTxtFld);  
    
    	    	final TextField emailTxtFld = new TextField();  
    	    	emailTxtFld.setFieldLabel("Email");
    	    	emailTxtFld.setEmptyText("A valid email address");
    	    	emailTxtFld.setAllowBlank(false);
    	    	emailTxtFld.setSelectOnFocus(true);
    	    	panel.add(emailTxtFld);  
    			
    	        add(panel);
    		}
    	}
    }

  5. #5
    Sencha - GXT Dev Team darrellmeyer's Avatar
    Join Date
    May 2007
    Location
    Washington, DC
    Posts
    2,242
    Vote Rating
    2
    darrellmeyer is on a distinguished road

      0  

    Default


    Fix is in SVN.

Thread Participants: 2