Thursday, April 9, 2015

GwtBootstrap3 how to implement collapse button for menu bar e.g. navbar


NavbarCollapseButton can have many targets that are collapsable components:

<b:NavbarCollapseButton dataTarget="#ab-toolbar-collapse,#other-toolbar-collapse"/>

     <b:NavbarCollapse ui:field="abToolbarCollapse"> 
               (#id for "abToolbarCollapse" should be set in corresponded UiBinder java class)
     </b:NavbarCollapse>

     <b:NavbarCollapse ui:field="other-toolbar-collapse"> 
               (#id for "otherToolbarCollapse" should be set in corresponded UiBinder java class)
     </b:NavbarCollapse>

Java: get key by value from map - GWT BiMap

public static <T, E> T getKeyByValue(BiMap<T, E> map, E value) {
        for (Map.Entry<T, E> entry : map.entrySet()) {
            if (value.equals(entry.getValue())) {
                return entry.getKey();
            }
        }
        return null;
    }

Wednesday, April 8, 2015

How to register event for GWT EventBus

injector.getEventBus().addHandler(PlaceChangeEvent.TYPE, new PlaceChangeEvent.Handler(){
        @Override
        public void onPlaceChange(PlaceChangeEvent placeChangeEvent) {
            getKeyByValue(itemsMap, placeChangeEvent.getNewPlace());
        }
    });

Saturday, April 4, 2015

GWT run configurations in Idea

-Xmx1024m -XX:MaxPermSize=512m

-Xmx1024m -XX:MaxPermSize=512m -Dgwt.codeserver.port=9876

How to install Idea on Ubuntu


If you want to install Idea on Ubuntu follow this instruction:
 

Tuesday, March 31, 2015

Lazy Load Data in a GWT DataGrid


private static class MyDataGrid<T> extends DataGrid {
    public ScrollPanel getScrollPanel() {
        HeaderPanel header = (HeaderPanel) getWidget();
        return (ScrollPanel) header.getContentWidget();
    }
}

private MyDataGrid<MyDataType> myDataGrid;
private int incrementSize = 20;
private int lastScrollPos = 0;

myDataGrid = new MyDataGrid<MyDataType>();

myDataGrid.getScrollPanel().addScrollHandler(new ScrollHandler(){

    @Override
    public void onScroll(ScrollEvent event) {

        int oldScrollPos = lastScrollPos;
        lastScrollPos = myDataGrid.getScrollPanel().getVerticalScrollPosition();

        // If scrolling up, ignore the event.
        if (oldScrollPos >= lastScrollPos) {
            return;
        }

        //Height of grid contents (including outside the viewable area) - height of the scroll panel
        int maxScrollTop = myDataGrid.getScrollPanel().getWidget().getOffsetHeight() - 
                           myDataGrid.getScrollPanel().getOffsetHeight();

        if(lastScrollPos >= maxScrollTop) {
            myDataGrid.setVisibleRange(0,myDataGrid.getVisibleRange().getLength()+incrementSize);
        }
    }
});

Monday, March 30, 2015

How to createw and fire GWT handler

public class MyEvent extends GwtEvent<MyEvent.MyHandler> {

    private static Type<MyHandler> TYPE;
    public static Type<LegalCreatedHandler> getType() {
        if (TYPE == null) {
            TYPE = new Type<MyHandler>();        }
        return TYPE;    }

    @Override    public Type<MyHandler> getAssociatedType() {
        return (Type) TYPE;    }

    @Override    protected void dispatch(MyEvent.MyHandler handler) {
        handler.onMyEvent(this);    }

    public interface MyHandler extends EventHandler {
        void onMyEvent(MyEvent event);
    }

}

////fire event from your class

fire(new MyEvent());

////ensure that HandlerManager is not null.

///implement handler and register this handler in class that handle this event
this.addHandler(this, MyEvent.getType());