1. System Browser 윈도우가 아직 열려있을 것입니다(WebLogStats 패키지가 선택된 상태로). 만일 그렇지 않은 경우엔 System Browser를 이용해서 WebLogStats 패키지를 선택해주십시오.
2. WebLog 클래스를 선택해주십시오. 인스턴스 탭이 선택된 것을 확인해주십시오.
3. 프로토콜 Pane에서 <오퍼레이트 클릭>후 New...를 선택해주십시오.
4. 표시된 다이얼로그에 accessing을 입력하고 OK를 클릭해주십시오(이미 존재하는 경우에는 작성할 필요가 없습니다.).
코드 Pane에 텍스트가 표시됩니다. 이것은 메서드를 작성하기 위해 사용하는 "템플릿"입니다.
5. accessing 프로토콜 하위에 아래와 같이 네 개의 메서드를 작성해주십시오(이미 작성된 경우엔 아무것도 할 필요가 없습니다.).
filter: aFilter
filter := aFilter
logDirectory
^logDirectory
logDirectory: aLogDirectory
logDirectory := aLogDirectory
6. initialize 메서드(initialize-release 프로토콜)의 logDirectory 변수의 값을 초기화하는 코드행을 코멘트로 만들거나, 혹은 삭제해주십시오.
7. start 메서드(private 프로토콜) 아래 코드행을 코멘트로 만들거나 혹은 삭제해주십시오.
filter := Dialog request: 'Please enter a filter ' initialAnswer: 'ws00'.
8. GUI페인터 툴 윈도우가 열려있는 경우, 그곳으로 되돌아가주십시오. 만일 열려있지 않은 경우, WebLogGUI를 열어주십시오(이전 12-15레슨을 참조).
9. 캔버스에 라벨과 입력필드를 배치해주십시오.
- 라벨의 문자열 속성에 File Filter를 설정
- 입력 필드의 Aspect 속성에 filterUI를 설정
10. 캔버스에 별도의 라벨과 입력필드를 배치해주십시오.
- 라벨의 문자열속성에 Log File Directory를 설정
- 입력필드의 Aspect 속성에 logDirectoryUI를 설정
입력필드에서 사용했던 이름은 전형적인 네이밍 규약을 따르고 있지 않습니다. WebLog 클래스에서 이름만 단순히 취한 후, UI라는 첨자를 불여, 그것에 대응하는 UI를 작성하였습니다. 이로서 변수를 쉽게 기억할 수 있습니다.
11. GUI페인터 툴로 돌아가서, 트리 목록의 메인 윈도우를 클릭(선택)합니다. 인스톨 버튼을 클릭하고, 표시된 다이얼로그 박스의 OK를 클릭합니다.
목록이 늘어났습니다.
13. 아래와 같이 편집해주십시오.
- filterUI와 logDirectoryUI는 체크된 채로 둠
- startWebLog는 체크를 해제
Note : startWebLog의 체크 마크(초기화를 추가의 체크 마크도 동일)를 그대로 두면, starWebLog에 이미 쓰여진 메서드는 UIDefiner에 의해 생성된 스텁 메서드에서 덧쓰여집니다. 그러고 싶진 않군요. 입력 필드의 초기화 메서드만을 기술하기 위해 실행합니다.
그림7-2. 정의 모델 다이얼로그의 startWebLog 체크 마크 해제
14. GUI페인터 툴에서 Browse 버튼을 클릭합니다.
System Browser는 WebLogGUI 클래스의 클래스 정의를 표시하고 있는 것을 확인해주십시오.
15. 아래와 같이 행을 변경해주십시오.
instanceVariableNames: 'logDirectoryUI filterUI '
이 행을
instanceVariableNames: 'aWebLog logDirectoryUI filterUI '
이 행으로 변경하시면 됩니다.
16. 코드 Pane에서 <오퍼레이트 클릭>후 Accept를 선택해주십시오.
17. System Browser에서 인스턴스 탭을 선택해주십시오. 프로토콜 창에서 <오퍼레이트 클릭>후 New...를 선택해주십시오.
18. 표시된 다이얼로그 박스에 initialize-release를 입력하고 OK를 클릭해주십시오.
코드 Pane에 텍스트가 표시됩니다. 이것은 메서드를 작성하기 위해 사용하는 "템플릿"입니다.
19. initialize-release 프로토콜 하위에 아래와 같은 메서드를 입력해주십시오.
initialize
aWebLog := WebLog new.
self filterUI value: 'ws00'.
self logDirectoryUI value: 'c:\vw7.7\image'.
Note : 코드 마지막 행은 시스템 환경에 따라서 logDirectory의 값을 설정해주십시오.
20. 코드 Pane에서 <오퍼레이트 클릭>후 Accept를 선택해주십시오.
21. actions 프로토콜을 선택후 startWebLog 메서드를 선택해주십시오. 메서드를 아래와 같이 변경해주십시오.
startWebLog
aWebLog filter: filterUI value.
aWebLog logDirectory: logDirectoryUI value.
aWebLog start.
|