2014년 1월 13일 월요일

SWT - CoolBar




CoolBar


CoolBar는 툴바나 버튼을 관리하는 작업에 사용되며, ToolBar 컨트롤과 비슷하지만, CoolBar는 프로그램이 실행하는 동안 재배치하거나 크기를 조정할 수 있습니다.

CoolBar는 여러개의 CoolItem을 포함하며, CoolItem은 각 기능으로 구분된 ToolBar를 감싸고 있습니다.




CoolItem은 왼쪽 끝에 핸들을 가지고 있습니다. 핸들을 더블클릭하면 CoolItem은 CoolBar의 최대한의 넓이로 확장되며, 최소한으로 축소되기도 합니다. 핸들을 드래그하면 CoolBar의 다른 부분으로 이동할 수 있습니다.


아래는 3개의 CoolItem으로 이루어진 CoolBar 예제입니다.



▶ 예제코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package com.swtjface.Ch5;
 
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.CoolBar;
import org.eclipse.swt.widgets.CoolItem;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
 
public class CoolBarTest extends ApplicationWindow {
    public CoolBarTest() {
        super(null);
    }
 
    protected Control createContents(Composite parent) {
        // --- Create the window title. ---
 
        getShell().setText("CoolBar Test");
 
        String asCoolItemSection[] = { "File""Formatting""Search" };
        CoolBar composite = new CoolBar(parent, SWT.NONE);
        
        for (int idxCoolItem = 0; idxCoolItem < 3; ++idxCoolItem) {
            CoolItem item = new CoolItem(composite, SWT.NONE);
            ToolBar tb = new ToolBar(composite, SWT.FLAT);
            
            for (int idxItem = 0; idxItem < 3; ++idxItem) {
                ToolItem ti = new ToolItem(tb, SWT.NONE);
                ti.setText(asCoolItemSection[idxCoolItem] + " Item #" + idxItem);
            }
            
            Point p = tb.computeSize(SWT.DEFAULT, SWT.DEFAULT);
            tb.setSize(p);
            
            Point p2 = item.computeSize(p.x, p.y);
            item.setControl(tb);
            item.setSize(p2);
        }
        
        return composite;
    }
 
    public static void main(String[] args) {
        // --- Display CoolBarTest until the window is closed. ---
 
        CoolBarTest app = new CoolBarTest();
        app.setBlockOnOpen(true);
        app.open();
        Display.getCurrent().dispose();
    }
}
 





▶ 실행결과







댓글 없음:

댓글 쓰기