Skip to content

Commit 07ebeb1

Browse files
committed
Add class-names/extract CSS
1 parent 828ae0d commit 07ebeb1

File tree

12 files changed

+119
-9
lines changed

12 files changed

+119
-9
lines changed

vaadin-grid-filter/src/main/java/software/xdev/vaadin/gridfilter/AddFilterComponentsButtons.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,21 @@
2020

2121
import com.vaadin.flow.component.button.Button;
2222
import com.vaadin.flow.component.button.ButtonVariant;
23+
import com.vaadin.flow.component.dependency.CssImport;
2324
import com.vaadin.flow.component.icon.VaadinIcon;
2425
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
2526

2627
import software.xdev.vaadin.gridfilter.filtercomponents.FilterComponentSupplier;
2728

2829

30+
@CssImport(GridFilterStyles.LOCATION)
2931
public class AddFilterComponentsButtons extends HorizontalLayout
3032
{
33+
public AddFilterComponentsButtons()
34+
{
35+
this.addClassNames(GridFilterStyles.ADD_FILTER_COMPONENTS_BUTTONS);
36+
}
37+
3138
public void update(
3239
final Collection<FilterComponentSupplier> filterComponentSuppliers,
3340
final Consumer<FilterComponentSupplier> onAddButtonClicked,
@@ -41,6 +48,7 @@ public void update(
4148
final Button btn =
4249
new Button(s.display(), VaadinIcon.PLUS.create(), ev -> onAddButtonClicked.accept(s));
4350
btn.addThemeVariants(ButtonVariant.LUMO_SMALL);
51+
btn.addClassNames(GridFilterStyles.ADD_FILTER_COMPONENTS_BUTTONS_BUTTON);
4452
return btn;
4553
})
4654
.forEach(this::add);

vaadin-grid-filter/src/main/java/software/xdev/vaadin/gridfilter/FilterComponentWrapper.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@
1919

2020
import com.vaadin.flow.component.button.Button;
2121
import com.vaadin.flow.component.button.ButtonVariant;
22+
import com.vaadin.flow.component.dependency.CssImport;
2223
import com.vaadin.flow.component.icon.VaadinIcon;
2324
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
2425

2526
import software.xdev.vaadin.gridfilter.filtercomponents.FilterComponent;
2627

2728

29+
@CssImport(GridFilterStyles.LOCATION)
2830
public class FilterComponentWrapper<T> extends HorizontalLayout
2931
{
3032
public FilterComponentWrapper(
@@ -34,12 +36,13 @@ public FilterComponentWrapper(
3436
{
3537
final Button btnDelete = new Button(VaadinIcon.TRASH.create(), ev -> onRemove.accept(this, component));
3638
btnDelete.addThemeVariants(ButtonVariant.LUMO_ERROR);
37-
btnDelete.getStyle().set("margin-left", "var(--lumo-space-s)");
39+
btnDelete.addClassNames(GridFilterStyles.FILTER_COMPONENT_WRAPPER_BTN_DELETE);
3840

3941
this.add(component, btnDelete);
4042

4143
this.setAlignItems(Alignment.CENTER);
4244
this.setSpacing(false);
45+
this.addClassNames(GridFilterStyles.FILTER_COMPONENT_WRAPPER);
4346

4447
if(fullWidth)
4548
{

vaadin-grid-filter/src/main/java/software/xdev/vaadin/gridfilter/FilterContainerComponent.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,14 @@
1818
import java.util.ArrayList;
1919
import java.util.List;
2020

21+
import com.vaadin.flow.component.dependency.CssImport;
2122
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
2223

2324
import software.xdev.vaadin.gridfilter.filtercomponents.FilterComponent;
2425

2526

27+
@SuppressWarnings("java:S1948")
28+
@CssImport(GridFilterStyles.LOCATION)
2629
public class FilterContainerComponent<T> extends VerticalLayout
2730
{
2831
protected final Runnable onValueUpdated;
@@ -39,6 +42,7 @@ public FilterContainerComponent(final Runnable onValueUpdated, final boolean sho
3942
this.setSpacing(false);
4043

4144
this.updateFilterConditionsContainerVisibility();
45+
this.addClassNames(GridFilterStyles.FILTER_CONTAINER);
4246
}
4347

4448
public void addFilterComponent(final FilterComponent<T, ?> newFilterConditionComponent)

vaadin-grid-filter/src/main/java/software/xdev/vaadin/gridfilter/GridFilter.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import com.vaadin.flow.component.checkbox.Checkbox;
3939
import com.vaadin.flow.component.datepicker.DatePicker;
4040
import com.vaadin.flow.component.datetimepicker.DateTimePicker;
41+
import com.vaadin.flow.component.dependency.CssImport;
4142
import com.vaadin.flow.component.grid.Grid;
4243
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
4344
import com.vaadin.flow.component.textfield.BigDecimalField;
@@ -72,10 +73,13 @@
7273

7374

7475
@SuppressWarnings("java:S1948")
76+
@CssImport(GridFilterStyles.LOCATION)
7577
public class GridFilter<T>
7678
extends VerticalLayout
7779
implements FilterComponentSerialization
7880
{
81+
protected static final int START_DEPTH = 1;
82+
7983
protected final List<Operation<?>> availableOperations = new ArrayList<>();
8084
protected final List<TypeValueComponentProvider<?>> availableTypeValueComponentProviders = new ArrayList<>();
8185
protected final Map<Class<? extends ValueContainer>, Set<ValueReUseAdapter<?>>> valueReUseAdapters =
@@ -104,6 +108,8 @@ public GridFilter(final Grid<T> grid)
104108

105109
this.setPadding(false);
106110
this.setSpacing(false);
111+
112+
this.addClassNames(GridFilterStyles.GRID_FILTER);
107113
}
108114

109115
@SuppressWarnings("java:S1452")
@@ -115,7 +121,7 @@ public GridFilter(final Grid<T> grid)
115121
this.valueReUseAdapters,
116122
this.filterComponentSuppliers,
117123
this::onFilterUpdate,
118-
1,
124+
START_DEPTH,
119125
this.maxNestedDepth);
120126
this.filterContainerComponent.addFilterComponent(filterComponent);
121127
return filterComponent;
@@ -149,7 +155,7 @@ protected void onAttach(final AttachEvent attachEvent)
149155
this.addFilterComponentButtons.update(
150156
this.filterComponentSuppliers,
151157
this::addFilterComponent,
152-
1,
158+
START_DEPTH,
153159
this.maxNestedDepth);
154160
}
155161

@@ -313,7 +319,7 @@ public <S> GridFilter<T> withFilterableField(
313319

314320
public GridFilter<T> withMaxNestedDepth(final int maxNestedDepth)
315321
{
316-
if(maxNestedDepth < 1)
322+
if(maxNestedDepth < START_DEPTH)
317323
{
318324
throw new IllegalArgumentException("Invalid depth");
319325
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package software.xdev.vaadin.gridfilter;
2+
3+
public final class GridFilterStyles
4+
{
5+
public static final String LOCATION = "./styles/grid-filter.css";
6+
7+
public static final String GRID_FILTER = "grid-filter";
8+
9+
public static final String FILTER_CONTAINER = GRID_FILTER + "-filter-container";
10+
public static final String FILTER_COMPONENT_WRAPPER = GRID_FILTER + "-filter-comp-wrapper";
11+
public static final String FILTER_COMPONENT_WRAPPER_BTN_DELETE = FILTER_COMPONENT_WRAPPER + "-btn-delete";
12+
public static final String ADD_FILTER_COMPONENTS_BUTTONS = GRID_FILTER + "-add-filter-comps-btns";
13+
public static final String ADD_FILTER_COMPONENTS_BUTTONS_BUTTON = ADD_FILTER_COMPONENTS_BUTTONS + "-btn";
14+
15+
private GridFilterStyles()
16+
{
17+
}
18+
}

vaadin-grid-filter/src/main/java/software/xdev/vaadin/gridfilter/filtercomponents/FilterComponent.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,12 @@
1919

2020
import com.vaadin.flow.component.Component;
2121
import com.vaadin.flow.component.Composite;
22+
import com.vaadin.flow.component.dependency.CssImport;
2223

24+
import software.xdev.vaadin.gridfilter.GridFilterStyles;
2325

26+
27+
@CssImport(GridFilterStyles.LOCATION)
2428
public abstract class FilterComponent<T, C extends Component>
2529
extends Composite<C>
2630
implements Predicate<T>, FilterComponentSerialization
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package software.xdev.vaadin.gridfilter.filtercomponents;
2+
3+
import software.xdev.vaadin.gridfilter.GridFilterStyles;
4+
5+
6+
public final class FilterComponentStyles
7+
{
8+
public static final String FILTER_COMPONENT = GridFilterStyles.GRID_FILTER + "-filter-comp";
9+
10+
private FilterComponentStyles()
11+
{
12+
}
13+
}

vaadin-grid-filter/src/main/java/software/xdev/vaadin/gridfilter/filtercomponents/block/FilterBlockComponent.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import software.xdev.vaadin.gridfilter.filtercomponents.FilterBlockComponentSerialization;
4141
import software.xdev.vaadin.gridfilter.filtercomponents.FilterComponent;
4242
import software.xdev.vaadin.gridfilter.filtercomponents.FilterComponentSerialization;
43+
import software.xdev.vaadin.gridfilter.filtercomponents.FilterComponentStyles;
4344
import software.xdev.vaadin.gridfilter.filtercomponents.FilterComponentSupplier;
4445

4546

@@ -86,8 +87,7 @@ public FilterBlockComponent(
8687
this.maxNestedDepth = maxNestedDepth;
8788

8889
final Span spBlockIdentifier = new Span(identifierName);
89-
spBlockIdentifier.setMinWidth("2.5em");
90-
spBlockIdentifier.getStyle().set("overflow-wrap", "break-word");
90+
spBlockIdentifier.addClassNames(FilterBlockComponentStyles.BLOCK_IDENTIFIER);
9191

9292
this.filterContainerComponent = new FilterContainerComponent<>(onValueUpdated, true);
9393

@@ -101,9 +101,9 @@ public FilterBlockComponent(
101101

102102
this.getContent().setPadding(false);
103103
this.getContent().setSpacing(false);
104-
this.getStyle().set("background-color", "var(--lumo-contrast-5pct)");
105-
this.getStyle().set("padding-left", "var(--lumo-space-xs)");
106-
this.getStyle().set("padding-right", "var(--lumo-space-xs)");
104+
this.getContent().addClassNames(
105+
FilterComponentStyles.FILTER_COMPONENT,
106+
FilterBlockComponentStyles.FILTER_BLOCK_COMPONENT);
107107
}
108108

109109
@SuppressWarnings("java:S1452")
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package software.xdev.vaadin.gridfilter.filtercomponents.block;
2+
3+
import software.xdev.vaadin.gridfilter.GridFilterStyles;
4+
5+
6+
public final class FilterBlockComponentStyles
7+
{
8+
public static final String FILTER_BLOCK_COMPONENT = GridFilterStyles.GRID_FILTER + "-filter-block-comp";
9+
public static final String BLOCK_IDENTIFIER = FILTER_BLOCK_COMPONENT + "-identifier";
10+
11+
private FilterBlockComponentStyles()
12+
{
13+
}
14+
}

vaadin-grid-filter/src/main/java/software/xdev/vaadin/gridfilter/filtercomponents/condition/FieldFilterConditionComponent.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import software.xdev.vaadin.gridfilter.business.value.ValueContainer;
4141
import software.xdev.vaadin.gridfilter.business.value.reuse.ValueReUseAdapter;
4242
import software.xdev.vaadin.gridfilter.filtercomponents.FilterComponent;
43+
import software.xdev.vaadin.gridfilter.filtercomponents.FilterComponentStyles;
4344

4445

4546
@SuppressWarnings("java:S1948")
@@ -74,12 +75,19 @@ public FieldFilterConditionComponent(
7475
this.cbField.setItemLabelGenerator(FilterableField::name);
7576
this.cbField.setItems(filterableFields);
7677
this.cbField.addValueChangeListener(ev -> this.onFieldChanged(ev.getValue(), ev.isFromClient()));
78+
this.cbField.addClassNames(FilterFieldConditionComponentStyles.CB_FIELD);
7779

7880
this.cbOperation.setItemLabelGenerator(Operation::identifier);
7981
this.cbOperation.addValueChangeListener(ev -> this.onOperationChanged(ev.getValue(), ev.isFromClient()));
82+
this.cbOperation.addClassNames(FilterFieldConditionComponentStyles.CB_OPERATION);
83+
84+
this.operationDetailsContainer.addClassNames(FilterFieldConditionComponentStyles.DETAILS);
8085

8186
this.getContent().add(this.cbField, this.cbOperation, this.operationDetailsContainer);
8287
this.getContent().setAlignItems(FlexComponent.Alignment.BASELINE);
88+
this.getContent().addClassNames(
89+
FilterComponentStyles.FILTER_COMPONENT,
90+
FilterFieldConditionComponentStyles.FILTER_FIELD_CONDITION_COMPONENT);
8391
}
8492

8593
protected void onFieldChanged(final FilterableField<T, ?> value, final boolean isFromClient)

0 commit comments

Comments
 (0)