@VEEvent

targetWidget 특성을 사용하는 Rich UI 위젯을 작성하는 경우(또는 외부 유형 위젯을 작성하는 경우) 다른 경우에는 정의되지 않는 이벤트 유형을 선언할 수 있습니다. 이러한 방식으로 비즈니스 개발자가 태스크 순서를 정의하는 데 대해 좀 더 명확하게 사고할 수 있습니다. 또한 개발자는 이벤트 보기에서 이벤트 핸들러를 지정할 수 있습니다.

다음 예에서는 @VEEvent 특성을 사용하는 사용자 정의 단추(MyButton)에 대한 사용을 보여줍니다. 사용자 작업공간에서 이 예를 사용하는 경우 EGL 개발자가 EGL 편집기를 다음 용도로 사용할 수 있음을 참고하십시오. MyButton 유형의 단추를 작성하고 새로 정의된 이벤트(onPreClickonPostClick)에 대한 이벤트 핸들러를 지정할 수 있습니다.

다음은 MyButton 유형의 단추에 액세스하는 핸들러입니다.
package pkg;

import com.ibm.egl.rui.widgets.Button; 

handler MyHandler type RUIhandler {initialUI = [ someButton ]}
		
	  someButton MyButton{text = "fresh", 
	                      onPreClick ::= respondToPreClick, 
	                      onClick ::= respondToClick, 
	                      onPostClick ::= respondToPostClick};
		
   function respondToPreClick(e Event in)
      sysLib.writeStdout("in pre"); 
   end
	
   function respondToClick(e Event in) 
      sysLib.writeStdout("in click");
   end
	
   function respondToPostClick(e Event in) 
      sysLib.writeStdout("in post");
   end	
		
end
다음은 MyButton에 대한 정의입니다.
package pkg;

import com.ibm.egl.rui.widgets.Button;
handler MyButton type RUIWidget {

   targetWidget = internalButton, 
   @VEWidget{ 
		   category = "New EGL Widgets",
		   template = "pkg.myButton{ text=\"myButton\" }"}
   }
	
   text string {@EGLProperty{setMethod = setText, 
                             getMethod = getText}, 
                @VEProperty{}};

   internalButton Button{onClick ::= respondToClick};

   onPreClick EventHandler[] {@VEEvent{}};
   onClick EventHandler[] {@VEEvent{}}; 
   onPostClick EventHandler[] {@VEEvent{}};	

   private function setText(text String in)
		   internalButton.text = text;
   end

   private function getText() returns (String)
		   return ( internalButton.text );
   end
   
   private function respondToClick(e Event in)

      preSize int = onPreClick.getSize();
      clickSize int = onClick.getSize();
      postSize int = onPostClick.getSize();	 
   
      for (i int from 1 to preSize by 1)
	        OnPreClick[i](e);
      end
	   
      for (i int from 1 to clickSize by 1)
	        OnClick[i](e);		  	
      end
	   
      for (i int from 1 to postSize by 1)
         OnPostClick[i](e);		
      end
   end
end

@VEEvent에 대한 변경사항은 팔레트와 파일을 새로 고치는 경우에만 EGL 편집기에서 파일에 사용할 수 있습니다. 팔레트를 새로 고치려면 디자인 표면에서 팔레트 도구 새로 고치기를 클릭하십시오(“디자인 표면의 도구 사용” 참조). 파일을 새로 고치려면 미리보기 탭의 웹 페이지 도구 새로 고치기를 클릭하십시오(“EGL 편집기에서 웹 애플리케이션 실행” 참조).