2013-07-30 4 views
0

rcp 응용 프로그램에서는 eclipse 프레임 워크 (시작 화면의 로그인 기능)를 사용하여 로그인 기능을 구현했습니다.로그인 화면 무시

이제 VM 인수를 제공하여이 로그인 (시작 화면 포함)을 무시합니까?

는 VM 인수가 올바른 사용자 이름과 암호를 제공하는 경우, 우리는 로그인 페이지를

모든 아이디어 (로그인 기능은 시작 화면 자체에 있기 때문에이 시작 화면 포함) 보여주고 싶지 않아?

답변

0

스플래시 화면 로그인 대화 상자는 SplashScreenHandler를 사용하여 구현됩니다. 이것은 실제로 응용 프로그램 번들에 추가됩니다. 스플래쉬 화면 핸들러의 소스 코드를보고 VM 인수를 추가하는 것이 상대적으로 쉽습니다.

-noSplash 명령 줄 옵션을 사용하여 시작 화면을 비활성화 할 수도 있습니다.

+0

실행 구성에서 VM 인수를 전달하고 Eclipse 프레임 워크가 자체적으로 로그인 페이지를 우회하는지 확인하고있었습니다 –

+0

http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fmisc%2Fruntime-options.html – parasietje

+0

당신이 찾고있는 옵션은 '- noSplash ' – parasietje

1

스플래시 화면을 건너 뛸 수 있는지 (스레 쉬 스크린을 건너 뛸 수 있는지에 대해서는 확실하지 않음) 스플래시 화면에서 스플래시 화면을 분할하는 경우 로그인 대화 상자를 건너 뛰어도됩니다.

어떻게 든 그와 같은 응용 프로그램 시작에 대화를 만듭니다 그런 다음 필요한 시스템 등록 정보를 확인하여 대화 상자를 보여 건너와 속성 값으로 사용자를 인증 할 수

Application implements IApplication { 

@Override 
public Object start(IApplicationContext context) throws Exception { 
    Display display = PlatformUI.createDisplay(); 
    try { 

     LoginDialog dialog = new LoginDialog(display.getActiveShell()); 
     if (dialog.open() == Dialog.CANCEL) { 
      return EXIT_OK; 
     } 

     int code = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor()); 

     // Exit the application with an appropriate return code. 
     return code == PlatformUI.RETURN_RESTART ? EXIT_RESTART : EXIT_OK; 

    } finally { 

     if (display != null) { 
      display.dispose(); 
     } 
    } 
} 

:

String username = System.getProperty("username"); 
    String pwd = System.getProperty("password"); 
    if (username != null && pwd != null) { 
     // do something with username and password 
    } else { 
     LoginDialog dialog = new LoginDialog(display.getActiveShell()); 
     if (dialog.open() == Dialog.CANCEL) { 
      return EXIT_OK; 
      } 
    } 

을 또한, Platform.endSplash(); 도움이 될 수 있습니다.

+0

음, 로그인 부분을 스킵 할 수 있었지만 스플래시 화면 자체는 스킵 할 수 없었습니다. 왜냐하면, 컨트롤이 Application의 시작 메소드에 오기 전에, 스플래쉬가 팝업 될 것이기 때문입니다! 따라서 비록 start 메소드에서 Platform.endSplash()를 호출하더라도 아무 효과가 없습니다! 귀하의 포인터를 주셔서 감사합니다 –

+0

사용자 지정 스플래시 처리기를 만들려고 할 수도 있는데, 표시되지 않거나 일찍 닫을 수 있습니까? 그렇지 않으면 앞에서 언급했듯이 조건부로 스플래시를 건너 뛸 수있는 방법이 없습니다. –

+0

예, 확인해야 할 수도 있습니다. 어쨌든, 제안을 주셔서 감사합니다 –