Announcement

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

    I need create my own EventHandler for a Composite widget

    How to ?

    I'm still working on this, but I can't get the expected results..


    /******************* LoginEvent.java************/

    package com.dkcontrol.panel.client.widgets.events;


    import com.google.gwt.event.shared.GwtEvent;

    public class LoginEvent extends GwtEvent<LoginEventHandler> {

    private static final GwtEvent.Type<LoginEventHandler> TYPE = new GwtEvent.Type<LoginEventHandler>();

    public static GwtEvent.Type<LoginEventHandler> getType(){
    return TYPE;
    }


    @Override
    protected void dispatch(LoginEventHandler handler) {
    // TODO Auto-generated method stub
    handler.onLogin(this);
    }

    @Override
    public com.google.gwt.event.shared.GwtEvent.Type<LoginEventHandler> getAssociatedType() {
    // TODO Auto-generated method stub
    return TYPE;
    }


    }

    /******************* LoginEventHandler.java ************/

    package com.dkcontrol.panel.client.widgets.events;

    import com.google.gwt.event.shared.EventHandler;

    public interface LoginEventHandler extends EventHandler {
    void onLogin(LoginEvent event);
    }

    /***************** WindowLogin.java ****************/

    package com.dkcontrol.panel.client.widgets;

    import com.dkcontrol.panel.client.rcp.Service;
    import com.dkcontrol.panel.client.rcp.ServiceAsync;
    import com.dkcontrol.panel.client.widgets.events.*;
    import com.google.gwt.core.client.GWT;
    import com.google.gwt.event.shared.HandlerManager;
    import com.google.gwt.event.shared.HandlerRegistration;
    import com.google.gwt.user.client.rpc.AsyncCallback;
    import com.google.gwt.user.client.rpc.ServiceDefTarget;
    import com.smartgwt.client.types.*;
    import com.smartgwt.client.widgets.*;
    import com.smartgwt.client.widgets.events.*;
    import com.smartgwt.client.widgets.form.*;
    import com.smartgwt.client.widgets.form.events.*;
    import com.smartgwt.client.widgets.form.fields.*;

    import com.smartgwt.client.widgets.layout.HLayout;

    public class WindowLogin extends Window{

    private Window WindowPanel;
    /*** HERE HandlerManager ****/
    private HandlerManager handlerManager = new HandlerManager(this);
    private HandlerRegistration Hr;
    private DynamicForm FormPanel;
    private TextItem UserField;
    private TextItem PassField;
    private ServiceAsync Service = GWT.create (Service.class);
    private ServiceDefTarget ServicePath = (ServiceDefTarget) Service;


    public WindowLogin (){

    ServicePath.setServiceEntryPoint("/servlets/panel");

    FormPanel = new DynamicForm(){{
    UserField = new TextItem(){{
    this.setTitle("Email");
    this.setCharacterCasing(CharacterCasing.LOWER);
    this.setKeyPressFilter("[0-9@a-z.]");
    }};
    PassField = new TextItem(){{
    this.setTitle("Clave");
    this.setKeyPressFilter("[A-Za-z0-9]");
    }};
    this.setFields(UserField, PassField);
    this.setAlign(Alignment.RIGHT);
    this.addSubmitValuesHandler(new SubmitValuesHandler(){

    @Override
    public void onSubmitValues(SubmitValuesEvent event) {
    doLogin();
    }

    });
    }};

    WindowPanel = new Window(){{
    this.setBodyColor("#DCDCDC");
    this.setWidth(300);
    this.setHeight(110);
    this.setAutoCenter(true);
    this.setShowMaximizeButton(false);
    this.setShowMinimizeButton(false);
    this.setShowCloseButton(false);
    this.setIsModal(true);
    this.setShowModalMask(true);
    this.addItem(FormPanel);
    this.addItem(new HLayout(){{
    this.setAlign(Alignment.CENTER);
    this.setPadding(5);
    this.addMember(new Button("Ok"){{
    this.setWidth(30);
    this.addClickHandler(new ClickHandler(){

    @Override
    public void onClick(ClickEvent event) {
    // TODO Auto-generated method stub
    FormPanel.submit();
    }

    });
    }});

    this.addMember(new Button("Sign out"));
    }});
    }};

    WindowPanel.show();

    }

    public HandlerRegistration addLoginEvent(LoginEventHandler handler){
    return handlerManager.addHandler(LoginEvent.getType(), handler);
    }

    private void doLogin(){
    Service.addLogin(UserField.getValue().toString(), PassField.getValue().toString(), new AsyncCallback<Boolean>(){

    @Override
    public void onFailure(Throwable caught) {
    // TODO Auto-generated method stub

    }

    @Override
    public void onSuccess(Boolean result) {
    // TODO Auto-generated method stub
    if(result){
    /*** HERE FireEvent ****/
    handlerManager.fireEvent(new LoginEvent());
    }else{
    GWT.log("LOGIN WRONG", null);
    }
    }

    });
    }
    }
    /**************** My EntryPoint Using my Composite ******************/

    package com.dkcontrol.panel.client;

    import com.dkcontrol.panel.client.store.Categorys;
    import com.dkcontrol.panel.client.widgets.*;
    import com.dkcontrol.panel.client.widgets.events.LoginEvent;
    import com.dkcontrol.panel.client.widgets.events.LoginEventHandler;
    import com.google.gwt.core.client.EntryPoint;

    /**
    * Entry point classes define <code>onModuleLoad()</code>.
    */
    public class Dkpanel implements EntryPoint {
    private WindowLogin Login;
    private int xWin = com.google.gwt.user.client.Window.getClientWidth();
    private int yWin = com.google.gwt.user.client.Window.getClientHeight();
    public void onModuleLoad() {
    MainFrame main = new MainFrame();
    main.addModuleFrame(new Categorys());
    Login = new WindowLogin();
    Login.addLoginEvent(new LoginEventHandler(){

    @Override
    public void onLogin(LoginEvent event) {
    /* HERE NOTHING WORKS */
    Login.setTitle("Fuck you Window ! ");
    Login.hide();
    /** THIS ITS WORKING *//
    SC.say(Login.getTitle());
    }

    });

    }
    }
    ----------------------------------------------
    I can't change any properties on this composite widget, but i can read properties from this composite widget...

    Any idea ?
    Thx all

    Any idea,

    Bye all !

    #2
    Solved

    I change my class extends from Window to Composite

    Thx

    Comment

    Working...
    X