2009-11-23 3 views
0

저는 Flex에서 XML 문서에 대한 사용자 정의 구조화 편집기를 구축하고 있습니다. 필요한 것은 편집 가능한 DataGrid 또는 팝업 양식을 사용하여 최소한의 불만을 가지고 XMLList에 대한 목록 작업을 수행하는 것입니다 (UI에 따라 중요하지는 않습니다. 이 일을하기에 좋은 관용구는 무엇입니까?Adobe Flex에서 XML 문서 편집?

<itemList> 
    <item id="1"/> 
    <item id="2"/> 
</itemList> 

내가 원하는 수에 :

  • 목록의 마지막에 새로운 항목을 추가 여기

    내가 수행 할 수 있습니다 작업으로, 예를 들어 구조입니다.
  • 기존 항목을 제거하십시오.
  • 편집을 취소 할 수있는 방식으로 항목을 편집하십시오 (아마도 이것은 항목의 사본을 만들고, 편집하고, 원본을 편집 된 사본으로 바꾸는 것을 의미합니다).
  • 다시 주문 항목

가 어떻게이 일을 가야한다?

답변

1

방금 ​​작업 한 곳에서 복잡한 XML 편집기를 만들었습니다. 첫 번째 제안은 XMLListCollection을 직접 사용하지 않는 한 플렉스가 수행하는 방식으로 사용하지 마십시오. Flex의 XMLListCollection은 XMLListAdapter의 컨테이너이며 작동하는 동안 XMLList의 부모 노드를 사용하고 기본 XML 함수를 사용하면 훨씬 좋습니다. 당신이 그들의 노력을 복제하려고하면 그것은 길고 악몽입니다.

설명 : XMLListCollection은 귀하의 친구이지만, 많은 데이터 바인딩이있는 경우 여러 레이어가 있는지 확인하십시오. 우리는 원래 XML 문서의 루트에서 항상 ex4 검색을 사용했으며, 이는 우리에게 많은 시간과 노력을 들게했습니다. 우리는 세 개의 하위 목록으로 구분할 수 있으며 각 편집은 훨씬 빠르게 처리된다는 것을 알게되었습니다.

실제 UI에 관해서는 잘하기 위해 여러 가지 방법이 있으며 XML이 전체적으로 어떻게 구성되어 있는지에 따라 다릅니다.

여러 itemLists이있는 경우, 당신은 여기에 예시 한 코드의 일부와 함께 트리 구성 요소를 사용하려면 수 : http://livedocs.adobe.com/flex/3/html/help.html?content=about_dataproviders_6.html

을 다른 한편으로는, 나는 간단한있을 것, 단 하나의 itemList에있는 경우 명부. 그러면 항목을 드래그하고 순서를 변경할 수 있습니다. labelFunction을 사용한 경우 항목의 @id를 반환 할 수 있습니다. TextField와 노드 추가를위한 제출 버튼을 추가 할 수 있습니다. 아마도 삭제를위한 추가 버튼 일 수도 있지만 그렇게 어렵지는 않습니다.

편집을 취소하는 것이 특히 쉽습니다. 실제로 "Submit"가 눌려 질 때까지 기다렸다가 실제로 XML 변경을 커밋합니다.

0

그래, 플렉스 빌더는 Eclipse 기반 IDE에서 Web Tools Platform을 사용하기 때문에 그렇습니다. 스트레이트 플렉스 빌더에 설치하지 않았지만 Eclipse J2EE 버전을 다운로드 할 수 있으며 WTP가 포함되어 있습니다. 그런 다음 플렉스 빌더를 플러그인으로 설치하십시오. 나는 당신이 Ganymede J2EE IDE 버전을 발견 할 수 있어야한다고 생각한다. 그러나, 만약 당신이 갈릴레오에서 플렉스를 얻는 것에 대한 해결 방법을 들여다 보면 좋다.

1

필자는 개인적으로 XML 구조를 객체 그래프로 추상화하고 사실 후에 XML 객체를 직렬화합니다.그런 다음 편집 중 XML을 처리하지 않고 (실시간 직렬화 된 디스플레이 외부에서) XML 노드를 구문 분석하거나 조작하는 대신 오브젝트를 사용하여 쉽게 사용할 수 있습니다.