Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Christnowx
Gephi
提交
0fa6e99a
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,发现更多精彩内容 >>
提交
0fa6e99a
编写于
1月 29, 2013
作者:
R
Ralf Neeb
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
added trivial graph format support
上级
dd10de28
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
260 addition
and
0 deletion
+260
-0
modules/ImportPlugin/src/main/java/org/gephi/io/importer/plugin/file/ImporterBuilderTGF.java
...org/gephi/io/importer/plugin/file/ImporterBuilderTGF.java
+76
-0
modules/ImportPlugin/src/main/java/org/gephi/io/importer/plugin/file/ImporterTGF.java
...n/java/org/gephi/io/importer/plugin/file/ImporterTGF.java
+183
-0
modules/ImportPlugin/src/main/resources/org/gephi/io/importer/plugin/file/Bundle.properties
...urces/org/gephi/io/importer/plugin/file/Bundle.properties
+1
-0
未找到文件。
modules/ImportPlugin/src/main/java/org/gephi/io/importer/plugin/file/ImporterBuilderTGF.java
0 → 100644
浏览文件 @
0fa6e99a
/*
Copyright 2008-2010 Gephi
Authors : rlfnb
Website : http://www.gephi.org
This file is part of Gephi.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 2011 Gephi Consortium. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 3 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://gephi.org/about/legal/license-notice/
or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
specific language governing permissions and limitations under the
License. When distributing the software, include this License Header
Notice in each file and include the License files at
/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"
If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 3, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 3] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 3 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 3 code and therefore, elected the GPL
Version 3 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
Contributor(s):
Portions Copyrighted 2011 Gephi Consortium.
*/
package
org.gephi.io.importer.plugin.file
;
import
org.gephi.io.importer.api.FileType
;
import
org.gephi.io.importer.spi.FileImporter
;
import
org.gephi.io.importer.spi.FileImporterBuilder
;
import
org.openide.filesystems.FileObject
;
import
org.openide.util.NbBundle
;
import
org.openide.util.lookup.ServiceProvider
;
/**
*
* @author rlfnb
*/
@ServiceProvider
(
service
=
FileImporterBuilder
.
class
)
public
final
class
ImporterBuilderTGF
implements
FileImporterBuilder
{
public
static
final
String
IDENTIFER
=
"tgf"
;
public
FileImporter
buildImporter
()
{
return
new
ImporterTGF
();
}
public
String
getName
()
{
return
IDENTIFER
;
}
public
FileType
[]
getFileTypes
()
{
FileType
ft
=
new
FileType
(
".tgf"
,
NbBundle
.
getMessage
(
getClass
(),
"fileType_TGF_Name"
));
return
new
FileType
[]{
ft
};
}
public
boolean
isMatchingImporter
(
FileObject
fileObject
)
{
return
fileObject
.
getExt
().
equalsIgnoreCase
(
"tgf"
);
}
}
modules/ImportPlugin/src/main/java/org/gephi/io/importer/plugin/file/ImporterTGF.java
0 → 100644
浏览文件 @
0fa6e99a
/*
Copyright 2008-2010 Gephi
Authors : rlfnb
Website : http://www.gephi.org
This file is part of Gephi.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 2011 Gephi Consortium. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 3 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://gephi.org/about/legal/license-notice/
or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
specific language governing permissions and limitations under the
License. When distributing the software, include this License Header
Notice in each file and include the License files at
/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"
If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 3, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 3] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 3 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 3 code and therefore, elected the GPL
Version 3 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
Contributor(s):
Portions Copyrighted 2011 Gephi Consortium.
*/
package
org.gephi.io.importer.plugin.file
;
import
java.io.LineNumberReader
;
import
java.io.Reader
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
import
org.gephi.io.importer.api.ContainerLoader
;
import
org.gephi.io.importer.api.EdgeDraft
;
import
org.gephi.io.importer.api.ImportUtils
;
import
org.gephi.io.importer.api.NodeDraft
;
import
org.gephi.io.importer.api.Report
;
import
org.gephi.io.importer.spi.FileImporter
;
import
org.gephi.utils.longtask.spi.LongTask
;
import
org.gephi.utils.progress.Progress
;
import
org.gephi.utils.progress.ProgressTicket
;
/**
*
* @author rlfnb
*/
public
class
ImporterTGF
implements
FileImporter
,
LongTask
{
//Architecture
private
Reader
reader
;
private
ContainerLoader
container
;
private
Report
report
;
private
ProgressTicket
progressTicket
;
private
boolean
cancel
=
false
;
public
boolean
execute
(
ContainerLoader
container
)
{
this
.
container
=
container
;
this
.
report
=
new
Report
();
LineNumberReader
lineReader
=
ImportUtils
.
getTextReader
(
reader
);
try
{
importData
(
lineReader
);
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
return
!
cancel
;
}
private
void
importData
(
LineNumberReader
reader
)
throws
Exception
{
Progress
.
start
(
progressTicket
);
//Progress
List
<
String
>
nodes
=
new
ArrayList
<
String
>();
List
<
String
>
edges
=
new
ArrayList
<
String
>();
boolean
isNode
=
true
;
for
(;
reader
.
ready
();)
{
String
line
=
reader
.
readLine
().
trim
();
if
(
"#"
.
equalsIgnoreCase
(
line
))
{
isNode
=
false
;
}
else
{
if
(
line
!=
null
&&
!
line
.
isEmpty
())
{
if
(
isNode
)
{
nodes
.
add
(
line
);
}
else
{
edges
.
add
(
line
);
}
}
}
}
Progress
.
switchToDeterminate
(
progressTicket
,
nodes
.
size
()
+
edges
.
size
());
if
(
nodes
.
isEmpty
())
{
throw
new
Exception
(
"Cannot import a graph without nodes!"
);
}
for
(
String
n
:
nodes
)
{
addNode
(
n
.
substring
(
0
,
n
.
indexOf
(
" "
)),
n
.
substring
(
n
.
indexOf
(
" "
)));
}
Progress
.
progress
(
progressTicket
);
//Progress
for
(
String
e
:
edges
)
{
int
firstSpace
=
e
.
indexOf
(
" "
);
int
secondSpace
=
e
.
indexOf
(
" "
,
firstSpace
+
1
);
String
[]
tempFields
=
e
.
split
(
" "
);
String
from
=
tempFields
[
0
];
String
to
=
tempFields
[
1
];
addEdge
(
from
,
to
,
e
.
substring
(
secondSpace
));
}
Progress
.
progress
(
progressTicket
);
//Progress
}
private
void
addNode
(
String
id
,
String
label
)
{
NodeDraft
node
;
if
(!
container
.
nodeExists
(
id
))
{
node
=
container
.
factory
().
newNodeDraft
();
node
.
setId
(
id
);
node
.
setLabel
(
label
);
container
.
addNode
(
node
);
}
}
private
void
addEdge
(
String
source
,
String
target
,
String
label
)
{
NodeDraft
sourceNode
;
if
(!
container
.
nodeExists
(
source
))
{
sourceNode
=
container
.
factory
().
newNodeDraft
();
sourceNode
.
setId
(
source
);
container
.
addNode
(
sourceNode
);
}
else
{
sourceNode
=
container
.
getNode
(
source
);
}
NodeDraft
targetNode
;
if
(!
container
.
nodeExists
(
target
))
{
targetNode
=
container
.
factory
().
newNodeDraft
();
targetNode
.
setId
(
target
);
container
.
addNode
(
targetNode
);
}
else
{
targetNode
=
container
.
getNode
(
target
);
}
EdgeDraft
edge
=
container
.
getEdge
(
sourceNode
,
targetNode
);
if
(
edge
==
null
)
{
edge
=
container
.
factory
().
newEdgeDraft
();
edge
.
setSource
(
sourceNode
);
edge
.
setTarget
(
targetNode
);
edge
.
setLabel
(
label
);
container
.
addEdge
(
edge
);
}
}
public
void
setReader
(
Reader
reader
)
{
this
.
reader
=
reader
;
}
public
ContainerLoader
getContainer
()
{
return
container
;
}
public
Report
getReport
()
{
return
report
;
}
public
boolean
cancel
()
{
cancel
=
true
;
return
true
;
}
public
void
setProgressTicket
(
ProgressTicket
progressTicket
)
{
this
.
progressTicket
=
progressTicket
;
}
}
modules/ImportPlugin/src/main/resources/org/gephi/io/importer/plugin/file/Bundle.properties
浏览文件 @
0fa6e99a
...
...
@@ -5,6 +5,7 @@ fileType_GraphML_Name = GraphML Files
fileType_GML_Name
=
GML Files
fileType_TLP_Name
=
TLP Files
fileType_CSV_Name
=
CSV Files
fileType_TGF_Name
=
TGF Files
fileType_Edges_Name
=
Edge List
fileType_GraphViz_Name
=
GraphViz Files
fileType_DL_Name
=
DL Files (UCINET)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录