Column Groups
Sarake-ryhmät antavat sinun järjestää samankaltaiset sarakkeet jaettujen, monirivisten otsikoiden alle. Ryhmän otsikko ulottuu sen lapsisarakkeiden yli, mikä helpottaa käyttäjiä skannaamaan ja ymmärtämään monimutkaisten taulukoiden rakennetta. Ryhmiä voidaan sisällyttää toisiinsa minkä tahansa syvyyden verran, ja Table renderoi automaattisesti oikean määrän otsikkorivejä.
Sarake-ryhmien luominen
Luo ryhmä ColumnGroup.of() tehdasmenetelmällä, ja yhdistä add() -kutsuja täyttääksesi sen sarakeresvointien, muiden ryhmien tai molempien sekoituksella. Käytä ryhmiä Tablessa setColumnGroups() -kutsun avulla.
Näytä koodi
- TableColumnGroupsView.java
- MusicRecord.java
- Service.java
Kun ryhmät on asetettu, Table renderoi monirivisen otsikon, jossa jokaisen ryhmän otsikko ulottuu sen lapsisarakkeiden yli. Sisäkkäisyyden syvyys määrää, kuinka monta otsikkoriviä näkyy. Tasainen ryhmä lisää yhden ylimääräisen rivin, kun taas kahden tason sisäkkäisyys lisää kaksi, ja niin edelleen.
Näytä koodi
- TableNestedColumnGroupsView.java
- MusicRecord.java
- Service.java
Ryhmät voidaan asettaa tai muuttaa milloin tahansa, ennen tai jälkeen Tablen renderöinnin. Siirrä null tai tyhjää listaa setColumnGroups() -menetelmään poistaaksesi kaikki ryhmät ja palataksesi yksiriviseen otsikkoon.
// Poista kaikki sarake-ryhmät
table.setColumnGroups(null);
Sarakejärjestys
Kun ryhmät ovat aktiivisia, visuaalinen sarakejärjestys määräytyy ryhmäpuun perusteella, eikä sen mukaan, missä järjestyksessä sarakkeet lisättiin Table-sovellukseen. Puu kävellään syvyyssuunnassa, vasemmalta oikealle.
Lisätyt sarakkeet: [A, B, C, D, E]
Ryhmät: Ryhmä "G1" [C, A], Ryhmä "G2" [E, D]
Visuaalinen järjestys: C, A, E, D, B
Ryhmittämättömät sarakkeet, joita ei ole viitattu mihinkään ryhmään, eivät ole piilossa. Ne näkyvät luonnollisessa asemassaan suhteessa ryhmitettyihin sarakkeisiin, sen mukaan missä järjestyksessä ne alunperin lisättiin Table-sovellukseen.
Tässä esimerkissä Number esiintyy ensin, koska se lisättiin ennen Title-saraketta. Label esiintyy Genre- ja Cost-sarakeiden välissä, koska se lisättiin niiden väliin alkuperäisessä sarakejärjestyksessä:
Lisätyt sarakkeet: [Number, Title, Artist, Genre, Label, Cost]
Ryhmät: Ryhmä "Music" [Title, Artist, Genre], Ryhmä "Pricing" [Cost]
Visuaalinen järjestys: Number, Title, Artist, Genre, Label, Cost
Seuraava demo havainnollistaa tätä käyttäytymistä. Number ja Label eivät ole viitattu mihinkään ryhmään, mutta ne säilyttävät luonnolliset asemansa sen perusteella, missä järjestyksessä ne lisättiin Table-sovellukseen.
Näytä koodi
- TableColumnGroupOrderingView.java
- MusicRecord.java
- Service.java
Ryhmittämättömien sarakkeiden sijoittamisen hallitsemiseksi sisällytä ne huipputason sarakeviittauksina ryhmäpuuhun.
Sarakkeiden siirtäminen ryhmien sisällä
Kun ryhmät ovat aktiivisia, vedä ja pudota -sarakeen siirtoa rajoitetaan ryhmän eheyden ylläpitämiseksi:
- Ryhmässä: sarake ryhmässä voidaan siirtää vain sen välittömässä vanhemmassa ryhmässä. Sen vetäminen ryhmän ulkopuolelle hylätään, ja sarake palaa alkuperäiseen asemaansa.
- Ryhmittämättömät sarakkeet: ryhmittämätön sarake voi siirtyä vain paikkoihin, jotka ovat muiden ryhmittämättömien sarakkeiden käytössä. Sitä ei voi pudottaa ryhmän sisään.
- Ryhmien uudelleenjärjestäminen: koko ryhmää voidaan vetää uudelleenjärjestämään sitä samassa sisäkkäisyystasossa sisarustensa kesken.
Ryhmät: Ryhmä "G1" [A, B, C], Ryhmä "G2" [D, E]
Siirrä A asemaan 2 -> OK (G1:ssä, tulos: [B, C, A])
Siirrä A asemaan 3 -> Hylätty (asema 3 on G2:ssä)
Siirrä D asemaan 4 -> OK (G2:ssä, tulos: [E, D])
Siirrä D asemaan 1 -> Hylätty (asema 1 on G1:ssä)
Ryhmien kiinnittäminen
Ryhmä voidaan kiinnittää vasemmalle tai oikealle käyttämällä setPinDirection(). Kaikki sarakkeet ryhmässä perivät ryhmän kiinnitys suunnan, ja yksittäisten sarakkeiden kiinnityssäännöt ylikirjoitetaan ryhmän toimesta.
ColumnGroup idInfo = ColumnGroup.of("id-info", "ID Info")
.setPinDirection(PinDirection.LEFT)
.add("number")
.add("title");
// Sekä "number" että "title" on kiinnitetty vasemmalle,
// riippumatta omista kiinnityksistään
Ryhmittämättömät sarakkeet säilyttävät oman kiinnityssuuntansa sarake määrittelystään.
Näytä koodi
- TablePinnedColumnGroupsView.java
- MusicRecord.java
- Service.java
Ryhmän otsikon korkeus
Ryhmän otsikkorivin korkeutta voidaan hallita riippumatta tavallisista sarakeotsikoista käyttäen setGroupHeaderHeight().
table.setGroupHeaderHeight(32); // Ryhmän rivit ovat 32px korkeat
table.setHeaderHeight(48); // Sarakeotsikkorivi pysyy 48px korkeana
Oletusryhmän otsikkokorkeus vastaa oletusotsikkokorkeutta.
Ryhmien tyylittely CSS-osien avulla
Ryhmäotsikot ja sarakkeet altistavat CSS-osia tyylittelyä varten ::part()-menetelmällä. Seuraavat osat ovat saatavilla:
| Osa | Kuvaus |
|---|---|
cell-group-{ID} | Ryhmäotsikon solu, kohdistettu ryhmän ID:n perusteella |
cell-group-depth-{N} | Ryhmäotsikon solu, kohdistettu syvyyden perusteella (0 = ykköstaso, 1 = kakkostaso, jne.) |
cell-column-{ID} | Kaikki solut (otsikko ja runko) tietyllä sarake-ID:llä |
cell-content-group-{ID} | Sisällön kehys ryhmäotsikossa |
cell-label-group-{ID} | Etiketti ryhmäotsikossa |
Näytä koodi
- TableStyledColumnGroupsView.java
- MusicRecord.java
- Service.java
- tablestyledcolumngroups.css
Tyylittely ryhmän ID:n mukaan
Käytä ryhmän ID:tä kohdentamaan erityisiä ryhmiä ainutlaatuisilla väreillä tai typografialla.
dwc-table::part(cell-group-catalog) {
background: var(--dwc-color-primary-30);
color: var(--dwc-color-primary-text-30);
font-weight: 600;
}
dwc-table::part(cell-group-bio) {
background: var(--dwc-color-primary-40);
color: var(--dwc-color-primary-text-40);
}
dwc-table::part(cell-column-title) {
font-weight: 600;
}
Tyylittely syvyyden mukaan
Syvyyspohjaiset osat ovat hyödyllisiä, kun haluat soveltaa johdonmukaista tyyliä kaikkiin ryhmiin tietyllä sisäkkäisyystasolla ilman, että kohdistat jokaista ryhmää erikseen.
/* Tyylittele kaikki ykköstason ryhmät */
dwc-table::part(cell-group-depth-0) {
background: var(--dwc-color-primary-30);
font-weight: 700;
}
/* Tyylittele kaikki kakkostason ryhmät */
dwc-table::part(cell-group-depth-1) {
background: var(--dwc-color-primary-40);
}
Piilotetut sarakkeet
Piilotetut sarakkeet jätetään pois visuaalisesta järjestyksestä ja otsikkosuunnitelmasta. Jos ryhmässä on sekoitus näkyviä ja piilotettuja sarakkeita, vain näkyvät näyttäytyvät ja ryhmän colspan säätyy vastaavasti. Jos jokainen sarake ryhmässä on piilotettu, ryhmäotsikkoa ei renderoida lainkaan.
Näytä koodi
- TableHiddenColumnGroupsView.java
- MusicRecord.java
- Service.java