2011-08-03 5 views
1

기능별 : 내 응용 프로그램의 구성 요소 중 하나에서 편집/잠금 시스템이 있습니다. 사용자가 편집을 시작하면 다른 사용자가 편집 할 수 없도록 파일을 잠급니다.Flex에 저장하지 않고 계속 진행하면 경고를 표시 하시겠습니까?

문제 시나리오 : 사용자가 "편집 모드"를 활성화하고 화면을 떠날 때 두 가지 옵션, 즉 변경 사항 저장 또는 변경 사항 취소와 함께 경고를 표시하려고합니다. 다른 가능한 editabel 데이터를 포함 왼쪽 목록

  • 있습니다 :

    화면을 종료하려면 다른 방법이 있습니다. 클릭하면 구성 요소의 데이터가 변경됩니다.

  • 상단에는 다른 화면으로 연결되는 도구 모음이 있습니다.
  • 에디션 구성 요소가 탭 탐색기에 포함되어 있습니다. 탭을 변경할 때 경고가 표시되어야합니다.
  • 브라우저를 종료하십시오.

이러한 모든 이벤트를 포착하고 모든 장소에서 플러그를 꽂아야합니까? 포커스가있는 메카니즘의 종류가 있습니까?

+0

나는 닫는 브라우저 나 그와 비슷한 것을 잡을 수 있을지에 대해 매우 의문이있다. –

+2

@ Lo'oris 당신은 실제로 자바 스크립트로 닫으려는 브라우저를 잡을 수 있습니다. 나를 믿지 않으면 GMAIL 또는 Google 문서 도구를 닫은 다음 저장하기 전에 수정하십시오.외부 인터페이스를 사용하면 이론적으로 브라우저를 닫기 전에 사용자를 잡을 수 있습니다. –

+0

@Jonathan : 오, 그것을 지적 해 주셔서 감사합니다! –

답변

6

첫 번째 질문에 대한 대답은 다음과 같습니다. 예.

현재 편집 된 데이터를 손상시킬 수있는 가능한 모든 이탈 이벤트를 감시해야합니다.

글쎄,이 문제를 올바르게 관리하는 방법이 지금입니다.

  • CHANGE_LIST_ITEM (새 항목)
  • CHANGE_TAB (새 탭)
  • CHANGE_SCREEN (새 화면)

각 명령을 다음 : 적절한 명령을 컴포넌트에서 트리거 MVC 프레임 워크를 것 사용 현재 편집 된 탭이 저장되었는지 여부를 확인합니다. 그렇지 않은 경우 경고를 표시합니다. 그렇지 않으면 변경 사항이 없으면 목록, 화면 선택기 및 탭 표시 줄을 계속 사용할 수 있습니다.

따라서 구성 요소 (목록, 스크린, 탭)는 일종의 롤백 또는 preventDefault 메커니즘을 구현해야합니다. 일반적으로 상태를 변경하려면 중앙 유효성 검사기 (MVC 명령)에서 허용되어야합니다.

목록의 경우 : 목록을 마우스 클릭으로 선택할 수 없지만 프로그래밍 방식으로 만 제안 할 수 있습니다. 목록 항목 클릭 이벤트에 리스너를 설정합니다. 명령이 새 항목을 설정할 수 있으면 목록에이를 알립니다. MVC에서는 일반적으로 목록의 조정자가받은 비동기 메시지를 보냅니다. [[그리고 훨씬 더 정확 : 명령이 일부 모델 속성 (예 : currentListItem)을 설정하고 비동기 메시지를 보내는 것보다 모델을 설정합니다.]]

편집 : 브라우저 닫기 이벤트의 경우 JavaScript 전문가에게 문의해야합니다.

+0

답변 해 주셔서 감사합니다. 그러나 나쁘게도 MVC 프레임 워크가 사용되지 않았으며 이는 경고를 막아내는 끔찍한 일이 될 것입니다 ... 다른 질문이 다른 관점을 갖는지 확인하기 위해 이틀 동안 열어 두겠습니다. –

+0

내 현재 작업은 편집 가능한 탭, 화면, 목록 및 경고 (저장, 폐기)와 동일하지만 브라우저의 것은 아닙니다 : D 그러나 거의 완료되었습니다. –

+0

@ Zenklys Jens 답변에 대한 답변이 있습니다. 비슷한 요구 사항을 위해 여기서는 메이트 프레임 워크를 사용하는 모든 탐색 이벤트를 catch하고 사용자가 작업을 저장했는지 확인합니다. 그렇지 않은 경우 저장 프롬프트를 발송합니다. –

관련 문제