나는 그것을 작동시킬 수 있었다. 먼저, 두 개의 새로운 클래스를 생성해야합니다.
class NodeStyleImpl implements NodeStyle
class RelationshipStyleImpl implements RelationshipStyle
여기서 노드와 관계를 점 표기법으로 작성하는 방법을 정의 할 수 있습니다. 예제 구현은 다음과 같습니다.
public class NodeStyleImpl implements NodeStyle {
public void emitNodeStart(Appendable apndbl, Node node) throws IOException {
apndbl.append(" N" + node.getId() + " [\n label = \"");
}
public void emitEnd(Appendable apndbl) throws IOException {
apndbl.append("\"\n]\n");
}
public void emitProperty(Appendable apndbl, String propkey, Object propvalue) throws IOException {
if(propkey.equals("propkeyone") || propkey.equals("propkeytwo"){
apndbl.append(propvalue.toString());
}
}
}
아날로그 방식으로 RelationshipStyleImpl을 작성할 수 있습니다. 고급 구성을 찾고 있다면 StyleConfiguration 구현을 작성할 수도 있습니다. 예제를 위해 Neo4j 코드의 기본 구현을 볼 수 있습니다.
그런 다음 GraphStyle 클래스에 문제가 있습니다. GraphStyle 클래스는 보호 된 생성자를 가지므로 패키지 내에서만 액세스 할 수 있습니다. 공개로 변경하라는 요청을했으나 잠시 후 해결 방법을 제공하는 약간의 "해킹"이 있습니다.
package org.neo4j.visualization.graphviz
public class GraphStyleImpl extends GraphStyle {
private GraphStyleImpl (NodeStyleImpl nstyle, RelationshipStyleImpl rstyle) {
super(nstyle, rstyle);
}
}
패키지 선언에 유의하십시오. GraphStyle 생성자는 보호되어 있으므로 super (nstyle, rstyle) 메서드는 동일한 패키지 내에서만 액세스 할 수 있습니다. 새 공용 생성자 클래스를 확장함으로써, 이제 다음을 수행 할 수 있습니다 내 풀 요청이 수락됩니다 경우
는
GraphStyle graphstyle = new GraphStyleImpl(new NodeStyleImpl(), new RelationshipStyleImpl());
GraphvizWriter writer = new GraphvizWriter(graphstyle);
의 GraphStyleImpl 클래스의 사용은 더 이상 필요하지 않을 것입니다.
그래서 AsciiDocSimpleStyle은 나에게 다른 스타일을 제공합니다. 하지만 AsciiDocSimpleStyle을 사용자 정의 할 수는 없습니다. 맞습니까? 색상 측면이 아니라 내용면에서 점 파일로 푸시됩니다. –
마지막 메서드를 사용하여 NodeStyle 및 RelationshipStyle 구현을 보낼 수 있습니다. 관계를 망치고 싶지 않으면 DefaultRelationshipStyle의 사본을 만드십시오. – nawroth
또는 프로젝트를 포크하여 쉽게 확장 할 수 있습니다. 좋은 요청은 언제나 환영합니다.나는 그것을 문서 도구 내에서 사용하기 위해 수정했지만 그 이상은 보이지 않았다. – nawroth