"""
All Item's defined in the diagram package. This module
is a shorthand for importing each module individually.
"""

# Base classes:
from gaphor.diagram.diagramitem import DiagramItem
from gaphor.diagram.diagramline import DiagramLine, NamedLine
from gaphor.diagram.elementitem import ElementItem
from gaphor.diagram.nameditem import NamedItem
from gaphor.diagram.compartment import CompartmentItem, FeatureItem
from gaphor.diagram.classifier import ClassifierItem

# General:
from gaphor.diagram.comment import CommentItem
from gaphor.diagram.commentline import CommentLineItem
from gaphor.diagram.simpleitem import Line, Box, Ellipse

# Classes:
from gaphor.diagram.classes.klass import ClassItem, OperationItem
from gaphor.diagram.classes.interface import InterfaceItem
from gaphor.diagram.classes.package import PackageItem
from gaphor.diagram.classes.association import AssociationItem
from gaphor.diagram.classes.dependency import DependencyItem
from gaphor.diagram.classes.generalization import GeneralizationItem
from gaphor.diagram.classes.implementation import ImplementationItem

# Components:
from gaphor.diagram.artifact import ArtifactItem
from gaphor.diagram.connector import ConnectorItem
from gaphor.diagram.component import ComponentItem
from gaphor.diagram.node import NodeItem
from gaphor.diagram.components.subsystem import SubsystemItem

# Actions:
from gaphor.diagram.activitynodes import ActivityNodeItem
from gaphor.diagram.activitynodes import InitialNodeItem, ActivityFinalNodeItem
from gaphor.diagram.activitynodes import FlowFinalNodeItem
from gaphor.diagram.activitynodes import DecisionNodeItem
from gaphor.diagram.activitynodes import ForkNodeItem
from gaphor.diagram.objectnode import ObjectNodeItem
from gaphor.diagram.actions.action import (
    ActionItem,
    SendSignalActionItem,
    AcceptEventActionItem,
)
from gaphor.diagram.actions.flow import FlowItem
from gaphor.diagram.actions.partition import PartitionItem

# Interactions
from gaphor.diagram.interaction import InteractionItem
from gaphor.diagram.lifeline import LifelineItem
from gaphor.diagram.message import MessageItem

# States
from gaphor.diagram.states import VertexItem
from gaphor.diagram.states.state import StateItem
from gaphor.diagram.states.transition import TransitionItem
from gaphor.diagram.states.finalstate import FinalStateItem
from gaphor.diagram.states.pseudostates import (
    InitialPseudostateItem,
    HistoryPseudostateItem,
)

# Use Cases:
from gaphor.diagram.actor import ActorItem
from gaphor.diagram.usecase import UseCaseItem
from gaphor.diagram.include import IncludeItem
from gaphor.diagram.extend import ExtendItem

# Stereotypes:
from gaphor.diagram.extension import ExtensionItem
from gaphor.diagram.profiles.metaclass import MetaclassItem
