Игры, математика, программирование, и просто размышлизмы

среда, 30 июля 2014 г.

GXT обновление дерева vs обновление грида

Оказывается, в отличии от дерева, которое рисуется всё сразу, грид рисуется по кусочкам.
Поэтому чтобы как либо видоизменить view после апдейта(например нарисовать что либо на нём) надо дождаться полной отрисовки. Иначе изменения могут затереться.

Самый простой способ - запустить таймер. Делается это так

   @Override
    public void recalculate() {
        // TODO Auto-generated method stub
        super.recalculate();
 
            Timer timer = new Timer() {
                @Override
                public void run() {
                   //do something
                   
                }
            };
           
        timer.schedule(SOME_TIME);
    }

пятница, 25 июля 2014 г.

gxt как сохранить позицию скролла в дереве после апдейта.

Да очень просто, внимание на экран.

TreePanel{
    //....
    protected void onScroll(TreePanelEvent tpe) {
     target = tpe.getTarget();
     vScroll = target.getScrollTop();
    hScroll = target.getScrollLeft();
    //do something
  }

 //...

 @Override
  public void recalculate() {
    super.recalculate();
    //do something
    if (target!=null){
        target.setScrollTop(vScroll);
        target.setScrollLeft(hScroll);
       
    }
  }


}