2010-05-11 7 views
3

닫으려는 Eclipse 애플리케이션이 있습니다. 캐치는 머리가없는 응용 프로그램입니다, 그래서 다음과 같은 방법을 사용할 수 없습니다 :Eclipse 애플리케이션 닫기 프로그래밍 방식으로

나는 완전히 응용 프로그램을 종료하는 데 사용할 수있는 어떤 대안
PlatformUI.getWorkbench().close(); 

?

  • org.eclipse.core.runtime

그리고 그것에 대해 수 있습니다 :

내 주요 플러그인, 제품 및 응용 프로그램을 정의하는 사람은, 다음과 같은 종속성이 포함되어 있습니다. 내 응용 프로그램을 정의하려면

  • org.eclipse.core.runtime.applications

:

내가이 확장 점을 사용합니다.

나는 그것에 대한 스윙 UI를 만들고 특정 프로세스가 완료되거나 사용자 작업의 결과로 응용 프로그램을 닫을 수 있기를 원합니다. 이클립스에서 API를 수행 할 수있는 API가 있는지, 아니면이 경우 UI를 독자적으로 처리하는지 궁금하다. IApplication을 구현하는 클래스에서 빠져 나와 애플리케이션을 종료해야 하는가?

답변

1

서비스가 ResourcesPlugin 일 수 있습니까?

정지 방법의 예 (나는 그것이 AbstractUI 클래스 알지만, 그것은 기본적으로 Plugin, 당신은 플러그인에서 이러한 클래스의 유도가 있다면, 당신은 org.osgi.framework.BundleActivator#stop 방법을 구현할 수에 대한 this class를 참조하십시오.

/** 
* Shuts down this plug-in and discards all plug-in state. 
* 
* @exception CoreException 
*    If this method fails to shut down this plug-in. 
* 
* @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext) 
*/ 
public final void stop(BundleContext context) throws Exception { 
    try { 

     /* Unregister as a save participant */ 
     if (ResourcesPlugin.getWorkspace() != null) { 
      ResourcesPlugin.getWorkspace().removeSaveParticipant(this); 
     } 

    } catch (Exception e) { 
     throw new CoreException(new Status(IStatus.ERROR, 
      getSymbolicName(), CommonUIStatusCodes.PLUGIN_SHUTDOWN_FAILURE, 
      getShutdownErrorMessage(getPluginName()), e)); 
    } finally { 
     super.stop(context); 
    } 
} 

+0

사실 (분명히, CommonUIStatusCodes 사용하지 않음), 중 자원 플러그인을 사용하지 않는 내 응용 프로그램 : D 다른 가능성은 –

+1

는 @Mario :? 그것은 순수한 OSGI 플러그인 다음 – VonC

+0

은 좀 더 추가했습니다있다 정보. 이제부터 나는 tought about about Workbench가 없기 때문에 아마 이클립스 방식이 없다는 것을 알았다. 나는 UI를위한 자신의 물건을 만들고 있는데, 그래서 나는 그것을 직접 처리해야한다. –

관련 문제