2012-08-16 5 views
0

gwt 셀 열의 배경색 속성을 변경하고 싶습니다. 문제는이 색상이 셀의 각 렌더링에서 변경 될 수 있다는 것입니다. 배경색은 셀 값에 따라 다릅니다. 당신은 확실히 그에만 속성에 클래스 이름을 추가 알고 내가 설정을 사용할 수 있도록 잘GWT 셀 배경색을 설정하는 방법

@Override 
public String getCellStyleNames(final Context context, final Object data) { 
if (my_condition) return "a custom style"; 
else return "default style"; // or null... 
} 

을 :

은 이미 다음과 같은 TEXTCOLUMN의 셀 스타일 이름의 메소드를 오버라이드 (override)하는 것을 시도했다 정적 CSS 파일 정의로 인해 "동적으로"색상이 지정됩니다.

ur for ur help!

+0

어떤 테이블을 사용하고 있습니까? FlexTable, 그리드? – aymeric

+0

그것은 CellTable에 관한 것입니다! – Fraternel

답변

3
Grid를 사용하는 경우 CellFormatter를 사용할 수 있습니다. 예 : grid.getCellFormatter(). setStyleName (row, column, "dynamicStyleName");

'color'속성을 동적으로 업데이트하려면 TextCell을 확장하고 'TextColumn'생성자로 전달하는 것이 좋습니다. 그런 뭔가 : 당신은 당신이 사용하는 구성 요소의 세부 사항을 제공하지 않았기 때문에

public class CustomCell extends TextCell<String> { 

    interface Template extends SafeHtmlTemplates { 
    @Template("<div style=\"color:{0}\">{1}</div>") 
    SafeHtml div(String url, String text); 
    } 

    private static Template template; 

    public CustomCell() { 
    if (template == null) { 
     template = GWT.create(Template.class); 
    } 
    } 

    @Override 
    public void render(Context context, String value, SafeHtmlBuilder sb) { 
    String color = "red"; 
    if (value != null) { 
     // The template will sanitize the URI. 
     sb.append(template.div(color, value)); 
    } 
    } 
} 


public class CustomColumn<T> extends TextColumn<T> { 

    public CustomColumn() { 
    super(new CustomCell()); 
    } 
} 
+0

OP는'TextColumn'에 대해 말하고 있으므로 분명히'CellTable' 또는'DataGrid'에 관한 것입니다. –

+0

알겠습니다. 'TextColumn'참조가 누락되었습니다. 나는 대답을 수정했다. – udalmik

+0

정확하게 CellTable. 그리고 render 메소드가이를 수행하는 유일한 방법입니다. Thx mudalov – Fraternel

-1

, 난 당신이 함께 플레이 할 수있는 특성을 알아 내려고에 대한 일반적인 제안을 줄 것이다.

저는 Eclipse를 사용하고 GWT 디자이너를 사용하여 POC 관련 작업을 도와 줄 것을 제안합니다.

: GWT Designer를 사용하는 방법에 https://developers.google.com/web-toolkit/tools/download-gwtdesigner

  • 예 그것은 나를 내가 함께 플레이 할 수있는 성질의 아이디어를 얻을 수 있습니다

  • 관련 문제