2014-10-08 2 views
3

UploadItem에서 UploadWindow를 열려면 MenuItem을 클릭하십시오. 이것이 가능한가? 또 다른 아이디어는 MenuBar에 업로드 요소를 추가하는 것이지만 불가능하다고 생각합니다.MenuItem을 클릭하여 업로드 창 열기

도움 주셔서 감사합니다.

답변

2

어쩌면 약간의 자바 스크립트는 도움이 :

Upload upload = new Upload(); 
upload.setImmediate(true); // if you want to start upload after selection 
upload.addStyleName("my-upload"); 
MenuBar menuBar = new MenuBar(); 
menuBar.addItem("Caption", new Command() { 
    private static final long serialVersionUID = 1L; 

    @Override 
    public void menuSelected(MenuItem selectedItem) { 
     JavaScript.getCurrent().execute(
      "document.getElementsByClassName('gwt-FileUpload')[0].click()"); 
    } 
}); 
addComponent(upload); 
addComponent(menuBar); 

당신은 업로드를 숨기려면 :

.v-slot-my-upload { 
    display: none; 
} 
+0

감사합니다! 업로드를 숨기려면'.v-upload {display : none; visibility : 숨김;}'. 힌트가 작동하지 않습니다. ( – Sheldon

1

은의 도구 모음의 MenuItem, 창 및 업로드의 간단한 유스 케이스,하고 설계하는 당신을 위해 남아 :

MenuBar menuBar = new MenuBar(); 
    final Window window = new Window(); 
    window.setContent(new Upload()); 
    menuBar.addItem("Caption", new Command() 
    { 
     @Override 
     public void menuSelected(MenuItem selectedItem) 
     { 
      UI.getCurrent().addWindow(window); 
     } 
    }); 
+0

답변 해 주셔서 감사합니다. 다른 창없이 파일을 직접 열 수 있습니까? – Sheldon

+1

하나의 옵션은 레이아웃에 직접 업로드를 추가하고 CSS를 통해 스타일을 지정하여 일반 com.ui.vaadin.Button처럼 보이게하고 기본 업로드 버튼을 다음과 같이 시각적으로 제거합니다. .gwt-FileUpload { display : none; } – Zigac

+0

그러나 메뉴 바에 버튼을 추가 할 수 없습니다. ( – Sheldon