목차
추천의 글 ... ⅳ
감사의 글 ... ⅷ
저자 서문 ... ⅹ
역자 서문 ... xi
들어가며 ... xxiv
1부. 소개 ... 1
1장 리치 클라이언트 플랫폼으로서 이클립스 ... 3
1.1 이클립스 ... 4
1.2 이클립스 리치 클라이언트 플랫폼 ... 5
1.3 <B><FONT color ... #0000
1.4 RCP의 용도 ... 8
1.4.1 IBM 워크플레이스 클라이언트 테크놀로지™ ... 8
1.4.2 NASA와 <B><FONT color ... #0000
1.5 요약 ... 12
2장 <B><FONT color ... #0000
2.1 플러그인 커뮤니티 ... 13
2.2 플러그인 들여다보기 ... 16
2.3 통합 시스템 구성 ... 17
2.4 OSGi 프레임워크 ... 18
2.5 런타임 ... 19
2.5.1 애플리케이션 ... 20
2.5.2 제품 ... 20
2.5.3 확장 레지스트리 ... 21
2.6 SWT ... 23
2.7 JFace ... 23
2.8 UI 워크벤치 ... 24
2.8.1 컨트리뷰션에 의한 확장 ... 24
2.8.2 퍼스펙티브, 뷰, 편집기 ... 24
2.9 요약 ... 25
2부. RCP로 만드는 메신저 ... 27
3장 준비 과정 ... 29
3.1 하이퍼볼라란? ... 29
3.2 하이퍼볼라 개발 계획 ... 31
3.3 개발 환경 설치 ... 32
3.4 타겟 설정 ... 33
3.5 한번 실행해보자 ... 35
3.6 예제를 활용한 학습 요령 ... 36
3.6.1 예제 코드 관리자 ... 36
3.6.2 코드 비교 도구 ... 38
3.7 예제를 활용한 학습 요령 ... 39
3.8 요약 ... 40
4장 하이퍼볼라 애플리케이션 ... 41
4.1 하이퍼볼라와 첫 만남 ... 41
4.2 코드 둘러보기 ... 48
4.2.1 애플리케이션 ... 48
4.2.2 WorkbenchAdvisor ... 50
4.2.3 퍼스펙티브 ... 50
4.2.4 WorkbenchWindowAdvisor ... 51
4.2.5 ActionBarAdvisor ... 52
4.2.6 요약 ... 52
4.3 실행과 디버깅 ... 53
4.3.1 디버깅 ... 54
4.3.2 실행 구성 ... 57
4.4 요약 ... 60
5장 하이퍼볼라 프로토타입 시작 ... 61
5.1 셸 기능 강화 ... 62
5.1.1 윈도우 위치와 크기 저장 ... 63
5.2 Contacts 뷰 추가 ... 63
5.2.1 Contacts 뷰를 퍼스펙티브에 추가 ... 65
5.3 채팅 모델 ... 69
5.4 Contacts 뷰 채우기 ... 70
5.4.1 ContactsView ... 70
5.4.2 컨텐트 프로바이더 개요 ... 72
5.4.3 레이블 프로바이더 ... 76
5.5 이미지 추가하기 ... 77
5.6 요약 ... 80
5.7 참고자료 ... 80
6장 액션으로 메뉴와 툴바 꾸미기 ... 81
6.1 메뉴와 툴바 추가하기 ... 82
6.1.1 최상위 메뉴 만들기 ... 83
6.1.2 메뉴 관리자 ... 85
6.1.3 "Add Contact" 액션 정의 ... 86
6.1.4 "Add Contact" 액션 추가 ... 90
6.1.5 사용자 정의 툴바 ... 91
6.2 상태 표시줄 추가하기 ... 92
6.2.1 상태 표시줄 - 공유 리소스 ... 94
6.3 시스템 트레이 연동 ... 95
6.3.1 Display 얻기 ... 96
6.3.2 트레이 항목 생성하기 ... 96
6.4 요약 ... 99
6.5 참고자료 ... 100
7장 편집기로 구현하는 채팅 화면 ... 101
7.1 뷰와 편집기 ... 102
7.2 채팅 편집기 정의 ... 103
7.2.1 편집기 입력 ... 107
7.2.2 Chat 액션 ... 109
7.3 한번 실행해보자 ... 111
7.4 요약 ... 112
7.5 참고자료 ... 112
8장 하이퍼볼라 브랜드 적용 ... 113
8.1 하이퍼볼라 제품 정의하기 ... 113
8.2 윈도우 이미지 ... 118
8.3 런처 구성하기 ... 119
8.4 스플래시 화면 ... 121
8.5 제품 정보 ... 123
8.5.1 제품에 대한 정보 ... 123
8.5.2 플러그인 About 정보 ... 125
8.6 요약 ... 126
9장 하이퍼볼라 패키지 만들기 ... 127
9.1 하이퍼볼라 내보내기 ... 127
9.2 다양한 플랫폼으로 내보내기 ... 131
9.3 요약 ... 133
9.4 참고자료 ... 134
10장 메시지 주고받기 ... 135
10.1 서드파티 라이브러리 통합하기 ... 136
10.1.1 스맥 번들화 ... 136
10.1.2 번들 테스트 ... 139
10.2 모델 리팩터링 ... 141
10.2.1 스맥 소개 ... 142
10.2.2 설계 목표 ... 143
10.2.3 프로토타입 클래스 지우기 ... 144
10.2.4 채팅 UI 연결 ... 146
10.3 UI 개선 ... 147
10.3.1 컨텐트 프로바이더 ... 148
10.3.2 레이블 프로바이더 ... 149
10.4 엘리자와 채팅 ... 150
10.5 요약 ... 152
11장 로그인 기능 만들기 ... 153
11.1 로그인 대화창 추가하기 ... 153
11.1.1 대화창에 브랜드 적용하기 ... 158
11.2 로그인 설정 저장 ... 160
11.2.1 UI 구현 ... 160
11.2.2 환경설정 API ... 164
11.3 자동 로그인 환경설정 추가하기 ... 168
11.3.1 환경설정 페이지 만들기 ... 169
11.3.2 액션 추가하기 ... 171
11.3.3 환경설정 접근하기 ... 172
11.3.4 기본 환경설정 값 ... 172
11.3.5 로그인 대화창의 환경설정 ... 173
11.4 요약 ... 174
12장 단축키 구현 ... 175
12.1 커맨드 정의 ... 175
12.2 한번 실행해보자 ... 180
12.3 워크벤치 액션에 키 바인딩 지정 ... 180
12.4 키 구성 ... 182
12.5 키 환경설정 페이지 ... 183
12.6 요약 ... 184
13장 도움말 기능 ... 185
13.1 타겟 플랫폼에 추가하기 ... 185
13.1.1 플러그인 가져오기 ... 186
13.1.2 플러그인 추가하기 ... 187
13.2 도움말 플러그인 얻기 ... 187
13.3 도움말 플러그인 구성 ... 188
13.4 도움말 액션 추가 ... 188
13.5 도움말 내용 추가 ... 189
13.6 도움말 내용 구조 ... 193
13.7 F1 도움말 ... 194
13.8 도움말과 함께 플러그인 내보내기 ... 195
13.9 요약 ... 196
13.10 참고자료 ... 196
14장 자동 업데이트 ... 197
14.1 업데이트 플러그인 가져오기 ... 197
14.2 업데이트 플러그인 구성하기 ... 198
14.3 피처 정의 ... 199
14.4 피처에 브랜드 적용하기 ... 203
14.5 업데이트 액션 추가 ... 205
14.5.1 하이퍼볼라 업데이트 ... 206
14.5.2 하이퍼볼라 확장하기 ... 208
14.5.3 확장 관리 ... 210
14.6 자동 업데이트 ... 211
14.7 요약 ... 212
3부. 워크벤치 ... 213
15장 워크벤치 어드바이저 ... 215
15.1 워크벤치 어드바이저 ... 215
15.1.1 워크벤치 생명주기 ... 218
15.2 WorkbenchAdvisor ... 219
15.2.1 생명주기 API ... 220
15.2.2 예외 및 유휴 API ... 223
15.2.3 구성 API ... 225
15.3 WorkbenchWindowAdvisor ... 226
15.3.1 IWorkbenchWindowConfigurer ... 227
15.4 ActionBarAdvisor ... 227
15.4.1 IActionBarConfigurer ... 228
15.5 워크벤치 개요 ... 228
15.5.1 워크벤치 확장점 참조 ... 230
15.5.2 액션 ... 231
15.5.3 규모 확장성 ... 232
15.5.4 컨트리뷰션 ... 233
15.5.5 퍼스펙티브 ... 233
15.5.6 시동 ... 234
15.6 요약 ... 234
16장 퍼스펙티브, 뷰, 편집기 ... 235
16.1 퍼스펙티브 ... 236
16.1.1 퍼스펙티브 추가하기 ... 237
16.1.2 Debug 퍼스펙티브와 콘솔 뷰 추가하기 ... 239
16.1.3 IPageLayout 참조 ... 241
16.1.4 퍼스펙티브 바 ... 243
16.1.5 퍼스펙티브 메뉴 ... 244
16.1.6 프로그램으로 퍼스펙티브 제어하기 ... 246
16.2 뷰와 편집기 ... 247
16.2.1 같은 뷰의 다중 인스턴스 ... 248
16.2.2 스티키 뷰 ... 250
16.2.3 기여한 뷰 보기 ... 251
16.2.4 뷰 레지스트리 ... 251
16.2.5 파트들을 함께 연결하기 ... 252
16.3 다중 워크벤치 윈도우 ... 255
16.3.1 윈도우 탐색 메뉴 ... 255
16.4 편집기를 드래그앤드롭으로 열기 ... 256
16.5 요약 ... 260
17장 액션 ... 261
17.1 개요 ... 262
17.2 하이퍼볼라의 선언적 액션 ... 263
17.2.1 선언적 액션 ... 264
17.2.2 컨트리뷰션 허용하기 ... 265
17.2.3 액션 선언하기 ... 267
17.2.4 컨텍스트 메뉴 ... 271
17.3 표준 워크벤치 액션 ... 273
17.4 리타게터블 액션 ... 275
17.5 선언적 액션 통합하기 ... 277
17.6 툴바 액션 활용 팁 ... 278
17.6.1 이미지와 텍스트 함께 보여주기 ... 278
17.6.2 툴바에 컨트롤 추가 ... 280
17.7 상태 표시줄에 컨트리뷰션 추가 ... 281
17.8 진행 상황 알리기 ... 282
17.8.1 비선점 진행 ... 284
17.8.2 진행 뷰 ... 286
17.8.3 진행 관련 설정 ... 287
17.8.4 ProgressProvider 작성 ... 288
17.9 요약 ... 290
18장 색다른 워크벤치 윈도우 만들기 ... 291
18.1 무엇을 고칠 수 있을까? ... 291
18.2 워크벤치 윈도우 조정 ... 292
18.2.1 UI 요소를 숨기거나 보여주기 ... 295
18.2.2 FormLayout ... 295
18.2.3 툴바 숨기기 ... 297
18.2.4 토글 액션 추가하기 ... 297
18.2.5 퀵 서치 패널 ... 299
18.2.6 한번 실행해보자 ... 300
18.3 윈도우 모양까지 바꿔보기 ... 301
18.3.1 모양새 만들기 ... 302
18.3.2 윈도우 만들기 ... 304
18.3.3 윈도우 컨텐트 정의 ... 305
18.4 요약 ... 306
19장 뷰와 편집기의 외양 바꾸기 ... 307
19.1 프리젠테이션 ... 307
19.2 프리젠테이션 예시 ... 308
19.2.1 R21 프리젠테이션 ... 309
19.2.2 예제 프리젠테이션 ... 310
19.3 프리젠테이션 작성하기 ... 310
19.3.1 위젯 계층구조 ... 312
19.3.2 StackPresentation ... 313
19.4 예제 프리젠테이션 ... 314
19.4.1 프리젠테이션 팩토리 ... 315
19.4.2 스택 프리젠테이션 ... 316
19.4.3 크기와 위치 ... 319
19.4.4 파트 추가, 선택, 삭제 ... 319
19.4.5 메뉴 ... 322
19.5 요약 ... 323
4부. 실전 프로세스 ... 325
20장 코드 라이브러리 통합 ... 327
20.1 JAR 파일 형태의 플러그인 ... 327
20.2 주입 방식 번들화 ... 329
20.3 포장 방식 번들화 ... 330
20.4 참조 방식 번들화 ... 332
20.5 클래스로딩 문제 해결하기 ... 334
20.5.1 Class.forName() 이슈 ... 335
20.5.2 컨텍스트 클래스로더 이슈 ... 339
20.5.3 JRE 클래스 관리 ... 341
20.5.4 직렬화 ... 342
20.6 요약 ... 342
21장 플러그인 설치와 업데이트 ... 343
21.1 업데이트의 역할 ... 343
21.2 피처 ... 344
21.2.1 피처의 역할 ... 344
21.2.2 피처의 구성 ... 345
21.3 업데이트 사이트 작성과 관리 ... 348
21.4 예제: 동적 컨텐트 다루기 ... 351
21.5 요약 ... 354
21.6 참고자료 ... 354
22장 동적 플러그인 ... 355
22.1 동적 하이퍼볼라 만들기 ... 355
22.2 동적 시스템 구현을 위한 과제 ... 357
22.3 동적 인식 ... 357
22.3.1 동적 확장 시나리오 ... 358
22.3.2 객체 다루기 ... 364
22.3.3 번들 리스너 ... 366
22.4 동적 구동 ... 367
22.4.1 종료 후 뒤처리 ... 368
22.5 요약 ... 370
23장 다양한 환경에서 동작하는 RCP ... 371
23.1 예제 코드 ... 371
23.2 시나리오 ... 372
23.2.1 시나리오에 대한 이야기 ... 372
23.3 제품 구성 ... 373
23.3.1 하이퍼볼라 구조 변경 ... 375
23.3.2 하이퍼볼라 프로젝트 ... 376
23.3.3 프로젝트 작명법 ... 377
23.3.4 왜 프로젝트가 많은가? ... 378
23.4 하이퍼볼라 제품 구성 ... 379
23.4.1 JFace 구성 ... 379
23.4.2 PDA 구성 ... 381
23.4.3 확장형 구성(IDE) ... 381
23.4.4 워크벤치 구성 ... 382
23.4.5 하이퍼볼라 키오스크 ... 384
23.5 코드 구조 ... 385
23.5.1 하이퍼볼라 계층화 ... 385
23.5.2 워크벤치 컨트리뷰션 ... 386
23.5.3 액션 ... 388
23.5.4 키 바인딩 ... 389
23.5.5 뷰와 편집기 ... 389
23.5.6 마법사, 환경 설정, 프로퍼티 페이지 ... 390
23.5.7 선택적 종속성 ... 390
23.5.8 아이콘과 이미지 ... 391
23.6 플랫폼 설계하기 ... 392
23.6.1 확장점 ... 393
23.6.2 확장 팩토리 ... 395
23.6.3 명명된 확장과 익명 확장 ... 396
23.7 RCP 친화적인 플러그인 ... 397
23.8 요약 ... 398
24장 하이퍼볼라 빌드 ... 399
24.1 PDE 빌드란? ... 400
24.2 플러그인 build.properties ... 401
24.2.1 빌드 제어 프로퍼티 ... 401
24.2.2 사용자 정의 빌드 빌드 스크립트 사용하기 ... 403
24.3 피처 build.properties ... 403
24.3.1 루트 파일 식별과 위치 지정 ... 403
24.3.2 런처 ... 405
24.3.3 config.ini ... 407
24.4 하이퍼볼라 빌더 설정 ... 409
24.4.1 build.properties ... 409
24.4.2 customTargets.xml ... 414
24.5 빌더 실행 ... 415
24.6 제품 빌드 ... 418
24.7 크로스 플랫폼 빌드 ... 419
24.8 빌드 고급 활용 ... 421
24.8.1 기반 플랫폼 관리 ... 421
24.8.2 CVS에서 가져오기 ... 422
24.8.3 맵 가져오기 ... 423
24.8.4 버전 번호 자동 치환 ... 424
24.8.5 버전 번호 수식 ... 425
24.8.6 결과물 이름 제어 ... 425
24.9 요약 ... 426
25장 마지막 한걸음: 배포 ... 427
25.1 아카이브 ... 247
25.2 네이티브 인스톨러 ... 428
25.3 자바 웹 스타트 (JNLP) ... 429
25.3.1 자바 웹 스타트 동작 방식 ... 429
25.3.2 하이퍼볼라와 자바 웹 스타트 ... 430
25.3.3 JAR 서명 ... 432
25.3.4 자바 웹 스타트로 내보내기 ... 433
25.3.5 JNLP 내역서 빌드 ... 434
25.3.6 자바 웹 스타트와 업데이트 ... 435
25.4 업데이트 사이트 ... 435
25.5 설치한 하이퍼볼라 초기화 ... 436
25.6 사전 초기화 구성 ... 436
25.7 다중 사용자 설치 시나리오 ... 437
25.7.1 공유 설치 ... 438
25.7.2 공유 구성 ... 439
25.7.3 다중 구성 ... 440
25.8 요약 ... 443
25.9 참고자료 ... 443
5부. 참고자료 ... 445
26장 OSGi 핵심 ... 447
26.1 OSGi와 이클립스 런타임 ... 448
26.2 플러그인의 모양새 ... 450
26.3 프래그먼트 ... 452
26.4 버전 번호 규칙 ... 456
26.5 서비스 ... 457
26.6 싱글턴 ... 458
26.7 번들 생명주기 ... 459
26.7.1 BundleActivator (Plugin 클래스) ... 460
26.7.2 액티베이터 주의사항 ... 461
26.7.3 액티베이터의 사용 ... 462
26.8 활성화 앞당기기 ... 464
26.8.1 확장을 미리 활성화시키기 ... 464
26.8.2 osgi.bundles ... 465
26.8.3 시동 과정 ... 465
26.9 자동 활성화 ... 466
26.10 클래스로딩 ... 468
26.10.1 클래스 검색 알고리즘 ... 468
26.10.2 가져오기와 내보내기 선언 ... 469
26.10.3 가져오기와 요구하기 비교 ... 470
26.10.4 선택적 가져오기 ... 471
26.10.5 다시 내보내기 ... 471
26.10.6 x-internal과 x-friends ... 471
26.11 데이터 영역 ... 472
26.12 하이퍼볼라 동작과정 정리 ... 475
26.13 요약 ... 478
27장 Eclipse.org 플러그인 ... 479
27.1 플러그인을 찾을 곳 ... 480
27.2 이클립스 플랫폼 플러그인 ... 481
27.3 제품 인트로 ... 481
27.4 리소스 ... 482
27.4.1 리소스 핵심 기능 개요 ... 483
27.4.2 리소스 플러그인 예제 ... 484
27.4.3 워크벤치 내의 리소스 ... 485
27.5 텍스트 편집 ... 485
27.5.1 텍스트 플러그인 ... 485
27.5.2 편집과 편집기 비교 ... 486
27.5.3 Text와 StyledText ... 487
27.5.4 IDocument ... 488
27.5.5 TextViewer와 TextEditor ... 488
27.5.6 기타 ... 489
27.6 콘솔 ... 490
27.7 변수 ... 490
27.8 개요와 프로퍼티 뷰 ... 491
27.9 폼 ... 492
27.10 브라우저 ... 492
27.11 요약 ... 493
찾아보기 ... 495
부록 CD 소개 ... 508
닫기