Разбиение на страницы
Совет
Для понимания основ, прочитайте сначала Сервисы.
PaginationService - это способ разделить содержимое на отдельные страницы. Сервис предоставляет PaginationList.Builder, с помощью которого вы можете указать такие атрибуты, как название, содержимое, заголовок и нижний колонтитул.
Строитель разделителя страниц
Сначала получите экземпляр PaginationList.Builder
:
import org.spongepowered.api.service.pagination.PaginationList;
PaginationList.Builder builder = PaginationList.builder();
Существует два разных способа указать содержимое нумерованного списка:
С помощью
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);Примечание
Если
Iterable
являетсяList
, то поддерживается двунаправленная навигация. В противном случае поддерживается только навигация вперед.
С помощью массива
Text
builder.contents(Text.of("Item 1"), Text.of("Item 2"), Text.of("Item 3"));
Вы также можете указать различные другие компоненты разбитого на страницы списка, такие как название, заголовок, нижний колонтитул и отступы. На приведенном ниже примере показано, какой компонент отображается в каждой части разбитого списка. В данном примере строка заполняется буквой p.
pppppppppppppppppppppppp Title pppppppppppppppppppppppp
Header
Item 1
Item 2
Item 3
...
ppppppppppppppppppppppp < 2/3 > ppppppppppppppppppppppp
Footer
Для достижения предыдущего примера, вы можете использовать следующий шаблон билдера:
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"));
Примечание
Все компоненты разбитого списка, за исключением содержимого, являются необязательными. Тем не менее, название настоятельно рекомендуется.
Чтобы отправить разбитый список в MessageReceiver, используйте 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);