2017-12-27 12 views

답변

0

추가 기능을 만들면 주 응용 프로그램 창이 이미 만들어져 EModelService을 사용하여 찾을 수 있습니다. 그들은 MUIElement.setToBeRendered를 호출하여 렌더링 할 때

UIEvents.UIElement.TOPIC_TOBERENDERED 이벤트 (가시가 또는 숨겨진) 모든 UI 개체에 대한 당신을 말할 것이다 :

@Inject 
@Optional 
void event(@UIEventTopic(UIEvents.UIElement.TOPIC_TOBERENDERED) Event event) 
{ 
    if (event == null) 
    return; 

    // The UI element 
    Object element = event.getProperty(UIEvents.EventTags.ELEMENT); 

    // Rendered or hidden value 
    Boolean toBeRendered = (Boolean)event.getProperty(UIEvents.EventTags.NEW_VALUE); 

그러나이 이벤트는하지 않습니다 동적으로 생성 된 개체에 대해 생성되지 않습니다 setToBeRendered

UIEvents.Context.TOPIC_CONTEXT 이벤트는 컨텍스트가 설정된 모든 개체를 생성하기 위해 시작됩니다.이 경우 다른 시간에 시작될 수도 있습니다.

+0

답변 해 주셔서 감사합니다. 그러나 메소드'void event (@UIEventTopic (UIEvents.UIElement.TOPIC_TOBERENDERED) 이벤트 이벤트)'는 결코 호출하지 않습니다. – Say

+0

부품 호출을 추적하기 위해이 호출을 사용합니다. 그것은 또한 일부 개방을 위해서도 발사되지만 전부는 아니며, 그것이 어떻게 행해지 느냐에 달려 있습니다. 'Event'가'org.osgi.service.event.Event'인지 확인하십시오. 다른'Event' 클래스 중 하나를 사용하면 작동을 멈출 것입니다. –

+0

모든 생성물에 대해 실행되는 작업은'UIEvents.Context.TOPIC_CONTEXT'이지만 다른 시간에도 실행될 수 있습니다. –