목차
추천의 글 ... ⅳ
감사의 글 ... ⅷ
저자 서문 ... ⅹ
역자 서문 ... 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
닫기