2014-01-28 2 views
2

border 레이아웃은 왼쪽 (서쪽) 패널이 접히고 오른쪽 (가운데) 패널에 rallychart 구성 요소가 포함 된 내 앱에 적용됩니다. 왼쪽 패널이 접힐 때 더 많은 영역을 그리기 때문에 차트의 더 큰 버전을 얻을 수 있다는 아이디어가있었습니다. 내가 겪고있는 문제는 왼쪽 패널이 접힐 때 차트가 다시 그려지지 않는다는 것입니다. 이것은 중심 컨테이너의 크기가 다른 방법으로 변경되는 경우 (창 크기가 변경된 경우) 큰 컨테이너를 자동으로 채우도록 차트가 다시 그려지기 때문에 놀랍습니다.컨테이너 크기를 다시 그리려면 'rallychart'구성 요소를 강제로 다시 그리십시오.

rallychart을 강제로 다시 그리는 방법이 있습니까? 아마도 창 크기 변경 이벤트가 트리거하는 것과 동일한 이벤트를 트리거하는 것일까?

답변

2

Rally.ui.Chart는 기본 Highchart 객체에 Ext 인터페이스를 제공하는 타사 구성 요소의 인스턴스를 래핑합니다.

당신은 이런 것을에 대한 참조를 얻을 수 있습니다 :

var chartWrapper = chart.down('highchart'); 

해당 구성 요소에 대한 코드는 여기에 살고 : https://github.com/RallySoftware/Highcharts_ExtJs_4/blob/master/Chart/ux/HighChart.js

이 당신은 창 크기 조정하기에 전선 최대 핸들러가 호출하는 것을 볼 수있다 onResize 메소드. 비록 그것이 비공개로 표시되었지만 나는 그것이 작동해야하며 귀하의 최선의 선택이라고 생각합니다.

chartWrapper.onResize(); 
+0

정확히 내가 무엇을 찾고 있었습니까! 나는 "highchart"객체 대신에 "rallychart"객체에서도 이것을 발사하고 있었다. 다행 이네요. 카일 감사합니다! –

1

this question에 대한 답변을 살펴보십시오. 저장소를 다시로드하고 차트 구성 요소를 새로 고치는 것의 조합 일 것입니다.

+0

대답은 Ext의 차트 렌더링을 사용하는 "차트"구성 요소에 대한 것이라고 생각합니다. "재연"기능이없는 "rallychart"를 사용하고 있습니다. 이 문서가 https://help.rallydev.com/apps/2.0rc2/doc/#!/api/Ext.util.Renderable-method-render라는 것을 발견했습니다. 이는 부모 컨테이너의 doLayout 메서드를 호출 할 수는 있지만 그렇게하고 있음을 의미합니다. 아무런 영향을 미치지 않는 것 같다. –

+0

그리드는 기본 저장소의 변경 사항에주의를 기울이는 것처럼 보입니다. 해킹이 될 수 있지만 그리드의 언더 레이 스토어에서 모든 레코드를 제거하고 다시 추가 할 수 있습니다. – kimon