diff options
Diffstat (limited to 'files/ko/places/custom_containers/index.html')
-rw-r--r-- | files/ko/places/custom_containers/index.html | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/files/ko/places/custom_containers/index.html b/files/ko/places/custom_containers/index.html new file mode 100644 index 0000000000..305255ee4d --- /dev/null +++ b/files/ko/places/custom_containers/index.html @@ -0,0 +1,21 @@ +--- +title: Custom Containers +slug: Places/Custom_Containers +tags: + - Places +--- +<p>사용자 정의 콘테이너는 확장이나 기타 서비스가 플레이스 폴더의 결과를 동적으로 제공하는 것을 가능하게 합니다. 이 문서를 읽기 전에 질의와 결과의 작동 방법에 대한 <a href="ko/Places/Query_System">플레이스 질의 시스템</a>을 숙지하는 것이 좋습니다.</p> + +<h3 id="원격_콘테이너">원격 콘테이너</h3> + +<p>원격 콘테이너는 확장 작성자 등이 플레이스 질의 결과에 콘테이너의 내용을 제공하는 방법입니다. 먼저 <a href="ko/NsIRemoteContainer">nsIRemoteContainer</a>를 구현하는 콤포넌트를 생성해야 합니다. 그리고 나서, <code>nsINavBookmarksService.createContainer</code>를 사용하여 여러분의 콤포넌트와 연관된 북마크 폴더를 생성합니다. <code>type</code> 매개 변수는 콤포넌트의 contract ID를 포함한 문자열입니다. 북마크 서비스와 기타 콤포넌트는 여러분의 <code>nsIRemoteContainer</code> 구현을 얻기 위하여 이 contract ID를 사용하여 <code>CreateService</code>를 호출합니다.</p> + +<p>여러분의 서비스가 폴더와 관련을 맺으면, 폴더가 이동하거나 삭제될 때 알림을 받게 됩니다. 이러한 동작에 대응하여 여러분의 서비스는 폴더와 관련한 관리 정보를 갱신해야 합니다.<em>(여러분의 콘테이너를 나타내는 콘테이너 결과 노드를 결과 사용자가 열거나 닫을 때 발생하는 알림은 테스트 부족으로 주석 처리되어 있습니다.)</em> 또한, 여러분의 서비스는 콘테이너가 읽기 전용 자식을 가지고 있는지 또는 보통의 북마크와 마찬가지로 수정이 가능한지를 선언할 수 있습니다.</p> + +<h3 id="모드">모드</h3> + +<p>원격 콘테이너 구현이 사용할 수 있는 작동 모드에는 두 가지가 있습니다. 첫 번째 모드는 북마크 제공자처럼 동작하여 일반 북마크 폴더 안에 실제 북마크를 생성합니다. 이러한 예가 <a class="external" href="http://developer.mozilla.org/en/docs/Places:Livemark_Service">라이브마크 서비스</a>입니다. 라이브마크 서비스는 피드를 읽고 해당 스트림 안의 항목에 해당하는 폴더에 북마크를 생성합니다. 이 북마크는 북마크 서비스가 관리하므로 라이브마크 서비스는 콘테이너가 언제 열리고 닫히는지 상관하지 않습니다. (폴더의 피드와 관련한 정보를 갱신하기 위하여) 폴더가 이동하거나 삭제되는 경우를 처리하는 것과 라이브마크가 읽기 전용이라고 선언하는 것만 필요합니다.</p> + +<p>두 번째 작동 모드는 더 적극적입니다.<em>현재 이 모드는 지원하지 않습니다. 함수 호출은 테스트 지연으로 주석 처리되어 있습니다.</em> 서비스는 콘테이너 열기 및 닫기 동작에 대응하여 실행 중에 결과를 채울 수 있습니다. 그러므로 표시되는 순간에 더 동적인 내용을 생성할 수 있습니다. 콘테이너 형식을 가진 폴더가 열리면 서비스는 알림을 받고 콘테이너 결과 노드가 주어집니다. 그러면 서비스는 <code>appendURINode</code>, <code>appendFolderNode</code> 등을 이용하여 해당 콘테이너에 자식을 생성할 수 있습니다. <code>appendContainerNode</code>를 특히 주목하십시오. 이는 다른 원격 콘테이너를 생성하는데 사용할 수 있습니다. 이러한 원격 콘테이너는 어떠한 북마크 폴더와도 관련이 없습니다(관련을 맺으려면 <code>appendFolderNode</code>를 사용하십시오). 예를 들어, 하위 폴더와 관련한 콘테이너를 동적으로 생성할 수 있는 파일 브라우저를 생성할 수 있습니다. 각 콘테이너는 속성 백(property bag)을 가지고 있어서 경로와 같은 임의의 정보를 노드에 연결하는데 사용할 수 있다는 점을 기억하십시오.</p> + +<div class="noinclude"></div> |