/** Construct a new property panel for an ExtensionPoint. */
  public PropPanelExtensionPoint() {
    super("ExtensionPoint", ConfigLoader.getTabPropsOrientation());

    // First column

    // nameField, stereotypeBox and namespaceScroll are all set up by
    // PropPanelModelElement.

    addField(Translator.localize("label.name"), getNameTextField());

    // Our location (a String).  Allow the location label to
    // expand vertically so we all float to the top.

    JTextField locationField = new UMLTextField2(new UMLExtensionPointLocationDocument());
    addField(Translator.localize("label.location"), locationField);

    addSeparator();

    JList usecaseList = new UMLLinkedList(new UMLExtensionPointUseCaseListModel());
    usecaseList.setVisibleRowCount(1);
    addField(Translator.localize("label.usecase-base"), new JScrollPane(usecaseList));

    JList extendList = new UMLLinkedList(new UMLExtensionPointExtendListModel());
    addField(Translator.localize("label.extend"), new JScrollPane(extendList));

    addAction(new ActionNavigateContainerElement());
    addAction(new ActionNewExtensionPoint());
    addAction(new ActionNewStereotype());
    addAction(getDeleteAction());
  }
  /** The constructor. */
  public PropPanelComponent() {
    super("Component", lookupIcon("Component"), ConfigLoader.getTabPropsOrientation());
    addField(Translator.localize("label.name"), getNameTextField());
    addField(Translator.localize("label.stereotype"), getStereotypeSelector());
    addField(Translator.localize("label.namespace"), getNamespaceSelector());
    add(getModifiersPanel());

    addSeperator();

    addField(Translator.localize("label.generalizations"), getGeneralizationScroll());
    addField(Translator.localize("label.specializations"), getSpecializationScroll());

    addSeperator();

    addField(Translator.localize("label.client-dependencies"), getClientDependencyScroll());
    addField(Translator.localize("label.supplier-dependencies"), getSupplierDependencyScroll());

    JList resList = new UMLLinkedList(new UMLComponentResidentListModel());
    addField(Translator.localize("label.residents"), new JScrollPane(resList));

    addAction(new ActionNavigateNamespace());
    addAction(getActionNewReception());
    addAction(new ActionNewStereotype());
    addAction(new ActionDeleteSingleModelElement());
  }
  public PropPanelAssociationEnd() {
    super("AssociationEnd", _assocEndIcon, ConfigLoader.getTabPropsOrientation());
    Class mclass = MAssociationEnd.class;

    //   this will cause the components on this page to be notified
    //      anytime a stereotype, namespace, operation, etc
    //      has its name changed or is removed anywhere in the model
    Class[] namesToWatch = {
      MStereotype.class, MNamespace.class, MAssociation.class, MClassifier.class
    };
    setNameEventListening(namesToWatch);
    makeFields(mclass);
  }
  /** Construct a property panel for a Comment. */
  public PropPanelComment() {
    super("Comment", ConfigLoader.getTabPropsOrientation());

    addField(Translator.localize("label.name"), getNameTextField());

    UMLMutableLinkedList umll =
        new UMLMutableLinkedList(new UMLCommentAnnotatedElementListModel(), null, null);
    umll.setDeleteAction(new ActionDeleteAnnotatedElement());
    addField(Translator.localize("label.annotated-elements"), new JScrollPane(umll));

    addSeparator();

    UMLTextArea2 text = new UMLTextArea2(new UMLCommentBodyDocument());
    text.setLineWrap(true);
    text.setRows(5);
    JScrollPane pane = new JScrollPane(text);
    addField(Translator.localize("label.comment.body"), pane);

    addAction(new ActionNavigateContainerElement());
    addAction(new ActionNewStereotype());
    addAction(getDeleteAction());
  }
 /** The constructor. */
 public PropPanelCallEvent() {
   super("Call event", lookupIcon("CallEvent"), ConfigLoader.getTabPropsOrientation());
 }