2009-12-09 3 views
0

라디오 버튼 그룹이있는 UI 개발 (웹과 팻 클라이언트 모두)에서 일반적인 시나리오를 발견했습니다. 라디오 버튼을 클릭하면 다른 컨트롤의 특정 "세트"를 선택하려고합니다. 단순함, 모든 텍스트 상자라고 가정 해 봅시다).다른 컨트롤의 "세트"를 선택하는 라디오 버튼의 패턴?

설명하기 위해 별표는 라디오 단추를 나타내며 밑줄은 텍스트 상자를 나타냅니다. 각 라디오 버튼은 같은 줄에있는 텍스트 상자의 "집합"을 "선택"해야합니다.

* ________ ________ __________ 

* ________ 

* ________ ________ 

그래서 UI 요구로 번역이 텍스트 상자에

사용자가 라디오 버튼을 클릭 할 때마다
  1. , 모든 값 되지는 전멸한다 "설정"에서을 의미 ,

  2. 사용자가 텍스트 상자에 입력을 시작할 때마다 사용자가 텍스트 상자를 제어하는 ​​라디오 단추가 자동으로 선택되어야합니다 (다른 단추를 지우는 것을 의미 함). 텍스트 상자 값).

제 문제는 놀랍게도 어렵다는 것입니다. 처리 할 이벤트가 많고 핸들러로 인해 다른 이벤트가 발생할 수 있습니다.

따라야 할 패턴이 있습니까?

답변

0

실제로 유용성의 관점에서 라디오 버튼이 선택되지 않은 경우 텍스트 상자의 값을 지우지 않는 것이 좋습니다. 사용자가 라디오 버튼 사이를 전환 할 때, 당신은 그들의 작업을 파괴해서는 안됩니다. 텍스트 상자를 지우지 않으면 사용자는 텍스트 상자 값을 다시 입력하지 않고 옵션 B 다음에 옵션 A를 사용하여 되돌아 갈 수 있습니다.

관련 라디오 버튼이 선택되지 않은 경우 텍스트 상자를 비활성화하여 사용자에게 텍스트 상자 값이 적용되지 않음을 나타낼 수 있습니다. 사용자는 추가 라디오 버튼이나 탭 키 누르기를 저장하기 위해 라디오 버튼을 선택하여 첫 번째 연관된 텍스트 상자에 자동으로 포커스를 놓아야합니다. 대부분의 경우 사용자가 원래 디자인에서 원하는 텍스트 상자를 클릭하는 것만 큼 효율적입니다.

이 디자인은 또한 코드를 단순화합니다. 라디오 버튼에 대한 Update 이벤트에서 활성화 및 포커스를 설정하면됩니다.

0

이벤트가 많이

컨트롤러의 작은 계층 구조가 도움이 될 수 있습니다 처리 할 수 ​​있습니다. 위젯의 이벤트를 단일 행에 처리하고 특정 행을 선택/선택 취소하는 역할을하는 행 컨트롤러. "다른 행 선택"알림을 집합의 행에 전달하는 역할을하는 행 집합 컨트롤러입니다.

위의 설명에 너무 무거울지라도이 MVC 계층을 MVC (여기에 패턴 :-)라고 부릅니다.

그리고 핸들러는 다른 이벤트를 발생시킬 수 있습니다.행 컨트롤러 행을 선택 해제/선택하는 동안 해고 차 이벤트를 억제하기 위해

은 작업처럼 보인다. 행 컨트롤러는 선택/선택 취소가 실행 중인지 여부를 알고 있기 때문에 보조 이벤트를 완충 할 수 있습니다. 이것이 그 패턴인지 확실하지 않습니다. 어쩌면 그 선택을 나타내는 부울 플래그 패턴은

:-) 일어나고
0

당신이 읽을 수

당신은 "하위 폼"UI 패턴과 연관된 패턴 (대체 하위 폼, 하위 폼 선택 등)을 사용할 수 있습니다 이러한 패턴에 대한 설명은 here입니다.

관련 문제