use of com.vaadin.v7.ui.Grid in project charts by vaadin.
the class ChartsDemoUI method init.
@Override
protected void init(VaadinRequest request) {
initGATracker();
tabSheet = new TabSheet();
tabSheet.addSelectedTabChangeListener(new TabSheet.SelectedTabChangeListener() {
@Override
public void selectedTabChange(TabSheet.SelectedTabChangeEvent event) {
com.vaadin.ui.JavaScript.eval("setTimeout(function(){prettyPrint();},300);");
}
});
tabSheet.setSizeFull();
tabSheet.addStyleName(ValoTheme.TABSHEET_PADDED_TABBAR);
Link homepage = new Link("Home Page", new ExternalResource("https://vaadin.com/components/vaadin-charts"));
Link javadoc = new Link("JavaDoc", new ExternalResource("https://vaadin.com/api/com.vaadin/vaadin-charts/" + getVersion() + "/"));
Link manual = new Link("Manual", new ExternalResource("https://vaadin.com/docs/v8/charts/charts-overview.html"));
Link pricing = new Link("Pricing", new ExternalResource("https://vaadin.com/pricing"));
Label version = new Label("Version " + getVersion());
version.addStyleName("version");
HorizontalLayout links = new HorizontalLayout(homepage, pricing, javadoc, manual);
links.setSpacing(true);
links.addStyleName("links");
final HorizontalSplitPanel horizontalSplitPanel = new HorizontalSplitPanel();
horizontalSplitPanel.setSecondComponent(tabSheet);
horizontalSplitPanel.setSplitPosition(300, Unit.PIXELS);
horizontalSplitPanel.addStyleName("main-layout");
ChartOptions.get().setTheme(new ValoLightTheme());
themeSelector = new ComboBox("Charts Theme:");
themeSelector.addStyleName("theme-selector");
themeSelector.addStyleName(ValoTheme.COMBOBOX_SMALL);
themeSelector.setTextInputAllowed(false);
com.vaadin.addon.charts.model.style.Theme defaultTheme = new ValoLightTheme();
Map<com.vaadin.addon.charts.model.style.Theme, String> mapThemes = new HashMap<>();
com.vaadin.addon.charts.model.style.Theme[] themes = new com.vaadin.addon.charts.model.style.Theme[] { defaultTheme, new ValoDarkTheme(), new VaadinTheme(), new HighChartsDefaultTheme(), new GridTheme(), new GrayTheme(), new SkiesTheme() };
mapThemes.put(themes[0], "Valo Light");
mapThemes.put(themes[1], "Valo Dark");
mapThemes.put(themes[2], "Vaadin");
mapThemes.put(themes[3], "HighCharts");
mapThemes.put(themes[4], "Grid");
mapThemes.put(themes[5], "Gray");
mapThemes.put(themes[6], "Skies");
themeSelector.setEmptySelectionAllowed(false);
themeSelector.setItems(themes);
themeSelector.setSelectedItem(defaultTheme);
themeSelector.setItemCaptionGenerator(mapThemes::get);
themeSelector.addSelectionListener(e -> {
ChartOptions.get().setTheme(e.getValue());
});
final HierarchicalContainer container = getContainer();
VerticalLayout content = new VerticalLayout();
content.setSpacing(true);
content.setMargin(false);
Label logo = new Label("Vaadin Charts for Vaadin 8");
logo.setWidth("100%");
logo.addStyleName("h3");
logo.addStyleName("logo");
TextField filterField = new TextField();
filterField.setPlaceholder("Filter examples");
filterField.setIcon(FontAwesome.SEARCH);
filterField.addStyleName("filter");
filterField.setWidth("100%");
filterField.addValueChangeListener(e -> {
container.removeAllContainerFilters();
String text = e.getValue();
if (text != null && !text.isEmpty()) {
expandForFiltering();
container.addContainerFilter("searchName", text, true, false);
} else {
restoreExpandedStates();
}
});
tree = new Tree();
tree.setImmediate(true);
tree.setContainerDataSource(container);
tree.setItemCaptionPropertyId("displayName");
tree.setNullSelectionAllowed(false);
tree.setWidth("100%");
tree.addValueChangeListener(new Property.ValueChangeListener() {
@Override
public void valueChange(Property.ValueChangeEvent event) {
Object value = event.getProperty().getValue();
if (value instanceof Class) {
updateTabSheet((Class) value);
} else {
tree.expandItemsRecursively(value);
}
}
});
Button trial = new Button("Start Free Trial");
trial.addStyleName(ValoTheme.BUTTON_PRIMARY);
trial.addStyleName(ValoTheme.BUTTON_TINY);
trial.addClickListener(e -> {
getUI().getPage().open("https://vaadin.com/trial", "_blank");
});
content.addComponents(logo, links, trial, filterField, tree, version);
content.setComponentAlignment(trial, Alignment.MIDDLE_CENTER);
horizontalSplitPanel.setFirstComponent(content);
selectItem();
Page.getCurrent().addUriFragmentChangedListener(new Page.UriFragmentChangedListener() {
@Override
public void uriFragmentChanged(Page.UriFragmentChangedEvent event) {
selectItem();
}
});
setContent(new CssLayout() {
{
setSizeFull();
addComponent(horizontalSplitPanel);
addComponent(themeSelector);
}
});
if (tracker != null) {
tracker.trackPageview("/charts");
}
}
use of com.vaadin.v7.ui.Grid in project ANNIS by korpling.
the class AnnisUITest method tokenSearchPcc2.
@Test
void tokenSearchPcc2() throws Exception {
executeTokenSearch("pcc2", 399, 2);
// Test that the cell values have the correct token value
SingleResultPanel resultPanel = _find(SingleResultPanel.class).get(0);
KWICComponent kwicVis = _get(resultPanel, KWICComponent.class);
AnnotationGrid kwicGrid = _get(kwicVis, AnnotationGrid.class);
ArrayList<Row> tokens = kwicGrid.getRowsByAnnotation().get("tok");
assertEquals(1, tokens.size());
assertEquals(Arrays.asList("Feigenblatt", "Die", "Jugendlichen", "in", "Zossen", "wollen"), tokens.get(0).getEvents().stream().map(GridEvent::getValue).collect(Collectors.toList()));
// Check the annotation values are shown
ArrayList<Row> lemmaRows = kwicGrid.getRowsByAnnotation().get("tiger::lemma");
assertEquals(1, lemmaRows.size());
assertEquals(Arrays.asList("Feigenblatt", "der", "jugendliche", "in", "Zossen", "wollen"), lemmaRows.get(0).getEvents().stream().map(GridEvent::getValue).collect(Collectors.toList()));
ArrayList<Row> posRows = kwicGrid.getRowsByAnnotation().get("tiger::pos");
assertEquals(1, posRows.size());
assertEquals(Arrays.asList("NN", "ART", "NN", "APPR", "NE", "VMFIN"), posRows.get(0).getEvents().stream().map(GridEvent::getValue).collect(Collectors.toList()));
// Test that we can show the first metadata for the button
List<Button> infoButtons = _find(Button.class, spec -> spec.withPredicate(b -> "Show metadata".equals(b.getDescription())));
assertEquals(10, infoButtons.size());
_click(infoButtons.get(0));
Window infoWindow = _get(Window.class);
assertEquals("Info for salt:/pcc2/11299", infoWindow.getCaption());
awaitCondition(30, () -> !_find(infoWindow, Accordion.class).isEmpty());
Accordion metaAccordion = _get(infoWindow, Accordion.class);
@SuppressWarnings("rawtypes") List<Grid> metadataGrids = _find(metaAccordion, Grid.class);
assertEquals(2, metadataGrids.size());
assertEquals("11299 (document)", metaAccordion.getTab(metadataGrids.get(0)).getCaption());
assertEquals("pcc2 (corpus)", metaAccordion.getTab(metadataGrids.get(1)).getCaption());
@SuppressWarnings("unchecked") Annotation firstAnno = (Annotation) GridKt._get(metadataGrids.get(0), 0);
assertEquals("Dokumentname", firstAnno.getKey().getName());
assertEquals("pcc-11299", firstAnno.getVal());
@SuppressWarnings("unchecked") Annotation secondAnno = (Annotation) GridKt._get(metadataGrids.get(0), 1);
assertEquals("Genre", secondAnno.getKey().getName());
assertEquals("Politik", secondAnno.getVal());
@SuppressWarnings("unchecked") Annotation thirdAnno = (Annotation) GridKt._get(metadataGrids.get(0), 2);
assertEquals("Titel", thirdAnno.getKey().getName());
assertEquals("Feigenblatt", thirdAnno.getVal());
// Disable the part-of-speech token annotation display
TreeSet<String> visibleAnnos = new TreeSet<>(Arrays.asList("tiger::lemma"));
resultPanel.setVisibleTokenAnnosVisible(visibleAnnos);
assertNull(kwicGrid.getRowsByAnnotation().get("tiger:pos"));
assertNotNull(kwicGrid.getRowsByAnnotation().get("tiger::lemma"));
// Change the context and test that the KWIC displayed also changed
resultPanel.changeContext(1, 6, false);
// Since the action will replace the whole result panel, we have to get all
// variables again.
List<String> expectedTokens = Arrays.asList("Feigenblatt", "Die", "Jugendlichen", "in", "Zossen", "wollen", "ein");
awaitCondition(10, () -> {
List<SingleResultPanel> allResults = _find(SingleResultPanel.class);
if (allResults.isEmpty()) {
return false;
}
List<AnnotationGrid> annoGrids = _find(allResults.get(0), AnnotationGrid.class);
if (annoGrids.isEmpty()) {
return false;
}
ArrayList<Row> tokensUpdatedContext = annoGrids.get(0).getRowsByAnnotation().get("tok");
if (tokensUpdatedContext.isEmpty()) {
return false;
}
List<String> actualTokens = tokensUpdatedContext.get(0).getEvents().stream().map(GridEvent::getValue).collect(Collectors.toList());
return expectedTokens.equals(actualTokens);
});
}
use of com.vaadin.v7.ui.Grid in project ANNIS by korpling.
the class AnnisUITest method tokenSearchDialog.
@Test
void tokenSearchDialog() throws Exception {
executeTokenSearch("dialog.demo", 102, 1);
// Test that there is a grid visualizer
SingleResultPanel resultPanel = _find(SingleResultPanel.class).get(0);
GridComponent gridVis = _get(resultPanel, GridComponent.class, spec -> spec.withPredicate(g -> !(g instanceof KWICComponent)));
AnnotationGrid annoGrid = _get(gridVis, AnnotationGrid.class);
ArrayList<Row> tokens = annoGrid.getRowsByAnnotation().get("default_ns::norm0");
assertEquals(1, tokens.size());
assertEquals(Arrays.asList("äh", "fang", "einfach", "mal", "an"), tokens.get(0).getEvents().stream().map(GridEvent::getValue).collect(Collectors.toList()));
// Open the video visualizer and check that media component is loaded
Button btOpenVisualizer = _get(resultPanel, Button.class, spec -> spec.withCaption("video"));
_click(btOpenVisualizer);
awaitCondition(120, () -> !_find(resultPanel, MediaElementPlayer.class).isEmpty());
MediaElementPlayer player = _get(resultPanel, MediaElementPlayer.class, spec -> spec.withCount(1));
assertEquals("video/webm", player.getState().getMimeType());
assertEquals("/Binary?file=dialog.demo%2Fdialog.demo%2Fdialog.demo.webm&toplevelCorpusName=dialog.demo", player.getState().getResourceURL());
// Close the visualizer again
_click(btOpenVisualizer);
awaitCondition(120, () -> _find(resultPanel, MediaElementPlayer.class).isEmpty());
}
use of com.vaadin.v7.ui.Grid in project SORMAS-Project by hzi-braunschweig.
the class EventParticipantsView method createTopBar.
public HorizontalLayout createTopBar() {
HorizontalLayout topLayout = new HorizontalLayout();
topLayout.setSpacing(true);
topLayout.setWidth("100%");
VerticalLayout exportLayout = new VerticalLayout();
{
exportLayout.setSpacing(true);
exportLayout.setMargin(true);
exportLayout.addStyleName(CssStyles.LAYOUT_MINIMAL);
exportLayout.setWidth(250, Unit.PIXELS);
}
// import
if (UserProvider.getCurrent().hasUserRight(UserRight.EVENTPARTICIPANT_IMPORT)) {
Button importButton = ButtonHelper.createIconButton(Captions.actionImport, VaadinIcons.UPLOAD, e -> {
Window popupWindow = VaadinUiUtil.showPopupWindow(new EventParticipantImportLayout(getEventRef()));
popupWindow.setCaption(I18nProperties.getString(Strings.headingImportEventParticipant));
popupWindow.addCloseListener(c -> this.grid.reload());
}, ValoTheme.BUTTON_PRIMARY);
addHeaderComponent(importButton);
}
// export
PopupButton exportPopupButton = ButtonHelper.createIconPopupButton(Captions.export, VaadinIcons.DOWNLOAD, exportLayout);
addHeaderComponent(exportPopupButton);
{
StreamResource streamResource = GridExportStreamResource.createStreamResourceWithSelectedItems(grid, () -> this.grid.getSelectionModel() instanceof MultiSelectionModelImpl ? this.grid.asMultiSelect().getSelectedItems() : null, ExportEntityName.EVENT_PARTICIPANTS);
addExportButton(streamResource, exportPopupButton, exportLayout, VaadinIcons.TABLE, Captions.exportBasic, Strings.infoBasicExport);
}
{
StreamResource extendedExportStreamResource = EventParticipantDownloadUtil.createExtendedEventParticipantExportResource(grid.getCriteria(), this::getSelectedRows, null);
addExportButton(extendedExportStreamResource, exportPopupButton, exportLayout, VaadinIcons.FILE_TEXT, Captions.exportDetailed, Descriptions.descDetailedExportButton);
}
{
Button btnCustomExport = ButtonHelper.createIconButton(Captions.exportCustom, VaadinIcons.FILE_TEXT, e -> {
Window customExportWindow = VaadinUiUtil.createPopupWindow();
ExportConfigurationsLayout customExportsLayout = new ExportConfigurationsLayout(ExportType.EVENT_PARTICIPANTS, ImportExportUtils.getEventParticipantExportProperties(EventParticipantDownloadUtil::getPropertyCaption, FacadeProvider.getConfigFacade().getCountryLocale()), customExportWindow::close);
customExportsLayout.setExportCallback((exportConfig) -> Page.getCurrent().open(EventParticipantDownloadUtil.createExtendedEventParticipantExportResource(grid.getCriteria(), this::getSelectedRows, exportConfig), null, true));
customExportWindow.setWidth(1024, Unit.PIXELS);
customExportWindow.setCaption(I18nProperties.getCaption(Captions.exportCustom));
customExportWindow.setContent(customExportsLayout);
UI.getCurrent().addWindow(customExportWindow);
exportPopupButton.setPopupVisible(false);
}, ValoTheme.BUTTON_PRIMARY);
btnCustomExport.setDescription(I18nProperties.getString(Strings.infoCustomExport));
btnCustomExport.setWidth(100, Unit.PERCENTAGE);
exportLayout.addComponent(btnCustomExport);
}
filterForm = new EventParticipantsFilterForm();
filterForm.addValueChangeListener(e -> {
if (!filterForm.hasFilter()) {
navigateTo(null);
}
});
filterForm.addResetHandler(e -> {
ViewModelProviders.of(EventParticipantsView.class).remove(EventParticipantCriteria.class);
navigateTo(null);
});
filterForm.addApplyHandler(e -> navigateTo(criteria));
topLayout.addComponent(filterForm);
// Bulk operation dropdown
if (UserProvider.getCurrent().hasUserRight(UserRight.PERFORM_BULK_OPERATIONS_EVENTPARTICIPANT)) {
topLayout.setWidth(100, Unit.PERCENTAGE);
List<MenuBarHelper.MenuBarItem> bulkActions = new ArrayList<>();
bulkActions.add(new MenuBarHelper.MenuBarItem(I18nProperties.getCaption(Captions.bulkEventParticipantsToContacts), VaadinIcons.HAND, mi -> {
grid.bulkActionHandler(items -> {
EventDto eventDto = FacadeProvider.getEventFacade().getEventByUuid(getEventRef().getUuid(), false);
ControllerProvider.getContactController().openLineListingWindow(eventDto, items);
}, true);
}));
if (UserProvider.getCurrent().hasUserRight(UserRight.EVENTPARTICIPANT_DELETE)) {
bulkActions.add(new MenuBarHelper.MenuBarItem(I18nProperties.getCaption(Captions.bulkDelete), VaadinIcons.TRASH, mi -> {
grid.bulkActionHandler(items -> {
ControllerProvider.getEventParticipantController().deleteAllSelectedItems(items, () -> navigateTo(criteria));
}, true);
}));
}
if (isDocGenerationAllowed()) {
bulkActions.add(new MenuBarHelper.MenuBarItem(I18nProperties.getCaption(Captions.bulkActionCreatDocuments), VaadinIcons.FILE_TEXT, mi -> {
grid.bulkActionHandler(items -> {
List<EventParticipantReferenceDto> references = grid.asMultiSelect().getSelectedItems().stream().map(EventParticipantIndexDto::toReference).collect(Collectors.toList());
if (references.size() == 0) {
new Notification(I18nProperties.getString(Strings.headingNoEventParticipantsSelected), I18nProperties.getString(Strings.messageNoEventParticipantsSelected), Notification.Type.WARNING_MESSAGE, false).show(Page.getCurrent());
return;
}
EventDto eventDto = FacadeProvider.getEventFacade().getEventByUuid(getEventRef().getUuid(), false);
ControllerProvider.getDocGenerationController().showBulkEventParticipantQuarantineOrderDocumentDialog(references, eventDto.getDisease());
});
}));
}
MenuBar bulkOperationsDropdown = MenuBarHelper.createDropDown(Captions.bulkActions, bulkActions);
topLayout.addComponent(bulkOperationsDropdown);
topLayout.setComponentAlignment(bulkOperationsDropdown, Alignment.TOP_RIGHT);
}
topLayout.addStyleName(CssStyles.VSPACE_3);
return topLayout;
}
Aggregations