Поиск по этому блогу

вторник, 25 сентября 2012 г.

Как в GXT изменить ширину столбца таблицы по нажатию кнопки



Иногда возникает необходимость изменять ширину столбца таблицы динамически в зависимости от того какой ширины будет содержимое в ячейке. 

int width;
width = // вычисляем новую ширину столбца
// задаем столбцу новую ширину - 5 - номер столбца 

grid.getColumnModel().getColumn(5).setWidth(width); 
// перерисовываем таблицу с новым значением ширины столбца
grid.getView().refresh(true); 
// теперь, если у нас в столбце содержится не просто текст, а      // сложный элемент,например ContentPanel, то содержимое тоже           // нужно растянуть на новую длину
for (int i = 0; i < grid.getStore().getCount(); i++) {
 Widget widget = grid.getView().getWidget(i, 5);
 BoxComponent bc = ((BoxComponent) widget);
 ContentPanel cp = (ContentPanel) bc;
// отнимаем 10 для того чтобы содержимое хорошо вписывалось в    //столбец
 cp.setWidth(width - 10); 

вторник, 18 сентября 2012 г.

Некоторые методы класса ContentPanel в GXT



Приведу тут обзор некоторых методов класса ContentPanel.

ContentPanel cp = new ContentPanel();

// делаем панель сворачиваемой
cp.setCollapsible(true);

// цвет фона - белый
cp.setBodyStyle("backgroundColor: white;");

// закругленные углы
cp.setFrame(true);

// убираем заголовок
cp.setHeaderVisible(false);

воскресенье, 16 сентября 2012 г.

Как отключить клавишу Enter в компоненте TextArea в GXT

Новый день преподносит новые тривиальные задачи. Однако для меня как для начинающего разработчика даже самые простые задачи могут отнять много времени и показаться очень сложными. Вот, сегодня, например, столкнулся с задачей отключения перевода указателя каретки с одной строки на другую по клавише Enter в компоненте TextArea.

TextArea notes = new TextArea();
notes.addKeyListener(new KeyListener() {
  public void componentKeyPress(final ComponentEvent event) {  
    if (event.getKeyCode() == 13) {     
         event.stopEvent();  
    }  
  }
});

* This source code was highlighted with Source Code Highlighter.



пятница, 14 сентября 2012 г.

Как удалить элемент со страницы в Javascript и в JNI


Снова столкнулся с задачей в которой необходимо использовать native javascript. На этот раз необходимо удалить элемент со страницы.

Как удаление элемента делается в JavaScipt

function removeElement(id) {
 
var element = document.getElementById(id);
 element.
parentNode.removeChild(element);
}


А вот как это удаление мы сделаем в Java

Создаем native метод для удаления элемента.

public static native void removeElFromPage(final com.google.gwt.dom.client.Element el)
   /*-{el.parentNode.removeChild(el);
   }-*/;


А тут собственно вызов этого метода

com.google.gwt.dom.client.Element el = Document.get().getElementById("diagReport");
               if (el != null) {
                   removeElFromPage(el);
               }

Как выровнять checkbox по центру в GXT


Казалось бы совершенно тривиальные задачи порой могут занять очень много времени. Причиной может быть обычное незнание рабочего способа. Вроде используешь методы, а они все не работают. Вот проверенный способ, чтобы выровнять checkbox по центру.

CheckColumnConfig() newCheckColumnConfig = new CheckColumnConfig();
       newCheckColumnConfig.setHeader("New");
       newCheckColumnConfig.setId("isNew");
       newCheckColumnConfig.setWidth(50);
       newCheckColumnConfig.setStyle("vertical-align:middle;");

четверг, 6 сентября 2012 г.

Как запустить jar файл из java программы


В проекте понадобилось запустить jar файл с параметрами из приложения. 
Вот небольшая тестовая программа которая запускает jar файл из java-кода.

import java.io.IOException;
public class ReportTest {

  public static void main(String[] args) throws IOException {
  
    String filePath = "C:/develop/workspaces/first/myfile.jar ";
    String param1 = " value1 ";
    String param2 = " value2 ";
    String param3 = " value3 ";
      
    Runtime re = Runtime.getRuntime();       
    try{
         re.exec("java -jar " + filePath + param1 + param2 + param3);      
    } catch (IOException ioe){
     ioe.printStackTrace();
    }
  }
}


* This source code was highlighted with Source Code Highlighter.