목차
추천의 글 ... ⅳ
역자 소개 ... ⅵ
역자 서문 ... ⅶ
저자 소개 ... ⅷ
저자 서문 ... ⅸ
감사의 글 ... ⅹ
들어가며 ... xx
1장 SWT와 JFace의 개요 ... 1
1.1 SWT/JFace는 무엇인가? ... 2
[1.1.1] SWT를 이용한 GUI 구축 ... 3
[1.1.2] JFace를 이용한 GUI 개발 간소화 ... 3
1.2 좀더 깊이 살펴보기 ... 4
[1.2.1] 영원한 후보선수, 스윙 ... 4
[1.2.2] 떠오르는 신예, SWT/JFace ... 7
[1.2.3] SWT냐 스윙이냐 ... 9
1.3 SWT/JFace: 라이센싱과 플랫폼 지원 ... 9
[1.3.1] Eclipse Public License ... 9
[1.3.2] 지원 플랫폼 ... 10
1.4 WidgetWindow ... 11
1.5 요약 ... 12
2장 SWT와 JFace로 시작하기 ... 13
2.1 SWT 프로그래밍 ... 14
[2.1.1] HelloSWT 프로그램 ... 14
[2.1.2] Display 클래스 ... 16
[2.1.3] Shell클래스 ... 18
2.2 SWT/JFace 프로그래밍 ... 20
[2.2.1] 모델 기반 어댑터 ... 20
[2.2.2] HelloSWT-JFace 프로그램 ... 21
[2.2.3] JFace와 SWT/JFace의 코딩 ... 23
[2.2.4] Application Window 클래스 ... 23
2.3 WidgetWindow 애플리케이션 시작하기 ... 24
2.4 요약 ... 26
3장 위젯: 1부 ... 27
3.1 Widget과 Control 클래스의 소개 ... 28
[3.1.1] Widget의 이해 ... 28
[3.1.2] Control 객체로 작업하기 ... 30
3.2 레이블 ... 32
[3.2.1] 스타일과 구분자 ... 32
[3.2.2] Label 메소드 ... 33
3.3 버튼과 사용자 동작 ... 34
[3.3.1] 푸시 버튼과 SWT.PUSH ... 34
[3.3.2] 화살표 버튼과 SWT.ARROW ... 35
[3.3.3] 토글 버튼과 SWT.TOGGLE ... 35
[3.3.4] 체크 버튼과 SWT.CHECK ... 36
[3.3.5] 라디오 버튼과 SWT.RADIO ... 36
3.4 컴포지트를 이용한 컴포넌트의 포함 ... 38
[3.4.1] Composite 클래스의 이해 ... 38
[3.4.2] Group ... 40
[3.4.3] SashForm ... 42
[3.4.4] TabFolder ... 44
3.5 WidgetWindow 업데이트 ... 45
[3.5.1] Ch3_Composite 클래스 생성 ... 45
[3.5.2] WidgetWindow의 TabFolder 생성 ... 46
3.6 요약 ... 47
4장 이벤트 처리 ... 48
4.1 SWT에서의 이벤트 처리 ... 49
[4.1.1] 유형 리스너와 이벤트 사용 ... 50
[4.1.2] 어댑터 ... 54
[4.1.3] 키보드 이벤트 ... 55
[4.1.4] 무형 이벤트로 맞춤 이벤트 처리하기 ... 58
[4.1.5] SWT 리스너/이벤트 애플리케이션 ... 60
4.2 JFace의 이벤트 처리 ... 62
[4.2.1] 액션과 컨트리뷰션 이해하기 ... 63
[4.2.2] Action 클래스 생성 ... 65
[4.2.3] ApplicationWindow에서 컨트리뷰션 구현하기 ... 66
[4.2.4] 컨트리뷰션과 연결하기 ... 69
[4.2.5] Action 클래스 살펴보기 ... 70
4.3 WidgetWindow 업데이트 ... 74
[4.3.1] 4장의 Composite 빌드하기 ... 74
[4.3.2] Ch_Composite 추가하기 ... 75
4.4 요약 ... 77
5장 위젯: 2부 ... 78
5.1 SWT를 이용한 텍스트 편집 ... 79
[5.1.1] 기본 Text 위젯 ... 79
[5.1.2] StyledText 위젯 ... 82
5.2 JFace의 텍스트 지원 ... 88
[5.2.1] JFace 텍스트 패키지 획득 ... 88
[5.2.2] TextViewer와 문서 ... 89
[5.2.3] JFace 예제 ... 91
5.3 Combo 위젯 ... 100
5.4 ToolBarManager ... 101
[5.4.1] ControlContribution ... 102
[5.4.2] 툴바의 수동 생성 ... 102
5.5 CoolBar ... 103
5.6 슬라이더 ... 104
5.7 ProgressBar ... 106
5.8 ProgressIndicator ... 107
5.9 요약 ... 108
6장 레이아웃 ... 109
6.1 필 레이아웃 ... 110
6.2 행 레이아웃 ... 112
[6.2.1] 각 레이아웃 셀의 사용자 지정 ... 114
6.3 그리드 레이아웃 ... 116
[6.3.1] GridData ... 117
6.4 폼 레이아웃 ... 119
[6.4.1] 폼 데이터의 사용 ... 120
[6.4.2] FormAttachment를 사용한 관계 명시 ... 121
[6.4.3] 폼 레이아웃을 사용한 컨트롤의 배치 ... 122
6.5 맞춤 레이아웃 ... 124
[6.5.1] 레이아웃의 크기 계산 ... 125
[6.5.2] 위젯 배치 ... 126
[6.5.3] WidgetWindow 업데이트 ... 128
6.6 요약 ... 132
7장 그래픽 ... 133
7.1 그래픽 컨텍스트 ... 134
[7.1.1] GC객체의 생성 ... 134
[7.1.2] Canvas에 도형 그리기 ... 136
[7.1.3] 페인팅과 PaintEvent ... 138
[7.1.4] 클립핑과 캔버스 스타일 ... 139
7.2 색상 프로그래밍 ... 140
[7.2.1] SWT로 색상 개발하기 ... 140
[7.2.2] JFace로 색상 관련 추가 기능 ... 144
7.3 폰트를 사용한 텍스트 표시 ... 145
[7.3.1] SWT의 폰트 사용 ... 145
[7.3.2] 폰트의 코딩 ... 148
[7.3.3] JFace의 향상된 폰트 관리 ... 150
7.4 그래픽에 이미지 통합 ... 152
[7.4.1] 이미지의 할당 ... 152
[7.4.2] 이미지를 이용한 그래픽 코딩 ... 154
[7.4.3] ImageData를 이용한 비트맵의 생성 ... 155
[7.4.4] ImageData를 이용한 이미지 조작 ... 158
[7.4.5] JFace를 이용한 이미지 관리 ... 163
7.5 WidgetWindow 업데이트 ... 164
[7.5.1] 7장의 컴포지트 구축 ... 164
[7.5.2] WidgetWindow에 Ch7_Composite의 추가 ... 165
7.6 요약 ... 166
8장 트리와 리스트 ... 167
8.1 뷰어와 뷰어 프레임워크 ... 158
[8.1.1] 프로바이더 ... 170
[8.1.2] 리스너 ... 172
[8.1.3] 필터와 정렬기 ... 173
8.2 트리 ... 176
[8.2.1] SWT 트리 ... 176
[8.2.2] JFace TreeViewer ... 177
8.3 리스트 위젯의 사용 ... 180
[8.3.1] SWT 리스트 ... 180
[8.3.2] JFace ListViewer ... 181
8.4 WidgetWindow 업데이트 ... 182
8.5 요약 ... 189
9장 테이블과 메뉴 ... 190
9.1 테이블 ... 191
[9.1.1] SWT 테이블 이해하기 ... 191
[9.1.2] JFace TableViewer ... 194
9.2 메뉴의 생성 ... 200
[9.2.1] 단축키 ... 201
[9.2.2] SWT에서 메뉴 생성 ... 201
[9.2.3] JFace 액션을 이용한 메뉴의 추가 ... 204
9.3 WidgetWindow 업데이트 ... 205
9.4 요약 ... 211
10장 대화창 ... 212
10.1 SWT 대화창 ... 213
[10.1.1] ColorDialog ... 213
[10.1.2] DirectoryDialog ... 214
[10.1.3] FileDialog ... 215
[10.1.4] FontDialog ... 216
[10.1.5] MessageBox ... 216
10.2 JFcce 대화창 ... 218
[10.2.1] 메시지 대화창 ... 219
[10.2.2] 에러 대화창 ... 220
[10.2.3] 입력 대화창 ... 222
[10.2.4] 진행 모니터 대화창 ... 224
[10.2.5] 맞춤 대화창 ... 228
10.3 WidgetWindow 업데이트 ... 230
10.4 요약 ... 233
11장 마법사 ... 234
11.1 멀티페이지 대화창 ... 235
[11.1.1] IDialogPage 인터페이스 ... 236
[11.1.2] IWizardPage 인터페이스 ... 237
[11.1.3] WizardPage 클래스 ... 237
11.2 마법사 ... 239
[11.2.1] IWizard 인터페이스 ... 239
[11.2.2] Wizard 클래스 ... 240
11.3 통합 작업 ... 241
[11.3.1] 마법사 컨테이너 ... 241
[11.3.2] WizardDialog 클래스 ... 242
11.4 마법사 결합하기 ... 243
[11.4.1] WizardSelectionPage 클래스 ... 243
[11.4.2] IWizardNode 인터페이스 ... 244
11.5 마법사 데이터 유지 ... 244
[11.5.1] DialogSettings 클래스 ... 245
11.6 WidgetWindow 업데이트 ... 246
11.7 요약 ... 252
12장 고급 기능 ... 253
12.1 데이터 전송 ... 254
[12.1.1] Transfer 클래스 ... 255
[12.1.2] 드래그앤드롭 기능 ... 256
[12.1.3] 클립보드 사용 ... 261
[12.1.4] 파일 시스템 브라우저 ... 262
12.2 사용자 환경설정 ... 268
[12.2.1] 환경설정 페이지 ... 268
[12.2.2] 필드 편집기 ... 270
[12.2.3] 환경설정 페이지 컨테이너 ... 272
[12.2.4] 환경설정 저장 ... 274
12.3 레이블 데코레이터 ... 276
[12.3.1] ILabelDecorator 인터페이스 ... 276
[12.3.2] DecoratingLabelProvider 클래스 ... 277
[12.3.3] 예제 ... 277
12.4 Browser 위젯 ... 280
12.5 요약 ... 283
13장 리치 클라이언트 플랫폼: 이클립스 RCP ... 284
13.1 RCP 워크벤치 이해 ... 285
[13.1.1] 편집기를 사용한 데이터 입력 ... 285
[13.1.2] 뷰를 이용한 정보의 표시 ... 287
[13.1.3] 퍼스펙티브로 편집기와 뷰 통합하기 ... 288
13.2 RCP: 독립형 애플리케이션 만들기 ... 288
[13.2.1] RCP 프로젝트의 생성과 설정 ... 289
[13.2.2] 애플리케이션 클래스 만들기 ... 290
[13.2.3] WorkbenchAdvisor 추가 ... 292
13.3 뷰와 퍼스펙티브 추가 ... 294
[13.3.1] 뷰 구축 ... 294
[13.3.2] 퍼스펙티브로 워크벤치 윈도우 배치 ... 295
[13.3.3] RCP 애플리케이션 실행 ... 297
[13.3.4] RCP 과정 검토 ... 298
13.4 이클립스 폼 위젯으로 폼 생성 ... 300
[13.4.1] 폼 툴킷과 이클립스 폼 컨테이너 사용 ... 300
[13.4.2] 하이퍼링크를 이용한 텍스트 기반 이벤트의 발생 ... 303
13.5 독립형 RCP 애플리케이션 만들기 ... 307
[13.5.1] RCPExample을 애플리케이션 디렉토리로 내보내기 ... 307
[13.5.2] 애플리케이션 디렉토리에 플러그인 추가 ... 308
[13.5.3] 애플리케이션 실행 ... 309
13.6 요약 ... 309
부록A SWT/JFace로 프로젝트 만들기 ... 311
부록B SWT/JFace에서의 OLE와 액티브X ... 324
부록C Draw2D를 이용한 가변형 GUI ... 362
부록D 그래픽 편집 프레임워크(GEF) ... 389
찾아보기 ... 465
닫기