2015-01-28 11 views
0

Modal widget from GWTBootstrap3을 서브 클래스 화 (연장)하여 내 응용 프로그램 내에서 재사용 할 수있는 사용자 정의 모달 위젯을 생성하고 싶습니다. UiBinder를 사용할 때이 작업을 수행하는 방법을 모르겠습니다. ModalHeader, ModalBody 및 ModalFooter를 작성하고 add (Widget) 메소드를 사용하여 Java 코드로 추가 할 수 있습니다.복합 GWT 위젯의 서브 클래스

그러나 하위 클래스에 대해 UiBinder를 사용하여 어떻게 동일한 작업을 수행 할 수 있습니까?

답변

0

UiBinder 코드에서 사용자 정의 위젯을 사용할 수 있습니다. 그게 네가하는 일이야? 사용자 정의 위젯이있는 패키지를 별도의 네임 스페이스로 가져 오면됩니다. 말 을 WeatherReport 위젯은 com.my.app.widgets하고 사용할 네임 스페이스 내이 가져 오기는 다음과 같습니다 있는 패키지에 :

<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" 
    xmlns:g="urn:import:com.google.gwt.user.client.ui" 
    xmlns:my="urn:import:com.my.app.widgets"> 

지금 당신이 WeatherReport을 추가 할 수 있습니다 이 같은 UiBinder 코드 제품 :

<g:HTMLPanel> 
    <my:WeatherReport ui:field="weather" /> 
</g:HTMLPanel> 

자세한 내용은 official GWT documentation을 참조하십시오. ModalHeader, UiBinder에서 ModalBody 등을 사용하여

같은 방식으로 작동합니다. 해당 패키지를 가져 와서 구성 요소를 사용하면 다음과 같은 간단한 예가됩니다.

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> 
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" 
     xmlns:g="urn:import:com.google.gwt.user.client.ui" 
     xmlns:b="urn:import:org.gwtbootstrap3.client.ui"> 
     <b:ModalBody> 
       <b:Row> 
         <b:Column size="MD_12"> 
           <b:Input ui:field="passwordInput" type="PASSWORD" /> 
         </b:Column> 
       </b:Row> 
       <b:ModalFooter"> 
         <b:Button ui:field="saveButton" text="Save" type="PRIMARY" /> 
         <b:Button ui:field="cancelButton" text="Cancel" /> 
       </b:ModalFooter> 
     </b:ModalBody> 
</ui:UiBinder> 
+0

예, 이것은 내가 달성하기를 원하는 바를위한 것입니다. 그러나, WheaterReport의 java 버전은 어떻게 보이겠습니까? Modal을 확장 할 수 있습니까? 또한 안에 있으면 안됩니다. 맞습니까? _WeatherReport_ 성분 –

+0

자바 부분은 다음과 같다 : '공개 등급은 WeatherReport ModalBody { 개인 정적 WeatherReportUiBinder uiBinder = GWT .create (WeatherReportUiBinder.class)을 확장; 연장 WeatherReportUiBinder 인터페이스 UiBinder <위젯 WeatherReport>} { 공개 WeatherReport() { 추가 (uiBinder.createAndBindUi (이)); } }' –

+0

그리고 _Modal_ 위젯과 함께 사용하는 방법입니다 : 'Modal modal = new Modal(); modal.setClosable (true); WeatherReport 위젯 = new WeatherReport(); modal.add (위젯); modal.show();' 좀 더 세련된 통합을 찾으면 나는 모든 귀가 있습니다. :-) –