2017-11-09 42 views
1

, 우리가 다음과 같은 방법에 의해 그래프 스타일을 할 수있는 기술되었는지끔찍한 문자열/절대 파일 경로가없는 GraphStream 스타일? GraphStream 문서에서

이 속성은 그래프에 저장해야하고 문자의 문자열로 값으로 스타일 시트 그 자체에 소요 또는 파일의 URL 인 은 로컬, 원거리 또는 항아리에 패키지되어 있습니다.

당신은 예를 들어 문자열로 이런 식으로 주어진 스타일 시트를 사용하여 그래프의 배경 색상을 변경할 수 있습니다

graph.addAttribute ("ui.stylesheet", "그래프 {채우기 색상 : 빨강; } ");

그러나 당신은 또한 URL을 지정할 수 있습니다

graph.addAttribute ("ui.stylehseet" "URL을 ('http://www.deep.in/the/site/mystylesheet')");

또는 :

graph.addAttribute ("ui.stylesheet" "URL (파일 : /// 곳 /여 /은/무지개/스타일 ')");

그러나 이것으로 실험 해본 결과 GraphStream은이 속성에 대한 절대 파일 경로 만 지원한다는 결론에 도달했습니다. 이것은 내가 궁극적으로 JAR 파일로 응용 프로그램을 수출되기 때문에 문제입니다, 나는 당신이 좋아하는 일을하여 문제를 회피 할 수 있다는 것을 발견하고 있지만 :

이 방법과 관련된 불확실성이
ClassLoader.getSystemClassLoader().getResource(".").getPath(‌​); 

(예를 Linux 컴퓨터 (?)와 같은 특정 컴퓨터에서는 작동하지 않을 수 있습니다. 솔직히 매우보기 흉한입니다

private static final String GRAPH_DISPLAY_STYLESHEET = 
    "graph { fill-color: white; }" + 
      "node {" + 
       "fill-color: black;" + 
       "shape: rounded-box;" + 
       "shadow-mode: plain;" + 
       "shadow-color: #C8C8C8;" + 
       "shadow-width: 4;" + 
       "shadow-offset: 4, -4;" + 
       "text-background-mode: rounded-box;" + 
       "text-padding: 5;" + 
       "text-background-color: black;" + 
       "text-color: white;" + 
       "text-size: 20;" + 
       "size-mode: fit;}" + 
      "edge { fill-color: black; }"; 

:

는 경우, 내 현재의 해킹과 같은 긴 문자열, 뭔가로 '스타일'을 저장하는 것입니다.

이 상황을 개선하는 방법에 대한 아이디어가있는 사람이 있습니까? 미리 감사드립니다!

답변

1

getResource()을 사용하는 것이 좋습니다. 이러한 방법 중 하나를 시도, 파일 시스템 변덕을 방지하려면 : addAttribute()에 적합한 String 각 자원을 변환 here을 예증 접근 방식의

  • 하나를 사용.

  • 로드 각 스타일은 addAttribute()에 적합한 String로 사용할 수 있도록 herehere를 그림과 같이 스타일 java.util.Properties의 인스턴스.