com.swfm.mica.core
Class MiPart

java.lang.Object
  extended bycom.swfm.mica.core.MiPart
All Implemented Interfaces:
MiiActionTypes, MiiAttributeTypes, MiiDragAndDropParticipant, MiiEventTypes, MiiNames, MiiPropertyTypes, MiiTypes
Direct Known Subclasses:
MiArc, MiCircle, MiConnection, MiConnectionJunctionPoint, MiContainer, MiDashedRectangle, MiDrawingGrid, MiEllipse, MiEllipticalArc, MiImage, MiLiteShapesContainer, MiManipulator, MiMultiPointShape, MiPlaceHolder, MiPopAttributes, MiPushAttributes, MiRectangle, MiRoundRectangle, MiText, MiTreeListExpandCollapseButton, MiVeryLightweightShape

public abstract class MiPart
extends java.lang.Object
implements MiiTypes, MiiAttributeTypes, MiiActionTypes, MiiEventTypes, MiiNames, MiiDragAndDropParticipant, MiiPropertyTypes

This class implements the fundamental functionality of all graphical parts of the Mica Graphics Framework. This includes event and action handlers, picking, bounds, area and layout validation, attributes, drawing and much more.

Version:
%I% %G%
Author:
Michael L. Davis

Field Summary
static int activateActionMouseAppearance
           
               
Constructor Summary
MiPart()
          Constructs a new MiPart.
 
Method Summary
 void _reCalcBounds(MiBounds b)
          Realculates the outer bounds of this MiPart.
 void _render(MiRenderer renderer)
          This, the default render(MiRenderer) method calls the renderToDevice() method.
 void _replaceBounds(MiBounds b)
          A direct replacement of the current bounds of this MiPart.
 void _setContainer(MiPart part)
          Sets the one and only container.
 void _setDrawManager(MiDrawManager drawManager)
          Sets the draw manager of this MiPart.
 void _setValidatingLayout(boolean flag)
          Sets this MiPart's (and all of it's parts) flag indicating that this MiPart is having it's layout, if any, validated.
 void appendActionHandler(MiiAction action)
          Appends the given action, which will be sent to it's action handler when any of it's valid actions occur.
 void appendActionHandler(MiiActionHandler handler, int validAction)
          Appends the given action handler which will be called when the given validAction occurs.
 void appendActionHandler(MiiActionHandler handler, int validAction1, int validAction2)
          Appends the given action handler which will be called when one of the given validActions occurs.
 void appendActionHandler(MiiActionHandler handler, MiEvent event, int validAction)
          Appends the given action handler which will be called when the given validAction occurs.
 void appendActionHandler(MiiAction action, MiEvent event)
          Appends the given action, which will be sent to it's action handler when the given event occurs.
 void appendAttachment(MiPart obj)
          Append the given part to the attachments of this MiPart.
 void appendAttachment(MiPart obj, int location, java.lang.String tag, MiMargins margins)
          Append the given part to the attachments of this MiPart.
 void appendCommandHandler(MiiCommandHandler handler, java.lang.String argument)
          Appends the given callback, to be called with the given argument when the default action type occurs.
 void appendCommandHandler(MiiCommandHandler handler, java.lang.String argument, int validAction)
          Appends the given callback, to be called with the given argument when the given action type occurs.
 void appendCommandHandler(MiiCommandHandler handler, java.lang.String argument, MiEvent event)
          Appends the given callback, to be called with the given argument when the given event occurs.
 void appendConnection(MiConnection conn)
          Appends the given connection to this MiPart.
 void appendContainer(MiPart container)
          Appends the container to the list of containers of this MiPart.
 void appendEventHandler(MiiEventHandler handler)
          Appends the given event handler to the list of event handlers assigned to this MiPart.
 void appendItem(MiPart item)
          Appends the given item to this container.
 void appendPart(MiPart obj)
          Appends the given part to this container.
 void appendPoint(double x, double y)
          Append another point to the points that define the shape of this MiPart.
 void appendPoint(MiPoint point)
          Append another point to the points that define the shape of this MiPart.
 void applyCustomLookAndFeel()
           
 void calcMinimumSize(MiSize size)
          Gets the minimum size of this MiPart.
 void calcPreferredSize(MiSize size)
          Gets the preferred size of this MiPart.
 boolean containsItem(MiPart item)
          Gets whether the given item is in this container.
 boolean containsOpaqueRectangles()
          Gets whether this MiPart contains parts that are set to be opaque rectangles.
 boolean containsPart(MiPart part)
          Gets whether the given part is in this container.
 MiPart copy()
          Returns a copy of this MiPart.
 void copy(MiPart obj)
          Copies the given MiPart.
 MiPart deepCopy()
          Makes and returns a copy of this MiPart and all of it's parts.
 void deleteAllConnections()
          Recursively delete all connections of this MiPart (and it's parts, ...) of the given container.
 void deleteAllParts()
          Recursively delete all parts (and their parts, ...) of this MiPart.
 void deleteSelf()
          Removes this MiPart from all of it's containers, parts and connections after doing the same to all of this MiPart's parts.
 int dispatchAction(int actionType)
          Dispatches an action of the given action type.
 int dispatchAction(int actionType, java.lang.Object systemInfo)
          Dispatches an action of the given action type with the given systemInfo.
 int dispatchAction(int actionType, java.lang.Object systemInfo, MiPart actionSource)
          Dispatch an action of the given action type with the given systemInfo originating from the given part.
 boolean dispatchActionRequest(int actionType)
          Dispatch an action request of the given action type.
 boolean dispatchActionRequest(int actionType, java.lang.Object systemInfo)
          Dispatch an action request of the given action type with the given systemInfo.
 boolean dispatchActionRequest(int actionType, java.lang.Object systemInfo, MiPart actionSource)
          Dispatch an action request of the given action type with the given systemInfo originating from the given part.
 int dispatchEvent(MiEvent event)
          Dispatches the given event to all event handlers assigned to this MiPart if: getEventHandlingEnabled() is true and getEventHandlingDisabledByContainer() is false or the event is a monitor event and if this MiPart is visible or the event is a MOUSE_EXIT This is rarely if ever called by your program and requires the MiEvent to be properly prepared as to the current MiEditor and the location of the mouse cursor within that editor.
 java.lang.Object doExport(java.lang.String format)
          Exports data as specified.
 void doImport(MiDataTransferOperation transfer)
          Imports data as specified.
 void draw(MiRenderer renderer)
          Draws this MiPart.
 void drawNow()
          Draws this MiPart without bothering to check the clip bounds.
 void drawNow(MiBounds b)
          Draws this MiPart without bothering to check the clip bounds.
 void flip(double radians)
          Flips this MiPart about the axis specified by the given number of radians about the parts center.
 void flip(MiPoint center, double radians)
          Flips this MiPart about the axis specified by the given number of radians about the given point.
 void freeAccessLock()
          Free one lock that was obtained using getAccessLock.
 java.awt.Color get1DShapeStrokeBackgroundColor()
           
 boolean get1DShapeStrokesFilled()
           
 void getAccessLock()
          Waits, if necessary, and obtains a lock on this MiPart.
 MiiAction getActionHandler(int index)
          Gets the action handler assigned to this MiPart at the given index.
 MiiAction[] getActionsGenerated()
          Gets the actions generated by this MiPart.
 MiiAction[] getActionsLocallyGenerated()
          Gets the actions generated by this particular subclass of MiPart.
 MiAction getActionsRequestedFromParts()
          Gets the actions requested by all parts of this MiPart.
 MiiPartRenderer getAfterRenderer()
          Gets the renderer that is called immediately after this MiPart is drawn.
 java.awt.AlphaComposite getAlphaCompositeRenderMode()
           
 MiAnnotationPointManager getAnnotationPointManager()
          Gets the MiAnnotationPointManager, if any, assigned to this MiPart.
 MiParts getAssociatedParts(MiParts parts)
           
 MiPart getAttachment(int index)
          Get this MiPart's attachment at the given index (starting from 0).
 MiPart getAttachment(java.lang.String tag)
          Get this MiPart's attachment with the given tag.
 MiMargins getAttachmentMargins(java.lang.String tag)
          Get this MiPart's attachment's margins with the given tag.
 MiAttachments getAttachments()
          Gets the list of attachments assigned to this MiPart.
 int getAttributeLockMask()
          Gets this MiPart's lock mask that has bits set if particular attributes should not be changed.
 int getAttributePublicMask()
          Gets this MiPart's public mask that has bits set if particular attributes can be changed by the end user.
 MiAttributes getAttributes()
          Gets the attributes that are assigned to this MiPart.
 java.lang.String getAttributeValue(java.lang.String name)
          Gets the textual value of the attribute with the given name.
 java.awt.Color getBackgroundColor()
          Gets this MiPart's background color.
 java.awt.Image getBackgroundImage()
          Gets this MiPart's background image.
 MiiDeviceRenderer getBackgroundRenderer()
          Gets the renderer that draws the background of this MiPart.
 java.awt.Image getBackgroundTile()
          Gets this MiPart's background tile image.
 MiiHelpInfo getBalloonHelp(MiPoint point)
          Gets the object that describes the balloon help, if any, assigned to this MiPart at the given point.
 MiiPartRenderer getBeforeRenderer()
          Gets the renderer that is called immediately before this MiPart is drawn.
 java.awt.Color getBlackColor()
          Gets this MiPart's darkest accent color.
 java.awt.Color getBorderHiliteColor()
          Gets the color of any hilite border.
 double getBorderHiliteWidth()
          Gets the width of any hilite border.
 int getBorderLook()
          Gets the border assigned to this MiPart.
 MiiDeviceRenderer getBorderRenderer()
          Gets the renderer that draws the borders of this MiPart.
 MiBounds getBounds()
          Gets the outer bounds of this MiPart.
 MiBounds getBounds(MiBounds b)
          Gets the outer bounds of this MiPart.
 MiPoint getCenter()
          Gets the location of the center of this MiPart.
 MiPoint getCenter(MiPoint pt)
          Gets the location of the center of this MiPart.
 void getCenterOfRotation(MiPoint rotationPoint)
          Get the center of rotation of this MiPart.
 double getCenterX()
          Gets the x coordinate of the center of this MiPart.
 double getCenterY()
          Gets the y coordinate of the center of this MiPart.
 java.awt.Color getColor()
          Gets this MiPart's foreground color.
 MiConnection getConnection(int index)
          Gets the connection assigned to this MiPart at the given index.
 MiConnectionPointManager getConnectionPointManager()
          Gets the MiConnectionPointManager, if any, assigned to this MiPart.
 MiPart getContainer(int index)
          Gets the container at the given index.
 MiAction getContainerRequestedActions()
          Gets the actions requested by all containers of this MiPart.
 MiEditor getContainingEditor()
          Gets the MiEditor that contains this MiPart.
 MiWindow getContainingWindow()
          Gets the MiWindow that contains this MiPart.
 int getContextCursor(MiBounds area)
          Gets the context cursor assigned to the given area of this MiPart.
 MiiContextMenu getContextMenu()
          Gets the context menu, if any, assigned to this MiPart.
 MiiContextMenu getContextMenu(MiBounds area)
          Gets the context menu, if any, assigned to this MiPart at the given point.
 MiControlPointManager getControlPointManager()
          Gets the MiControlPointManager, if any, assigned to this MiPart.
 MiCustomLookAndFeels getCustomLookAndFeels()
           
static MiCustomLookAndFeels getCustomLookAndFeels(java.lang.String className)
           
 java.awt.Color getDarkColor()
          Gets this MiPart's third brightest accent color.
 MiConnection getDeepConnection(int index)
          Returns the ith connection assigned to this MiPart and all of it's tree of parts.
 MiConnection getDeepConnection(int[] index)
          Returns the ith connection assigned to this MiPart and all of it's tree of parts.
 MiParts getDeepConnections(MiParts deepConnections)
          Returns a list of all connections assigned to this MiPart and all of it's tree of parts.
 boolean getDeeplyInvalidateAreas()
          Gets whether invalid areas of this MiPart invalidates areas in subwindows.
static MiAttributes getDefaultAttributes()
          Gets the attributes that are assigned to all newly created MiParts.
 MiiHelpInfo getDialogHelp(MiPoint point)
          Gets the object that describes the dialog help, if any, assigned to this MiPart, at the given point.
 java.awt.Image getDoubleBuffer()
          Gets the image buffer used for double buffering this MiPart.
 MiiDragAndDropBehavior getDragAndDropBehavior()
          Gets description of any override of the drag and drop operation behavior as specified by this MiParts containers.
 MiBounds getDrawBounds(MiBounds b)
          Get the draw bounds of this MiPart.
 MiDrawManager getDrawManager()
          Gets the draw manager of this MiPart.
 MiiEventHandler getEventHandler(int index)
          Gets the event handler assigned to this MiPart at the given index.
 MiiEventHandler getEventHandler(java.lang.String name)
          Gets the event handler assigned to this MiPart with the given name.
 MiiEventHandler getEventHandlerWithClass(java.lang.String className)
          Gets the event handler assigned to this MiPart with the given class name.
 boolean getEventHandlingDisabledByContainer()
          Gets whether this MiPart has event handling disabled by a container being disabled.
 boolean getEventHandlingEnabled()
          Gets whether this MiPart has event handling enabled or explicitely disabled.
 boolean getFlipped()
           
 MiFont getFont()
          Gets this MiPart's font.
 int getFontHorizontalJustification()
          Gets the horizontal justification of any text.
 int getFontPointSize()
          Gets the point size of the font of this MiPart.
 int getFontVerticalJustification()
          Gets the vertical justification of any text.
 boolean getHasBorderHilite()
          Returns true if this MiPart has a hilite border.
 boolean getHasShadow()
          Returns true if this MiPart has a shadow.
 double getHeight()
          Gets the height of this MiPart.
 int getID()
          Gets the unique integer id associated with this MiPart.
 boolean getIncomingInvalidLayoutNotificationsEnabled()
          Gets whether incoming invalid layouts notifications are enabled.
 int getIndexOfItem(MiPart item)
          Gets the index of the given item in this container.
 int getIndexOfPart(MiPart part)
          Gets the index of the given part in this container.
 MiBounds getInnerBounds()
          Gets the inner bounds of this MiPart.
 MiBounds getInnerBounds(MiBounds b)
          Gets the inner bounds of this MiPart.
 boolean getIntersectionWithLine(MiPoint insidePoint, MiPoint otherPoint, MiPoint returnedIntersectionPoint)
          Gets whether there is an intersection between the line formed by the given points and the outer bounds of this MiPart.
 boolean getInvalidAreaNotificationsEnabled()
          Gets whether invalid area notifications are enabled.
 boolean getInvalidLayoutNotificationsEnabled()
          Gets whether invalid layouts notifications are enabled.
 MiPart getItem(int index)
          Gets the item of this container at the given index.
 MiPart getItem(java.lang.String name)
          Gets the item of this container with the given name.
 MiiKeyFocusTraversalGroup getKeyFocusTraversalGroup()
          Gets the key focus traversal group, if any, for the parts of this container.
 MiiLayout getLayout()
          Get the layout of this MiPart.
 MiiLayoutManipulator getLayoutManipulator()
          Gets this MiPart's layout's manipulator, if any, that has been assigned to this MiPart.
 java.awt.Color getLightColor()
          Gets this MiPart's second brightest accent color.
 double getLineEndSize()
          Gets this MiPart's line end size.
 MiiLineEndsRenderer getLineEndsRenderer()
          Gets the renderer that draws line ends for this MiPart.
 boolean getLineEndsSizeFnOfLineWidth()
          Gets whether this MiPart's line ends, if any, grow and shrink when this MiPart's line width grows and shrinks.
 int getLineEndStyle()
          Gets this MiPart's line end style.
 double getLineStartSize()
          Gets this MiPart's line start size.
 int getLineStartStyle()
          Gets this MiPart's line start style.
 int getLineStyle()
          Gets this MiPart's line style.
 double getLineWidth()
          Gets this MiPart's line width.
 MiEvent[] getLocallyRequestedEventTypes()
          Gets the events that this MiPart's event handlers are interested in.
 MiiManipulator getManipulator()
          Gets the manipulator, if any, that has been assigned to this MiPart.
 MiMargins getMargins(MiMargins m)
          Gets the margins of this MiPart.
 double getMaximumHeight()
          Gets the largest height this MiPart should have.
 double getMaximumWidth()
          Gets the largest width this MiPart should have.
 double getMinimumHeight()
          Gets the smallest height this MiPart should have.
 double getMinimumPickAreaSize()
          Gets the value of the smallest pick area.
 MiSize getMinimumSize(MiSize size)
          Gets the minimum size of this MiPart.
 double getMinimumWidth()
          Gets the smallest width this MiPart should have.
 java.lang.String getName()
          Return the name of this MiPart.
 int getNumberOfActionHandlers()
          Gets the number of action handlers assigned to this MiPart.
 int getNumberOfAttachments()
          Get the number of attachments this MiPart has.
 int getNumberOfConnections()
          Gets the number of connections assigned to this MiPart.
 int getNumberOfContainers()
          Gets the number of containers of this MiPart.
 int getNumberOfDeepConnections()
          Returns the number of connections assigned to this MiPart and all of it's tree of parts.
 int getNumberOfEventHandlers()
          Gets the number of event handlers assigned to this MiPart.
 int getNumberOfItems()
          Gets the number of items this container has.
 int getNumberOfParts()
          Gets the number of parts this container has.
 int getNumberOfPoints()
          Gets the number of points that define the shape of this MiPart.
 int getNumberOfResources()
          Gets the number of resources assigned to this MiPart.
 boolean getOutgoingInvalidLayoutNotificationsEnabled()
          Gets whether outgoing invalid layouts notifications are enabled.
 MiPart getPart(int index)
          Gets the part of this container at the given index.
 MiPart getPart(java.lang.String name)
          Gets the part of this container with the given name.
 MiPoint getPoint(int pointNum)
          Gets the location of the point with the given number.
 void getPoint(int pointNum, MiPoint point)
          Gets the location of the point with the given number.
 double getPointEntryAngle(int pointNumber)
          Get the angle of the shape as it enters the point with the given number.
 double getPointExitAngle(int pointNumber)
          Get the angle of the shape as it exits the point with the given number.
 double getPointX(int pointNum)
          Gets the location of the point with the given number.
 double getPointY(int pointNum)
          Gets the location of the point with the given number.
 MiSize getPreferredSize(MiSize size)
          Gets the preferred size of this MiPart.
 MiPropertyDescriptions getPropertyDescriptions()
          Gets the descriptions of all of the properties.
 java.lang.String getPropertyValue(java.lang.String name)
          Gets the textual value of the property with the given name.
 MiiManipulator getPrototypeManipulator()
           
 MiPoint getRelativeLocation(int location, MiBounds boundsToPosition, MiPoint pt, MiMargins margins)
          Gets location into given point and positions given bounds as specified by the given location.
 java.lang.Object getResource(java.lang.String name)
          Gets the value of the named resource.
 java.lang.String getResourceName(int index)
          Gets the name of the ith resource assigned to this MiPart.
 MiWindow getRootWindow()
          Gets the root window that contains this MiPart.
 double getRotation()
          Gets the rotation in radians
 MiiSelectionGraphics getSelectionGraphics()
          Gets the graphics to be used to highlight this MiPart when it is selected.
 java.awt.Color getShadowColor()
          Gets the color of any shadow.
 int getShadowDirection()
          Gets the direction of any shadow.
 double getShadowLength()
          Gets the length of any shadow.
 MiiShadowRenderer getShadowRenderer()
          Gets the renderer that draws shadows for this MiPart.
 MiPart getShadowShape()
          Gets the shape of any shadow.
 int getShadowStyle()
          Gets the style of any shadow.
 MiSize getSize(MiSize size)
          Gets the size of this MiPart.
 MiSnapPointManager getSnapPointManager()
          Gets the MiSnapPointManager, if any, assigned to this MiPart.
 MiiHelpInfo getStatusHelp(MiPoint point)
          Gets the status bar help assigned to the given point of this MiPart.
 java.lang.String[] getSupportedExportFormats()
          Gets list of data formats that this MiPart is able to export.
 java.lang.String[] getSupportedImportFormats()
          Gets list of data formats that this MiPart is able to import.
 boolean getThisOrPartHasInvalidArea()
          Gets whether this MiPart or one of it's parts needs to be at least partially redrawn.
 MiiHelpInfo getToolHintHelp(MiPoint point)
          Gets the tool hint assigned to the given point of this MiPart.
static int getTotalNumberOfPartsCreated()
          Gets the total number of parts created since this class was loaded.
 MiiTransform getTransform()
          Gets the transform, if any, assigned to this MiPart.
 float getTransparency()
           
 boolean getValidatingLayout()
          Gets whether Mica is currently validating this MiPart's layout.
 MiPartAnimator getVisibilityAnimator()
          Gets the animator that animates the appearance and disappearance of this MiPart.
 java.awt.Color getWhiteColor()
          Gets this MiPart's brightest accent color.
 double getWidth()
          Gets the width of this MiPart.
 int getWriteMode()
          Gets this MiPart's write mode (either Mi_COPY_WRITEMODE or Mi_XOR_WRITEMODE).
 double getXmax()
          Gets the x coordinate of the right side of this MiPart.
 double getXmin()
          Gets the x coordinate of the left side of this MiPart.
 java.awt.Color getXorColor()
          Gets this MiPart's xor color.
 double getYmax()
          Gets the y coordinate of the top side of this MiPart.
 double getYmin()
          Gets the y coordinate of the bottom side of this MiPart.
 boolean hasAttachment(MiPart obj)
          Gets whether this MiPart has the given attachment.
 boolean hasAttribute(java.lang.String name)
          Returns whether the attribute with the given name is valid.
 boolean hasEnterKeyFocus()
          Gets whether this MiPart has enter key focus.
 boolean hasEventHandler(MiiEventHandler handler)
           
 boolean hasEventHandlers()
          Gets whether this MiPart or any of it's attachments or parts has event handlers assigned.
 boolean hasFixedAspectRatio()
          Returns true if this MiPart has constant height/width ratio.
 boolean hasFixedHeight()
          Returns true if this MiPart has a constant height.
 boolean hasFixedWidth()
          Returns true if this MiPart has a constant width.
 boolean hasKeyboardFocus()
          Gets whether this MiPart has keyboard focus.
 boolean hasMouseFocus()
          Gets whether this MiPart has mouse focus.
 boolean hasOverriddenMinimumSize()
          Gets whether the minimum size has been specified (and therefore overridden) by using setMinimumSize().
 boolean hasOverriddenPreferredSize()
          Gets whether the preferred size has been specified (and therefore overridden) by using setPeferredSize().
 boolean hasProperty(java.lang.String name)
          Returns whether the property with the given name is valid.
 boolean hasTotallyInvalidArea()
           
 boolean hasValidCachedEventHandlerInfo()
          Gets whether the cached information about the event handlers assigned to this MiPart and it's parts is valid.
 boolean hasValidLayout()
          Gets whether this MiPart's layout, if any, is valid and does not need to be recalculated.
 void insertActionHandler(MiiActionHandler handler, int validAction, int index)
          Inserts the given action handler which will be called when the given validAction occurs.
 void insertActionHandler(MiiAction action, int index)
          Inserts the given action, which will be sent to it's action handler when any of it's valid actions occur, at the given index.
 void insertActionHandler(MiiAction action, MiEvent event, int index)
          Inserts the given action (which will be sent to it's action handler when the given event occurs) at the given index.
 void insertConnection(MiConnection conn, int index)
          Inserts the given connection in this MiPart's list of connections at the given index.
 void insertContainer(MiPart container, int index)
          Inserts the container into the list of containers of this MiPart at the given index.
 void insertEventHandler(MiiEventHandler handler, int index)
          Inserts the given event handler into the list of event handlers assigned to this MiPart at the given index.
 void insertItem(MiPart item, int index)
          Inserts the given item at the given index into this container.
 void insertPart(MiPart obj, int index)
          Inserts the given part at the given index into this container.
 void insertPoint(double x, double y, int index)
          Insert another point to the points that define the shape of this MiPart.
 void insertPoint(MiPoint point, int index)
          Insert another point to the points that define the shape of this MiPart.
 void invalidateArea()
          Invalidates the entire area (drawBounds) of this MiPart.
 void invalidateArea(MiBounds area)
          Invalidates the given area of this MiPart if invalid area notifications are enabled.
 void invalidateLayout()
          Specifies that this MiPart has an invalid layout if incoming invalid layout notifications are enabled.
 boolean isAcceptingEnterKeyFocus()
          Returns true if this MiPart accepts enter-key focus.
 boolean isAcceptingKeyboardFocus()
          Returns true if this MiPart accepts keyboard focus.
 boolean isAcceptingMouseFocus()
          Returns true if this MiPart accepts mouse focus.
 boolean isAcceptingTabKeys()
          Returns true if this MiPart accepts Tab keys.
 boolean isActionDispatchingEnabled()
           
 boolean isConnectable()
          Returns true if this MiPart can be connected to.
 boolean<