/ / Відкрийте вікно завантаження, натиснувши MenuItem - java, menu, upload, vaadin

Відкрийте вікно завантаження, натиснувши на MenuItem - java, menu, upload, vaadin

Я хочу відкрити вікно завантаження з елемента Upload, натиснувши MenuItem. Чи можливо це? Інша ідея - додати елемент завантаження в MenuBar, але я думаю, що це неможливо, правда?

Дякую за допомогу!

Відповіді:

2 для відповіді № 1

Можливо, невеликий javascript може вам допомогти:

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;
}

1 для відповіді № 2

Найпростіший варіант використання MenuBar, MenuItem, Window and Upload, макетування залишається за вами:

    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);
}
});