java.lang.Object
com.github.stefvanschie.inventoryframework.pane.Pane
com.github.stefvanschie.inventoryframework.pane.PaginatedPane

public class PaginatedPane extends Pane
A pane for panes that should be spread out over multiple pages
  • 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

    • 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
    • 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
    • setPage

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

      @Contract("null -> fail") public void populateWithItemStacks(@NotNull @NotNull List<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 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 InventoryComponent inventoryComponent, 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:
      inventoryComponent - the inventory component in which the items should be displayed
      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 InventoryComponent inventoryComponent, @NotNull @NotNull InventoryClickEvent event, int slot, 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 in which was clicked
      inventoryComponent - the inventory component in which this pane resides
      event - the event that occurred while clicking on this item
      slot - the slot that was clicked in
      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
    • copy

      @NotNull @Contract(pure=true) public @NotNull PaginatedPane copy()
      Description copied from class: Pane
      Makes 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.
      Overrides:
      copy in class Pane
      Returns:
      a copy of this pane
    • 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:
      0.5.13
    • 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
    • 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