Class PaginatedPane

java.lang.Object
me.despical.inventoryframework.pane.Pane
me.despical.inventoryframework.pane.PaginatedPane

public class PaginatedPane extends Pane
A pane for panes that should be spread out over multiple pages
Since:
1.0.1

Created at 04.09.2020

Author:
Despical
  • Constructor Details

    • PaginatedPane

      public PaginatedPane(int x, int y, int length, int height, @NotNull @NotNull Pane.Priority priority)
    • PaginatedPane

      public PaginatedPane(int x, int y, int length, int height)
    • PaginatedPane

      public PaginatedPane(int length, int height)
  • Method Details

    • load

      @NotNull public static @NotNull PaginatedPane load(@NotNull @NotNull Object instance, @NotNull @NotNull Element element)
      Loads a paginated pane from a given element
      Parameters:
      instance - the instance class
      element - the element
      Returns:
      the paginated pane
    • getPage

      public int getPage()
      Returns the current page
      Returns:
      the current page
    • setPage

      public void setPage(int page)
      Sets the current displayed page
      Parameters:
      page - the page
    • getPages

      public int getPages()
      Returns the amount of pages
      Returns:
      the amount of pages
    • addPane

      public void addPane(int page, @NotNull @NotNull Pane pane)
      Assigns a pane to a selected page
      Parameters:
      page - the page to assign the pane to
      pane - the new pane
    • populateWithItemStacks

      @Contract("null -> fail") public void populateWithItemStacks(@NotNull @NotNull List<org.bukkit.inventory.ItemStack> items)
      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
    • populateWithGuiItems

      @Contract("null -> fail") public void populateWithGuiItems(@NotNull @NotNull List<GuiItem> items)
      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

      @Contract("null, _ -> fail") public void populateWithNames(@NotNull @NotNull List<String> displayNames, @Nullable @Nullable org.bukkit.Material material)
      This method creates a list of ItemStacks all with the given material and the display names. After that it calls populateWithItemStacks(List) This method also translates the color char & for all names.
      Parameters:
      displayNames - The display names for all the items
      material - The material to use for the ItemStacks
    • display

      public void display(@NotNull @NotNull Gui gui, @NotNull @NotNull org.bukkit.inventory.Inventory inventory, @NotNull @NotNull org.bukkit.inventory.PlayerInventory playerInventory, int paneOffsetX, int paneOffsetY, int maxLength, int maxHeight)
      Description copied from class: Pane
      Has to set all the items in the right spot inside the inventory
      Specified by:
      display in class Pane
      Parameters:
      gui - the gui for which we're rendering
      inventory - the inventory that the items should be displayed in
      playerInventory - the player's inventory
      paneOffsetX - the pane's offset on the x axis
      paneOffsetY - the pane's offset on the y axis
      maxLength - the maximum length of the pane
      maxHeight - the maximum height of the pane
    • click

      public boolean click(@NotNull @NotNull Gui gui, @NotNull @NotNull org.bukkit.event.inventory.InventoryClickEvent event, int paneOffsetX, int paneOffsetY, int maxLength, int maxHeight)
      Description copied from class: Pane
      Called whenever there is being clicked on this pane
      Specified by:
      click in class Pane
      Parameters:
      gui - the gui this event stems from
      event - the event that occurred while clicking on this item
      paneOffsetX - the pane's offset on the x axis
      paneOffsetY - the pane's offset on the y axis
      maxLength - the maximum length of the pane
      maxHeight - the maximum height of the pane
      Returns:
      whether the item was found or not
    • getPanes

      @NotNull @Contract(pure=true) public @NotNull Collection<Pane> getPanes()
      Description copied from class: Pane
      Gets 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.)
      Specified by:
      getPanes in class Pane
      Returns:
      all panes
    • getPanes

      @NotNull @Contract(pure=true) public @NotNull Collection<Pane> getPanes(int page)
      Gets all the panes from inside the specified page of this pane. If the specified page is not existent, this method will throw an IllegalArgumentException. 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:
      1.0.1
    • getItems

      @NotNull @Contract(pure=true) public @NotNull Collection<GuiItem> getItems()
      Description copied from class: Pane
      Gets 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.)
      Specified by:
      getItems in class Pane
      Returns:
      all items
    • clear

      public void clear()
      Description copied from class: Pane
      Clears the entire pane of any items/panes. Underlying panes will not be cleared.
      Specified by:
      clear in class Pane