twaver.network
Class Network

java.lang.Object
  extended by FrameLayout
      extended by twaver.network.Network

public class Network
extends FrameLayout

拓扑图组件,用于绘制节点,连线,分组,子网等拓扑元素,包含多个子面板, 其中拓扑图在getElementCanvas()面板中绘制,顶层面板getTopCanvas()用于用户交互时的绘制


Field Summary
protected  ElementBox box
          数据容器
 float tolerance
          图形选中容差,线条太细或者缩放比例非常小时,图形很难被点选,所以默认会设置一个容差,只用于图形,不适用于图片 更改容差值可设置Defaults.SELECTION_TOLERANCE
 
Constructor Summary
Network(Context context)
          拓扑图组件,用于绘制节点,连线,分组,子网等拓扑元素,包含多个子面板, 其中拓扑图在getElementCanvas()面板中绘制,顶层面板getTopCanvas()用于用户交互时的绘制
Network(Context context, AttributeSet attrs)
          拓扑图组件,用于绘制节点,连线,分组,子网等拓扑元素,包含多个子面板, 其中拓扑图在getElementCanvas()面板中绘制,顶层面板getTopCanvas()用于用户交互时的绘制
Network(Context context, AttributeSet attrs, int defStyle)
          拓扑图组件,用于绘制节点,连线,分组,子网等拓扑元素,包含多个子面板, 其中拓扑图在getElementCanvas()面板中绘制,顶层面板getTopCanvas()用于用户交互时的绘制
Network(ElementBox box, Context context)
          拓扑图组件,用于绘制节点,连线,分组,子网等拓扑元素,包含多个子面板, 其中拓扑图在getElementCanvas()面板中绘制,顶层面板getTopCanvas()用于用户交互时的绘制
 
Method Summary
 void addCustomInteraction(Interaction interaction)
          添加用户交互监听器 在切换交互模式后,用户交互监听器依然可以保持监听,也就是说不受当前交互模式的影响,保持可用
 void addInteractionListener(IListener<InteractionEvent> listener)
          添加交互监听
 ImageButton addPopupButton(int icon, Action2<Element,Point> call, java.lang.String tooltip)
          添加弹出菜单项
 ImageButton addPopupButton(int icon, Action2<Element,Point> call, java.lang.String tooltip, IFilter<Element> visibleFilter)
          添加弹出菜单项
 void addPropertyChangeListener(IListener<PropertyChangeEvent> listener)
          添加拓扑图属性变化事件监听器
 void addSelectionChangeListener(Listener<ListEvent<Element>> listener)
          添加网元选中变化监听器
 boolean beforeInteractionEvent(InteractionEvent event)
          交互事件发生前回调此函数
 void callLater(java.lang.Runnable action)
          分配任务到UI线程中调用
 void callLater(java.lang.Runnable action, long delay)
          分配任务到UI线程中延迟调用
 boolean centerElement(Element element)
          平移拓扑图,让网元居中显示
 boolean centerElement(Element element, float zoom)
          平移拓扑图,让网元居中显示
 boolean checkVisibility(Element element)
          检测网元是否可见,并将结果缓存在网元的visible属性中,Element.isVisible() 网元是否可见由twaver内部规则(isInternalVisible(Element)),和可见过滤器(getVisibleFilter())决定
 void clearPopupbar()
          清空弹出菜单
 Link createLinkByInteraction(Node from, Node to, java.util.List<Point> points)
          创建连线,创建连线交互时会调用此方法,同时会派发创建网元交互事件InteractionEvent.ELEMENT_CREATE
 ShapeNode createShapeByInteraction(java.util.List<Point> points)
          创建多边形,创建多边形交互时会调用此方法,同时会派发创建网元交互事件InteractionEvent.ELEMENT_CREATE
 boolean forEachVisibleElement(Action<Element> action)
          遍历当前所有可见的网元,遍历顺序会网元显示顺序,从上到下
 int getAlarmColor(Element element)
          告警冒泡颜色,默认取网元作高级别的新发告警颜色
 java.lang.String getAlarmLabel(Element element)
          获取告警文本,用于告警冒泡的显示,默认根据网元的告警信息,返回类似这样的文本:2C+,表示有两个C级别的新发告警,加号表示还有其他低级别的新发告警,如果网元上没有告警,返回null
 Position getAlarmPosition(Element element)
          告警冒泡的位置,默认取网元的Styles.ALARM_POSITION样式
 Rect getBodyBounds(Element element)
          获取网元组件的主体尺寸和位置
 boolean getBooleanStyle(Element element, java.lang.String name)
          获取boolean类型样式属性
 int getColorStyle(Element element, java.lang.String name)
          获取颜色样式属性
 java.lang.String getCurrentInteractionMode()
          获取当前交互模式
 java.util.List<Interaction> getCurrentInteractions()
          获取当前交互监听器
 ISubnetwork getCurrentSubnetwork()
          当前子网
 java.util.List<Interaction> getCustomInteractions()
          获取用户交互监听器
 Element getElement(MotionEvent e)
          获取触摸事件所在坐标点下的网元,存在多个网元时,取最上面的一个
 Element getElement(TouchEvent e)
          获取触摸事件所在坐标点下的网元,存在多个网元时,取最上面的一个
 Element getElementAt(float x, float y)
          获取逻辑坐标位置的网元,存在多个网元时,取最上面的一个
 Element getElementAt(Point p)
          获取逻辑坐标位置的网元,存在多个网元时,取最上面的一个
 ElementBox getElementBox()
          获取网元容器
 Element getElementByScreenPoint(Point screenPoint)
          获取屏幕指定位置相交的网元,如果该位置存在多个网元时,取最上面的一个,如果没有,返回null
 NetworkCanvas getElementCanvas()
          获取拓扑图画布面板,拓扑元素都绘制在这个面板上
 java.lang.String getElementLabel(Element element)
          获取网元文本,默认取网元的name属性
 Dispatcher<ListEvent<Element>> getElementListChangeDispatcher()
          用于管理网元容器变化监听器,使用这个事件派发器,可以避免切换网元容器时带来的问题 比如下面的代码,即使切换不同的网元容器,依然可以监听到当前拓扑图所使用的elementBox的元素增减事件,不会被绑死到初始的网元容器
 Dispatcher<PropertyChangeEvent> getElementPropertyChangeDispatcher()
          获取网元属性变化事件派发器
 java.util.List<Element> getElements(MotionEvent e)
          获取触摸事件所在坐标点下的所有网元
 java.util.List<Element> getElements(TouchEvent e)
          获取触摸事件所在坐标点下的所有网元
 java.util.List<Element> getElementsAt(float x, float y)
          获取逻辑坐标位置所有相交的网元
 java.util.List<Element> getElementsAt(Point p)
          获取逻辑坐标位置所有相交的网元
 Rect getElementsBounds()
          网元显示范围,使用逻辑坐标
 java.util.List<Element> getElementsByScreenPoint(float x, float y)
          获取屏幕指定位置所有相交的网元
 java.util.List<Element> getElementsByScreenPoint(Point screenPoint)
          获取屏幕指定位置所有相交的网元
 java.lang.Object getElementStyle(Element element, java.lang.String styleName)
          网元样式生成器
 Generator2<Element,java.lang.String,java.lang.Object> getElementStyleGenerator()
          网元样式生成器,默认为StyleGenerator
 ElementUI<? extends Element> getElementUI(Element element)
          获取网元对应的UI元素
 float getFloatStyle(Element element, java.lang.String name)
          获取数值样式属性
 Typeface getFontStyle(Element element, java.lang.String name)
          获取字体样式属性Typeface
 Group getGroup(Element element)
          获取网元所在的分组
 IImage getImage(Node node)
          获取节点图片,可全局注册图片,支持多种图片类型IImage
 IImage getImage(java.lang.Object image)
          获取图片,可全局注册图片,支持多种图片类型IImage
 Insets getInsetsStyle(Element element, java.lang.String name)
          获取Insets样式属性
 Dispatcher<InteractionEvent> getInteractionDispatcher()
          获取交互事件派发器,可通过此派发器监听拓扑图交互事件
 java.util.List<Interaction> getInteractions(java.lang.String name)
          获取指定交互模式的交互监听器集合
 int getIntStyle(Element element, java.lang.String name)
          获取整型样式属性
 ILinkBundle getLinkBundle(Link link)
          获取连线捆绑对象,通过该对象可以得到两节点之间所有的连线
 ILinkBundle getLinkBundle(Node node1, Node node2)
          获取连线捆绑对象,通过该对象可以得到两节点之间所有的连线
 java.lang.String getLinkBundleLabel(Link link)
          获取连线捆绑时显示的文本,默认为:+连线数量 Styles#LINK_BUNDLE_LABEL_***
 Point getLogicalPoint(MotionEvent evt)
          获取触摸事件所在拓扑图的逻辑坐标,会根据缩放比例和偏移量作转换
 Point getLogicalPoint(TouchEvent evt)
          获取触摸事件所在拓扑图的逻辑坐标,会根据缩放比例和偏移量作转换
 IFilter<Element> getMovableFilter()
          网元能否拖动过滤器,在移动交互器中会用到此逻辑MoveInteraction
 float getOutline(Element element)
          获取边框宽度,不同类型的网元取不同的样式属性,普通节点取Styles.NODE_OUTLINE_WIDTH样式, 连线取Styles.LINK_OUTLINE_WIDTH样式,分组展开时取Styles.GROUP_OUTLINE_WIDTH样式
 int getOutlineColor(Element element)
          网元边框颜色,不同类型的网元取不同的样式属性,普通节点取Styles.NODE_OUTLINE_COLOR样式, 连线取Styles.LINK_OUTLINE_COLOR样式,分组展开时取Styles.GROUP_OUTLINE_COLOR样式
 Point getPointStyle(Element element, java.lang.String name)
          获取Point样式属性
 Position getPositionStyle(Element element, java.lang.String name)
          获取位置Position样式属性
 Dispatcher<PropertyChangeEvent> getPropertyChangeDispatcher()
          拓扑图属性变化事件派发器
 int getRenderColor(Element element)
          获取宣染色,默认取网元最高级别告警颜色
 IFilter<Node> getResizableFilter()
          能否调整节点大小过滤器
 Dispatcher<ListEvent<Element>> getSelectionChangeDispatcher()
          网元选中变化事件派发器,可通过此派发器监听选中变化事件
 SelectionModel<Element> getSelectionModel()
          选中模型,可通过选中模型设置网元选中或者取消选中,默认取网元容器的选中模型DataBox.getSelectionModel()
 IShader getShaderStyle(Element element, java.lang.String name)
          获取着色器IShader样式属性
 float getStateOutline(Element element)
          获取网元外边框宽度
 int getStateOutlineColor(Element element)
          网元外边框颜色,默认取网元最高级别传递告警颜色
 java.lang.String getStringStyle(Element element, java.lang.String name)
          获取字符串样式属性
 Styles getStyles()
          获取默认样式列表
 TopCanvas getTopCanvas()
          获取顶层面板,顶层面板,用于绘制拓扑图交互过程中的一些绘制效果,比如选中框,拐点编辑,文字提示,高亮蒙板等
 Point getTranslate()
          获取当前拓扑图偏移量
 float getTranslateX()
          获取拓扑图x方向偏移量
 float getTranslateY()
          获取拓扑图y方向偏移量
 Rect getUIBounds(Element element)
          获取网元在拓扑图中所占的范围
 Rect getViewportBounds()
          拓扑图当前可见范围,使用逻辑坐标
 IFilter<Element> getVisibleFilter()
          网元可见过滤器
 float getZoom()
          获取拓扑图缩放比例
 void highlight(Element element)
          高亮显示此网元,该网元以外的区域都将蒙上蒙板,取消高亮可调用方法resetMask() 某些交互时,会用到高亮效果,比如创建连线,以及创建多边形
 void highlightAllLinkabelToNodes(Node from)
          高亮显示所有可以被连接的节点
 void highlightAllLinkableFromNodes()
          高亮显示所有可创建连线的节点
 void invalidateElement(Element element)
          无效网元,使该网元对应的网元UI生效和重绘
 void invalidateElementSize(Element element)
          无效网元尺寸,使该网元对应的网元UI重新测量大小,并重绘
 void invalidateNetwork()
          无效拓扑图,使拓扑图中的网元UI生效和重绘
 void invalidateStyle(java.lang.String styleName)
          无效样式,遍历所有可见网元,无效网元的这个样式
 void invalidateStyles(Element element)
          无效网元的所有样式,使网元UI重新加载所有样式,并重绘
 boolean invalidateVisibility(Element element)
          无效网元的可见状态
 boolean isAntialias()
          是否使用抗锯齿效果绘制拓扑图
 boolean isEditting()
          是否处于网元编辑状态,用于交互模式
 boolean isHighlighting()
          拓扑图是否处于蒙板状态,并且有网元高亮显示
protected  boolean isInternalVisible(Element element)
          网元是否可见的默认规则,包括子网过滤,连线绑定,子网展开合并逻辑等等,检测网元可见状态时会调用
 boolean isLinkableFrom(Node node)
          能否作为连线的起始端,用于创建连线交互CreateLinkInteraction
 boolean isLinkableTo(Node node, Node from)
          能否作为连线的终端,用于创建连线交互CreateLinkInteraction
 boolean isLinkBundleEnabled(Link link)
          连线是否参与捆绑,默认通过连线的Styles.LINK_BUNDLE_ENABLE样式属性来决定
 boolean isMovable(Element element)
          网元能否拖动,默认节点,有拐点Link.hasPathSegments()的连线都可以被拖动,此外还可以通过setMovableFilter(IFilter)进行控制 在移动交互器中会用到此逻辑MoveInteraction
 boolean isNoAgentLinkVisible()
          无效连线是否可见
 boolean isRectangleSelectable()
           
 boolean isResizable(Node node)
          能否调整节点大小过滤器
 boolean isSelectable(Element element)
          网元是否可以被选中,适用于界面交互,SelectionInteraction, RectangleSelectionInteraction
 boolean isSelected(Element element)
          网元是否选中
 boolean isShapeEditable(IShape shape)
          多边形获取带拐点的连线能否编辑拐点
 boolean isVisible(Element element)
          网元是否可见,如果该网元的可见状态无效,twaver会通过checkVisibility(Element)方法,重新确定其可见状态
 boolean moveElements(java.util.List<? extends Element> elements, float dx, float dy)
          拖动网元
 boolean moveLink(Link link, float dx, float dy)
          移动连线,默认有拐点Link.hasPathSegments()的连线都可以被拖动
 boolean moveNode(Node node, float dx, float dy)
          移动节点,跟随节点也会被移动,此外如果分组被拖动,其内的孩子网元也会被移动
 boolean moveNodes(java.util.List<Node> nodes, float dx, float dy)
          移动节点集合,跟随节点也会被移动,如果分组被拖动,其内的孩子网元也会被移动,此外如果连线的两个端点都被移动,连线也会被移动
 boolean moveNodeTo(Node node, Point location)
          移动节点到某个位置
protected  void onCurrentSubnetworkChange(PropertyChangeEvent event)
          当前子网被更改时,回调此方法,比如从子网A进入到子网B
protected  void onElementAdd(Element element)
          网元容器中添加网元时,回调此函数
protected  void onElementClear(java.util.List<Element> elements)
          清空网元容器时回调此函数
protected  void onElementParentChange(ParentChangeEvent event)
          网元父节点被修改时,回调此函数
protected  void onElementPropertyChange(PropertyChangeEvent event)
          网元属性变化时,回调此函数
protected  void onElementRemove(Element element)
          网元容器中删除网元时,回调此函数
protected  void onElementSelectionChange(ListEvent<Element> event)
          选中变幻事件时,回调此函数
 void onInteractionEvent(InteractionEvent event)
          交互事件时回调此函数
protected  void onInteractionModeChange(PropertyChangeEvent event)
          交互模式更改时,回调此方法
protected  void onLayerListChange(ListEvent<Layer> event)
          图层变化事件时,回调此函数
protected  void onLayerPropertyChange(PropertyChangeEvent event)
          图层属性变化时,回调此函数
 boolean onTouchEvent(MotionEvent event)
          触摸事件时回调此方法
 void panByInertia(Point speed)
          按惯性平移
 void panTo(float x, float y)
          平移拓扑图到指定位置,使用屏幕坐标
 void panTo(float x, float y, float zoom)
          平移拓扑图到指定位置,使用屏幕坐标
 void registerInteractionMode(java.lang.String name, java.util.List<Interaction> interactions)
          注册一种交互模式
 void removeCustomInteraction(Interaction interaction)
          删除用户交互监听器
 boolean removeElement(Element element)
          删除网元,注意网元时,连同与该网元相关的网元也会被删除,比如父节点被删除,其孩子节点也会被删除,连线的一端被删除,这条连线也会被删除
 boolean removeElements(java.util.Collection<Element> elements)
          删除网元,注意网元时,连同与该网元相关的网元也会被删除,比如父节点被删除,其孩子节点也会被删除,连线的一端被删除,这条连线也会被删除
 void removeInteractionListener(IListener<InteractionEvent> listener)
          删除交互监听
 void removePopupButton(ImageButton button)
          删除弹出菜单按钮
 void removePropertyChangeListener(IListener<PropertyChangeEvent> listener)
          删除拓扑图属性变化事件监听器
 boolean removeSelection()
          删除选中的网元,注意网元时,连同与该网元相关的网元也会被删除,比如父节点被删除,其孩子节点也会被删除,连线的一端被删除,这条连线也会被删除
 void removeSelectionChangeListener(Listener<ListEvent<Element>> listener)
          删除网元选中变化监听器
 void removeView(View view)
           
 void resetDefaultInteractionMode()
          设置回默认交互模式
 void resetElementVisibilityCache()
          重新检测所有网元的可见状态,并重绘拓扑图,当可见逻辑发生变化时,比如切换子网,或者更改可见过滤器等等,都会调用此方法 另外如果定制的可见逻辑条件发生变化,可以调用此方法使其生效
 void resetLinkVisibility()
          重新检测所有连线的可见状态,比如调用setNoAgentLinkVisible(boolean)更改连线可见逻辑时,twaver会调用此方法,以保证所有连线的可见状态生效
 boolean resetMask()
          取消蒙板,取消高亮显示
 void reverseLinkBundleExpanded(Link link)
          展开获取合并连线绑定
 void sendToTop(Element element)
          网元置顶,默认点选时会调用此方法
 void setAntiAlias(boolean antiAlias)
          设置抗锯齿效果绘制拓扑图
 void setCurrentInteractionMode(java.lang.String name)
          设置当前交互模式
 boolean setCurrentSubnetwork(ISubnetwork subnetwork)
          设置当前子网
 void setDefaultInteractionMode(java.lang.String name)
          设置默认交互模式
 void setDefaultInteractionMode(java.lang.String name, boolean resetDefault)
          设置默认交互模式
 void setEditting(boolean editting)
          设置网元正在被编辑,用于交互模式
 boolean setElementBox(ElementBox box)
          设置网元容器
 void setElementStyleGenerator(Generator2<Element,java.lang.String,java.lang.Object> elementStyleGenerator)
          设置网元样式生成器,默认为StyleGenerator
 void setInertiaEffect(boolean inertiaEffect)
          是否使用惯性动画效果,默认为true,在拓扑图平移放手时,会随惯性滑动一段距离
 void setLabelGenerator(Generator<Element,java.lang.String> labelGenerator)
          设置网元文本生成器,默认取网元的name属性
 void setMaxZoom(float maxZoom)
          设置最大缩放比例
 void setMinZoom(float minZoom)
          设置最小缩放比例
 void setMovableFilter(IFilter<Element> movableFilter)
          设置网元能否拖动过滤器,在移动交互器中会用到此逻辑MoveInteraction
 void setNoAgentLinkVisible(boolean noAgentLinkVisible)
          设置无效连线是否可见
 void setRectangleSelectable(boolean rectangleSelectable)
           
 void setResizableFilter(IFilter<Node> resizableFilter)
          设置能否调整节点大小过滤器
 void setSelectableFilter(IFilter<Element> selectableFilter)
          设置网元能否选中过滤器,适用于界面交互,SelectionInteraction, RectangleSelectionInteraction
 boolean setStyles(Styles styles)
          设置默认样式列表,默认取Styles.getInstance()
 boolean setTransform(float zoom, float tx, float ty)
          设置缩放比例和偏移量
 boolean setTranslate(float tx, float ty)
          设置拓扑图偏移量,与translate(float, float)方法作用不同,此方法不考虑原来的偏移量
 void setVisibleFilter(IFilter<Element> visibleFilter)
          设置网元可见过滤器,调用此方法后,网元的可见状态缓存被清除,并在绘制时重新确定可见状态checkVisibility(Element)
 boolean setZoom(float zoom)
          设置缩放比例,按(0,0)为参照点进行缩放
 boolean setZoom(float zoom, float px, float py)
          设置缩放比例,按指定点为中心缩放
 void showTooltip(java.lang.String tooltip)
          显示文本提示,将出现在拓扑图的顶部中心位置
 void stopPan()
          停止平移
 Point toLogicalPoint(float relativeScreenX, float relativeScreenY)
          根据屏幕坐标获取对应在拓扑图的逻辑坐标,会根据缩放比例和偏移量作转换
 Point toLogicalPoint(Point screenPoint)
          根据屏幕坐标获取对应在拓扑图的逻辑坐标,会根据缩放比例和偏移量作转换
 Rect toLogicalRect(Rect screenRect)
          屏幕矩形转换成拓扑逻辑坐标,会根据缩放比例和偏移量作转换
 float toLogicalX(float x)
          屏幕X坐标转换成逻辑X坐标
 float toLogicalY(float y)
          屏幕Y坐标转换成逻辑Y坐标
 Point toScreenPoint(float logicalX, float logicalY)
          逻辑坐标转换成屏幕坐标,比如网元节点设置位置(100, 100),通过这个方法可以获取该节点位于屏幕的坐标位置
 Point toScreenPoint(Point logicalPoint)
          逻辑坐标转换成屏幕坐标,比如网元节点设置位置(100, 100),通过这个方法可以获取该节点位于屏幕的坐标位置
 Rect toScreenRect(Rect logicalRect)
          逻辑坐标转换成屏幕坐标,比如网元节点逻辑范围为:(100, 100, 32, 32),通过这个方法可以获取该节点位于屏幕的坐标范围
 float toScreenX(float x)
          逻辑X坐标转换成屏幕X坐标
 float toScreenY(float y)
          逻辑Y坐标转换成屏幕Y坐标
 boolean translate(float dx, float dy)
          平移拓扑图,与setTranslate(float, float)方法作用不同,此方法是在现有偏移量的基础上再作偏移
 boolean upSubNetwork()
          回到上一级子网
 boolean withInertiaEffect()
          是否使用惯性动画效果,默认为true,在拓扑图平移放手时,会随惯性滑动一段距离
 boolean zoomIn(float px, float py)
          以指定位置为中心放大
 boolean zoomOut(float px, float py)
          以指定位置为中心缩小
 boolean zoomToOverview()
          缩放到窗口范围
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

box

protected ElementBox box
数据容器

See Also:
setElementBox(ElementBox), getElementBox()

tolerance

public float tolerance
图形选中容差,线条太细或者缩放比例非常小时,图形很难被点选,所以默认会设置一个容差,只用于图形,不适用于图片 更改容差值可设置Defaults.SELECTION_TOLERANCE

Constructor Detail

Network

public Network(Context context)
拓扑图组件,用于绘制节点,连线,分组,子网等拓扑元素,包含多个子面板, 其中拓扑图在getElementCanvas()面板中绘制,顶层面板getTopCanvas()用于用户交互时的绘制

Parameters:
context -

Network

public Network(Context context,
               AttributeSet attrs)
拓扑图组件,用于绘制节点,连线,分组,子网等拓扑元素,包含多个子面板, 其中拓扑图在getElementCanvas()面板中绘制,顶层面板getTopCanvas()用于用户交互时的绘制


Network

public Network(Context context,
               AttributeSet attrs,
               int defStyle)
拓扑图组件,用于绘制节点,连线,分组,子网等拓扑元素,包含多个子面板, 其中拓扑图在getElementCanvas()面板中绘制,顶层面板getTopCanvas()用于用户交互时的绘制


Network

public Network(ElementBox box,
               Context context)
拓扑图组件,用于绘制节点,连线,分组,子网等拓扑元素,包含多个子面板, 其中拓扑图在getElementCanvas()面板中绘制,顶层面板getTopCanvas()用于用户交互时的绘制

Parameters:
box - 设置数据容器
Method Detail

getElementListChangeDispatcher

public Dispatcher<ListEvent<Element>> getElementListChangeDispatcher()
用于管理网元容器变化监听器,使用这个事件派发器,可以避免切换网元容器时带来的问题 比如下面的代码,即使切换不同的网元容器,依然可以监听到当前拓扑图所使用的elementBox的元素增减事件,不会被绑死到初始的网元容器
 network.getElementListChangeDispatcher().addListener(new ListEventListener(){
                        protected void onAdd(Element item) {
                                //
                        }
                        protected void onRemove(Element item) {
                        }
                })
 

Returns:
网元容器变化事件派发器

setElementBox

public boolean setElementBox(ElementBox box)
设置网元容器

Parameters:
box -
Returns:
是否设置成功
See Also:
getElementBox()

getElementBox

public ElementBox getElementBox()
获取网元容器

Returns:
网元容器
See Also:
setElementBox(ElementBox)

onElementPropertyChange

protected void onElementPropertyChange(PropertyChangeEvent event)
网元属性变化时,回调此函数

Parameters:
event -

onElementClear

protected void onElementClear(java.util.List<Element> elements)
清空网元容器时回调此函数

Parameters:
elements -

onElementAdd

protected void onElementAdd(Element element)
网元容器中添加网元时,回调此函数

Parameters:
element -

onElementRemove

protected void onElementRemove(Element element)
网元容器中删除网元时,回调此函数

Parameters:
element -

onElementSelectionChange

protected void onElementSelectionChange(ListEvent<Element> event)
选中变幻事件时,回调此函数

Parameters:
event -

onLayerListChange

protected void onLayerListChange(ListEvent<Layer> event)
图层变化事件时,回调此函数

Parameters:
event -
See Also:
LayerBox, ElementBox.getLayerBox()

onLayerPropertyChange

protected void onLayerPropertyChange(PropertyChangeEvent event)
图层属性变化时,回调此函数

Parameters:
event -

onElementParentChange

protected void onElementParentChange(ParentChangeEvent event)
网元父节点被修改时,回调此函数

Parameters:
event -
See Also:
Data.setParent(twaver.model.Data), Data.addChild(twaver.model.Data)

getGroup

public Group getGroup(Element element)
获取网元所在的分组

Parameters:
element - 网元
Returns:
网元所在分组

getPropertyChangeDispatcher

public Dispatcher<PropertyChangeEvent> getPropertyChangeDispatcher()
拓扑图属性变化事件派发器

Returns:
拓扑图属性变化事件派发器

addPropertyChangeListener

public void addPropertyChangeListener(IListener<PropertyChangeEvent> listener)
添加拓扑图属性变化事件监听器

Parameters:
listener -

removePropertyChangeListener

public void removePropertyChangeListener(IListener<PropertyChangeEvent> listener)
删除拓扑图属性变化事件监听器

Parameters:
listener -

getElementPropertyChangeDispatcher

public Dispatcher<PropertyChangeEvent> getElementPropertyChangeDispatcher()
获取网元属性变化事件派发器

Returns:
网元属性变化事件派发器

getCurrentSubnetwork

public ISubnetwork getCurrentSubnetwork()
当前子网

Returns:
当前子网

setCurrentSubnetwork

public boolean setCurrentSubnetwork(ISubnetwork subnetwork)
设置当前子网

Parameters:
subnetwork -

upSubNetwork

public boolean upSubNetwork()
回到上一级子网


onCurrentSubnetworkChange

protected void onCurrentSubnetworkChange(PropertyChangeEvent event)
当前子网被更改时,回调此方法,比如从子网A进入到子网B

Parameters:
event -

callLater

public void callLater(java.lang.Runnable action)
分配任务到UI线程中调用

Parameters:
action -
See Also:
View#post(Runnable)

callLater

public void callLater(java.lang.Runnable action,
                      long delay)
分配任务到UI线程中延迟调用

Parameters:
action -
delay -
See Also:
View#postDelayed(Runnable, long)

onTouchEvent

public boolean onTouchEvent(MotionEvent event)
触摸事件时回调此方法


onInteractionModeChange

protected void onInteractionModeChange(PropertyChangeEvent event)
交互模式更改时,回调此方法

Parameters:
event -

highlightAllLinkableFromNodes

public void highlightAllLinkableFromNodes()
高亮显示所有可创建连线的节点

See Also:
CreateLinkInteraction, isLinkableFrom(Node)

highlightAllLinkabelToNodes

public void highlightAllLinkabelToNodes(Node from)
高亮显示所有可以被连接的节点

Parameters:
from -
See Also:
CreateLinkInteraction, isLinkableTo(Node, Node)

registerInteractionMode

public void registerInteractionMode(java.lang.String name,
                                    java.util.List<Interaction> interactions)
注册一种交互模式

Parameters:
name - 模式名称
interactions - 交互监听器集合

setCurrentInteractionMode

public void setCurrentInteractionMode(java.lang.String name)
设置当前交互模式

Parameters:
name -
See Also:
getCurrentInteractionMode()

setDefaultInteractionMode

public void setDefaultInteractionMode(java.lang.String name)
设置默认交互模式

Parameters:
name -
See Also:
resetDefaultInteractionMode()

setDefaultInteractionMode

public void setDefaultInteractionMode(java.lang.String name,
                                      boolean resetDefault)
设置默认交互模式

Parameters:
name -
resetDefault -
See Also:
resetDefaultInteractionMode()

resetDefaultInteractionMode

public void resetDefaultInteractionMode()
设置回默认交互模式

See Also:
setDefaultInteractionMode(String), setDefaultInteractionMode(String, boolean)

getCurrentInteractions

public java.util.List<Interaction> getCurrentInteractions()
获取当前交互监听器

Returns:
当前交互监听器

getCustomInteractions

public java.util.List<Interaction> getCustomInteractions()
获取用户交互监听器

Returns:
用户交互监听器
See Also:
addCustomInteraction(Interaction), removeCustomInteraction(Interaction)

addCustomInteraction

public void addCustomInteraction(Interaction interaction)
添加用户交互监听器 在切换交互模式后,用户交互监听器依然可以保持监听,也就是说不受当前交互模式的影响,保持可用

Parameters:
interaction -
See Also:
addCustomInteraction(Interaction), getCustomInteractions()

removeCustomInteraction

public void removeCustomInteraction(Interaction interaction)
删除用户交互监听器

Parameters:
interaction -
See Also:
addCustomInteraction(Interaction), getCustomInteractions()

getInteractions

public java.util.List<Interaction> getInteractions(java.lang.String name)
获取指定交互模式的交互监听器集合

Parameters:
name - 交互模式名称
Returns:
指定交互模式的交互监听器集合

getCurrentInteractionMode

public java.lang.String getCurrentInteractionMode()
获取当前交互模式

Returns:
当前交互模式
See Also:
setCurrentInteractionMode(String)

withInertiaEffect

public boolean withInertiaEffect()
是否使用惯性动画效果,默认为true,在拓扑图平移放手时,会随惯性滑动一段距离

Returns:
是否使用惯性动画效果
See Also:
setInertiaEffect(boolean), PanInteraction

setInertiaEffect

public void setInertiaEffect(boolean inertiaEffect)
是否使用惯性动画效果,默认为true,在拓扑图平移放手时,会随惯性滑动一段距离

Parameters:
inertiaEffect -
See Also:
withInertiaEffect()

getElementUI

public ElementUI<? extends Element> getElementUI(Element element)
获取网元对应的UI元素

Parameters:
element -
Returns:
网元对应的UI元素

getUIBounds

public Rect getUIBounds(Element element)
获取网元在拓扑图中所占的范围

Parameters:
element -
Returns:
网元在拓扑图中所占的范围

getBodyBounds

public Rect getBodyBounds(Element element)
获取网元组件的主体尺寸和位置

Parameters:
element -
Returns:
网元组件的主体尺寸和位置

sendToTop

public void sendToTop(Element element)
网元置顶,默认点选时会调用此方法

Parameters:
element -

getLogicalPoint

public Point getLogicalPoint(TouchEvent evt)
获取触摸事件所在拓扑图的逻辑坐标,会根据缩放比例和偏移量作转换

Parameters:
evt - 触摸事件
Returns:
触摸事件所在拓扑图的逻辑坐标
See Also:
toLogicalPoint(float, float)

getLogicalPoint

public Point getLogicalPoint(MotionEvent evt)
获取触摸事件所在拓扑图的逻辑坐标,会根据缩放比例和偏移量作转换

Parameters:
evt - 触摸事件
Returns:
触摸事件所在拓扑图的逻辑坐标
See Also:
toLogicalPoint(float, float)

toLogicalPoint

public Point toLogicalPoint(float relativeScreenX,
                            float relativeScreenY)
根据屏幕坐标获取对应在拓扑图的逻辑坐标,会根据缩放比例和偏移量作转换

Parameters:
relativeScreenX - 屏幕x坐标
relativeScreenY - 屏幕y坐标
Returns:
对应在拓扑图的逻辑坐标

toLogicalPoint

public Point toLogicalPoint(Point screenPoint)
根据屏幕坐标获取对应在拓扑图的逻辑坐标,会根据缩放比例和偏移量作转换

Parameters:
screenPoint - 屏幕坐标
Returns:
对应在拓扑图的逻辑坐标
See Also:
toLogicalPoint(float, float)

toLogicalRect

public Rect toLogicalRect(Rect screenRect)
屏幕矩形转换成拓扑逻辑坐标,会根据缩放比例和偏移量作转换

Parameters:
screenRect - 屏幕范围
Returns:
拓扑逻辑坐标范围
See Also:
toLogicalPoint(float, float)

toScreenPoint

public Point toScreenPoint(Point logicalPoint)
逻辑坐标转换成屏幕坐标,比如网元节点设置位置(100, 100),通过这个方法可以获取该节点位于屏幕的坐标位置

Parameters:
logicalPoint - 逻辑坐标
Returns:
屏幕坐标
See Also:
toScreenPoint(float, float)

toScreenPoint

public Point toScreenPoint(float logicalX,
                           float logicalY)
逻辑坐标转换成屏幕坐标,比如网元节点设置位置(100, 100),通过这个方法可以获取该节点位于屏幕的坐标位置

Parameters:
logicalX - 逻辑坐标x
logicalY - 逻辑坐标y
Returns:
屏幕坐标
See Also:
toScreenPoint(Point)

toScreenRect

public Rect toScreenRect(Rect logicalRect)
逻辑坐标转换成屏幕坐标,比如网元节点逻辑范围为:(100, 100, 32, 32),通过这个方法可以获取该节点位于屏幕的坐标范围

Parameters:
logicalRect - 逻辑坐标
Returns:
屏幕坐标
See Also:
toScreenPoint(Point), toScreenPoint(float, float)

toScreenX

public float toScreenX(float x)
逻辑X坐标转换成屏幕X坐标

Parameters:
x - 逻辑坐标
Returns:
屏幕坐标

toScreenY

public float toScreenY(float y)
逻辑Y坐标转换成屏幕Y坐标

Parameters:
y - 逻辑坐标
Returns:
屏幕坐标

toLogicalX

public float toLogicalX(float x)
屏幕X坐标转换成逻辑X坐标

Parameters:
x - 屏幕坐标
Returns:
逻辑坐标

toLogicalY

public float toLogicalY(float y)
屏幕Y坐标转换成逻辑Y坐标

Parameters:
y - 屏幕坐标
Returns:
逻辑坐标

getElementByScreenPoint

public Element getElementByScreenPoint(Point screenPoint)
获取屏幕指定位置相交的网元,如果该位置存在多个网元时,取最上面的一个,如果没有,返回null

Parameters:
screenPoint - 屏幕位置
Returns:
屏幕位置相交的网元

getElementsByScreenPoint

public java.util.List<Element> getElementsByScreenPoint(Point screenPoint)
获取屏幕指定位置所有相交的网元

Parameters:
screenPoint - 屏幕位置
Returns:
屏幕指定位置所有相交的网元

getElementsByScreenPoint

public java.util.List<Element> getElementsByScreenPoint(float x,
                                                        float y)
获取屏幕指定位置所有相交的网元

Parameters:
x - x方向屏幕坐标
y - y方向屏幕坐标
Returns:
屏幕指定位置所有相交的网元

getElements

public java.util.List<Element> getElements(TouchEvent e)
获取触摸事件所在坐标点下的所有网元

Parameters:
e - 触摸事件
Returns:
触摸事件所在坐标点下的所有网元

getElements

public java.util.List<Element> getElements(MotionEvent e)
获取触摸事件所在坐标点下的所有网元

Parameters:
e - 触摸事件
Returns:
触摸事件所在坐标点下的所有网元

getElement

public Element getElement(TouchEvent e)
获取触摸事件所在坐标点下的网元,存在多个网元时,取最上面的一个

Parameters:
e - 触摸事件
Returns:
触摸事件所在坐标点下的网元

getElement

public Element getElement(MotionEvent e)
获取触摸事件所在坐标点下的网元,存在多个网元时,取最上面的一个

Parameters:
e - 触摸事件
Returns:
触摸事件所在坐标点下的网元

getElementAt

public Element getElementAt(Point p)
获取逻辑坐标位置的网元,存在多个网元时,取最上面的一个

Parameters:
p - 逻辑坐标
Returns:
逻辑坐标位置的网元

getElementAt

public Element getElementAt(float x,
                            float y)
获取逻辑坐标位置的网元,存在多个网元时,取最上面的一个

Parameters:
x - x方向逻辑位置
y - y方向逻辑位置
Returns:
逻辑坐标位置的网元

getElementsAt

public java.util.List<Element> getElementsAt(float x,
                                             float y)
获取逻辑坐标位置所有相交的网元

Parameters:
x - x方向逻辑位置
y - y方向逻辑位置
Returns:
逻辑坐标位置所有相交的所有网元

getElementsAt

public java.util.List<Element> getElementsAt(Point p)
获取逻辑坐标位置所有相交的网元

Parameters:
p - 逻辑位置
Returns:
逻辑坐标位置所有相交的网元

invalidateNetwork

public void invalidateNetwork()
无效拓扑图,使拓扑图中的网元UI生效和重绘


invalidateElement

public void invalidateElement(Element element)
无效网元,使该网元对应的网元UI生效和重绘

Parameters:
element - 无效网元

invalidateElementSize

public void invalidateElementSize(Element element)
无效网元尺寸,使该网元对应的网元UI重新测量大小,并重绘

Parameters:
element - 无效网元

invalidateStyles

public void invalidateStyles(Element element)
无效网元的所有样式,使网元UI重新加载所有样式,并重绘

Parameters:
element - 无效网元

setVisibleFilter

public void setVisibleFilter(IFilter<Element> visibleFilter)
设置网元可见过滤器,调用此方法后,网元的可见状态缓存被清除,并在绘制时重新确定可见状态checkVisibility(Element)

Parameters:
visibleFilter - 可见过滤器
See Also:
getVisibleFilter(), isVisible(Element), checkVisibility(Element)

getVisibleFilter

public IFilter<Element> getVisibleFilter()
网元可见过滤器

Returns:
可见过滤器
See Also:
setVisibleFilter(IFilter), isVisible(Element), checkVisibility(Element), Element.isVisible(Network)

isNoAgentLinkVisible

public boolean isNoAgentLinkVisible()
无效连线是否可见

Returns:
无效连线是否可见
See Also:
setNoAgentLinkVisible(boolean), isInternalVisible(Element), Element.isVisible(Network)

setNoAgentLinkVisible

public void setNoAgentLinkVisible(boolean noAgentLinkVisible)
设置无效连线是否可见

Parameters:
noAgentLinkVisible - 无效连线是否可见
See Also:
isNoAgentLinkVisible(), isInternalVisible(Element), Element.isVisible(Network)

isInternalVisible

protected boolean isInternalVisible(Element element)
网元是否可见的默认规则,包括子网过滤,连线绑定,子网展开合并逻辑等等,检测网元可见状态时会调用

Parameters:
element - 网元
Returns:
网元是否可见
See Also:
checkVisibility(Element), Element.isVisible(Network)

checkVisibility

public boolean checkVisibility(Element element)
检测网元是否可见,并将结果缓存在网元的visible属性中,Element.isVisible() 网元是否可见由twaver内部规则(isInternalVisible(Element)),和可见过滤器(getVisibleFilter())决定

Parameters:
element - 网元
Returns:
网元是否可见
See Also:
getVisibleFilter(), isInternalVisible(Element), Element.isVisible(Network)

isVisible

public boolean isVisible(Element element)
网元是否可见,如果该网元的可见状态无效,twaver会通过checkVisibility(Element)方法,重新确定其可见状态

Parameters:
element - 网元
Returns:
网元是否可见
See Also:
Element.isVisible()

invalidateVisibility

public boolean invalidateVisibility(Element element)
无效网元的可见状态

Parameters:
element - 网元
Returns:
是否无效成功
See Also:
Element.invalidateVisibility()

resetElementVisibilityCache

public void resetElementVisibilityCache()
重新检测所有网元的可见状态,并重绘拓扑图,当可见逻辑发生变化时,比如切换子网,或者更改可见过滤器等等,都会调用此方法 另外如果定制的可见逻辑条件发生变化,可以调用此方法使其生效

See Also:
Element.invalidateVisibility(), checkVisibility(Element)

resetLinkVisibility

public void resetLinkVisibility()
重新检测所有连线的可见状态,比如调用setNoAgentLinkVisible(boolean)更改连线可见逻辑时,twaver会调用此方法,以保证所有连线的可见状态生效

See Also:
setNoAgentLinkVisible(boolean)

forEachVisibleElement

public boolean forEachVisibleElement(Action<Element> action)
遍历当前所有可见的网元,遍历顺序会网元显示顺序,从上到下

Parameters:
action -
Returns:
是否完成整个遍历

setMovableFilter

public void setMovableFilter(IFilter<Element> movableFilter)
设置网元能否拖动过滤器,在移动交互器中会用到此逻辑MoveInteraction

Parameters:
movableFilter -
See Also:
isMovable(Element), getMovableFilter()

getMovableFilter

public IFilter<Element> getMovableFilter()
网元能否拖动过滤器,在移动交互器中会用到此逻辑MoveInteraction

Returns:
能否拖动过滤器
See Also:
setMovableFilter(IFilter), isMovable(Element)

isMovable

public boolean isMovable(Element element)
网元能否拖动,默认节点,有拐点Link.hasPathSegments()的连线都可以被拖动,此外还可以通过setMovableFilter(IFilter)进行控制 在移动交互器中会用到此逻辑MoveInteraction

Parameters:
element - 网元
Returns:
网元能否拖动
See Also:
setMovableFilter(IFilter), getMovableFilter(), Link.hasPathSegments()

moveLink

public boolean moveLink(Link link,
                        float dx,
                        float dy)
移动连线,默认有拐点Link.hasPathSegments()的连线都可以被拖动

Parameters:
link - 连线
dx - x偏移量
dy - y偏移量
Returns:
连线是否移动
See Also:
Link.hasPathSegments()

moveElements

public boolean moveElements(java.util.List<? extends Element> elements,
                            float dx,
                            float dy)
拖动网元

Parameters:
elements - 网元集合
dx - x偏移量
dy - y偏移量
Returns:
网元是否全部被移动

moveNode

public boolean moveNode(Node node,
                        float dx,
                        float dy)
移动节点,跟随节点也会被移动,此外如果分组被拖动,其内的孩子网元也会被移动

Parameters:
node - 节点
dx - x偏移量
dy - y偏移量
Returns:
节点是否全部移动
See Also:
Group, Node.addFollower(Node)

moveNodes

public boolean moveNodes(java.util.List<Node> nodes,
                         float dx,
                         float dy)
移动节点集合,跟随节点也会被移动,如果分组被拖动,其内的孩子网元也会被移动,此外如果连线的两个端点都被移动,连线也会被移动

Parameters:
nodes - 节点集合
dx - x偏移量
dy - y偏移量
Returns:
是否移动成功
See Also:
Group, Node.addFollower(Node)

moveNodeTo

public boolean moveNodeTo(Node node,
                          Point location)
移动节点到某个位置

Parameters:
node - 节点
location - 移动到此位置
Returns:
是否移动成功

removeElement

public boolean removeElement(Element element)
删除网元,注意网元时,连同与该网元相关的网元也会被删除,比如父节点被删除,其孩子节点也会被删除,连线的一端被删除,这条连线也会被删除

Parameters:
element - 网元
Returns:
是否删除成功
See Also:
ElementBox#remove(Element)

removeElements

public boolean removeElements(java.util.Collection<Element> elements)
删除网元,注意网元时,连同与该网元相关的网元也会被删除,比如父节点被删除,其孩子节点也会被删除,连线的一端被删除,这条连线也会被删除

Parameters:
elements - 网元集合
Returns:
是否删除成功
See Also:
HashCollection.remove(java.util.Collection)

removeSelection

public boolean removeSelection()
删除选中的网元,注意网元时,连同与该网元相关的网元也会被删除,比如父节点被删除,其孩子节点也会被删除,连线的一端被删除,这条连线也会被删除

Returns:
是否删除成功

beforeInteractionEvent

public boolean beforeInteractionEvent(InteractionEvent event)
交互事件发生前回调此函数

Parameters:
event - 交互事件
Returns:
是否允许此事件

onInteractionEvent

public void onInteractionEvent(InteractionEvent event)
交互事件时回调此函数

Parameters:
event - 交互事件

getInteractionDispatcher

public Dispatcher<InteractionEvent> getInteractionDispatcher()
获取交互事件派发器,可通过此派发器监听拓扑图交互事件

Returns:
交互事件派发器
See Also:
addInteractionListener(IListener)

addInteractionListener

public void addInteractionListener(IListener<InteractionEvent> listener)
添加交互监听

Parameters:
listener - 交互监听器
See Also:
getInteractionDispatcher(), removeInteractionListener(IListener)

removeInteractionListener

public void removeInteractionListener(IListener<InteractionEvent> listener)
删除交互监听

Parameters:
listener - 交互监听器
See Also:
getInteractionDispatcher(), addInteractionListener(IListener)

setElementStyleGenerator

public void setElementStyleGenerator(Generator2<Element,java.lang.String,java.lang.Object> elementStyleGenerator)
设置网元样式生成器,默认为StyleGenerator

Parameters:
elementStyleGenerator - 样式生成器
See Also:
StyleGenerator, getElementStyle(Element, String), getElementStyleGenerator()

getElementStyleGenerator

public Generator2<Element,java.lang.String,java.lang.Object> getElementStyleGenerator()
网元样式生成器,默认为StyleGenerator

Returns:
网元样式生成器
See Also:
StyleGenerator, getElementStyle(Element, String), setElementStyleGenerator(Generator2)

getElementStyle

public java.lang.Object getElementStyle(Element element,
                                        java.lang.String styleName)
网元样式生成器

Parameters:
element - 网元
styleName - 样式名称
Returns:
样式属性
See Also:
StyleGenerator, setElementStyleGenerator(Generator2)

getFontStyle

public Typeface getFontStyle(Element element,
                             java.lang.String name)
获取字体样式属性Typeface

Parameters:
element - 网元
name - 样式名称
Returns:
字体

getPointStyle

public Point getPointStyle(Element element,
                           java.lang.String name)
获取Point样式属性

Parameters:
element - 网元
name - 样式名称
Returns:
样式属性

getInsetsStyle

public Insets getInsetsStyle(Element element,
                             java.lang.String name)
获取Insets样式属性

Parameters:
element - 网元
name - 样式名称
Returns:
样式属性

getBooleanStyle

public boolean getBooleanStyle(Element element,
                               java.lang.String name)
获取boolean类型样式属性

Parameters:
element - 网元
name - 样式名称
Returns:
样式属性

getColorStyle

public int getColorStyle(Element element,
                         java.lang.String name)
获取颜色样式属性

Parameters:
element - 网元
name - 样式名称
Returns:
样式属性

getFloatStyle

public float getFloatStyle(Element element,
                           java.lang.String name)
获取数值样式属性

Parameters:
element - 网元
name - 样式名称
Returns:
样式属性

getIntStyle

public int getIntStyle(Element element,
                       java.lang.String name)
获取整型样式属性

Parameters:
element - 网元
name - 样式名称
Returns:
样式属性

getStringStyle

public java.lang.String getStringStyle(Element element,
                                       java.lang.String name)
获取字符串样式属性

Parameters:
element - 网元
name - 样式名称
Returns:
样式属性

getShaderStyle

public IShader getShaderStyle(Element element,
                              java.lang.String name)
获取着色器IShader样式属性

Parameters:
element - 网元
name - 样式名称
Returns:
样式属性

getPositionStyle

public Position getPositionStyle(Element element,
                                 java.lang.String name)
获取位置Position样式属性

Parameters:
element - 网元
name - 样式名称
Returns:
样式属性

setStyles

public boolean setStyles(Styles styles)
设置默认样式列表,默认取Styles.getInstance()

Parameters:
styles - 样式列表
Returns:
是否设置成功

getStyles

public Styles getStyles()
获取默认样式列表

Returns:
默认样式列表

setLabelGenerator

public void setLabelGenerator(Generator<Element,java.lang.String> labelGenerator)
设置网元文本生成器,默认取网元的name属性

Parameters:
labelGenerator -
See Also:
getElementLabel(Element)

getElementLabel

public java.lang.String getElementLabel(Element element)
获取网元文本,默认取网元的name属性

Parameters:
element - 网元
Returns:
网元文本
See Also:
setLabelGenerator(Generator)

getLinkBundleLabel

public java.lang.String getLinkBundleLabel(Link link)
获取连线捆绑时显示的文本,默认为:+连线数量 Styles#LINK_BUNDLE_LABEL_***

Parameters:
link - 连线
Returns:
连线捆绑文本
See Also:
Styles

invalidateStyle

public void invalidateStyle(java.lang.String styleName)
无效样式,遍历所有可见网元,无效网元的这个样式

Parameters:
styleName - 样式名称
See Also:
ElementUI.invalidateStyle(String)

getImage

public IImage getImage(java.lang.Object image)
获取图片,可全局注册图片,支持多种图片类型IImage

Parameters:
image - 图片
Returns:
图片数据
See Also:
IImage, Utils.registerImage(String, Bitmap), Utils.registerImage(String, IImage), Utils#registerImage(String, int), Utils#registerImage(String, URL), getImage(Node)

getImage

public IImage getImage(Node node)
获取节点图片,可全局注册图片,支持多种图片类型IImage

Parameters:
node - 节点
Returns:
图片数据
See Also:
Node.setImage(Object), Node.getImage(), IImage, Utils.registerImage(String, Bitmap), Utils.registerImage(String, IImage), twaver.Utils#registerImage(String, int), twaver.Utils#registerImage(String, URL), getImage(Object)

getSelectionModel

public SelectionModel<Element> getSelectionModel()
选中模型,可通过选中模型设置网元选中或者取消选中,默认取网元容器的选中模型DataBox.getSelectionModel()

Returns:
选中模型
See Also:
DataBox.getSelectionModel()

isSelected

public boolean isSelected(Element element)
网元是否选中

Parameters:
element - 网元
Returns:
是否选中

isSelectable

public boolean isSelectable(Element element)
网元是否可以被选中,适用于界面交互,SelectionInteraction, RectangleSelectionInteraction

Parameters:
element - 网元
Returns:
是否可选中
See Also:
setSelectableFilter(IFilter)

setSelectableFilter

public void setSelectableFilter(IFilter<Element> selectableFilter)
设置网元能否选中过滤器,适用于界面交互,SelectionInteraction, RectangleSelectionInteraction

Parameters:
selectableFilter - 网元能否选中过滤器
See Also:
isSelectable(Element)

addSelectionChangeListener

public void addSelectionChangeListener(Listener<ListEvent<Element>> listener)
添加网元选中变化监听器

Parameters:
listener - 网元选中变化监听器

removeSelectionChangeListener

public void removeSelectionChangeListener(Listener<ListEvent<Element>> listener)
删除网元选中变化监听器

Parameters:
listener - 网元选中变化监听器

getSelectionChangeDispatcher

public Dispatcher<ListEvent<Element>> getSelectionChangeDispatcher()
网元选中变化事件派发器,可通过此派发器监听选中变化事件

Returns:
网元选中变化事件派发器

translate

public boolean translate(float dx,
                         float dy)
平移拓扑图,与setTranslate(float, float)方法作用不同,此方法是在现有偏移量的基础上再作偏移

Parameters:
dx - x偏移量
dy - y偏移量
Returns:
是否平移成功

setTranslate

public boolean setTranslate(float tx,
                            float ty)
设置拓扑图偏移量,与translate(float, float)方法作用不同,此方法不考虑原来的偏移量

Parameters:
tx - x偏移量
ty - y偏移量
Returns:
是否平移成功

setTransform

public boolean setTransform(float zoom,
                            float tx,
                            float ty)
设置缩放比例和偏移量

Parameters:
zoom - 缩放比例
tx - x偏移量
ty - y偏移量
Returns:
是否平移成功

getTranslate

public Point getTranslate()
获取当前拓扑图偏移量

Returns:
当前拓扑图偏移量

getTranslateX

public float getTranslateX()
获取拓扑图x方向偏移量

Returns:
拓扑图x方向偏移量

getTranslateY

public float getTranslateY()
获取拓扑图y方向偏移量

Returns:
拓扑图y方向偏移量

getZoom

public float getZoom()
获取拓扑图缩放比例

Returns:
拓扑图缩放比例

setZoom

public boolean setZoom(float zoom,
                       float px,
                       float py)
设置缩放比例,按指定点为中心缩放

Parameters:
zoom - 缩放比例
px - 缩放点
py - 缩放点
Returns:
是否设置成功

setMinZoom

public void setMinZoom(float minZoom)
设置最小缩放比例

Parameters:
minZoom - 最小缩放比例

setMaxZoom

public void setMaxZoom(float maxZoom)
设置最大缩放比例

Parameters:
maxZoom - 最大缩放比例

setZoom

public boolean setZoom(float zoom)
设置缩放比例,按(0,0)为参照点进行缩放

Parameters:
zoom - 缩放比例
Returns:
是否设置成功

zoomIn

public boolean zoomIn(float px,
                      float py)
以指定位置为中心放大

Parameters:
px - 缩放点
py - 缩放点
Returns:
是否设置成功

zoomOut

public boolean zoomOut(float px,
                       float py)
以指定位置为中心缩小

Parameters:
px - 缩放点
py - 缩放点
Returns:
是否设置成功

zoomToOverview

public boolean zoomToOverview()
缩放到窗口范围

Returns:
是否设置成功

getElementCanvas

public NetworkCanvas getElementCanvas()
获取拓扑图画布面板,拓扑元素都绘制在这个面板上

Returns:
拓扑图画布面板

isLinkableFrom

public boolean isLinkableFrom(Node node)
能否作为连线的起始端,用于创建连线交互CreateLinkInteraction

Parameters:
node - 节点
Returns:
能否作为连线的起始端

isLinkableTo

public boolean isLinkableTo(Node node,
                            Node from)
能否作为连线的终端,用于创建连线交互CreateLinkInteraction

Parameters:
node - 节点
from - 起始节点
Returns:
能否作为连线的终端

highlight

public void highlight(Element element)
高亮显示此网元,该网元以外的区域都将蒙上蒙板,取消高亮可调用方法resetMask() 某些交互时,会用到高亮效果,比如创建连线,以及创建多边形

Parameters:
element - 网元
See Also:
resetMask()

resetMask

public boolean resetMask()
取消蒙板,取消高亮显示

Returns:
是否设置成功
See Also:
highlight(Element), highlightAllLinkabelToNodes(Node), highlightAllLinkableFromNodes()

isHighlighting

public boolean isHighlighting()
拓扑图是否处于蒙板状态,并且有网元高亮显示

Returns:
是否处于蒙板状态,并且有网元高亮显示
See Also:
resetMask(), highlight(Element), highlightAllLinkabelToNodes(Node), highlightAllLinkableFromNodes()

createLinkByInteraction

public Link createLinkByInteraction(Node from,
                                    Node to,
                                    java.util.List<Point> points)
创建连线,创建连线交互时会调用此方法,同时会派发创建网元交互事件InteractionEvent.ELEMENT_CREATE

Parameters:
from - 起始节点
to - 结束节点
points - 路径片段集合
Returns:
创建的连线
See Also:
InteractionEvent.ELEMENT_CREATE, CreateLinkInteraction

createShapeByInteraction

public ShapeNode createShapeByInteraction(java.util.List<Point> points)
创建多边形,创建多边形交互时会调用此方法,同时会派发创建网元交互事件InteractionEvent.ELEMENT_CREATE

Parameters:
points - 路径集合
Returns:
多边形
See Also:
InteractionEvent.ELEMENT_CREATE, CreateShapeInteraction

getTopCanvas

public TopCanvas getTopCanvas()
获取顶层面板,顶层面板,用于绘制拓扑图交互过程中的一些绘制效果,比如选中框,拐点编辑,文字提示,高亮蒙板等

Returns:
顶层面板
See Also:
TopCanvas

getLinkBundle

public ILinkBundle getLinkBundle(Link link)
获取连线捆绑对象,通过该对象可以得到两节点之间所有的连线

Parameters:
link - 连线
Returns:
连线捆绑对象
See Also:
ILinkBundle

getLinkBundle

public ILinkBundle getLinkBundle(Node node1,
                                 Node node2)
获取连线捆绑对象,通过该对象可以得到两节点之间所有的连线

Parameters:
node1 - 端点
node2 - 另一个端点
Returns:
连线捆绑对象
See Also:
ILinkBundle

isLinkBundleEnabled

public boolean isLinkBundleEnabled(Link link)
连线是否参与捆绑,默认通过连线的Styles.LINK_BUNDLE_ENABLE样式属性来决定

Parameters:
link - 连线
Returns:
连线是否参与捆绑

reverseLinkBundleExpanded

public void reverseLinkBundleExpanded(Link link)
展开获取合并连线绑定

Parameters:
link - 连线

getAlarmLabel

public java.lang.String getAlarmLabel(Element element)
获取告警文本,用于告警冒泡的显示,默认根据网元的告警信息,返回类似这样的文本:2C+,表示有两个C级别的新发告警,加号表示还有其他低级别的新发告警,如果网元上没有告警,返回null

Parameters:
element - 网元
Returns:
告警文本
See Also:
ElementUI.alarm, getAlarmColor(Element), getAlarmPosition(Element)

getAlarmColor

public int getAlarmColor(Element element)
告警冒泡颜色,默认取网元作高级别的新发告警颜色

Parameters:
element - 网元
Returns:
告警冒泡颜色
See Also:
ElementUI.alarm, getAlarmLabel(Element), getAlarmPosition(Element)

getAlarmPosition

public Position getAlarmPosition(Element element)
告警冒泡的位置,默认取网元的Styles.ALARM_POSITION样式

Parameters:
element - 网元
Returns:
告警冒泡的位置
See Also:
ElementUI.alarm, Styles.ALARM_POSITION

getRenderColor

public int getRenderColor(Element element)
获取宣染色,默认取网元最高级别告警颜色

Parameters:
element - 网元
Returns:
宣染色

getStateOutlineColor

public int getStateOutlineColor(Element element)
网元外边框颜色,默认取网元最高级别传递告警颜色

Parameters:
element - 网元
Returns:
网元外边框颜色

getStateOutline

public float getStateOutline(Element element)
获取网元外边框宽度

Parameters:
element - 网元
Returns:
网元外边框宽度

getOutlineColor

public int getOutlineColor(Element element)
网元边框颜色,不同类型的网元取不同的样式属性,普通节点取Styles.NODE_OUTLINE_COLOR样式, 连线取Styles.LINK_OUTLINE_COLOR样式,分组展开时取Styles.GROUP_OUTLINE_COLOR样式

Parameters:
element - 网元
Returns:
网元边框颜色

getOutline

public float getOutline(Element element)
获取边框宽度,不同类型的网元取不同的样式属性,普通节点取Styles.NODE_OUTLINE_WIDTH样式, 连线取Styles.LINK_OUTLINE_WIDTH样式,分组展开时取Styles.GROUP_OUTLINE_WIDTH样式

Parameters:
element - 网元
Returns:
边框宽度

getResizableFilter

public IFilter<Node> getResizableFilter()
能否调整节点大小过滤器

Returns:
能否调整节点大小过滤器
See Also:
setResizableFilter(IFilter), isResizable(Node)

setResizableFilter

public void setResizableFilter(IFilter<Node> resizableFilter)
设置能否调整节点大小过滤器

Parameters:
resizableFilter -
See Also:
getResizableFilter(), isResizable(Node)

isResizable

public boolean isResizable(Node node)
能否调整节点大小过滤器

Parameters:
node - 节点
Returns:
能否调整节点大小过滤器
See Also:
setResizableFilter(IFilter), setResizableFilter(IFilter)

isShapeEditable

public boolean isShapeEditable(IShape shape)
多边形获取带拐点的连线能否编辑拐点

Parameters:
shape - 多边形或者连线
Returns:
多边形获取带拐点的连线能否编辑拐点

getElementsBounds

public Rect getElementsBounds()
网元显示范围,使用逻辑坐标

Returns:
网元显示范围,使用逻辑坐标

getViewportBounds

public Rect getViewportBounds()
拓扑图当前可见范围,使用逻辑坐标

Returns:
拓扑图当前可见范围,使用逻辑坐标

setAntiAlias

public void setAntiAlias(boolean antiAlias)
设置抗锯齿效果绘制拓扑图

Parameters:
antiAlias - 抗锯齿效果绘制拓扑图

isAntialias

public boolean isAntialias()
是否使用抗锯齿效果绘制拓扑图

Returns:
是否使用抗锯齿效果绘制拓扑图

clearPopupbar

public void clearPopupbar()
清空弹出菜单


addPopupButton

public ImageButton addPopupButton(int icon,
                                  Action2<Element,Point> call,
                                  java.lang.String tooltip)
添加弹出菜单项

Parameters:
icon -
call -
tooltip -
Returns:
按钮

addPopupButton

public ImageButton addPopupButton(int icon,
                                  Action2<Element,Point> call,
                                  java.lang.String tooltip,
                                  IFilter<Element> visibleFilter)
添加弹出菜单项

Parameters:
icon -
call -
tooltip -
visibleFilter -
Returns:
按钮

removePopupButton

public void removePopupButton(ImageButton button)
删除弹出菜单按钮

Parameters:
button - 按钮

showTooltip

public void showTooltip(java.lang.String tooltip)
显示文本提示,将出现在拓扑图的顶部中心位置

Parameters:
tooltip - 文本提示

isEditting

public boolean isEditting()
是否处于网元编辑状态,用于交互模式

Returns:
是否处于网元编辑状态
See Also:
setEditting(boolean)

setEditting

public void setEditting(boolean editting)
设置网元正在被编辑,用于交互模式

Parameters:
editting - 网元正在被编辑
See Also:
isEditting()

panByInertia

public void panByInertia(Point speed)
按惯性平移

Parameters:
speed - 平移速度

panTo

public void panTo(float x,
                  float y)
平移拓扑图到指定位置,使用屏幕坐标

Parameters:
x - x坐标
y - y坐标

panTo

public void panTo(float x,
                  float y,
                  float zoom)
平移拓扑图到指定位置,使用屏幕坐标

Parameters:
x - x坐标
y - y坐标
zoom - 缩放比例

stopPan

public void stopPan()
停止平移


centerElement

public boolean centerElement(Element element)
平移拓扑图,让网元居中显示

Parameters:
element -
Returns:
是否设置成功

centerElement

public boolean centerElement(Element element,
                             float zoom)
平移拓扑图,让网元居中显示

Parameters:
element -
zoom -
Returns:
是否设置成功

removeView

public void removeView(View view)

setRectangleSelectable

public void setRectangleSelectable(boolean rectangleSelectable)

isRectangleSelectable

public boolean isRectangleSelectable()