|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.ObjectFrameLayout
twaver.network.Network
public class Network
拓扑图组件,用于绘制节点,连线,分组,子网等拓扑元素,包含多个子面板,
其中拓扑图在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 |
---|
protected ElementBox box
setElementBox(ElementBox)
,
getElementBox()
public float tolerance
Defaults.SELECTION_TOLERANCE
Constructor Detail |
---|
public Network(Context context)
getElementCanvas()
面板中绘制,顶层面板getTopCanvas()
用于用户交互时的绘制
context
- public Network(Context context, AttributeSet attrs)
getElementCanvas()
面板中绘制,顶层面板getTopCanvas()
用于用户交互时的绘制
public Network(Context context, AttributeSet attrs, int defStyle)
getElementCanvas()
面板中绘制,顶层面板getTopCanvas()
用于用户交互时的绘制
public Network(ElementBox box, Context context)
getElementCanvas()
面板中绘制,顶层面板getTopCanvas()
用于用户交互时的绘制
box
- 设置数据容器Method Detail |
---|
public Dispatcher<ListEvent<Element>> getElementListChangeDispatcher()
network.getElementListChangeDispatcher().addListener(new ListEventListener(){ protected void onAdd(Element item) { // } protected void onRemove(Element item) { } })
public boolean setElementBox(ElementBox box)
box
-
getElementBox()
public ElementBox getElementBox()
setElementBox(ElementBox)
protected void onElementPropertyChange(PropertyChangeEvent event)
event
- protected void onElementClear(java.util.List<Element> elements)
elements
- protected void onElementAdd(Element element)
element
- protected void onElementRemove(Element element)
element
- protected void onElementSelectionChange(ListEvent<Element> event)
event
- protected void onLayerListChange(ListEvent<Layer> event)
event
- LayerBox
,
ElementBox.getLayerBox()
protected void onLayerPropertyChange(PropertyChangeEvent event)
event
- protected void onElementParentChange(ParentChangeEvent event)
event
- Data.setParent(twaver.model.Data)
,
Data.addChild(twaver.model.Data)
public Group getGroup(Element element)
element
- 网元
public Dispatcher<PropertyChangeEvent> getPropertyChangeDispatcher()
public void addPropertyChangeListener(IListener<PropertyChangeEvent> listener)
listener
- public void removePropertyChangeListener(IListener<PropertyChangeEvent> listener)
listener
- public Dispatcher<PropertyChangeEvent> getElementPropertyChangeDispatcher()
public ISubnetwork getCurrentSubnetwork()
public boolean setCurrentSubnetwork(ISubnetwork subnetwork)
subnetwork
- public boolean upSubNetwork()
protected void onCurrentSubnetworkChange(PropertyChangeEvent event)
event
- public void callLater(java.lang.Runnable action)
action
- View#post(Runnable)
public void callLater(java.lang.Runnable action, long delay)
action
- delay
- View#postDelayed(Runnable, long)
public boolean onTouchEvent(MotionEvent event)
protected void onInteractionModeChange(PropertyChangeEvent event)
event
- public void highlightAllLinkableFromNodes()
CreateLinkInteraction
,
isLinkableFrom(Node)
public void highlightAllLinkabelToNodes(Node from)
from
- CreateLinkInteraction
,
isLinkableTo(Node, Node)
public void registerInteractionMode(java.lang.String name, java.util.List<Interaction> interactions)
name
- 模式名称interactions
- 交互监听器集合public void setCurrentInteractionMode(java.lang.String name)
name
- getCurrentInteractionMode()
public void setDefaultInteractionMode(java.lang.String name)
name
- resetDefaultInteractionMode()
public void setDefaultInteractionMode(java.lang.String name, boolean resetDefault)
name
- resetDefault
- resetDefaultInteractionMode()
public void resetDefaultInteractionMode()
setDefaultInteractionMode(String)
,
setDefaultInteractionMode(String, boolean)
public java.util.List<Interaction> getCurrentInteractions()
public java.util.List<Interaction> getCustomInteractions()
addCustomInteraction(Interaction)
,
removeCustomInteraction(Interaction)
public void addCustomInteraction(Interaction interaction)
interaction
- addCustomInteraction(Interaction)
,
getCustomInteractions()
public void removeCustomInteraction(Interaction interaction)
interaction
- addCustomInteraction(Interaction)
,
getCustomInteractions()
public java.util.List<Interaction> getInteractions(java.lang.String name)
name
- 交互模式名称
public java.lang.String getCurrentInteractionMode()
setCurrentInteractionMode(String)
public boolean withInertiaEffect()
setInertiaEffect(boolean)
,
PanInteraction
public void setInertiaEffect(boolean inertiaEffect)
inertiaEffect
- withInertiaEffect()
public ElementUI<? extends Element> getElementUI(Element element)
element
-
public Rect getUIBounds(Element element)
element
-
public Rect getBodyBounds(Element element)
element
-
public void sendToTop(Element element)
element
- public Point getLogicalPoint(TouchEvent evt)
evt
- 触摸事件
toLogicalPoint(float, float)
public Point getLogicalPoint(MotionEvent evt)
evt
- 触摸事件
toLogicalPoint(float, float)
public Point toLogicalPoint(float relativeScreenX, float relativeScreenY)
relativeScreenX
- 屏幕x坐标relativeScreenY
- 屏幕y坐标
public Point toLogicalPoint(Point screenPoint)
screenPoint
- 屏幕坐标
toLogicalPoint(float, float)
public Rect toLogicalRect(Rect screenRect)
screenRect
- 屏幕范围
toLogicalPoint(float, float)
public Point toScreenPoint(Point logicalPoint)
logicalPoint
- 逻辑坐标
toScreenPoint(float, float)
public Point toScreenPoint(float logicalX, float logicalY)
logicalX
- 逻辑坐标xlogicalY
- 逻辑坐标y
toScreenPoint(Point)
public Rect toScreenRect(Rect logicalRect)
logicalRect
- 逻辑坐标
toScreenPoint(Point)
,
toScreenPoint(float, float)
public float toScreenX(float x)
x
- 逻辑坐标
public float toScreenY(float y)
y
- 逻辑坐标
public float toLogicalX(float x)
x
- 屏幕坐标
public float toLogicalY(float y)
y
- 屏幕坐标
public Element getElementByScreenPoint(Point screenPoint)
screenPoint
- 屏幕位置
public java.util.List<Element> getElementsByScreenPoint(Point screenPoint)
screenPoint
- 屏幕位置
public java.util.List<Element> getElementsByScreenPoint(float x, float y)
x
- x方向屏幕坐标y
- y方向屏幕坐标
public java.util.List<Element> getElements(TouchEvent e)
e
- 触摸事件
public java.util.List<Element> getElements(MotionEvent e)
e
- 触摸事件
public Element getElement(TouchEvent e)
e
- 触摸事件
public Element getElement(MotionEvent e)
e
- 触摸事件
public Element getElementAt(Point p)
p
- 逻辑坐标
public Element getElementAt(float x, float y)
x
- x方向逻辑位置y
- y方向逻辑位置
public java.util.List<Element> getElementsAt(float x, float y)
x
- x方向逻辑位置y
- y方向逻辑位置
public java.util.List<Element> getElementsAt(Point p)
p
- 逻辑位置
public void invalidateNetwork()
public void invalidateElement(Element element)
element
- 无效网元public void invalidateElementSize(Element element)
element
- 无效网元public void invalidateStyles(Element element)
element
- 无效网元public void setVisibleFilter(IFilter<Element> visibleFilter)
checkVisibility(Element)
visibleFilter
- 可见过滤器getVisibleFilter()
,
isVisible(Element)
,
checkVisibility(Element)
public IFilter<Element> getVisibleFilter()
setVisibleFilter(IFilter)
,
isVisible(Element)
,
checkVisibility(Element)
,
Element.isVisible(Network)
public boolean isNoAgentLinkVisible()
setNoAgentLinkVisible(boolean)
,
isInternalVisible(Element)
,
Element.isVisible(Network)
public void setNoAgentLinkVisible(boolean noAgentLinkVisible)
noAgentLinkVisible
- 无效连线是否可见isNoAgentLinkVisible()
,
isInternalVisible(Element)
,
Element.isVisible(Network)
protected boolean isInternalVisible(Element element)
element
- 网元
checkVisibility(Element)
,
Element.isVisible(Network)
public boolean checkVisibility(Element element)
Element.isVisible()
网元是否可见由twaver内部规则(isInternalVisible(Element)
),和可见过滤器(getVisibleFilter()
)决定
element
- 网元
getVisibleFilter()
,
isInternalVisible(Element)
,
Element.isVisible(Network)
public boolean isVisible(Element element)
checkVisibility(Element)
方法,重新确定其可见状态
element
- 网元
Element.isVisible()
public boolean invalidateVisibility(Element element)
element
- 网元
Element.invalidateVisibility()
public void resetElementVisibilityCache()
Element.invalidateVisibility()
,
checkVisibility(Element)
public void resetLinkVisibility()
setNoAgentLinkVisible(boolean)
更改连线可见逻辑时,twaver会调用此方法,以保证所有连线的可见状态生效
setNoAgentLinkVisible(boolean)
public boolean forEachVisibleElement(Action<Element> action)
action
-
public void setMovableFilter(IFilter<Element> movableFilter)
MoveInteraction
movableFilter
- isMovable(Element)
,
getMovableFilter()
public IFilter<Element> getMovableFilter()
MoveInteraction
setMovableFilter(IFilter)
,
isMovable(Element)
public boolean isMovable(Element element)
Link.hasPathSegments()
的连线都可以被拖动,此外还可以通过setMovableFilter(IFilter)
进行控制
在移动交互器中会用到此逻辑MoveInteraction
element
- 网元
setMovableFilter(IFilter)
,
getMovableFilter()
,
Link.hasPathSegments()
public boolean moveLink(Link link, float dx, float dy)
Link.hasPathSegments()
的连线都可以被拖动
link
- 连线dx
- x偏移量dy
- y偏移量
Link.hasPathSegments()
public boolean moveElements(java.util.List<? extends Element> elements, float dx, float dy)
elements
- 网元集合dx
- x偏移量dy
- y偏移量
public boolean moveNode(Node node, float dx, float dy)
node
- 节点dx
- x偏移量dy
- y偏移量
Group
,
Node.addFollower(Node)
public boolean moveNodes(java.util.List<Node> nodes, float dx, float dy)
nodes
- 节点集合dx
- x偏移量dy
- y偏移量
Group
,
Node.addFollower(Node)
public boolean moveNodeTo(Node node, Point location)
node
- 节点location
- 移动到此位置
public boolean removeElement(Element element)
element
- 网元
ElementBox#remove(Element)
public boolean removeElements(java.util.Collection<Element> elements)
elements
- 网元集合
HashCollection.remove(java.util.Collection)
public boolean removeSelection()
public boolean beforeInteractionEvent(InteractionEvent event)
event
- 交互事件
public void onInteractionEvent(InteractionEvent event)
event
- 交互事件public Dispatcher<InteractionEvent> getInteractionDispatcher()
addInteractionListener(IListener)
public void addInteractionListener(IListener<InteractionEvent> listener)
listener
- 交互监听器getInteractionDispatcher()
,
removeInteractionListener(IListener)
public void removeInteractionListener(IListener<InteractionEvent> listener)
listener
- 交互监听器getInteractionDispatcher()
,
addInteractionListener(IListener)
public void setElementStyleGenerator(Generator2<Element,java.lang.String,java.lang.Object> elementStyleGenerator)
StyleGenerator
elementStyleGenerator
- 样式生成器StyleGenerator
,
getElementStyle(Element, String)
,
getElementStyleGenerator()
public Generator2<Element,java.lang.String,java.lang.Object> getElementStyleGenerator()
StyleGenerator
StyleGenerator
,
getElementStyle(Element, String)
,
setElementStyleGenerator(Generator2)
public java.lang.Object getElementStyle(Element element, java.lang.String styleName)
element
- 网元styleName
- 样式名称
StyleGenerator
,
setElementStyleGenerator(Generator2)
public Typeface getFontStyle(Element element, java.lang.String name)
Typeface
element
- 网元name
- 样式名称
public Point getPointStyle(Element element, java.lang.String name)
Point
样式属性
element
- 网元name
- 样式名称
public Insets getInsetsStyle(Element element, java.lang.String name)
Insets
样式属性
element
- 网元name
- 样式名称
public boolean getBooleanStyle(Element element, java.lang.String name)
element
- 网元name
- 样式名称
public int getColorStyle(Element element, java.lang.String name)
element
- 网元name
- 样式名称
public float getFloatStyle(Element element, java.lang.String name)
element
- 网元name
- 样式名称
public int getIntStyle(Element element, java.lang.String name)
element
- 网元name
- 样式名称
public java.lang.String getStringStyle(Element element, java.lang.String name)
element
- 网元name
- 样式名称
public IShader getShaderStyle(Element element, java.lang.String name)
IShader
样式属性
element
- 网元name
- 样式名称
public Position getPositionStyle(Element element, java.lang.String name)
Position
样式属性
element
- 网元name
- 样式名称
public boolean setStyles(Styles styles)
Styles.getInstance()
styles
- 样式列表
public Styles getStyles()
public void setLabelGenerator(Generator<Element,java.lang.String> labelGenerator)
labelGenerator
- getElementLabel(Element)
public java.lang.String getElementLabel(Element element)
element
- 网元
setLabelGenerator(Generator)
public java.lang.String getLinkBundleLabel(Link link)
Styles#LINK_BUNDLE_LABEL_***
link
- 连线
Styles
public void invalidateStyle(java.lang.String styleName)
styleName
- 样式名称ElementUI.invalidateStyle(String)
public IImage getImage(java.lang.Object image)
IImage
image
- 图片
IImage
,
Utils.registerImage(String, Bitmap)
,
Utils.registerImage(String, IImage)
,
Utils#registerImage(String, int)
,
Utils#registerImage(String, URL)
,
getImage(Node)
public IImage getImage(Node node)
IImage
node
- 节点
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)
public SelectionModel<Element> getSelectionModel()
DataBox.getSelectionModel()
DataBox.getSelectionModel()
public boolean isSelected(Element element)
element
- 网元
public boolean isSelectable(Element element)
SelectionInteraction
, RectangleSelectionInteraction
element
- 网元
setSelectableFilter(IFilter)
public void setSelectableFilter(IFilter<Element> selectableFilter)
SelectionInteraction
, RectangleSelectionInteraction
selectableFilter
- 网元能否选中过滤器isSelectable(Element)
public void addSelectionChangeListener(Listener<ListEvent<Element>> listener)
listener
- 网元选中变化监听器public void removeSelectionChangeListener(Listener<ListEvent<Element>> listener)
listener
- 网元选中变化监听器public Dispatcher<ListEvent<Element>> getSelectionChangeDispatcher()
public boolean translate(float dx, float dy)
setTranslate(float, float)
方法作用不同,此方法是在现有偏移量的基础上再作偏移
dx
- x偏移量dy
- y偏移量
public boolean setTranslate(float tx, float ty)
translate(float, float)
方法作用不同,此方法不考虑原来的偏移量
tx
- x偏移量ty
- y偏移量
public boolean setTransform(float zoom, float tx, float ty)
zoom
- 缩放比例tx
- x偏移量ty
- y偏移量
public Point getTranslate()
public float getTranslateX()
public float getTranslateY()
public float getZoom()
public boolean setZoom(float zoom, float px, float py)
zoom
- 缩放比例px
- 缩放点py
- 缩放点
public void setMinZoom(float minZoom)
minZoom
- 最小缩放比例public void setMaxZoom(float maxZoom)
maxZoom
- 最大缩放比例public boolean setZoom(float zoom)
zoom
- 缩放比例
public boolean zoomIn(float px, float py)
px
- 缩放点py
- 缩放点
public boolean zoomOut(float px, float py)
px
- 缩放点py
- 缩放点
public boolean zoomToOverview()
public NetworkCanvas getElementCanvas()
public boolean isLinkableFrom(Node node)
CreateLinkInteraction
node
- 节点
public boolean isLinkableTo(Node node, Node from)
CreateLinkInteraction
node
- 节点from
- 起始节点
public void highlight(Element element)
resetMask()
某些交互时,会用到高亮效果,比如创建连线,以及创建多边形
element
- 网元resetMask()
public boolean resetMask()
highlight(Element)
,
highlightAllLinkabelToNodes(Node)
,
highlightAllLinkableFromNodes()
public boolean isHighlighting()
resetMask()
,
highlight(Element)
,
highlightAllLinkabelToNodes(Node)
,
highlightAllLinkableFromNodes()
public Link createLinkByInteraction(Node from, Node to, java.util.List<Point> points)
InteractionEvent.ELEMENT_CREATE
from
- 起始节点to
- 结束节点points
- 路径片段集合
InteractionEvent.ELEMENT_CREATE
,
CreateLinkInteraction
public ShapeNode createShapeByInteraction(java.util.List<Point> points)
InteractionEvent.ELEMENT_CREATE
points
- 路径集合
InteractionEvent.ELEMENT_CREATE
,
CreateShapeInteraction
public TopCanvas getTopCanvas()
TopCanvas
public ILinkBundle getLinkBundle(Link link)
link
- 连线
ILinkBundle
public ILinkBundle getLinkBundle(Node node1, Node node2)
node1
- 端点node2
- 另一个端点
ILinkBundle
public boolean isLinkBundleEnabled(Link link)
Styles.LINK_BUNDLE_ENABLE
样式属性来决定
link
- 连线
public void reverseLinkBundleExpanded(Link link)
link
- 连线public java.lang.String getAlarmLabel(Element element)
element
- 网元
ElementUI.alarm
,
getAlarmColor(Element)
,
getAlarmPosition(Element)
public int getAlarmColor(Element element)
element
- 网元
ElementUI.alarm
,
getAlarmLabel(Element)
,
getAlarmPosition(Element)
public Position getAlarmPosition(Element element)
Styles.ALARM_POSITION
样式
element
- 网元
ElementUI.alarm
,
Styles.ALARM_POSITION
public int getRenderColor(Element element)
element
- 网元
public int getStateOutlineColor(Element element)
element
- 网元
public float getStateOutline(Element element)
element
- 网元
public int getOutlineColor(Element element)
Styles.NODE_OUTLINE_COLOR
样式,
连线取Styles.LINK_OUTLINE_COLOR
样式,分组展开时取Styles.GROUP_OUTLINE_COLOR
样式
element
- 网元
public float getOutline(Element element)
Styles.NODE_OUTLINE_WIDTH
样式,
连线取Styles.LINK_OUTLINE_WIDTH
样式,分组展开时取Styles.GROUP_OUTLINE_WIDTH
样式
element
- 网元
public IFilter<Node> getResizableFilter()
setResizableFilter(IFilter)
,
isResizable(Node)
public void setResizableFilter(IFilter<Node> resizableFilter)
resizableFilter
- getResizableFilter()
,
isResizable(Node)
public boolean isResizable(Node node)
node
- 节点
setResizableFilter(IFilter)
,
setResizableFilter(IFilter)
public boolean isShapeEditable(IShape shape)
shape
- 多边形或者连线
public Rect getElementsBounds()
public Rect getViewportBounds()
public void setAntiAlias(boolean antiAlias)
antiAlias
- 抗锯齿效果绘制拓扑图public boolean isAntialias()
public void clearPopupbar()
public ImageButton addPopupButton(int icon, Action2<Element,Point> call, java.lang.String tooltip)
icon
- call
- tooltip
-
public ImageButton addPopupButton(int icon, Action2<Element,Point> call, java.lang.String tooltip, IFilter<Element> visibleFilter)
icon
- call
- tooltip
- visibleFilter
-
public void removePopupButton(ImageButton button)
button
- 按钮public void showTooltip(java.lang.String tooltip)
tooltip
- 文本提示public boolean isEditting()
setEditting(boolean)
public void setEditting(boolean editting)
editting
- 网元正在被编辑isEditting()
public void panByInertia(Point speed)
speed
- 平移速度public void panTo(float x, float y)
x
- x坐标y
- y坐标public void panTo(float x, float y, float zoom)
x
- x坐标y
- y坐标zoom
- 缩放比例public void stopPan()
public boolean centerElement(Element element)
element
-
public boolean centerElement(Element element, float zoom)
element
- zoom
-
public void removeView(View view)
public void setRectangleSelectable(boolean rectangleSelectable)
public boolean isRectangleSelectable()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |