Interface CStation<S extends CommonDockStation<?,?>>

Type Parameters:
S - what kind of internal implementation this station uses
All Known Implementing Classes:
AbstractCStation, AbstractDockableCStation, CExternalizeArea, CGridArea, CMinimizeArea, CWorkingArea, ExternalizingCGridArea

public interface CStation<S extends CommonDockStation<?,?>>
A CStation is an element onto which CDockables can be dropped. Each station can, but does not have to be, a CDockable itself. Stations are added to the CControl through CControl.addStation(CStation, boolean). A station is either a root-station (meaning that it has no parent) or CDockable. It is possible to use a CDockable as root-station.
Author:
Benjamin Sigg
  • Method Details

    • getStation

      S getStation()
      Gets the internal representation of this CStation.
      Returns:
      the internal representation
    • asDockable

      CDockable asDockable()
      If this station is a CDockable as well, then this method returns the representation of this station as CDockable.
      Returns:
      this as dockable or null
    • createPerspective

      CStationPerspective createPerspective()
      Returns a new CStationPerspective that represents this station. This method does not need to set any content of the new perspective. Basically this method just needs to tell the framework what type of CStationPerspective is needed, not what its content is.
      Returns:
      the new, empty perspective
      See Also:
    • isWorkingArea

      boolean isWorkingArea()
      Tells whether this station is a special working area or not. It is not possible drag a child from a working area if it is registered there, or to drop a child onto a working area if it is not registered there.
      Working areas must either be registered as root-station (see CControl.addStation(CStation, boolean)) or must be a SingleCDockable.
      Returns:
      true if this is a working area, false otherwise
    • getUniqueId

      String getUniqueId()
      Gets a unique and constant identifier for this station
      Returns:
      the unique identifier
    • getTypeId

      Path getTypeId()
      Gets a unique path denoting the type of this station. This path will be given to MissingPerspectiveStrategy.createStation(String, Path) when loading a layout as a CPerspective.
      Returns:
      the type of this station. Paths starting with "dock." are reserved for the framework. A value of null will just be ignored.
    • getStationLocation

      CLocation getStationLocation()
      Gets a location which represents directly getStation().
      Returns:
      the location that will always represent the station
    • getDropLocation

      CLocation getDropLocation()
      Creates a CLocation that can be used to drop a new CDockable on this station or one of its children stations. This method returns the "optimal spot", where the definition of "optimal spot" is up to the station itself. The default implementations however call CLocationModeManager.getDropLocation(CStation).
      Returns:
      the optimal spot for dropping a new CDockable or null if this station is not able to calculate the optimal spot (e.g. because the station is not visible)
      See Also:
    • setControlAccess

      void setControlAccess(CControlAccess access)
      Called by CControl when this CStation is added or removed. There are two actions which most stations might want to do:
      Parameters:
      access - access to the internals of the CControl that uses this station or null to remove all ties from a control