Class PaginatedPane
java.lang.Object
com.github.stefvanschie.inventoryframework.pane.Pane
com.github.stefvanschie.inventoryframework.pane.PaginatedPane
A pane for panes that should be spread out over multiple pages
-
Nested Class Summary
Nested classes/interfaces inherited from class Pane
Pane.Priority -
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionPaginatedPane(int length, int height) Creates a new paginated panePaginatedPane(int length, int height, @NotNull Pane.Priority priority) Creates a new paginated pane -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds the specified pane to a new page.voidAdds a pane to a selected page.voidclear()Clears the entire pane of any items/panes.booleanclick(@NotNull Gui gui, @NotNull GuiComponent guiComponent, @NotNull InventoryClickEvent event, @NotNull Slot slot) Called whenever there is being clicked on this pane@NotNull PaginatedPanecopy()Makes a copy of this pane and returns it.voiddeletePage(int page) Deletes a page and all its associated panes from this paginated pane.@NotNull GuiItemContainerdisplay()Returns aGuiItemContainerwith all the items that should be displayed of this pane.@NotNull Collection<GuiItem> getItems()Gets all the items in this pane and all underlying panes.intgetPage()Returns the current pageintgetPages()Returns the amount of pages@NotNull Collection<Pane> getPanes()Gets all the panes in this panes, including any child panes from other panes.@NotNull Collection<Pane> getPanes(int page) Gets all the panes from inside the specified page of this pane.static @NotNull PaginatedPaneLoads a paginated pane from a given elementvoidpopulateWithGuiItems(@NotNull List<GuiItem> items) Populates the PaginatedPane based on the provided list by adding new pages until all items can fit.voidpopulateWithItemStacks(@NotNull List<@NotNull ItemStack> items, @NotNull Plugin plugin) Populates the PaginatedPane based on the provided list by adding new pages until all items can fit.voidpopulateWithItemStacks(@NotNull List<ItemStack> items) Populates the PaginatedPane based on the provided list by adding new pages until all items can fit.voidpopulateWithNames(@NotNull List<String> displayNames, @Nullable Material material) This method creates a list of ItemStacks all with the givenmaterialand the display names.voidpopulateWithNames(@NotNull List<String> displayNames, @Nullable Material material, @NotNull Plugin plugin) This method creates a list of ItemStacks all with the givenmaterialand the display names.voidsetPage(int page) Sets the current displayed page.Methods inherited from class Pane
callOnClick, createBorder, findMatchingItem, getHeight, getLength, getPriority, getUUID, isVisible, load, matchesItem, setHeight, setLength, setOnClick, setPriority, setVisible
-
Constructor Details
-
PaginatedPane
Creates a new paginated pane- Parameters:
length- the length of the paneheight- the height of the panepriority- the priority of the pane- Since:
- 0.12.0
-
PaginatedPane
public PaginatedPane(int length, int height) Creates a new paginated pane- Parameters:
length- the length of the paneheight- the height of the pane- Since:
- 0.12.0
-
-
Method Details
-
getPage
public int getPage()Returns the current page- Returns:
- the current page
-
getPages
public int getPages()Returns the amount of pages- Returns:
- the amount of pages
-
addPage
Adds the specified pane to a new page. The new page will be at the index one after the highest indexed page currently in this paginated pane. If this paginated pane has no pages, the index of the newly created page will be zero.- Parameters:
slot- the slot of the panepane- the pane to add to a new page- Since:
- 0.10.8
-
addPane
Adds a pane to a selected page. If the page does not exist and is exactly one larger than the current highest page index, this method will create a new page with the specified pane. If the page does not exist and is more than one larger than the current highest page index, this method will throw anIllegalArgumentException. If the page is negative, anIllegalArgumentExceptionwill also be thrown. If there are currently no pages, only index 0 is valid and will create a new page with the specified pane added to it.For example, if the pages 0, 1, ..., n currently exist, then:
- Indexes < 0 will throw an exception
- Indexes 0, 1, ..., n will add the pane to the respective page
- Index n + 1 will create a new page with the specified pane
- Indexes > n + 1 will throw an exception
- Parameters:
page- the page to assign the pane toslot- the slot of the panepane- the new pane- Throws:
IllegalArgumentException- if the page is less than 0 or more than one larger than the current highest page index
-
setPage
public void setPage(int page) Sets the current displayed page. If the specified page does not exist anArrayIndexOutOfBoundsExceptionis thrown.- Parameters:
page- the page- Throws:
ArrayIndexOutOfBoundsException- if the page does not exist
-
populateWithItemStacks
public void populateWithItemStacks(@NotNull @NotNull List<@NotNull ItemStack> items, @NotNull @NotNull Plugin plugin) Populates the PaginatedPane based on the provided list by adding new pages until all items can fit. This can be helpful when dealing with lists of unknown size.- Parameters:
items- The list to populate the pane withplugin- the plugin that will be the owner of the items created- Since:
- 0.10.8
- See Also:
-
populateWithItemStacks
-
populateWithGuiItems
Populates the PaginatedPane based on the provided list by adding new pages until all items can fit. This can be helpful when dealing with lists of unknown size.- Parameters:
items- The list to populate the pane with
-
populateWithNames
public void populateWithNames(@NotNull @NotNull List<String> displayNames, @Nullable @Nullable Material material, @NotNull @NotNull Plugin plugin) This method creates a list of ItemStacks all with the givenmaterialand the display names. After that it callspopulateWithItemStacks(List)This method also translates the color char&for all names.- Parameters:
displayNames- The display names for all the itemsmaterial- The material to use for theItemStacksplugin- the plugin that will be the owner of the created items- Since:
- 0.10.8
- See Also:
-
populateWithNames
public void populateWithNames(@NotNull @NotNull List<String> displayNames, @Nullable @Nullable Material material) This method creates a list of ItemStacks all with the givenmaterialand the display names. After that it callspopulateWithItemStacks(List)This method also translates the color char&for all names.- Parameters:
displayNames- The display names for all the itemsmaterial- The material to use for theItemStacks
-
display
Description copied from class:PaneReturns aGuiItemContainerwith all the items that should be displayed of this pane. -
click
public boolean click(@NotNull @NotNull Gui gui, @NotNull @NotNull GuiComponent guiComponent, @NotNull @NotNull InventoryClickEvent event, @NotNull @NotNull Slot slot) Description copied from class:PaneCalled whenever there is being clicked on this pane -
copy
Description copied from class:PaneMakes a copy of this pane and returns it. This makes a deep copy of the pane. This entails that the underlying panes and/or items will be copied as well. The returned pane will never be reference equal to the current pane. -
deletePage
public void deletePage(int page) Deletes a page and all its associated panes from this paginated pane. It also decrements the indexes of all pages beyond the specified page by one. For example, given a sequence of pages 0, 1, 2, 3, 4, upon removing page 2, the new sequence of pages will be 0, 1, 2, 3. If the specified page does not exist, then this method will silently do nothing.- Parameters:
page- the page to delete- Since:
- 0.10.5
-
getPanes
Description copied from class:PaneGets all the panes in this panes, including any child panes from other panes. The returned collection is not guaranteed to be mutable or to be a view of the underlying data. (So changes to the gui are not guaranteed to be visible in the returned value.) -
getPanes
Gets all the panes from inside the specified page of this pane. If the specified page is not existent, this method will throw anIllegalArgumentException. If the specified page is existent, but doesn't have any panes, the returned collection will be empty. The returned collection is unmodifiable. The returned collection is not synchronized and no guarantees should be made as to the safety of concurrently accessing the returned collection. If synchronized behaviour should be allowed, the returned collection must be synchronized externally.- Parameters:
page- the panes of this page will be returned- Returns:
- a collection of panes belonging to the specified page
- Throws:
IllegalArgumentException- if the page does not exist- Since:
- 0.5.13
-
getItems
Description copied from class:PaneGets all the items in this pane and all underlying panes. The returned collection is not guaranteed to be mutable or to be a view of the underlying data. (So changes to the gui are not guaranteed to be visible in the returned value.) -
clear
-
load
@NotNull public static @NotNull PaginatedPane load(@NotNull @NotNull Object instance, @NotNull @NotNull Element element, @NotNull @NotNull Plugin plugin) Loads a paginated pane from a given element- Parameters:
instance- the instance classelement- the elementplugin- the plugin that will be used to create the items- Returns:
- the paginated pane
- Since:
- 0.10.8
-