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)'.

Dan itulah ia! Untuk rekap, sebuah daftar paginasi berfungsi penuh dapat dibuat dan dikirim kepada yang sebelumnya didefinisikan "msgReceiver" menggunakan kode berikut:

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);