summaryrefslogtreecommitdiffstats
path: root/src/cppcheckplus/text/MyTextPanel.java
blob: 8ef60c4bf39fad3b0f06562366be956b0dca7951 (plain) (blame)
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

package cppcheckplus.text;

import java.awt.BorderLayout;
import java.awt.Font;

import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

import cppcheckplus.control.XChartletFullScreenListenter;


public class MyTextPanel extends JPanel implements XChartletFullScreenListenter
{
	private BorderLayout layout;
	private boolean isFullScreen;
	private JTextArea textArea;
	private JScrollPane scroll;
	private LineNumberHeaderView lineNumberHeader=null;
	public static final int LINEHEIGHT =16;
	public JTextArea getTextArea() {
		return textArea;
	}
	
	 
	public MyTextPanel() 
	{
		layout = new BorderLayout();
		setLayout(layout);
		textArea=new JTextArea("");
		Font x = new Font("Serif",0,LINEHEIGHT);
		textArea.setFont(x);
		scroll = new JScrollPane(textArea);
		//scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);   
		//scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); 
		//scroll.setPreferredSize(new Dimension(300, 200)); 
		
		if (lineNumberHeader == null) {
		    lineNumberHeader = new LineNumberHeaderView();
		    //设置行号的高度,如果和textarea的行高不匹配,可以修改此值
		   lineNumberHeader.setLineHeight(LINEHEIGHT+4);
		}
		scroll.setRowHeaderView(lineNumberHeader);
		add(scroll);
	}
	
	public void initialize()
	{
		setLayout(layout);
		add(scroll);
	}


	@Override
	public void fullScreen(JPanel chartPanellet)
	{
		removeAll();
		isFullScreen = !isFullScreen;
		if (isFullScreen)
		{
			setLayout(new BorderLayout());
			add(chartPanellet, "Center");
		} else
		{
			initialize();
		}
		repaint();
		revalidate();
	}

}