Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Christnowx
Gephi
提交
96951871
G
Gephi
项目概览
Christnowx
/
Gephi
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Gephi
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
96951871
编写于
12月 30, 2013
作者:
M
Mathieu Bastian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add column observer in Appearance UI
上级
1b99cc7f
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
71 addition
and
0 deletion
+71
-0
modules/DesktopAppearance/pom.xml
modules/DesktopAppearance/pom.xml
+4
-0
modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceUIController.java
.../org/gephi/desktop/appearance/AppearanceUIController.java
+55
-0
modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceUIModel.java
.../java/org/gephi/desktop/appearance/AppearanceUIModel.java
+12
-0
未找到文件。
modules/DesktopAppearance/pom.xml
浏览文件 @
96951871
...
...
@@ -20,6 +20,10 @@
<groupId>
${project.groupId}
</groupId>
<artifactId>
project-api
</artifactId>
</dependency>
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
graph-api
</artifactId>
</dependency>
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
appearance-api
</artifactId>
...
...
modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceUIController.java
浏览文件 @
96951871
...
...
@@ -49,12 +49,17 @@ import java.util.LinkedHashMap;
import
java.util.LinkedHashSet
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.Timer
;
import
java.util.TimerTask
;
import
org.gephi.appearance.api.AppearanceController
;
import
org.gephi.appearance.api.AppearanceModel
;
import
org.gephi.appearance.api.Function
;
import
org.gephi.appearance.spi.Transformer
;
import
org.gephi.appearance.spi.TransformerCategory
;
import
org.gephi.appearance.spi.TransformerUI
;
import
org.gephi.attribute.api.AttributeModel
;
import
org.gephi.attribute.api.TableObserver
;
import
org.gephi.graph.api.GraphController
;
import
org.gephi.project.api.ProjectController
;
import
org.gephi.project.api.Workspace
;
import
org.gephi.project.api.WorkspaceListener
;
...
...
@@ -79,6 +84,8 @@ public class AppearanceUIController {
private
final
Set
<
AppearanceUIModelListener
>
listeners
;
//Model
private
AppearanceUIModel
model
;
//Observer
private
ColumnObserver
tableObserver
;
public
AppearanceUIController
()
{
final
ProjectController
pc
=
Lookup
.
getDefault
().
lookup
(
ProjectController
.
class
);
...
...
@@ -98,6 +105,12 @@ public class AppearanceUIController {
workspace
.
add
(
model
);
}
model
.
select
();
if
(
tableObserver
!=
null
)
{
tableObserver
.
destroy
();
}
tableObserver
=
new
ColumnObserver
(
workspace
);
tableObserver
.
start
();
firePropertyChangeEvent
(
AppearanceUIModelEvent
.
MODEL
,
oldModel
,
model
);
}
...
...
@@ -117,6 +130,9 @@ public class AppearanceUIController {
AppearanceUIModel
oldModel
=
model
;
model
=
null
;
firePropertyChangeEvent
(
AppearanceUIModelEvent
.
MODEL
,
oldModel
,
model
);
if
(
tableObserver
!=
null
)
{
tableObserver
.
destroy
();
}
}
});
...
...
@@ -260,4 +276,43 @@ public class AppearanceUIController {
listener
.
propertyChange
(
event
);
}
}
private
class
ColumnObserver
extends
TimerTask
{
private
final
GraphController
gc
=
Lookup
.
getDefault
().
lookup
(
GraphController
.
class
);
private
static
final
int
INTERVAL
=
500
;
private
final
Timer
timer
;
private
final
TableObserver
nodeObserver
;
private
final
TableObserver
edgeObserver
;
public
ColumnObserver
(
Workspace
workspace
)
{
timer
=
new
Timer
(
"RankingColumnObserver"
,
true
);
nodeObserver
=
gc
.
getAttributeModel
(
workspace
).
getNodeTable
().
getTableObserver
();
edgeObserver
=
gc
.
getAttributeModel
(
workspace
).
getEdgeTable
().
getTableObserver
();
}
@Override
public
void
run
()
{
if
(
nodeObserver
.
hasTableChanged
()
||
edgeObserver
.
hasTableChanged
())
{
Function
oldValue
=
model
.
getSelectedFunction
();
model
.
refreshSelectedFunction
();
Function
newValue
=
model
.
getSelectedFunction
();
firePropertyChangeEvent
(
AppearanceUIModelEvent
.
SELECTED_FUNCTION
,
oldValue
,
newValue
);
}
}
public
void
start
()
{
timer
.
schedule
(
this
,
INTERVAL
,
INTERVAL
);
}
public
void
stop
()
{
timer
.
cancel
();
}
public
void
destroy
()
{
stop
();
nodeObserver
.
destroy
();
edgeObserver
.
destroy
();
}
}
}
modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceUIModel.java
浏览文件 @
96951871
...
...
@@ -123,6 +123,18 @@ public class AppearanceUIModel {
}
}
public
boolean
refreshSelectedFunction
()
{
Function
sFunction
=
getSelectedFunction
();
if
(
sFunction
!=
null
&&
sFunction
.
isAttribute
())
{
for
(
Function
func
:
getSelectedElementClass
().
equals
(
AppearanceUIController
.
NODE_ELEMENT
)
?
appearanceModel
.
getNodeFunctions
()
:
appearanceModel
.
getEdgeFunctions
())
{
if
(
func
.
equals
(
sFunction
))
{
return
false
;
}
}
}
return
true
;
}
public
void
select
()
{
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录