Layanan Paginasi
Tip
Untuk dasar pengertian dari layanan, pastikan pertama anda membaca :doc:'../services'.
Tindakan :javadoc:'PaginationService sebagai cara untuk memecah belah konten ke dalam halaman diskrit. Menyediakan layanan sebuah :javadoc:'PaginationList.Builder' dengan mana anda dapat menetapkan atribut judul, isi, header, dan lapisan.
Pagination Pembangun Daftar
Memperoleh turunan pertama dari sebuah "PaginationList.Builder":
import org.spongepowered.api.service.pagination.PaginationList;
PaginationList.Builder builder = PaginationList.builder();
Ada dua cara yang berbeda untuk menentukan konten dari daftar yang diberi halaman:
Dengan sebuah "Iterable<Text>"
import org.spongepowered.api.text.Text; import java.util.ArrayList; import java.util.List; List<Text> contents = new ArrayList<>(); contents.add(Text.of("Item 1")); contents.add(Text.of("Item 2")); contents.add(Text.of("Item 3")); builder.contents(contents);Catatan
Jika "Iterable" adalah sebuah "List", kemudian navigasi dua arah didukung. Jika tidak, hanya akan meneruskan navigasi yang didukung.
Dengan sebuah array dari "Text"s
builder.contents(Text.of("Item 1"), Text.of("Item 2"), Text.of("Item 3"));
Anda juga dapat menentukan berbagai komponen lain dari daftar paginasi, seperti judul, header, footer, dan padding. Diagram di bawah ini menunjukkan komponen yang ditampilkan di masing-masing bagian dari daftar paginasi. Dalam diagram berikut, padding string ditampilkan sebagai huruf p.
pppppppppppppppppppppppp Title pppppppppppppppppppppppp
Header
Item 1
Item 2
Item 3
...
ppppppppppppppppppppppp < 2/3 > ppppppppppppppppppppppp
Footer
Untuk mencapai output sebelumnya, kita bisa menggunakan pola pembangun berikut ini:
builder.title(Text.of("Title"))
.contents(Text.of("Item 1"), Text.of("Item 2"), Text.of("Item 3"))
.header(Text.of("Header"))
.footer(Text.of("Footer"))
.padding(Text.of("p"));
Catatan
Dengan pengecualian isi, semua komponen dari daftar yang diberi halaman adalah opsional. Namun, Judul sangat direkomendasikan.
Akhirnya, untuk mengirim daftar paginasi kepada sebuah :javadoc:'MessageReceiver', penggunaan :javadoc:'PaginationList.Builder#sendTo(MessageReceiver)'.
And that's it! To recap, a fully functional paginated list could be generated and sent to a previously defined
msgReceiver
using the following code:
PaginationList.builder()
.title(Text.of("Title"))
.contents(Text.of("Item 1"), Text.of("Item 2"), Text.of("Item 3"))
.header(Text.of("Header"))
.footer(Text.of("Footer"))
.padding(Text.of("p"))
.sendTo(msgReceiver);