2012-10-16 2 views
1

올바른 질문인지 잘 모르겠습니다 만 CompositeCellDefaultNodeInfo 인 매개 변수로 TreeViewModel의 일부입니다.GWT CompositeCell에서 간격을 설정하는 방법은 무엇입니까?

는 기본적으로 CompositeCell은 다음과 같습니다

Tree item1 [button1] 

내가 이것을 달성하는 방법을 잘 모르겠어요 :

Tree item1[button1] 
    Tree item2[button2] 
    ... 

가 지금은 트리 항목과 버튼 사이의 간격을 설정합니다. 어쩌면 CompositeCellsetSpacing 방법이 없기 때문에 나에게 맞는 것이 아니겠습니까?

그러나 어쨌든 NodeInfo을 구성하려면 셀이 필요합니다.

========================================

나를 보자 내 질문을 더 분명하게해라.

내가 가지고있는 WidgetCellTree입니다.

cellTree = new CellTree(
     new SomeTreeViewModel(), null); 

내가 DefaultNodeInfo을 제공 할 필요가 TreeViewModel 구성하려면 다음 CellTree을 구성하기 위해 나는 TreeViewModel 제공해야합니다. 다른 단어에서, TreeViewModel에 다음 메서드를 재정의합니다 :

public <T> NodeInfo<?> getNodeInfo(final T value) 

을 구성하려면 DefaultNodeInfo : 나는 Cell (결국 내 질문에 온다 ...)

을 제공해야

public DefaultNodeInfo(AbstractDataProvider<T> dataProvider, Cell<T> cell) 

CellWidget이 아니라 인터페이스입니다. 여기

내가 필요 AbstractCell 포함하는 CompositeCell :

Tree item1 

ButtonCell :

[button1] 

CompositeCell는 다음과 같이 표시됩니다

Tree item1[button1] 

내가 설정할을 스타일에 전자 나는 그것이 단지 나무의 스타일이 아니라 나무 항목에 영향을주기 때문에 도움이 될 것입니다 CellTree에 CSS를 적용 생각하지 않는다

Tree item1 [button1] 

... : ither ButtonCell 또는 CompositeCell 또는 Cell는 간격을 추가

는 사실은 내가 해결 방법을 찾았지만 나는 ButtonCellrender 방법을 재정의하다, 격려 생각하지 않습니다

   public void render(final Context context, final SafeHtml data, 
         final SafeHtmlBuilder sb) { 
        sb.appendHtmlConstant("<button type=\"button\" tabindex=\"-1\" style=\"margin-left:10px;\">"); 
        if (data != null) { 
         sb.append(data); 
        } 
        sb.appendHtmlConstant("</button>"); 
       } 

다른 생각을?

+0

나는 단추 형 전지의 렌더링 메소드를 오버라이드 (override) 할 수있는 해결 방법이 있습니다. 하지만 멋지게 보이지 않습니다 ... – ericbado

+0

왜 CSS를 사용하지 않습니까? –

+0

@AndreiVolgin 그래,하지만 여전히 렌더링을 오버라이드해야하지, 그렇지? 나는 확실하지 않다 ... – ericbado

답변

1

CSS 클래스를 추가하거나 셀을 포함하는 위젯을 추가하십시오. 예를 들어 :

.myCell input, .myCell div { 
    margin-left: 10px; 
} 

그런

cellTree.setStyleName("myCell"); 
+0

나는 css가 작동한다는 것을 안다. 그러나 나는 셀에 CSS를 적용 할 방법을 보지 못한다. ButtonCell, EditTextCell, Cell에는 setStyleName 또는 이와 유사한 메서드가 없기 때문입니다. 나는 GWT에 대해 아주 익숙하다. 그래서 어떤 예도 인정 될 것이다. – ericbado

+0

내가 제안한 스타일을 셀의 상위 위젯에 추가하십시오. 이 셀을 패널에 추가하는 경우 myPanel.setStyleName ("myCell")을 사용하십시오. –

+0

하지만 Cell은 전혀 위젯이 아닙니다 ... 그게 문제입니다 ... – ericbado

관련 문제