summaryrefslogtreecommitdiff
path: root/javax/swing/JViewport.java
blob: 7d8ca76155db350c569cc584a03d587e7a61b623 (plain)
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package javax.swing;

import javax.swing.plaf.*;
import java.awt.*;


public class JViewport extends JComponent
{
    Component c;

    JViewport()
    {
	setOpaque(true);
	updateUI();
    }

    void setView(Component c)
    {
	if (this.c != null)
	    remove(c);

	this.c = c;

	add(c);
    }

    public String getUIClassID()
    {
	return "JViewport";
    }

    public void updateUI()
    {
	ViewportUI vp = (ViewportUI) UIManager.getUI(this);
	setUI(vp);
    }

    Container GetHeavy(Container parent)
    {
	if (parent == null)
	    return null;

	while (isLightweightComponent(parent))
	    {
		Container p = parent.getParent();

		if (p == null)
		    {
			System.out.println("GetHeavy FAILED, no heavy weight component found");
			return parent;
		    }
		
		parent = p;
	    }
	return parent;
    }
    
    
    public void paint(Graphics g)
    {
	paintChildren(g);

	System.out.println("XXXXXXXXXXXXXXXXXXXXXXXXXXXX   JViewport -----> paint()");

	Container parent = GetHeavy(getParent());
	
	System.out.println("parent = " + parent + ", " + getParent());

	//parent.paint();

	Graphics wg = parent.getGraphics();
	
	int x = 0;
	int y = 0;
	int w = getWidth();
	int h = getHeight();

	Rectangle r = new Rectangle(x, y, w, h);

	int ox = 0;
	int oy = 0;

	wg.copyArea(r.x,
		    r.y,
		    r.width,
		    r.height,
		    ox,
		    oy);

	wg.dispose();
    }
}