Skip to content

Instantly share code, notes, and snippets.

View OlliTietavainenVaadin's full-sized avatar

Olli Tietäväinen OlliTietavainenVaadin

View GitHub Profile
@OlliTietavainenVaadin
OlliTietavainenVaadin / missing_modules.py
Created September 30, 2025 09:47
Take the output of `mvn dependency:tree -Dverbose` and a list of modules and check existence of the modules in the dependency tree
#!/usr/bin/env python3
import argparse
import re
from typing import Set, List
COORD_RE = re.compile(r'([A-Za-z0-9_.-]+):([A-Za-z0-9_.-]+):[a-zA-Z0-9_.-]+:')
def read_text(path: str) -> str:
with open(path, 'r', encoding='utf-8', errors='ignore') as f:
return f.read()
package org.vaadin.example;
import com.vaadin.flow.component.ClickEvent;
import com.vaadin.flow.component.ComponentEventListener;
import com.vaadin.flow.component.Unit;
import com.vaadin.flow.component.contextmenu.MenuItem;
import com.vaadin.flow.component.contextmenu.SubMenu;
import com.vaadin.flow.component.dependency.CssImport;
import com.vaadin.flow.component.menubar.MenuBar;
import com.vaadin.flow.component.notification.Notification;
package com.example.application.views.helloworld;
import com.example.application.views.MainLayout;
import com.vaadin.flow.component.Key;
import com.vaadin.flow.component.ShortcutRegistration;
import com.vaadin.flow.component.Shortcuts;
import com.vaadin.flow.component.UI;
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.dialog.Dialog;
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
package com.example.application.views.dashboard;
import com.example.application.views.MainLayout;
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.charts.Chart;
import com.vaadin.flow.component.charts.model.ChartType;
import com.vaadin.flow.component.charts.model.Configuration;
import com.vaadin.flow.component.charts.model.ListSeries;
import com.vaadin.flow.component.charts.model.PlotOptionsArea;
import com.vaadin.flow.component.charts.model.PointPlacement;
public class MyUI extends UI {
Bean bean = new Bean();
@Override
protected void init(VaadinRequest vaadinRequest) {
final VerticalLayout layout = new VerticalLayout();
final Label infoLabel = new Label();
infoLabel.setWidth(240.0f, Unit.PIXELS);
public static class Employee {
private String title;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
TextField with always floating label:
<vaadin-text-field theme="always-float-label" label="Label" placeholder="Placeholder"></vaadin-text-field>
Button with not-all caps text:
inside `<style include="shared-styles">` block of the template HTML, insert
vaadin-button {
text-transform: none;
package org.vaadin.olli;
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.dependency.HtmlImport;
import com.vaadin.flow.component.grid.Grid;
import com.vaadin.flow.component.html.Span;
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.data.provider.ListDataProvider;
import com.vaadin.flow.data.renderer.ComponentRenderer;
package org.vaadin;
import com.vaadin.addon.charts.Chart;
import com.vaadin.addon.charts.model.*;
import com.vaadin.addon.charts.model.style.SolidColor;
import com.vaadin.annotations.Theme;
import com.vaadin.annotations.VaadinServletConfiguration;
import com.vaadin.server.VaadinRequest;
import com.vaadin.server.VaadinServlet;
import com.vaadin.ui.Label;
package org.vaadin;
import com.vaadin.addon.charts.Chart;
import com.vaadin.addon.charts.model.*;
import com.vaadin.addon.charts.model.style.SolidColor;
import com.vaadin.annotations.Theme;
import com.vaadin.annotations.VaadinServletConfiguration;
import com.vaadin.server.VaadinRequest;
import com.vaadin.server.VaadinServlet;
import com.vaadin.ui.Label;