Chcem otvoriť okno na upload z prvku Upload kliknutím na MenuItem. Je to možné? Ďalším nápadom je pridať prvok nahrávania do MenuBar, ale myslím si, že je to nemožné, však?
Vďaka za pomoc!
odpovede:
2 pre odpoveď č. 1Možno by vám mohol pomôcť malý 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);
Ak chcete skryť nahrávanie:
.v-slot-my-upload {
display: none;
}
1 pre odpoveď č. 2
Najjednoduchší prípad použitia MenuBar, MenuItem, Window a Upload, rozloženie je ponechané na vás:
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);
}
});