Please use the Apache issue tracking system for new NetBeans issues (https://issues.apache.org/jira/projects/NETBEANS0/issues) !!
View | Details | Raw Unified | Return to bug 97517 | Differences between
and this patch

Collapse All | Expand All

(-)a/apisupport.project/manifest.mf (-1 / +1 lines)
 Lines 6-10    Link Here 
6
  org.netbeans.api.javahelp.Help
6
  org.netbeans.api.javahelp.Help
7
OpenIDE-Module-Layer: org/netbeans/modules/apisupport/project/ui/resources/layer.xml
7
OpenIDE-Module-Layer: org/netbeans/modules/apisupport/project/ui/resources/layer.xml
8
AutoUpdate-Show-In-Client: false
8
AutoUpdate-Show-In-Client: false
9
OpenIDE-Module-Specification-Version: 1.33
9
OpenIDE-Module-Specification-Version: 1.34
10
10
(-)a/apisupport.project/nbproject/project.xml (-2 / +2 lines)
 Lines 145-152    Link Here 
145
                    <build-prerequisite/>
145
                    <build-prerequisite/>
146
                    <compile-dependency/>
146
                    <compile-dependency/>
147
                    <run-dependency>
147
                    <run-dependency>
148
                        <release-version>1</release-version>
148
                        <release-version>2</release-version>
149
                        <specification-version>1.27</specification-version>
149
                        <specification-version>2.1</specification-version>
150
                    </run-dependency>
150
                    </run-dependency>
151
                </dependency>
151
                </dependency>
152
                <dependency>
152
                <dependency>
(-)a/beans/nbproject/project.properties (-1 / +1 lines)
 Lines 38-41    Link Here 
38
# made subject to such option by the copyright holder.
38
# made subject to such option by the copyright holder.
39
javac.compilerargs=-Xlint -Xlint:-serial
39
javac.compilerargs=-Xlint -Xlint:-serial
40
javac.source=1.5
40
javac.source=1.5
41
spec.version.base=1.25.0
41
spec.version.base=1.26.0
(-)a/beans/nbproject/project.xml (-2 / +2 lines)
 Lines 122-129    Link Here 
122
                    <build-prerequisite/>
122
                    <build-prerequisite/>
123
                    <compile-dependency/>
123
                    <compile-dependency/>
124
                    <run-dependency>
124
                    <run-dependency>
125
                        <release-version>1</release-version>
125
                        <release-version>2</release-version>
126
                        <specification-version>1.28</specification-version>
126
                        <specification-version>2.1</specification-version>
127
                    </run-dependency>
127
                    </run-dependency>
128
                </dependency>
128
                </dependency>
129
                <dependency>
129
                <dependency>
(-)a/bpel.debugger.ui/manifest.mf (-1 / +1 lines)
 Lines 1-6    Link Here 
1
Manifest-Version: 1.0
1
Manifest-Version: 1.0
2
AutoUpdate-Show-In-Client: false
2
AutoUpdate-Show-In-Client: false
3
OpenIDE-Module-Specification-Version: 1.3
3
OpenIDE-Module-Specification-Version: 1.4
4
OpenIDE-Module: org.netbeans.modules.bpel.debugger.ui
4
OpenIDE-Module: org.netbeans.modules.bpel.debugger.ui
5
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/bpel/debugger/ui/resources/Bundle.properties
5
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/bpel/debugger/ui/resources/Bundle.properties
6
OpenIDE-Module-Layer: org/netbeans/modules/bpel/debugger/ui/resources/layer.xml
6
OpenIDE-Module-Layer: org/netbeans/modules/bpel/debugger/ui/resources/layer.xml
(-)a/bpel.debugger.ui/nbproject/project.xml (-2 / +2 lines)
 Lines 99-106    Link Here 
99
                    <build-prerequisite/>
99
                    <build-prerequisite/>
100
                    <compile-dependency/>
100
                    <compile-dependency/>
101
                    <run-dependency>
101
                    <run-dependency>
102
                        <release-version>1</release-version>
102
                        <release-version>2</release-version>
103
                        <specification-version>1.27</specification-version>
103
                        <specification-version>2.1</specification-version>
104
                    </run-dependency>
104
                    </run-dependency>
105
                </dependency>
105
                </dependency>
106
                <dependency>
106
                <dependency>
(-)a/bugtracking.bridge/manifest.mf (-1 / +1 lines)
 Lines 3-7    Link Here 
3
OpenIDE-Module: org.netbeans.modules.bugtracking.bridge
3
OpenIDE-Module: org.netbeans.modules.bugtracking.bridge
4
OpenIDE-Module-Layer: org/netbeans/modules/bugtracking/bridge/layer.xml
4
OpenIDE-Module-Layer: org/netbeans/modules/bugtracking/bridge/layer.xml
5
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/bugtracking/bridge/Bundle.properties
5
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/bugtracking/bridge/Bundle.properties
6
OpenIDE-Module-Specification-Version: 1.4
6
OpenIDE-Module-Specification-Version: 1.5
7
7
(-)a/bugtracking.bridge/nbproject/project.xml (-2 / +2 lines)
 Lines 36-43    Link Here 
36
                    <build-prerequisite/>
36
                    <build-prerequisite/>
37
                    <compile-dependency/>
37
                    <compile-dependency/>
38
                    <run-dependency>
38
                    <run-dependency>
39
                        <release-version>1</release-version>
39
                        <release-version>2</release-version>
40
                        <specification-version>1.30</specification-version>
40
                        <specification-version>2.1</specification-version>
41
                    </run-dependency>
41
                    </run-dependency>
42
                </dependency>
42
                </dependency>
43
                <dependency>
43
                <dependency>
(-)a/cnd.asm/nbproject/project.properties (-1 / +1 lines)
 Lines 3-6    Link Here 
3
nbm.module.author=Egor Ushakov (gorrus@netbeans.org), Alexey Mishenin (alms@netbeans.org)
3
nbm.module.author=Egor Ushakov (gorrus@netbeans.org), Alexey Mishenin (alms@netbeans.org)
4
4
5
nbm.needs.restart=true
5
nbm.needs.restart=true
6
spec.version.base=1.7.0
6
spec.version.base=1.8.0
(-)a/cnd.asm/nbproject/project.xml (-2 / +2 lines)
 Lines 62-69    Link Here 
62
                    <build-prerequisite/>
62
                    <build-prerequisite/>
63
                    <compile-dependency/>
63
                    <compile-dependency/>
64
                    <run-dependency>
64
                    <run-dependency>
65
                        <release-version>1</release-version>
65
                        <release-version>2</release-version>
66
                        <specification-version>1.27</specification-version>
66
                        <specification-version>2.1</specification-version>
67
                    </run-dependency>
67
                    </run-dependency>
68
                </dependency>
68
                </dependency>
69
                <dependency>
69
                <dependency>
(-)a/cnd.classview/nbproject/project.properties (-1 / +1 lines)
 Lines 1-3    Link Here 
1
javac.compilerargs=-Xlint -Xlint:-serial
1
javac.compilerargs=-Xlint -Xlint:-serial
2
javac.source=1.5
2
javac.source=1.5
3
spec.version.base=1.9.0
3
spec.version.base=1.10.0
(-)a/cnd.classview/nbproject/project.xml (-2 / +2 lines)
 Lines 63-70    Link Here 
63
                    <build-prerequisite/>
63
                    <build-prerequisite/>
64
                    <compile-dependency/>
64
                    <compile-dependency/>
65
                    <run-dependency>
65
                    <run-dependency>
66
                        <release-version>1</release-version>
66
                        <release-version>2</release-version>
67
                        <specification-version>1.27</specification-version>
67
                        <specification-version>2.1</specification-version>
68
                    </run-dependency>
68
                    </run-dependency>
69
                </dependency>
69
                </dependency>
70
                <dependency>
70
                <dependency>
(-)a/cnd.completion/nbproject/project.properties (-1 / +1 lines)
 Lines 1-4    Link Here 
1
javac.compilerargs=-Xlint -Xlint:-serial
1
javac.compilerargs=-Xlint -Xlint:-serial
2
javac.source=1.5
2
javac.source=1.5
3
3
4
spec.version.base=1.9.0
4
spec.version.base=1.10.0
(-)a/cnd.completion/nbproject/project.xml (-2 / +2 lines)
 Lines 114-121    Link Here 
114
                    <build-prerequisite/>
114
                    <build-prerequisite/>
115
                    <compile-dependency/>
115
                    <compile-dependency/>
116
                    <run-dependency>
116
                    <run-dependency>
117
                        <release-version>1</release-version>
117
                        <release-version>2</release-version>
118
                        <specification-version>1.33</specification-version>
118
                        <specification-version>2.1</specification-version>
119
                    </run-dependency>
119
                    </run-dependency>
120
                </dependency>
120
                </dependency>
121
                <dependency>
121
                <dependency>
(-)a/cnd.editor/nbproject/project.properties (-1 / +1 lines)
 Lines 1-3    Link Here 
1
javac.compilerargs=-Xlint -Xlint:-serial
1
javac.compilerargs=-Xlint -Xlint:-serial
2
javac.source=1.5
2
javac.source=1.5
3
spec.version.base=1.9.0
3
spec.version.base=1.10.0
(-)a/cnd.editor/nbproject/project.xml (-2 / +2 lines)
 Lines 71-78    Link Here 
71
                    <build-prerequisite/>
71
                    <build-prerequisite/>
72
                    <compile-dependency/>
72
                    <compile-dependency/>
73
                    <run-dependency>
73
                    <run-dependency>
74
                        <release-version>1</release-version>
74
                        <release-version>2</release-version>
75
                        <specification-version>1.27</specification-version>
75
                        <specification-version>2.1</specification-version>
76
                    </run-dependency>
76
                    </run-dependency>
77
                </dependency>
77
                </dependency>
78
                <dependency>
78
                <dependency>
(-)a/cnd.gizmo/manifest.mf (-1 / +1 lines)
 Lines 3-6    Link Here 
3
OpenIDE-Module-Layer: org/netbeans/modules/cnd/gizmo/resources/layer.xml
3
OpenIDE-Module-Layer: org/netbeans/modules/cnd/gizmo/resources/layer.xml
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/cnd/gizmo/resources/Bundle.properties
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/cnd/gizmo/resources/Bundle.properties
5
OpenIDE-Module-Provides: org.netbeans.modules.dlight.spi.SourceFileInfoProvider
5
OpenIDE-Module-Provides: org.netbeans.modules.dlight.spi.SourceFileInfoProvider
6
OpenIDE-Module-Specification-Version: 1.4
6
OpenIDE-Module-Specification-Version: 1.5
(-)a/cnd.gizmo/nbproject/project.xml (-2 / +2 lines)
 Lines 128-135    Link Here 
128
                    <build-prerequisite/>
128
                    <build-prerequisite/>
129
                    <compile-dependency/>
129
                    <compile-dependency/>
130
                    <run-dependency>
130
                    <run-dependency>
131
                        <release-version>1</release-version>
131
                        <release-version>2</release-version>
132
                        <specification-version>1.38</specification-version>
132
                        <specification-version>2.1</specification-version>
133
                    </run-dependency>
133
                    </run-dependency>
134
                </dependency>
134
                </dependency>
135
                <dependency>
135
                <dependency>
(-)a/cnd.gotodeclaration/manifest.mf (-1 / +1 lines)
 Lines 1-6    Link Here 
1
Manifest-Version: 1.0
1
Manifest-Version: 1.0
2
OpenIDE-Module: org.netbeans.modules.cnd.gotodeclaration
2
OpenIDE-Module: org.netbeans.modules.cnd.gotodeclaration
3
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/cnd/gotodeclaration/resources/Bundle.properties
3
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/cnd/gotodeclaration/resources/Bundle.properties
4
OpenIDE-Module-Specification-Version: 1.9
4
OpenIDE-Module-Specification-Version: 1.10
5
AutoUpdate-Show-In-Client: false
5
AutoUpdate-Show-In-Client: false
6
6
(-)a/cnd.gotodeclaration/nbproject/project.xml (-2 / +2 lines)
 Lines 81-88    Link Here 
81
                    <build-prerequisite/>
81
                    <build-prerequisite/>
82
                    <compile-dependency/>
82
                    <compile-dependency/>
83
                    <run-dependency>
83
                    <run-dependency>
84
                        <release-version>1</release-version>
84
                        <release-version>2</release-version>
85
                        <specification-version>1.27</specification-version>
85
                        <specification-version>2.1</specification-version>
86
                    </run-dependency>
86
                    </run-dependency>
87
                </dependency>
87
                </dependency>
88
                <dependency>
88
                <dependency>
(-)a/cnd.highlight/nbproject/project.properties (-1 / +1 lines)
 Lines 1-3    Link Here 
1
javac.compilerargs=-Xlint -Xlint:-serial
1
javac.compilerargs=-Xlint -Xlint:-serial
2
javac.source=1.5
2
javac.source=1.5
3
spec.version.base=1.10.0
3
spec.version.base=1.11.0
(-)a/cnd.highlight/nbproject/project.xml (-2 / +2 lines)
 Lines 115-122    Link Here 
115
                    <build-prerequisite/>
115
                    <build-prerequisite/>
116
                    <compile-dependency/>
116
                    <compile-dependency/>
117
                    <run-dependency>
117
                    <run-dependency>
118
                        <release-version>1</release-version>
118
                        <release-version>2</release-version>
119
                        <specification-version>1.27</specification-version>
119
                        <specification-version>2.1</specification-version>
120
                    </run-dependency>
120
                    </run-dependency>
121
                </dependency>
121
                </dependency>
122
                <dependency>
122
                <dependency>
(-)a/cnd.model.services/nbproject/project.properties (-1 / +1 lines)
 Lines 3-6    Link Here 
3
javac.source=1.5
3
javac.source=1.5
4
4
5
sigtest.mail=cvs@cnd.netbeans.org
5
sigtest.mail=cvs@cnd.netbeans.org
6
spec.version.base=1.9.0
6
spec.version.base=1.10.0
(-)a/cnd.model.services/nbproject/project.xml (-2 / +2 lines)
 Lines 54-61    Link Here 
54
                    <build-prerequisite/>
54
                    <build-prerequisite/>
55
                    <compile-dependency/>
55
                    <compile-dependency/>
56
                    <run-dependency>
56
                    <run-dependency>
57
                        <release-version>1</release-version>
57
                        <release-version>2</release-version>
58
                        <specification-version>1.27</specification-version>
58
                        <specification-version>2.1</specification-version>
59
                    </run-dependency>
59
                    </run-dependency>
60
                </dependency>
60
                </dependency>
61
                <dependency>
61
                <dependency>
(-)a/cnd.modelimpl/nbproject/project.properties (-1 / +1 lines)
 Lines 4-7    Link Here 
4
4
5
sigtest.mail=cvs@cnd.netbeans.org
5
sigtest.mail=cvs@cnd.netbeans.org
6
6
7
spec.version.base=1.9.0
7
spec.version.base=1.10.0
(-)a/cnd.modelimpl/nbproject/project.xml (-2 / +2 lines)
 Lines 106-113    Link Here 
106
                    <build-prerequisite/>
106
                    <build-prerequisite/>
107
                    <compile-dependency/>
107
                    <compile-dependency/>
108
                    <run-dependency>
108
                    <run-dependency>
109
                        <release-version>1</release-version>
109
                        <release-version>2</release-version>
110
                        <specification-version>1.27</specification-version>
110
                        <specification-version>2.1</specification-version>
111
                    </run-dependency>
111
                    </run-dependency>
112
                </dependency>
112
                </dependency>
113
                <dependency>
113
                <dependency>
(-)a/cnd.modelui/manifest.mf (-1 / +1 lines)
 Lines 2-7    Link Here 
2
OpenIDE-Module: org.netbeans.modules.cnd.modelui
2
OpenIDE-Module: org.netbeans.modules.cnd.modelui
3
OpenIDE-Module-Layer: org/netbeans/modules/cnd/modelui/layer.xml
3
OpenIDE-Module-Layer: org/netbeans/modules/cnd/modelui/layer.xml
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/cnd/modelui/Bundle.properties
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/cnd/modelui/Bundle.properties
5
OpenIDE-Module-Specification-Version: 1.9
5
OpenIDE-Module-Specification-Version: 1.10
6
AutoUpdate-Show-In-Client: false
6
AutoUpdate-Show-In-Client: false
7
7
(-)a/cnd.modelui/nbproject/project.xml (-2 / +2 lines)
 Lines 133-140    Link Here 
133
                    <build-prerequisite/>
133
                    <build-prerequisite/>
134
                    <compile-dependency/>
134
                    <compile-dependency/>
135
                    <run-dependency>
135
                    <run-dependency>
136
                        <release-version>1</release-version>
136
                        <release-version>2</release-version>
137
                        <specification-version>1.27</specification-version>
137
                        <specification-version>2.1</specification-version>
138
                    </run-dependency>
138
                    </run-dependency>
139
                </dependency>
139
                </dependency>
140
                <dependency>
140
                <dependency>
(-)a/cnd.modelutil/nbproject/project.properties (-1 / +1 lines)
 Lines 1-3    Link Here 
1
javac.compilerargs=-Xlint -Xlint:-serial
1
javac.compilerargs=-Xlint -Xlint:-serial
2
javac.source=1.5
2
javac.source=1.5
3
spec.version.base=1.9.0
3
spec.version.base=1.10.0
(-)a/cnd.modelutil/nbproject/project.xml (-2 / +2 lines)
 Lines 72-79    Link Here 
72
                    <build-prerequisite/>
72
                    <build-prerequisite/>
73
                    <compile-dependency/>
73
                    <compile-dependency/>
74
                    <run-dependency>
74
                    <run-dependency>
75
                        <release-version>1</release-version>
75
                        <release-version>2</release-version>
76
                        <specification-version>1.27</specification-version>
76
                        <specification-version>2.1</specification-version>
77
                    </run-dependency>
77
                    </run-dependency>
78
                </dependency>
78
                </dependency>
79
                <dependency>
79
                <dependency>
(-)a/cnd.navigation/manifest.mf (-1 / +1 lines)
 Lines 2-6    Link Here 
2
OpenIDE-Module: org.netbeans.modules.cnd.navigation
2
OpenIDE-Module: org.netbeans.modules.cnd.navigation
3
OpenIDE-Module-Layer: org/netbeans/modules/cnd/navigation/resources/layer.xml
3
OpenIDE-Module-Layer: org/netbeans/modules/cnd/navigation/resources/layer.xml
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/cnd/navigation/resources/Bundle.properties
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/cnd/navigation/resources/Bundle.properties
5
OpenIDE-Module-Specification-Version: 1.9
5
OpenIDE-Module-Specification-Version: 1.10
6
AutoUpdate-Show-In-Client: false
6
AutoUpdate-Show-In-Client: false
(-)a/cnd.navigation/nbproject/project.xml (-2 / +2 lines)
 Lines 89-96    Link Here 
89
                    <build-prerequisite/>
89
                    <build-prerequisite/>
90
                    <compile-dependency/>
90
                    <compile-dependency/>
91
                    <run-dependency>
91
                    <run-dependency>
92
                        <release-version>1</release-version>
92
                        <release-version>2</release-version>
93
                        <specification-version>1.27</specification-version>
93
                        <specification-version>2.1</specification-version>
94
                    </run-dependency>
94
                    </run-dependency>
95
                </dependency>
95
                </dependency>
96
                <dependency>
96
                <dependency>
(-)a/cnd.qnavigator/manifest.mf (-1 / +1 lines)
 Lines 2-7    Link Here 
2
OpenIDE-Module: org.netbeans.modules.cnd.qnavigator/1
2
OpenIDE-Module: org.netbeans.modules.cnd.qnavigator/1
3
OpenIDE-Module-Layer: org/netbeans/modules/cnd/qnavigator/layer.xml
3
OpenIDE-Module-Layer: org/netbeans/modules/cnd/qnavigator/layer.xml
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/cnd/qnavigator/Bundle.properties
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/cnd/qnavigator/Bundle.properties
5
OpenIDE-Module-Specification-Version: 1.9
5
OpenIDE-Module-Specification-Version: 1.10
6
AutoUpdate-Show-In-Client: false
6
AutoUpdate-Show-In-Client: false
7
7
(-)a/cnd.qnavigator/nbproject/project.xml (-2 / +2 lines)
 Lines 72-79    Link Here 
72
                    <build-prerequisite/>
72
                    <build-prerequisite/>
73
                    <compile-dependency/>
73
                    <compile-dependency/>
74
                    <run-dependency>
74
                    <run-dependency>
75
                        <release-version>1</release-version>
75
                        <release-version>2</release-version>
76
                        <specification-version>1.27</specification-version>
76
                        <specification-version>2.1</specification-version>
77
                    </run-dependency>
77
                    </run-dependency>
78
                </dependency>
78
                </dependency>
79
                <dependency>
79
                <dependency>
(-)a/cnd.refactoring/nbproject/project.properties (-1 / +1 lines)
 Lines 1-4    Link Here 
1
javac.compilerargs=-Xlint -Xlint:-serial
1
javac.compilerargs=-Xlint -Xlint:-serial
2
javac.source=1.5
2
javac.source=1.5
3
nbm.module.author=Vladimir Voskresensky (vv159170@netbeans.org)
3
nbm.module.author=Vladimir Voskresensky (vv159170@netbeans.org)
4
spec.version.base=1.7.0
4
spec.version.base=1.8.0
(-)a/cnd.refactoring/nbproject/project.xml (-2 / +2 lines)
 Lines 108-115    Link Here 
108
                    <build-prerequisite/>
108
                    <build-prerequisite/>
109
                    <compile-dependency/>
109
                    <compile-dependency/>
110
                    <run-dependency>
110
                    <run-dependency>
111
                        <release-version>1</release-version>
111
                        <release-version>2</release-version>
112
                        <specification-version>1.27</specification-version>
112
                        <specification-version>2.1</specification-version>
113
                    </run-dependency>
113
                    </run-dependency>
114
                </dependency>
114
                </dependency>
115
                <dependency>
115
                <dependency>
(-)a/cnd/nbproject/project.properties (-1 / +1 lines)
 Lines 3-8    Link Here 
3
javahelp.hs=cnd.hs
3
javahelp.hs=cnd.hs
4
sigtest.mail=cvs@cnd.netbeans.org
4
sigtest.mail=cvs@cnd.netbeans.org
5
5
6
spec.version.base=1.9.0
6
spec.version.base=1.10.0
7
7
8
nbm.executable.files=bin/dorun.sh
8
nbm.executable.files=bin/dorun.sh
(-)a/cnd/nbproject/project.xml (-2 / +2 lines)
 Lines 122-129    Link Here 
122
                    <build-prerequisite/>
122
                    <build-prerequisite/>
123
                    <compile-dependency/>
123
                    <compile-dependency/>
124
                    <run-dependency>
124
                    <run-dependency>
125
                        <release-version>1</release-version>
125
                        <release-version>2</release-version>
126
                        <specification-version>1.27</specification-version>
126
                        <specification-version>2.1</specification-version>
127
                    </run-dependency>
127
                    </run-dependency>
128
                </dependency>
128
                </dependency>
129
                <dependency>
129
                <dependency>
(-)a/collab.channel.chat/manifest.mf (-1 / +1 lines)
 Lines 1-6    Link Here 
1
Manifest-Version: 1.0
1
Manifest-Version: 1.0
2
OpenIDE-Module: org.netbeans.modules.collab.channel.chat/1
2
OpenIDE-Module: org.netbeans.modules.collab.channel.chat/1
3
OpenIDE-Module-Specification-Version: 1.5
3
OpenIDE-Module-Specification-Version: 1.6
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/collab/channel/chat/Bundle.properties
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/collab/channel/chat/Bundle.properties
5
OpenIDE-Module-Layer: org/netbeans/modules/collab/channel/chat/resources/layer.xml
5
OpenIDE-Module-Layer: org/netbeans/modules/collab/channel/chat/resources/layer.xml
6
AutoUpdate-Show-In-Client: false
6
AutoUpdate-Show-In-Client: false
(-)a/collab.channel.chat/nbproject/project.xml (-2 / +2 lines)
 Lines 70-77    Link Here 
70
                    <build-prerequisite/>
70
                    <build-prerequisite/>
71
                    <compile-dependency/>
71
                    <compile-dependency/>
72
                    <run-dependency>
72
                    <run-dependency>
73
                        <release-version>1</release-version>
73
                        <release-version>2</release-version>
74
                    <specification-version>1.27</specification-version>
74
                    <specification-version>2.1</specification-version>
75
                    </run-dependency>
75
                    </run-dependency>
76
                </dependency>
76
                </dependency>
77
                <dependency>
77
                <dependency>
(-)a/compapp.casaeditor/manifest.mf (-1 / +1 lines)
 Lines 2-6    Link Here 
2
OpenIDE-Module: org.netbeans.modules.compapp.casaeditor
2
OpenIDE-Module: org.netbeans.modules.compapp.casaeditor
3
OpenIDE-Module-Layer: org/netbeans/modules/compapp/casaeditor/resources/layer.xml
3
OpenIDE-Module-Layer: org/netbeans/modules/compapp/casaeditor/resources/layer.xml
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/compapp/casaeditor/Bundle.properties
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/compapp/casaeditor/Bundle.properties
5
OpenIDE-Module-Specification-Version: 1.2
5
OpenIDE-Module-Specification-Version: 1.3
6
AutoUpdate-Show-In-Client: false
6
AutoUpdate-Show-In-Client: false
(-)a/compapp.casaeditor/nbproject/project.xml (-2 / +2 lines)
 Lines 111-118    Link Here 
111
                    <build-prerequisite/>
111
                    <build-prerequisite/>
112
                    <compile-dependency/>
112
                    <compile-dependency/>
113
                    <run-dependency>
113
                    <run-dependency>
114
                        <release-version>1</release-version>
114
                        <release-version>2</release-version>
115
                        <specification-version>1.27</specification-version>
115
                        <specification-version>2.1</specification-version>
116
                    </run-dependency>
116
                    </run-dependency>
117
                </dependency>
117
                </dependency>
118
                <dependency>
118
                <dependency>
(-)a/compapp.projects.base/manifest.mf (-1 / +1 lines)
 Lines 1-5    Link Here 
1
Manifest-Version: 1.0
1
Manifest-Version: 1.0
2
OpenIDE-Module-Specification-Version: 1.3
2
OpenIDE-Module-Specification-Version: 1.4
3
OpenIDE-Module: org.netbeans.modules.compapp.projects.base
3
OpenIDE-Module: org.netbeans.modules.compapp.projects.base
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/compapp/projects/base/Bundle.properties
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/compapp/projects/base/Bundle.properties
5
AutoUpdate-Show-In-Client: false
5
AutoUpdate-Show-In-Client: false
(-)a/compapp.projects.base/nbproject/project.xml (-2 / +2 lines)
 Lines 64-71    Link Here 
64
                    <build-prerequisite/>
64
                    <build-prerequisite/>
65
                    <compile-dependency/>
65
                    <compile-dependency/>
66
                    <run-dependency>
66
                    <run-dependency>
67
                        <release-version>1</release-version>
67
                        <release-version>2</release-version>
68
                        <specification-version>1.27</specification-version>
68
                        <specification-version>2.1</specification-version>
69
                    </run-dependency>
69
                    </run-dependency>
70
                </dependency>
70
                </dependency>
71
                <dependency>
71
                <dependency>
(-)a/compapp.projects.jbi/manifest.mf (-1 / +1 lines)
 Lines 2-6    Link Here 
2
OpenIDE-Module: org.netbeans.modules.compapp.projects.jbi
2
OpenIDE-Module: org.netbeans.modules.compapp.projects.jbi
3
OpenIDE-Module-Layer: org/netbeans/modules/compapp/projects/jbi/ui/resources/layer.xml
3
OpenIDE-Module-Layer: org/netbeans/modules/compapp/projects/jbi/ui/resources/layer.xml
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/compapp/projects/jbi/Bundle.properties
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/compapp/projects/jbi/Bundle.properties
5
OpenIDE-Module-Specification-Version: 1.2.1
5
OpenIDE-Module-Specification-Version: 1.3
6
AutoUpdate-Show-In-Client: false
6
AutoUpdate-Show-In-Client: false
(-)a/compapp.projects.jbi/nbproject/project.xml (-2 / +2 lines)
 Lines 156-163    Link Here 
156
                    <build-prerequisite/>
156
                    <build-prerequisite/>
157
                    <compile-dependency/>
157
                    <compile-dependency/>
158
                    <run-dependency>
158
                    <run-dependency>
159
                        <release-version>1</release-version>
159
                        <release-version>2</release-version>
160
                        <specification-version>1.27</specification-version>
160
                        <specification-version>2.1</specification-version>
161
                    </run-dependency>
161
                    </run-dependency>
162
                </dependency>
162
                </dependency>
163
                <dependency>
163
                <dependency>
(-)a/csl.api/nbproject/project.properties (-1 / +1 lines)
 Lines 37-43    Link Here 
37
# Version 2 license, then the option applies only if the new code is
37
# Version 2 license, then the option applies only if the new code is
38
# made subject to such option by the copyright holder.
38
# made subject to such option by the copyright holder.
39
39
40
spec.version.base=1.16.0
40
spec.version.base=1.17.0
41
is.autoload=true
41
is.autoload=true
42
javac.source=1.5
42
javac.source=1.5
43
43
(-)a/csl.api/nbproject/project.xml (-2 / +2 lines)
 Lines 118-125    Link Here 
118
                    <build-prerequisite/>
118
                    <build-prerequisite/>
119
                    <compile-dependency/>
119
                    <compile-dependency/>
120
                    <run-dependency>
120
                    <run-dependency>
121
                        <release-version>1</release-version>
121
                        <release-version>2</release-version>
122
                        <specification-version>1.27</specification-version>
122
                        <specification-version>2.1</specification-version>
123
                    </run-dependency>
123
                    </run-dependency>
124
                </dependency>
124
                </dependency>
125
                <dependency>
125
                <dependency>
(-)a/css.editor/manifest.mf (-1 / +1 lines)
 Lines 2-6    Link Here 
2
OpenIDE-Module: org.netbeans.modules.css.editor/1
2
OpenIDE-Module: org.netbeans.modules.css.editor/1
3
OpenIDE-Module-Layer: org/netbeans/modules/css/resources/layer.xml
3
OpenIDE-Module-Layer: org/netbeans/modules/css/resources/layer.xml
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/css/resources/Bundle.properties
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/css/resources/Bundle.properties
5
OpenIDE-Module-Specification-Version: 1.8
5
OpenIDE-Module-Specification-Version: 1.9
6
AutoUpdate-Show-In-Client: false
6
AutoUpdate-Show-In-Client: false
(-)a/css.editor/nbproject/project.xml (-2 / +2 lines)
 Lines 46-53    Link Here 
46
                    <build-prerequisite/>
46
                    <build-prerequisite/>
47
                    <compile-dependency/>
47
                    <compile-dependency/>
48
                    <run-dependency>
48
                    <run-dependency>
49
                        <release-version>1</release-version>
49
                        <release-version>2</release-version>
50
                        <specification-version>1.27</specification-version>
50
                        <specification-version>2.1</specification-version>
51
                    </run-dependency>
51
                    </run-dependency>
52
                </dependency>
52
                </dependency>
53
                <dependency>
53
                <dependency>
(-)a/css.visual/manifest.mf (-1 / +1 lines)
 Lines 5-8    Link Here 
5
OpenIDE-Module-Install: org/netbeans/modules/css/CssModuleInstall.class
5
OpenIDE-Module-Install: org/netbeans/modules/css/CssModuleInstall.class
6
OpenIDE-Module-Requires: org.openide.windows.IOProvider
6
OpenIDE-Module-Requires: org.openide.windows.IOProvider
7
AutoUpdate-Show-In-Client: false
7
AutoUpdate-Show-In-Client: false
8
OpenIDE-Module-Specification-Version: 2.9
8
OpenIDE-Module-Specification-Version: 2.10
(-)a/css.visual/nbproject/project.xml (-2 / +2 lines)
 Lines 105-112    Link Here 
105
                    <build-prerequisite/>
105
                    <build-prerequisite/>
106
                    <compile-dependency/>
106
                    <compile-dependency/>
107
                    <run-dependency>
107
                    <run-dependency>
108
                        <release-version>1</release-version>
108
                        <release-version>2</release-version>
109
                        <specification-version>1.27</specification-version>
109
                        <specification-version>2.1</specification-version>
110
                    </run-dependency>
110
                    </run-dependency>
111
                </dependency>
111
                </dependency>
112
                <dependency>
112
                <dependency>
(-)a/db.core/manifest.mf (-1 / +1 lines)
 Lines 1-6    Link Here 
1
Manifest-Version: 1.0
1
Manifest-Version: 1.0
2
OpenIDE-Module: org.netbeans.modules.db.core
2
OpenIDE-Module: org.netbeans.modules.db.core
3
OpenIDE-Module-Specification-Version: 1.13
3
OpenIDE-Module-Specification-Version: 1.14
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/db/core/Bundle.properties
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/db/core/Bundle.properties
5
OpenIDE-Module-Layer: org/netbeans/modules/db/core/resources/layer.xml
5
OpenIDE-Module-Layer: org/netbeans/modules/db/core/resources/layer.xml
6
OpenIDE-Module-Requires: org.openide.windows.IOProvider
6
OpenIDE-Module-Requires: org.openide.windows.IOProvider
(-)a/db.core/nbproject/project.xml (-2 / +2 lines)
 Lines 86-93    Link Here 
86
                    <build-prerequisite/>
86
                    <build-prerequisite/>
87
                    <compile-dependency/>
87
                    <compile-dependency/>
88
                    <run-dependency>
88
                    <run-dependency>
89
                        <release-version>1</release-version>
89
                        <release-version>2</release-version>
90
                        <specification-version>1.28</specification-version>
90
                        <specification-version>2.1</specification-version>
91
                    </run-dependency>
91
                    </run-dependency>
92
                </dependency>
92
                </dependency>
93
                <dependency>
93
                <dependency>
(-)a/db.sql.editor/nbproject/project.properties (-1 / +1 lines)
 Lines 39-45    Link Here 
39
39
40
javac.compilerargs=-Xlint -Xlint:-serial
40
javac.compilerargs=-Xlint -Xlint:-serial
41
javac.source=1.5
41
javac.source=1.5
42
spec.version.base=1.13.0
42
spec.version.base=1.14.0
43
43
44
# org-netbeans-core: for /xml/lookups in the default fs
44
# org-netbeans-core: for /xml/lookups in the default fs
45
#   (needed in order to load database connections from the SFS)
45
#   (needed in order to load database connections from the SFS)
(-)a/db.sql.editor/nbproject/project.xml (-2 / +2 lines)
 Lines 112-119    Link Here 
112
                    <build-prerequisite/>
112
                    <build-prerequisite/>
113
                    <compile-dependency/>
113
                    <compile-dependency/>
114
                    <run-dependency>
114
                    <run-dependency>
115
                        <release-version>1</release-version>
115
                        <release-version>2</release-version>
116
                        <specification-version>1.27</specification-version>
116
                        <specification-version>2.1</specification-version>
117
                    </run-dependency>
117
                    </run-dependency>
118
                </dependency>
118
                </dependency>
119
                <dependency>
119
                <dependency>
(-)a/debugger.jpda.ant/manifest.mf (-1 / +1 lines)
 Lines 1-5    Link Here 
1
Manifest-Version: 1.0
1
Manifest-Version: 1.0
2
OpenIDE-Module: org.netbeans.modules.debugger.jpda.ant
2
OpenIDE-Module: org.netbeans.modules.debugger.jpda.ant
3
OpenIDE-Module-Specification-Version: 1.15
3
OpenIDE-Module-Specification-Version: 1.16
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/debugger/jpda/ant/Bundle.properties
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/debugger/jpda/ant/Bundle.properties
5
5
(-)a/debugger.jpda.ant/nbproject/project.xml (-2 / +2 lines)
 Lines 98-105    Link Here 
98
                    <build-prerequisite/>
98
                    <build-prerequisite/>
99
                    <compile-dependency/>
99
                    <compile-dependency/>
100
                    <run-dependency>
100
                    <run-dependency>
101
                        <release-version>1</release-version>
101
                        <release-version>2</release-version>
102
                        <specification-version>1.27</specification-version>
102
                        <specification-version>2.1</specification-version>
103
                    </run-dependency>
103
                    </run-dependency>
104
                </dependency>
104
                </dependency>
105
                <dependency>
105
                <dependency>
(-)a/debugger.jpda.projects/manifest.mf (-1 / +1 lines)
 Lines 3-6    Link Here 
3
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/debugger/jpda/projects/Bundle.properties
3
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/debugger/jpda/projects/Bundle.properties
4
OpenIDE-Module-Layer: org/netbeans/modules/debugger/jpda/projects/resources/mf-layer.xml
4
OpenIDE-Module-Layer: org/netbeans/modules/debugger/jpda/projects/resources/mf-layer.xml
5
OpenIDE-Module-Provides: org.netbeans.spi.debugger.jpda.EditorContext, org.netbeans.spi.debugger.jpda.SourcePathProvider
5
OpenIDE-Module-Provides: org.netbeans.spi.debugger.jpda.EditorContext, org.netbeans.spi.debugger.jpda.SourcePathProvider
6
OpenIDE-Module-Specification-Version: 1.10
6
OpenIDE-Module-Specification-Version: 1.11
(-)a/debugger.jpda.projects/nbproject/project.xml (-2 / +2 lines)
 Lines 93-100    Link Here 
93
                    <build-prerequisite/>
93
                    <build-prerequisite/>
94
                    <compile-dependency/>
94
                    <compile-dependency/>
95
                    <run-dependency>
95
                    <run-dependency>
96
                        <release-version>1</release-version>
96
                        <release-version>2</release-version>
97
                        <specification-version>1.27</specification-version>
97
                        <specification-version>2.1</specification-version>
98
                    </run-dependency>
98
                    </run-dependency>
99
                </dependency>
99
                </dependency>
100
                <dependency>
100
                <dependency>
(-)a/debugger.jpda.ui/manifest.mf (-1 / +1 lines)
 Lines 2-8    Link Here 
2
OpenIDE-Module: org.netbeans.modules.debugger.jpda.ui/1
2
OpenIDE-Module: org.netbeans.modules.debugger.jpda.ui/1
3
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/debugger/jpda/ui/Bundle.properties
3
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/debugger/jpda/ui/Bundle.properties
4
OpenIDE-Module-Layer: org/netbeans/modules/debugger/jpda/resources/mf-layer.xml
4
OpenIDE-Module-Layer: org/netbeans/modules/debugger/jpda/resources/mf-layer.xml
5
OpenIDE-Module-Specification-Version: 1.13
5
OpenIDE-Module-Specification-Version: 1.14
6
OpenIDE-Module-Requires: org.netbeans.api.debugger.jpda.JPDADebuggerEngineImpl,
6
OpenIDE-Module-Requires: org.netbeans.api.debugger.jpda.JPDADebuggerEngineImpl,
7
  org.netbeans.spi.debugger.ui
7
  org.netbeans.spi.debugger.ui
8
OpenIDE-Module-Provides: org.netbeans.modules.debugger.jpda.ui
8
OpenIDE-Module-Provides: org.netbeans.modules.debugger.jpda.ui
(-)a/debugger.jpda.ui/nbproject/project.xml (-2 / +2 lines)
 Lines 91-98    Link Here 
91
                    <build-prerequisite/>
91
                    <build-prerequisite/>
92
                    <compile-dependency/>
92
                    <compile-dependency/>
93
                    <run-dependency>
93
                    <run-dependency>
94
                        <release-version>1</release-version>
94
                        <release-version>2</release-version>
95
                        <specification-version>1.27</specification-version>
95
                        <specification-version>2.1</specification-version>
96
                    </run-dependency>
96
                    </run-dependency>
97
                </dependency>
97
                </dependency>
98
                <dependency>
98
                <dependency>
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/WatchPanel.java (-4 / +4 lines)
 Lines 42-48    Link Here 
42
42
43
import java.awt.AWTKeyStroke;
43
import java.awt.AWTKeyStroke;
44
import java.awt.Dimension;
44
import java.awt.Dimension;
45
import java.awt.FontMetrics;
46
import java.awt.KeyboardFocusManager;
45
import java.awt.KeyboardFocusManager;
47
import java.awt.event.ActionEvent;
46
import java.awt.event.ActionEvent;
48
import java.lang.reflect.InvocationTargetException;
47
import java.lang.reflect.InvocationTargetException;
 Lines 71-83    Link Here 
71
import java.awt.EventQueue;
70
import java.awt.EventQueue;
72
import java.awt.GridBagConstraints;
71
import java.awt.GridBagConstraints;
73
import java.awt.GridBagLayout;
72
import java.awt.GridBagLayout;
74
import java.awt.Insets;
75
import java.awt.event.ActionListener;
73
import java.awt.event.ActionListener;
76
import java.io.IOException;
74
import java.io.IOException;
77
import javax.swing.text.StyledDocument;
75
import javax.swing.text.StyledDocument;
78
import org.netbeans.api.debugger.Session;
76
import org.netbeans.api.debugger.Session;
79
import org.netbeans.editor.EditorUI;
77
import org.netbeans.editor.EditorUI;
80
import org.netbeans.editor.ext.ExtCaret;
81
import org.netbeans.spi.debugger.jpda.EditorContext;
78
import org.netbeans.spi.debugger.jpda.EditorContext;
82
import org.netbeans.spi.debugger.ui.EditorContextDispatcher;
79
import org.netbeans.spi.debugger.ui.EditorContextDispatcher;
83
import org.openide.ErrorManager;
80
import org.openide.ErrorManager;
 Lines 254-260    Link Here 
254
                if (eui == null) {
251
                if (eui == null) {
255
                    return ;
252
                    return ;
256
                }
253
                }
257
                eui.removeLayer(ExtCaret.HIGHLIGHT_ROW_LAYER_NAME);
254
                editorPane.putClientProperty(
255
                    "HighlightsLayerExcludes", //NOI18N
256
                    "^org\\.netbeans\\.modules\\.editor\\.lib2\\.highlighting\\.CaretRowHighlighting$" //NOI18N
257
                );
258
                // Do not draw text limit line
258
                // Do not draw text limit line
259
                try {
259
                try {
260
                    java.lang.reflect.Field textLimitLineField = EditorUI.class.getDeclaredField("textLimitLineVisible"); // NOI18N
260
                    java.lang.reflect.Field textLimitLineField = EditorUI.class.getDeclaredField("textLimitLineVisible"); // NOI18N
(-)a/debugger.jpda/manifest.mf (-1 / +1 lines)
 Lines 2-7    Link Here 
2
OpenIDE-Module: org.netbeans.modules.debugger.jpda/2
2
OpenIDE-Module: org.netbeans.modules.debugger.jpda/2
3
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/debugger/jpda/Bundle.properties
3
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/debugger/jpda/Bundle.properties
4
OpenIDE-Module-Layer: org/netbeans/modules/debugger/jpda/resources/mf-layer.xml
4
OpenIDE-Module-Layer: org/netbeans/modules/debugger/jpda/resources/mf-layer.xml
5
OpenIDE-Module-Specification-Version: 1.27
5
OpenIDE-Module-Specification-Version: 1.28
6
OpenIDE-Module-Provides: org.netbeans.api.debugger.jpda.JPDADebuggerEngineImpl
6
OpenIDE-Module-Provides: org.netbeans.api.debugger.jpda.JPDADebuggerEngineImpl
7
OpenIDE-Module-Requires: org.netbeans.spi.debugger.jpda.EditorContext, org.netbeans.spi.debugger.jpda.SourcePathProvider
7
OpenIDE-Module-Requires: org.netbeans.spi.debugger.jpda.EditorContext, org.netbeans.spi.debugger.jpda.SourcePathProvider
(-)a/debugger.jpda/nbproject/project.xml (-2 / +2 lines)
 Lines 93-100    Link Here 
93
                    <build-prerequisite/>
93
                    <build-prerequisite/>
94
                    <compile-dependency/>
94
                    <compile-dependency/>
95
                    <run-dependency>
95
                    <run-dependency>
96
                        <release-version>1</release-version>
96
                        <release-version>2</release-version>
97
                        <specification-version>1.28</specification-version>
97
                        <specification-version>2.1</specification-version>
98
                    </run-dependency>
98
                    </run-dependency>
99
                </dependency>
99
                </dependency>
100
                <dependency>
100
                <dependency>
(-)a/diff/nbproject/project.properties (-1 / +1 lines)
 Lines 40-46    Link Here 
40
javac.compilerargs=-Xlint:unchecked
40
javac.compilerargs=-Xlint:unchecked
41
javac.source=1.5
41
javac.source=1.5
42
42
43
spec.version.base=1.25.0
43
spec.version.base=1.26.0
44
javadoc.apichanges=${basedir}/apichanges.xml
44
javadoc.apichanges=${basedir}/apichanges.xml
45
javadoc.arch=${basedir}/arch.xml
45
javadoc.arch=${basedir}/arch.xml
46
46
(-)a/diff/nbproject/project.xml (-2 / +2 lines)
 Lines 84-91    Link Here 
84
                    <build-prerequisite/>
84
                    <build-prerequisite/>
85
                    <compile-dependency/>
85
                    <compile-dependency/>
86
                    <run-dependency>
86
                    <run-dependency>
87
                        <release-version>1</release-version>
87
                        <release-version>2</release-version>
88
                    <specification-version>1.27</specification-version>
88
                    <specification-version>2.1</specification-version>
89
                    </run-dependency>
89
                    </run-dependency>
90
                </dependency>
90
                </dependency>
91
                <dependency>
91
                <dependency>
(-)a/dlight.annotationsupport/nbproject/project.properties (-1 / +1 lines)
 Lines 1-4    Link Here 
1
javac.source=1.5
1
javac.source=1.5
2
javac.compilerargs=-Xlint -Xlint:-serial
2
javac.compilerargs=-Xlint -Xlint:-serial
3
spec.version.base=1.4.0
3
spec.version.base=1.5.0
4
#spec.version.base.fatal.warning=false
4
#spec.version.base.fatal.warning=false
(-)a/dlight.annotationsupport/nbproject/project.xml (-2 / +2 lines)
 Lines 60-67    Link Here 
60
                    <build-prerequisite/>
60
                    <build-prerequisite/>
61
                    <compile-dependency/>
61
                    <compile-dependency/>
62
                    <run-dependency>
62
                    <run-dependency>
63
                        <release-version>1</release-version>
63
                        <release-version>2</release-version>
64
                        <specification-version>1.41</specification-version>
64
                        <specification-version>2.1</specification-version>
65
                    </run-dependency>
65
                    </run-dependency>
66
                </dependency>
66
                </dependency>
67
                <dependency>
67
                <dependency>
(-)a/editor.actions/nbproject/project.properties (-1 / +1 lines)
 Lines 40-46    Link Here 
40
javac.compilerargs=-Xlint:unchecked
40
javac.compilerargs=-Xlint:unchecked
41
javac.source=1.5
41
javac.source=1.5
42
javadoc.title=Editor Actions
42
javadoc.title=Editor Actions
43
spec.version.base=1.3.0
43
spec.version.base=1.4.0
44
44
45
#javadoc.arch=${basedir}/arch.xml
45
#javadoc.arch=${basedir}/arch.xml
46
#javadoc.apichanges=${basedir}/apichanges.xml
46
#javadoc.apichanges=${basedir}/apichanges.xml
(-)a/editor.actions/nbproject/project.xml (-2 / +2 lines)
 Lines 51-58    Link Here 
51
                    <build-prerequisite/>
51
                    <build-prerequisite/>
52
                    <compile-dependency/>
52
                    <compile-dependency/>
53
                    <run-dependency>
53
                    <run-dependency>
54
                        <release-version>1</release-version>
54
                        <release-version>2</release-version>
55
                        <specification-version>1.40</specification-version>
55
                        <specification-version>2.1</specification-version>
56
                    </run-dependency>
56
                    </run-dependency>
57
                </dependency>
57
                </dependency>
58
                <dependency>
58
                <dependency>
(-)a/editor.bookmarks/manifest.mf (-1 / +1 lines)
 Lines 1-7    Link Here 
1
Manifest-Version: 1.0
1
Manifest-Version: 1.0
2
OpenIDE-Module: org.netbeans.modules.editor.bookmarks/1
2
OpenIDE-Module: org.netbeans.modules.editor.bookmarks/1
3
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/editor/bookmarks/Bundle.properties
3
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/editor/bookmarks/Bundle.properties
4
OpenIDE-Module-Specification-Version: 1.11
4
OpenIDE-Module-Specification-Version: 1.12
5
OpenIDE-Module-Layer: org/netbeans/modules/editor/bookmarks/resources/layer.xml
5
OpenIDE-Module-Layer: org/netbeans/modules/editor/bookmarks/resources/layer.xml
6
OpenIDE-Module-Install: org/netbeans/modules/editor/bookmarks/EditorBookmarksModule.class
6
OpenIDE-Module-Install: org/netbeans/modules/editor/bookmarks/EditorBookmarksModule.class
7
AutoUpdate-Show-In-Client: false
7
AutoUpdate-Show-In-Client: false
(-)a/editor.bookmarks/nbproject/project.xml (-2 / +2 lines)
 Lines 60-67    Link Here 
60
                    <build-prerequisite/>
60
                    <build-prerequisite/>
61
                    <compile-dependency/>
61
                    <compile-dependency/>
62
                    <run-dependency>
62
                    <run-dependency>
63
                        <release-version>1</release-version>
63
                        <release-version>2</release-version>
64
                        <specification-version>1.27</specification-version>
64
                        <specification-version>2.1</specification-version>
65
                    </run-dependency>
65
                    </run-dependency>
66
                </dependency>
66
                </dependency>
67
                <dependency>
67
                <dependency>
(-)a/editor.bracesmatching/manifest.mf (-1 / +1 lines)
 Lines 2-6    Link Here 
2
OpenIDE-Module: org.netbeans.modules.editor.bracesmatching/0
2
OpenIDE-Module: org.netbeans.modules.editor.bracesmatching/0
3
OpenIDE-Module-Layer: org/netbeans/modules/editor/bracesmatching/layer.xml
3
OpenIDE-Module-Layer: org/netbeans/modules/editor/bracesmatching/layer.xml
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/editor/bracesmatching/Bundle.properties
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/editor/bracesmatching/Bundle.properties
5
OpenIDE-Module-Specification-Version: 1.11
5
OpenIDE-Module-Specification-Version: 1.12
6
AutoUpdate-Show-In-Client: false
6
AutoUpdate-Show-In-Client: false
(-)a/editor.bracesmatching/nbproject/project.xml (-2 / +2 lines)
 Lines 28-35    Link Here 
28
                    <build-prerequisite/>
28
                    <build-prerequisite/>
29
                    <compile-dependency/>
29
                    <compile-dependency/>
30
                    <run-dependency>
30
                    <run-dependency>
31
                        <release-version>1</release-version>
31
                        <release-version>2</release-version>
32
                        <specification-version>1.27</specification-version>
32
                        <specification-version>2.1</specification-version>
33
                    </run-dependency>
33
                    </run-dependency>
34
                </dependency>
34
                </dependency>
35
                <dependency>
35
                <dependency>
(-)a/editor.codetemplates/nbproject/project.properties (-1 / +1 lines)
 Lines 42-45    Link Here 
42
#javadoc.name=EditorCodeTemplates
42
#javadoc.name=EditorCodeTemplates
43
javadoc.apichanges=${basedir}/apichanges.xml
43
javadoc.apichanges=${basedir}/apichanges.xml
44
javadoc.arch=${basedir}/arch.xml
44
javadoc.arch=${basedir}/arch.xml
45
spec.version.base=1.15.0
45
spec.version.base=1.16.0
(-)a/editor.codetemplates/nbproject/project.xml (-2 / +2 lines)
 Lines 77-84    Link Here 
77
                    <build-prerequisite/>
77
                    <build-prerequisite/>
78
                    <compile-dependency/>
78
                    <compile-dependency/>
79
                    <run-dependency>
79
                    <run-dependency>
80
                        <release-version>1</release-version>
80
                        <release-version>2</release-version>
81
                        <specification-version>1.31</specification-version>
81
                        <specification-version>2.1</specification-version>
82
                    </run-dependency>
82
                    </run-dependency>
83
                </dependency>
83
                </dependency>
84
                <dependency>
84
                <dependency>
(-)a/editor.completion/nbproject/project.properties (-1 / +1 lines)
 Lines 41-44    Link Here 
41
javac.source=1.5
41
javac.source=1.5
42
javadoc.arch=${basedir}/arch.xml
42
javadoc.arch=${basedir}/arch.xml
43
javadoc.apichanges=${basedir}/apichanges.xml
43
javadoc.apichanges=${basedir}/apichanges.xml
44
spec.version.base=1.18.0
44
spec.version.base=1.19.0
(-)a/editor.completion/nbproject/project.xml (-2 / +2 lines)
 Lines 60-67    Link Here 
60
                    <build-prerequisite/>
60
                    <build-prerequisite/>
61
                    <compile-dependency/>
61
                    <compile-dependency/>
62
                    <run-dependency>
62
                    <run-dependency>
63
                        <release-version>1</release-version>
63
                        <release-version>2</release-version>
64
                        <specification-version>1.27</specification-version>
64
                        <specification-version>2.1</specification-version>
65
                    </run-dependency>
65
                    </run-dependency>
66
                </dependency>
66
                </dependency>
67
                <dependency>
67
                <dependency>
(-)a/editor.deprecated.pre61completion/manifest.mf (-1 / +1 lines)
 Lines 1-5    Link Here 
1
Manifest-Version: 1.0
1
Manifest-Version: 1.0
2
OpenIDE-Module: org.netbeans.modules.editor.deprecated.pre61completion/0
2
OpenIDE-Module: org.netbeans.modules.editor.deprecated.pre61completion/0
3
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/editor/deprecated/pre61completion/Bundle.properties
3
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/editor/deprecated/pre61completion/Bundle.properties
4
OpenIDE-Module-Specification-Version: 1.1
4
OpenIDE-Module-Specification-Version: 1.2
5
OpenIDE-Module-Deprecated: true
5
OpenIDE-Module-Deprecated: true
(-)a/editor.deprecated.pre61completion/nbproject/project.xml (-2 / +2 lines)
 Lines 19-26    Link Here 
19
                    <build-prerequisite/>
19
                    <build-prerequisite/>
20
                    <compile-dependency/>
20
                    <compile-dependency/>
21
                    <run-dependency>
21
                    <run-dependency>
22
                        <release-version>1</release-version>
22
                        <release-version>2</release-version>
23
                        <specification-version>1.27</specification-version>
23
                        <specification-version>2.1</specification-version>
24
                    </run-dependency>
24
                    </run-dependency>
25
                </dependency>
25
                </dependency>
26
                <dependency>
26
                <dependency>
(-)a/editor.deprecated.pre61settings/nbproject/project.properties (-1 / +1 lines)
 Lines 1-4    Link Here 
1
is.autoload=true
1
is.autoload=true
2
javac.compilerargs=-Xlint -Xlint:-serial
2
javac.compilerargs=-Xlint -Xlint:-serial
3
javac.source=1.5
3
javac.source=1.5
4
spec.version.base=1.6.0
4
spec.version.base=1.7.0
(-)a/editor.deprecated.pre61settings/nbproject/project.xml (-1 / +1 lines)
 Lines 60-66    Link Here 
60
                    <build-prerequisite/>
60
                    <build-prerequisite/>
61
                    <compile-dependency/>
61
                    <compile-dependency/>
62
                    <run-dependency>
62
                    <run-dependency>
63
                        <release-version>1</release-version>
63
                        <release-version>2</release-version>
64
                        <implementation-version/>
64
                        <implementation-version/>
65
                    </run-dependency>
65
                    </run-dependency>
66
                </dependency>
66
                </dependency>
(-)a/editor.errorstripe/nbproject/project.properties (-1 / +1 lines)
 Lines 39-45    Link Here 
39
39
40
javac.compilerargs=-Xlint -Xlint:-serial
40
javac.compilerargs=-Xlint -Xlint:-serial
41
javac.source=1.5
41
javac.source=1.5
42
spec.version.base=2.10.0
42
spec.version.base=2.11.0
43
nbm.needs.restart=true
43
nbm.needs.restart=true
44
44
45
45
(-)a/editor.errorstripe/nbproject/project.xml (-2 / +2 lines)
 Lines 68-75    Link Here 
68
                    <build-prerequisite/>
68
                    <build-prerequisite/>
69
                    <compile-dependency/>
69
                    <compile-dependency/>
70
                    <run-dependency>
70
                    <run-dependency>
71
                        <release-version>1</release-version>
71
                        <release-version>2</release-version>
72
                        <specification-version>1.27</specification-version>
72
                        <specification-version>2.1</specification-version>
73
                    </run-dependency>
73
                    </run-dependency>
74
                </dependency>
74
                </dependency>
75
                <dependency>
75
                <dependency>
(-)a/editor.indent/nbproject/project.properties (-1 / +1 lines)
 Lines 39-45    Link Here 
39
39
40
javac.source=1.5
40
javac.source=1.5
41
javac.compilerargs=-Xlint:unchecked
41
javac.compilerargs=-Xlint:unchecked
42
spec.version.base=1.16.0
42
spec.version.base=1.17.0
43
43
44
javadoc.arch=${basedir}/arch.xml
44
javadoc.arch=${basedir}/arch.xml
45
javadoc.apichanges=${basedir}/apichanges.xml
45
javadoc.apichanges=${basedir}/apichanges.xml
(-)a/editor.indent/nbproject/project.xml (-1 / +1 lines)
 Lines 51-57    Link Here 
51
                    <build-prerequisite/>
51
                    <build-prerequisite/>
52
                    <compile-dependency/>
52
                    <compile-dependency/>
53
                    <run-dependency>
53
                    <run-dependency>
54
                        <release-version>1</release-version>
54
                        <release-version>2</release-version>
55
                        <implementation-version/>
55
                        <implementation-version/>
56
                    </run-dependency>
56
                    </run-dependency>
57
                </dependency>
57
                </dependency>
(-)a/editor.lib/apichanges.xml (+15 lines)
 Lines 104-109    Link Here 
104
    <!-- ACTUAL CHANGES BEGIN HERE: -->
104
    <!-- ACTUAL CHANGES BEGIN HERE: -->
105
105
106
    <changes>
106
    <changes>
107
        <change id="removing-DrawLayer">
108
            <summary>Removing DrawLayer and related API</summary>
109
            <version major="2" minor="1"/>
110
            <date day="21" month="12" year="2009"/>
111
            <author login="vstejskal"/>
112
            <compatibility binary="incompatible" source="incompatible" semantic="incompatible" addition="no" deprecation="no" deletion="yes" modification="no" />
113
            <description>
114
                <p>
115
                Removing DrawLayer and related classes and methods. This part of the API has been long time deprecated
116
                and replaced by Highlighting SPI on <code>editor.lib2</code> module.
117
                </p>
118
            </description>
119
            <issue number="97517"/>
120
        </change>
121
107
        <change id="MimeTypeInitializer">
122
        <change id="MimeTypeInitializer">
108
            <summary>Adding interface enabling initialization of lookups performed by SideBarFactory implementations.</summary>
123
            <summary>Adding interface enabling initialization of lookups performed by SideBarFactory implementations.</summary>
109
            <version major="1" minor="41"/>
124
            <version major="1" minor="41"/>
(-)a/editor.lib/manifest.mf (-2 / +2 lines)
 Lines 1-4    Link Here 
1
Manifest-Version: 1.0
1
Manifest-Version: 1.0
2
OpenIDE-Module: org.netbeans.modules.editor.lib/1
2
OpenIDE-Module: org.netbeans.modules.editor.lib/2
3
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/editor/lib/Bundle.properties
3
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/editor/lib/Bundle.properties
4
OpenIDE-Module-Implementation-Version: 9
4
OpenIDE-Module-Implementation-Version: 10
(-)a/editor.lib/nbproject/project.properties (-1 / +1 lines)
 Lines 39-45    Link Here 
39
39
40
javac.compilerargs=-Xlint:unchecked
40
javac.compilerargs=-Xlint:unchecked
41
javac.source=1.5
41
javac.source=1.5
42
spec.version.base=1.45.0
42
spec.version.base=2.1
43
is.autoload=true
43
is.autoload=true
44
44
45
javadoc.arch=${basedir}/arch.xml
45
javadoc.arch=${basedir}/arch.xml
(-)a/editor.lib/src/org/netbeans/editor/ActionFactory.java (-1 / +2 lines)
 Lines 85-90    Link Here 
85
import org.netbeans.api.progress.ProgressUtils;
85
import org.netbeans.api.progress.ProgressUtils;
86
import org.netbeans.modules.editor.lib2.search.EditorFindSupport;
86
import org.netbeans.modules.editor.lib2.search.EditorFindSupport;
87
import org.netbeans.lib.editor.util.swing.DocumentUtilities;
87
import org.netbeans.lib.editor.util.swing.DocumentUtilities;
88
import org.netbeans.lib.editor.view.GapBoxView;
88
import org.openide.util.NbBundle;
89
import org.openide.util.NbBundle;
89
import org.openide.util.WeakListeners;
90
import org.openide.util.WeakListeners;
90
import org.openide.util.actions.Presenter;
91
import org.openide.util.actions.Presenter;
 Lines 2281-2287    Link Here 
2281
        }
2282
        }
2282
        
2283
        
2283
        public void actionPerformed(ActionEvent evt, JTextComponent target) {
2284
        public void actionPerformed(ActionEvent evt, JTextComponent target) {
2284
            DrawEngineDocView rootView = (DrawEngineDocView)Utilities.getDocumentView(target);
2285
            GapBoxView rootView = (GapBoxView)Utilities.getDocumentView(target);
2285
            AbstractDocument adoc = (AbstractDocument)target.getDocument();
2286
            AbstractDocument adoc = (AbstractDocument)target.getDocument();
2286
2287
2287
            // Dump fold hierarchy
2288
            // Dump fold hierarchy
(-)a/editor.lib/src/org/netbeans/editor/Annotations.java (-11 / +4 lines)
 Lines 64-69    Link Here 
64
import javax.swing.JMenuItem;
64
import javax.swing.JMenuItem;
65
import javax.swing.SwingUtilities;
65
import javax.swing.SwingUtilities;
66
import org.netbeans.editor.ext.ExtKit;
66
import org.netbeans.editor.ext.ExtKit;
67
import org.netbeans.modules.editor.lib.drawing.ChainDrawMark;
68
import org.netbeans.modules.editor.lib.drawing.MarkChain;
67
import org.openide.awt.Actions;
69
import org.openide.awt.Actions;
68
import org.openide.awt.DynamicMenuContent;
70
import org.openide.awt.DynamicMenuContent;
69
import org.openide.util.ContextAwareAction;
71
import org.openide.util.ContextAwareAction;
 Lines 178-192    Link Here 
178
        
180
        
179
    }
181
    }
180
182
181
    /** Finds the drawing layer for annotations.
182
     * @return <code>null</code>
183
     * @deprecated Please use Highlighting SPI instead, for details see
184
     *   <a href="@org-netbeans-modules-editor-lib2@/overview-summary.html">Editor Library 2</a>.
185
     */
186
    public DrawLayerFactory.AnnotationLayer getLayer() {
187
        return null;
188
    }
189
190
    /** Add annotation */
183
    /** Add annotation */
191
    public void addAnnotation(AnnotationDesc anno) {
184
    public void addAnnotation(AnnotationDesc anno) {
192
185
 Lines 241-247    Link Here 
241
                    + ", docLen=" + doc.getLength()); // NOI18N
234
                    + ", docLen=" + doc.getLength()); // NOI18N
242
            }
235
            }
243
            // attach created mark to annotation
236
            // attach created mark to annotation
244
            MarkFactory.ChainDrawMark annoMark = chain.getAddedMark();
237
            ChainDrawMark annoMark = chain.getAddedMark();
245
            if (annoMark == null) {
238
            if (annoMark == null) {
246
                throw new NullPointerException();
239
                throw new NullPointerException();
247
            }
240
            }
 Lines 320-326    Link Here 
320
        int line;
313
        int line;
321
        synchronized (lineAnnotationsArray) {
314
        synchronized (lineAnnotationsArray) {
322
            // find LineAnnotations for the mark
315
            // find LineAnnotations for the mark
323
            MarkFactory.ChainDrawMark annoMark = (MarkFactory.ChainDrawMark)anno.getMark();
316
            ChainDrawMark annoMark = (ChainDrawMark)anno.getMark();
324
            if (annoMark == null) {
317
            if (annoMark == null) {
325
                // Already removed? See #116955
318
                // Already removed? See #116955
326
                return;
319
                return;
(-)a/editor.lib/src/org/netbeans/editor/BaseDocument.java (-36 / +19 lines)
 Lines 97-102    Link Here 
97
import org.netbeans.modules.editor.lib.FormatterOverride;
97
import org.netbeans.modules.editor.lib.FormatterOverride;
98
import org.netbeans.modules.editor.lib.TrailingWhitespaceRemove;
98
import org.netbeans.modules.editor.lib.TrailingWhitespaceRemove;
99
import org.netbeans.modules.editor.lib.SettingsConversions;
99
import org.netbeans.modules.editor.lib.SettingsConversions;
100
import org.netbeans.modules.editor.lib.drawing.DrawEngine;
101
import org.netbeans.modules.editor.lib.drawing.DrawGraphics;
102
import org.netbeans.modules.editor.lib.impl.MarkVector;
103
import org.netbeans.modules.editor.lib.impl.MultiMark;
100
import org.openide.util.Lookup;
104
import org.openide.util.Lookup;
101
import org.openide.util.RequestProcessor;
105
import org.openide.util.RequestProcessor;
102
import org.openide.util.RequestProcessor.Task;
106
import org.openide.util.RequestProcessor.Task;
 Lines 257-265    Link Here 
257
261
258
    private SyntaxSupport syntaxSupport;
262
    private SyntaxSupport syntaxSupport;
259
263
260
    /** Layer list for document level layers */
261
    private DrawLayerList drawLayerList = new DrawLayerList();
262
263
    /** Reset merging next created undoable edit to the last one. */
264
    /** Reset merging next created undoable edit to the last one. */
264
    boolean undoMergeReset;
265
    boolean undoMergeReset;
265
266
 Lines 2014-2051    Link Here 
2014
        return modified;
2015
        return modified;
2015
    }
2016
    }
2016
2017
2017
    /**
2018
     * Get the layer with the specified name. Using of <code>DrawLayer</code>s
2019
     * has been deprecated.
2020
     *
2021
     * @deprecated Please use Highlighting SPI instead, for details see
2022
     *   <a href="@org-netbeans-modules-editor-lib2@/overview-summary.html">Editor Library 2</a>.
2023
     */
2024
    public DrawLayer findLayer(String layerName) {
2025
        return drawLayerList.findLayer(layerName);
2026
    }
2027
2028
    /**
2029
     * Using of <code>DrawLayer</code>s has been deprecated.
2030
     *
2031
     * @deprecated Please use Highlighting SPI instead, for details see
2032
     *   <a href="@org-netbeans-modules-editor-lib2@/overview-summary.html">Editor Library 2</a>.
2033
     */
2034
    public boolean addLayer(DrawLayer layer, int visibility) {
2035
        if (drawLayerList.add(layer, visibility)) {
2036
            BaseDocumentEvent evt = getDocumentEvent(0, 0, DocumentEvent.EventType.CHANGE, null);
2037
            evt.addEdit(new BaseDocumentEvent.DrawLayerChange(layer.getName(), visibility));
2038
            fireChangedUpdate(evt);
2039
            return true;
2040
        } else {
2041
            return false;
2042
        }
2043
    }
2044
2045
    final DrawLayerList getDrawLayerList() {
2046
        return drawLayerList;
2047
    }
2048
2049
    private LineRootElement getLineRootElement() {
2018
    private LineRootElement getLineRootElement() {
2050
        return lineRootElement;
2019
        return lineRootElement;
2051
    }
2020
    }
 Lines 2445-2454    Link Here 
2445
    private static final class Accessor extends EditorPackageAccessor {
2414
    private static final class Accessor extends EditorPackageAccessor {
2446
2415
2447
        @Override
2416
        @Override
2448
        public CompoundEdit markAtomicEditsNonSignificant(BaseDocument doc) {
2417
        public CompoundEdit BaseDocument_markAtomicEditsNonSignificant(BaseDocument doc) {
2449
            return doc.markAtomicEditsNonSignificant();
2418
            return doc.markAtomicEditsNonSignificant();
2450
        }
2419
        }
2451
2420
2421
        @Override
2422
        public MarkVector BaseDocument_getMarksStorage(BaseDocument doc) {
2423
            return doc.marksStorage;
2424
        }
2425
2426
        @Override
2427
        public Mark BaseDocument_getMark(BaseDocument doc, MultiMark multiMark) {
2428
            return doc.marks.get(multiMark);
2429
        }
2430
2431
        @Override
2432
        public void Mark_insert(Mark mark, BaseDocument doc, int pos) throws InvalidMarkException, BadLocationException {
2433
            mark.insert(doc, pos);
2434
        }
2452
    }
2435
    }
2453
2436
2454
    // XXX: the same as the one in CloneableEditorSupport
2437
    // XXX: the same as the one in CloneableEditorSupport
(-)a/editor.lib/src/org/netbeans/editor/BaseDocumentEvent.java (-58 / +15 lines)
 Lines 50-56    Link Here 
50
import javax.swing.event.DocumentEvent;
50
import javax.swing.event.DocumentEvent;
51
import javax.swing.text.AttributeSet;
51
import javax.swing.text.AttributeSet;
52
import javax.swing.undo.UndoableEdit;
52
import javax.swing.undo.UndoableEdit;
53
import javax.swing.undo.AbstractUndoableEdit;
54
import javax.swing.undo.CannotUndoException;
53
import javax.swing.undo.CannotUndoException;
55
import javax.swing.undo.CannotRedoException;
54
import javax.swing.undo.CannotRedoException;
56
55
 Lines 238-263    Link Here 
238
        return getFixLineSyntaxState().getSyntaxUpdateTokenList();
237
        return getFixLineSyntaxState().getSyntaxUpdateTokenList();
239
    }
238
    }
240
    
239
    
241
    public String getDrawLayerName() {
242
        if (getType() != DocumentEvent.EventType.CHANGE) {
243
            throw new IllegalStateException("Can be called for CHANGE events only."); // NOI18N
244
        }
245
246
        DrawLayerChange dlc = (DrawLayerChange)findEdit(DrawLayerChange.class);
247
248
        return (dlc != null) ? dlc.getDrawLayerName() : null;
249
    }
250
251
    public int getDrawLayerVisibility() {
252
        if (getType() != DocumentEvent.EventType.CHANGE) {
253
            throw new IllegalStateException("Can be called for CHANGE events only."); // NOI18N
254
        }
255
256
        DrawLayerChange dlc = (DrawLayerChange)findEdit(DrawLayerChange.class);
257
258
        return (dlc != null) ? dlc.getDrawLayerVisibility() : -1;
259
    }
260
261
    /** Whether this event is being fired because it's being undone. */
240
    /** Whether this event is being fired because it's being undone. */
262
    public boolean isInUndo() {
241
    public boolean isInUndo() {
263
        return inUndo;
242
        return inUndo;
 Lines 268-274    Link Here 
268
        return inRedo;
247
        return inRedo;
269
    }
248
    }
270
249
271
    public void undo() throws CannotUndoException {
250
    public @Override void undo() throws CannotUndoException {
272
        BaseDocument doc = (BaseDocument)getDocument();
251
        BaseDocument doc = (BaseDocument)getDocument();
273
        doc.incrementDocVersion();
252
        doc.incrementDocVersion();
274
253
 Lines 328-334    Link Here 
328
        inUndo = false;
307
        inUndo = false;
329
    }
308
    }
330
309
331
    public void redo() throws CannotRedoException {
310
    public @Override void redo() throws CannotRedoException {
332
        BaseDocument doc = (BaseDocument)getDocument();
311
        BaseDocument doc = (BaseDocument)getDocument();
333
        doc.incrementDocVersion();
312
        doc.incrementDocVersion();
334
        
313
        
 Lines 386-392    Link Here 
386
        inRedo = false;
365
        inRedo = false;
387
    }
366
    }
388
367
389
    public boolean addEdit(UndoableEdit anEdit) {
368
    public @Override boolean addEdit(UndoableEdit anEdit) {
390
        // Super of addEdit()
369
        // Super of addEdit()
391
370
392
        // if the number of changes gets too great, start using
371
        // if the number of changes gets too great, start using
 Lines 458-464    Link Here 
458
        }
437
        }
459
    }
438
    }
460
439
461
    public boolean canUndo() {
440
    public @Override boolean canUndo() {
462
        // Super of canUndo
441
        // Super of canUndo
463
	return !inProgress2 && alive2 && hasBeenDone2
442
	return !inProgress2 && alive2 && hasBeenDone2
464
        // End super of canUndo
443
        // End super of canUndo
 Lines 470-493    Link Here 
470
     * 
449
     * 
471
     * @see	#isInProgress
450
     * @see	#isInProgress
472
     */
451
     */
473
    public boolean canRedo() {
452
    public @Override boolean canRedo() {
474
        // Super of canRedo
453
        // Super of canRedo
475
	return !inProgress2 && alive2 && !hasBeenDone2;
454
	return !inProgress2 && alive2 && !hasBeenDone2;
476
        // End super of canRedo
455
        // End super of canRedo
477
    }
456
    }
478
457
479
    public boolean isInProgress() {
458
    public @Override boolean isInProgress() {
480
        // Super of isInProgress()
459
        // Super of isInProgress()
481
        return inProgress2;
460
        return inProgress2;
482
        // End super of isInProgress()
461
        // End super of isInProgress()
483
    }
462
    }
484
463
485
    public String getUndoPresentationName() {
464
    public @Override String getUndoPresentationName() {
486
        return "";
465
        return ""; //NOI18N
487
    }
466
    }
488
467
489
    public String getRedoPresentationName() {
468
    public @Override String getRedoPresentationName() {
490
        return "";
469
        return ""; //NOI18N
491
    }
470
    }
492
471
493
    /** Returns true if this event can be merged by the previous
472
    /** Returns true if this event can be merged by the previous
 Lines 532-538    Link Here 
532
    * parts (words) and undoing/redoing them at once.
511
    * parts (words) and undoing/redoing them at once.
533
    * This method returns true whether 
512
    * This method returns true whether 
534
    */
513
    */
535
    public boolean replaceEdit(UndoableEdit anEdit) {
514
    public @Override boolean replaceEdit(UndoableEdit anEdit) {
536
        BaseDocument doc = (BaseDocument)getDocument();
515
        BaseDocument doc = (BaseDocument)getDocument();
537
        if (anEdit instanceof BaseDocument.AtomicCompoundEdit) {
516
        if (anEdit instanceof BaseDocument.AtomicCompoundEdit) {
538
            BaseDocument.AtomicCompoundEdit compEdit
517
            BaseDocument.AtomicCompoundEdit compEdit
 Lines 557-563    Link Here 
557
        return false;
536
        return false;
558
    }
537
    }
559
538
560
    public void die() {
539
    public @Override void die() {
561
        // Super of die()
540
        // Super of die()
562
	int size = edits.size();
541
	int size = edits.size();
563
	for (int i = size-1; i >= 0; i--)
542
	for (int i = size-1; i >= 0; i--)
 Lines 575-587    Link Here 
575
        }
554
        }
576
    }
555
    }
577
556
578
    public void end() {
557
    public @Override void end() {
579
        // Super of end()
558
        // Super of end()
580
	inProgress2 = false;
559
	inProgress2 = false;
581
        // End super of end()
560
        // End super of end()
582
    }
561
    }
583
562
584
    public DocumentEvent.ElementChange getChange(Element elem) {
563
    public @Override DocumentEvent.ElementChange getChange(Element elem) {
585
        // Super of getChange()
564
        // Super of getChange()
586
        if (changeLookup2 != null) {
565
        if (changeLookup2 != null) {
587
            return (DocumentEvent.ElementChange) changeLookup2.get(elem);
566
            return (DocumentEvent.ElementChange) changeLookup2.get(elem);
 Lines 601-633    Link Here 
601
    }
580
    }
602
581
603
582
604
    public String toString() {
583
    public @Override String toString() {
605
        return System.identityHashCode(this) + " " + super.toString() // NOI18N
584
        return System.identityHashCode(this) + " " + super.toString() // NOI18N
606
               + ", type=" + getType() // NOI18N
585
               + ", type=" + getType() // NOI18N
607
               + ((getType() != DocumentEvent.EventType.CHANGE)
586
               + ((getType() != DocumentEvent.EventType.CHANGE)
608
                  ? ("text='" + getText() + "'") : ""); // NOI18N
587
                  ? ("text='" + getText() + "'") : ""); // NOI18N
609
    }
588
    }
610
589
611
    /** Edit describing the change of the document draw-layers */
612
    static class DrawLayerChange extends AbstractUndoableEdit {
613
614
        String drawLayerName;
615
616
        int drawLayerVisibility;
617
618
        DrawLayerChange(String drawLayerName, int drawLayerVisibility) {
619
            this.drawLayerName = drawLayerName;
620
            this.drawLayerVisibility = drawLayerVisibility;
621
        }
622
623
        public String getDrawLayerName() {
624
            return drawLayerName;
625
        }
626
627
        public int getDrawLayerVisibility() {
628
            return drawLayerVisibility;
629
        }
630
631
    }
632
    
633
}
590
}
(-)a/editor.lib/src/org/netbeans/editor/BaseTextUI.java (-16 / +10 lines)
 Lines 43-49    Link Here 
43
43
44
import java.awt.*;
44
import java.awt.*;
45
import java.awt.event.ActionEvent;
45
import java.awt.event.ActionEvent;
46
import java.beans.Customizer;
47
import java.beans.PropertyChangeListener;
46
import java.beans.PropertyChangeListener;
48
import java.beans.PropertyChangeEvent;
47
import java.beans.PropertyChangeEvent;
49
import java.util.ArrayList;
48
import java.util.ArrayList;
 Lines 67-75    Link Here 
67
import org.netbeans.api.editor.settings.SimpleValueNames;
66
import org.netbeans.api.editor.settings.SimpleValueNames;
68
import org.netbeans.modules.editor.lib2.EditorApiPackageAccessor;
67
import org.netbeans.modules.editor.lib2.EditorApiPackageAccessor;
69
import org.netbeans.editor.view.spi.LockView;
68
import org.netbeans.editor.view.spi.LockView;
69
import org.netbeans.lib.editor.view.GapDocumentView;
70
import org.netbeans.modules.editor.lib2.EditorPreferencesDefaults;
70
import org.netbeans.modules.editor.lib2.EditorPreferencesDefaults;
71
import org.netbeans.modules.editor.lib2.EditorPreferencesKeys;
71
import org.netbeans.modules.editor.lib2.EditorPreferencesKeys;
72
import org.netbeans.modules.editor.lib.SettingsConversions;
72
import org.netbeans.modules.editor.lib.SettingsConversions;
73
import org.netbeans.modules.editor.lib.drawing.DrawEngineDocView;
74
import org.netbeans.modules.editor.lib.drawing.DrawEngineLineView;
73
import org.openide.util.WeakListeners;
75
import org.openide.util.WeakListeners;
74
76
75
/**
77
/**
 Lines 341-347    Link Here 
341
                LockView lockView = (LockView) view;
343
                LockView lockView = (LockView) view;
342
                lockView.lock();
344
                lockView.lock();
343
                try {
345
                try {
344
                    DrawEngineDocView docView = (DrawEngineDocView)view.getView(0);
346
                    GapDocumentView docView = (GapDocumentView)view.getView(0);
345
                    doDamageRange = docView.checkDamageRange(p0, p1, p0Bias, p1Bias);
347
                    doDamageRange = docView.checkDamageRange(p0, p1, p0Bias, p1Bias);
346
                } finally {
348
                } finally {
347
                    lockView.unlock();
349
                    lockView.unlock();
 Lines 472-492    Link Here 
472
    */
474
    */
473
    public void changedUpdate(DocumentEvent evt) {
475
    public void changedUpdate(DocumentEvent evt) {
474
        if (evt instanceof BaseDocumentEvent) {
476
        if (evt instanceof BaseDocumentEvent) {
475
            BaseDocumentEvent bdevt = (BaseDocumentEvent)evt;
477
            try {
476
            BaseDocument doc = (BaseDocument)bdevt.getDocument();
478
                JTextComponent comp = getComponent();
477
            String layerName = bdevt.getDrawLayerName();
479
                if (comp!=null && comp.isShowing()) {
478
            if (layerName != null) {
480
                    getEditorUI().repaintBlock(evt.getOffset(), evt.getOffset() + evt.getLength());
479
                getEditorUI().addLayer(doc.findLayer(layerName),
480
                        bdevt.getDrawLayerVisibility());
481
            }else{ //temp
482
                try {
483
                    JTextComponent comp = getComponent();
484
                    if (comp!=null && comp.isShowing()) {
485
                        getEditorUI().repaintBlock(evt.getOffset(), evt.getOffset() + evt.getLength());
486
                    }
487
                } catch (BadLocationException ex) {
488
                    Utilities.annotateLoggable(ex);
489
                }
481
                }
482
            } catch (BadLocationException ex) {
483
                Utilities.annotateLoggable(ex);
490
            }
484
            }
491
        }
485
        }
492
    }
486
    }
(-)a/editor.lib/src/org/netbeans/editor/BaseView.java (-4 / +4 lines)
 Lines 49-54    Link Here 
49
import javax.swing.text.Element;
49
import javax.swing.text.Element;
50
import javax.swing.text.JTextComponent;
50
import javax.swing.text.JTextComponent;
51
import javax.swing.text.BadLocationException;
51
import javax.swing.text.BadLocationException;
52
import org.netbeans.modules.editor.lib.drawing.DrawGraphics;
52
53
53
/**
54
/**
54
* Base abstract view serves as parent for both
55
* Base abstract view serves as parent for both
 Lines 105-116    Link Here 
105
    }
106
    }
106
107
107
    /** Get aligment along an X_AXIS or Y_AXIS */
108
    /** Get aligment along an X_AXIS or Y_AXIS */
108
    public float getAlignment(int axis) {
109
    public @Override float getAlignment(int axis) {
109
        return 0f;
110
        return 0f;
110
    }
111
    }
111
112
112
    abstract void modelToViewDG(int pos, DrawGraphics dg)
113
    /* package */ abstract void modelToViewDG(int pos, DrawGraphics dg) throws BadLocationException;
113
    throws BadLocationException;
114
114
115
    /** Get y-coord value from position */
115
    /** Get y-coord value from position */
116
    protected abstract int getYFromPos(int pos) throws BadLocationException;
116
    protected abstract int getYFromPos(int pos) throws BadLocationException;
 Lines 267-273    Link Here 
267
267
268
    }
268
    }
269
269
270
    public String toString() {
270
    public @Override String toString() {
271
        return "BaseView=" + System.identityHashCode(this) // NOI18N
271
        return "BaseView=" + System.identityHashCode(this) // NOI18N
272
               + ", elem=" + getElement() + ", parent=" // NOI18N
272
               + ", elem=" + getElement() + ", parent=" // NOI18N
273
               + System.identityHashCode(getParent());
273
               + System.identityHashCode(getParent());
(-)a/editor.lib/src/org/netbeans/editor/Coloring.java (-12 / +26 lines)
 Lines 49-54    Link Here 
49
import javax.swing.text.AttributeSet;
49
import javax.swing.text.AttributeSet;
50
import javax.swing.text.StyleConstants;
50
import javax.swing.text.StyleConstants;
51
import org.netbeans.api.editor.settings.EditorStyleConstants;
51
import org.netbeans.api.editor.settings.EditorStyleConstants;
52
import org.netbeans.modules.editor.lib.drawing.ColoringAccessor;
53
import org.netbeans.modules.editor.lib.drawing.DrawContext;
52
54
53
/**
55
/**
54
* Immutable class that stores font and foreground and background colors.
56
* Immutable class that stores font and foreground and background colors.
 Lines 137-143    Link Here 
137
    private Color rightBorderLineColor;
139
    private Color rightBorderLineColor;
138
    private Color bottomBorderLineColor;
140
    private Color bottomBorderLineColor;
139
    private Color leftBorderLineColor;
141
    private Color leftBorderLineColor;
140
    
142
143
    private final String cacheLock = new String("Coloring.cacheLock"); //NOI18N
144
141
    /** Cache holding the [original-font, derived-font] pairs
145
    /** Cache holding the [original-font, derived-font] pairs
142
    * and also original [fore-color, derived-fore-color] pairs.
146
    * and also original [fore-color, derived-fore-color] pairs.
143
    * This helps to avoid the repetitive computations of the
147
    * This helps to avoid the repetitive computations of the
 Lines 334-340    Link Here 
334
    }
338
    }
335
339
336
    /** Apply this coloring to draw context. */
340
    /** Apply this coloring to draw context. */
337
    public void apply(DrawContext ctx) {
341
    private void apply(DrawContext ctx) {
338
        // Possibly change font
342
        // Possibly change font
339
        if (font != null) {
343
        if (font != null) {
340
            if (fontMode == FONT_MODE_DEFAULT) {
344
            if (fontMode == FONT_MODE_DEFAULT) {
 Lines 343-349    Link Here 
343
            } else { // non-default font-mode
347
            } else { // non-default font-mode
344
                Font origFont = ctx.getFont();
348
                Font origFont = ctx.getFont();
345
                if (origFont != null) {
349
                if (origFont != null) {
346
                    synchronized (fontAndForeColorCache) {
350
                    synchronized (cacheLock) {
347
                        Font f = (Font)fontAndForeColorCache.get(origFont);
351
                        Font f = (Font)fontAndForeColorCache.get(origFont);
348
                        if (f == null) {
352
                        if (f == null) {
349
                            f = modifyFont(origFont);
353
                            f = modifyFont(origFont);
 Lines 363-369    Link Here 
363
            } else { // has alpha
367
            } else { // has alpha
364
                Color origForeColor = ctx.getForeColor();
368
                Color origForeColor = ctx.getForeColor();
365
                if (origForeColor != null) {
369
                if (origForeColor != null) {
366
                    synchronized (fontAndForeColorCache) {
370
                    synchronized (cacheLock) {
367
                        Color fc = (Color)fontAndForeColorCache.get(origForeColor);
371
                        Color fc = (Color)fontAndForeColorCache.get(origForeColor);
368
                        if (fc == null) {
372
                        if (fc == null) {
369
                            fc = modifyForeColor(origForeColor);
373
                            fc = modifyForeColor(origForeColor);
 Lines 383-389    Link Here 
383
            } else { // non-default back color-mode
387
            } else { // non-default back color-mode
384
                Color origBackColor = ctx.getBackColor();
388
                Color origBackColor = ctx.getBackColor();
385
                if (origBackColor != null) {
389
                if (origBackColor != null) {
386
                    synchronized (backColorCache) {
390
                    synchronized (cacheLock) {
387
                        Color bc = (Color)backColorCache.get(origBackColor);
391
                        Color bc = (Color)backColorCache.get(origBackColor);
388
                        if (bc == null) {
392
                        if (bc == null) {
389
                            bc = modifyBackColor(origBackColor);
393
                            bc = modifyBackColor(origBackColor);
 Lines 436-442    Link Here 
436
            } else { // non-default font-mode
440
            } else { // non-default font-mode
437
                Font origFont = c.getFont();
441
                Font origFont = c.getFont();
438
                if (origFont != null) {
442
                if (origFont != null) {
439
                    synchronized (fontAndForeColorCache) {
443
                    synchronized (cacheLock) {
440
                        Font f = (Font)fontAndForeColorCache.get(origFont);
444
                        Font f = (Font)fontAndForeColorCache.get(origFont);
441
                        if (f == null) {
445
                        if (f == null) {
442
                            f = modifyFont(origFont);
446
                            f = modifyFont(origFont);
 Lines 456-462    Link Here 
456
            } else { // non-default fore color-mode
460
            } else { // non-default fore color-mode
457
                Color origForeColor = c.getForeground();
461
                Color origForeColor = c.getForeground();
458
                if (origForeColor != null) {
462
                if (origForeColor != null) {
459
                    synchronized (fontAndForeColorCache) {
463
                    synchronized (cacheLock) {
460
                        Color fc = (Color)fontAndForeColorCache.get(origForeColor);
464
                        Color fc = (Color)fontAndForeColorCache.get(origForeColor);
461
                        if (fc == null) {
465
                        if (fc == null) {
462
                            fc = modifyForeColor(origForeColor);
466
                            fc = modifyForeColor(origForeColor);
 Lines 476-482    Link Here 
476
            } else { // non-default back color-mode
480
            } else { // non-default back color-mode
477
                Color origBackColor = c.getBackground();
481
                Color origBackColor = c.getBackground();
478
                if (origBackColor != null) {
482
                if (origBackColor != null) {
479
                    synchronized (backColorCache) {
483
                    synchronized (cacheLock) {
480
                        Color bc = (Color)backColorCache.get(origBackColor);
484
                        Color bc = (Color)backColorCache.get(origBackColor);
481
                        if (bc == null) {
485
                        if (bc == null) {
482
                            bc = modifyBackColor(origBackColor);
486
                            bc = modifyBackColor(origBackColor);
 Lines 518-524    Link Here 
518
522
519
            } else { // non-default font-mode
523
            } else { // non-default font-mode
520
                if (newFont != null) {
524
                if (newFont != null) {
521
                    synchronized (fontAndForeColorCache) {
525
                    synchronized (cacheLock) {
522
                        Font f = (Font)fontAndForeColorCache.get(newFont);
526
                        Font f = (Font)fontAndForeColorCache.get(newFont);
523
                        if (f == null) {
527
                        if (f == null) {
524
                            f = modifyFont(newFont);
528
                            f = modifyFont(newFont);
 Lines 541-547    Link Here 
541
545
542
            } else { // non-default fore color-mode
546
            } else { // non-default fore color-mode
543
                if (newForeColor != null) {
547
                if (newForeColor != null) {
544
                    synchronized (fontAndForeColorCache) {
548
                    synchronized (cacheLock) {
545
                        Color fc = (Color)fontAndForeColorCache.get(newForeColor);
549
                        Color fc = (Color)fontAndForeColorCache.get(newForeColor);
546
                        if (fc == null) {
550
                        if (fc == null) {
547
                            fc = modifyForeColor(newForeColor);
551
                            fc = modifyForeColor(newForeColor);
 Lines 561-567    Link Here 
561
            } else { // non-default back color-mode
565
            } else { // non-default back color-mode
562
                newBackColor = backColor;
566
                newBackColor = backColor;
563
                if (newBackColor != null) {
567
                if (newBackColor != null) {
564
                    synchronized (backColorCache) {
568
                    synchronized (cacheLock) {
565
                        Color bc = (Color)backColorCache.get(newBackColor);
569
                        Color bc = (Color)backColorCache.get(newBackColor);
566
                        if (bc == null) {
570
                        if (bc == null) {
567
                            bc = modifyBackColor(newBackColor);
571
                            bc = modifyBackColor(newBackColor);
 Lines 851-855    Link Here 
851
            new Integer(applyMode)
855
            new Integer(applyMode)
852
        };
856
        };
853
    }
857
    }
854
    
858
859
    static {
860
        ColoringAccessor.register(new Accessor());
861
    }
862
863
    private static final class Accessor extends ColoringAccessor {
864
        @Override
865
        public void apply(Coloring c, DrawContext ctx) {
866
            c.apply(ctx);
867
        }
868
    } // End of Accessor class
855
}
869
}
(-)a/editor.lib/src/org/netbeans/editor/DocumentContent.java (+3 lines)
 Lines 50-55    Link Here 
50
import javax.swing.undo.CannotRedoException;
50
import javax.swing.undo.CannotRedoException;
51
import javax.swing.undo.UndoableEdit;
51
import javax.swing.undo.UndoableEdit;
52
import org.netbeans.lib.editor.util.AbstractCharSequence;
52
import org.netbeans.lib.editor.util.AbstractCharSequence;
53
import org.netbeans.modules.editor.lib.impl.BasePosition;
54
import org.netbeans.modules.editor.lib.impl.MarkVector;
55
import org.netbeans.modules.editor.lib.impl.MultiMark;
53
56
54
/**
57
/**
55
 * Content of the document.
58
 * Content of the document.
(-)a/editor.lib/src/org/netbeans/editor/DrawLayerFactory.java (-877 lines)
 Lines 1-877    Link Here 
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
5
 *
6
 * The contents of this file are subject to the terms of either the GNU
7
 * General Public License Version 2 only ("GPL") or the Common
8
 * Development and Distribution License("CDDL") (collectively, the
9
 * "License"). You may not use this file except in compliance with the
10
 * License. You can obtain a copy of the License at
11
 * http://www.netbeans.org/cddl-gplv2.html
12
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
13
 * specific language governing permissions and limitations under the
14
 * License.  When distributing the software, include this License Header
15
 * Notice in each file and include the License file at
16
 * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
17
 * particular file as subject to the "Classpath" exception as provided
18
 * by Sun in the GPL Version 2 section of the License file that
19
 * accompanied this code. If applicable, add the following below the
20
 * License Header, with the fields enclosed by brackets [] replaced by
21
 * your own identifying information:
22
 * "Portions Copyrighted [year] [name of copyright owner]"
23
 *
24
 * Contributor(s):
25
 *
26
 * The Original Software is NetBeans. The Initial Developer of the Original
27
 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
28
 * Microsystems, Inc. All Rights Reserved.
29
 *
30
 * If you wish your version of this file to be governed by only the CDDL
31
 * or only the GPL Version 2, indicate your decision by adding
32
 * "[Contributor] elects to include this software in this distribution
33
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
34
 * single choice of license, a recipient has the option to distribute
35
 * your version of this file under either the CDDL, the GPL Version 2 or
36
 * to extend the choice of license to its licensees as provided above.
37
 * However, if you add GPL Version 2 code and therefore, elected the GPL
38
 * Version 2 license, then the option applies only if the new code is
39
 * made subject to such option by the copyright holder.
40
 */
41
42
package org.netbeans.editor;
43
44
import java.awt.Color;
45
import java.util.List;
46
import java.util.logging.Level;
47
import java.util.logging.Logger;
48
import javax.swing.text.Style;
49
import javax.swing.text.StyleConstants;
50
import javax.swing.text.BadLocationException;
51
import javax.swing.text.JTextComponent;
52
import javax.swing.text.View;
53
import org.netbeans.api.editor.settings.FontColorNames;
54
55
/**
56
 * Various draw layers are located here
57
 *
58
 * @author Miloslav Metelka
59
 * @version 1.00
60
 * 
61
 * @deprecated Please use Highlighting SPI instead, for details see
62
 *   <a href="@org-netbeans-modules-editor-lib2@/overview-summary.html">Editor Library 2</a>.
63
 */
64
public class DrawLayerFactory {
65
66
    private static final Logger LOG = Logger.getLogger(DrawLayerFactory.class.getName());
67
    
68
    /** Syntax draw layer name */
69
    public static final String SYNTAX_LAYER_NAME = "syntax-layer"; // NOI18N
70
71
    /** Syntax draw layer visibility */
72
    public static final int SYNTAX_LAYER_VISIBILITY = 1000;
73
74
    /** Annotation draw layer name */
75
    public static final String ANNOTATION_LAYER_NAME = "annotation-layer"; // NOI18N
76
77
    /** Annotation draw layer visibility */
78
    public static final int ANNOTATION_LAYER_VISIBILITY = 2100;
79
    
80
    /** Highlight search layer name */
81
    public static final String HIGHLIGHT_SEARCH_LAYER_NAME = "highlight-search-layer"; // NOI18N
82
83
    /** Highlight search layer visibility */
84
    public static final int HIGHLIGHT_SEARCH_LAYER_VISIBILITY = 9000;
85
86
    /** Incremental search layer name */
87
    public static final String INC_SEARCH_LAYER_NAME = "inc-search-layer"; // NOI18N
88
89
    /** Incremental search layer visibility */
90
    public static final int INC_SEARCH_LAYER_VISIBILITY = 9500;
91
    
92
    /** Search block layer name */
93
    public static final String BLOCK_SEARCH_LAYER_NAME = "block-search-layer"; // NOI18N
94
95
    /** Search block layer visibility */
96
    public static final int BLOCK_SEARCH_LAYER_VISIBILITY = 8500;
97
98
    /** Selection draw layer name */
99
    public static final String CARET_LAYER_NAME = "caret-layer"; // NOI18N
100
101
    /** Selection draw layer visibility */
102
    public static final int CARET_LAYER_VISIBILITY = 10000;
103
104
105
    /** Guarded layer name */
106
    public static final String GUARDED_LAYER_NAME = "guarded-layer"; // NOI18N
107
108
    /** Guarded layer visibility */
109
    public static final int GUARDED_LAYER_VISIBILITY = 1400;
110
111
112
    /** 
113
     * Layer that colors the text according to the tokens that were parsed.
114
     * It's active all the time.
115
     * 
116
     * @deprecated Please use Highlighting SPI instead, for details see
117
     *   <a href="@org-netbeans-modules-editor-lib2@/overview-summary.html">Editor Library 2</a>.
118
     */
119
    public static class SyntaxLayer extends DrawLayer.AbstractLayer {
120
121
        public SyntaxLayer() {
122
            super(SYNTAX_LAYER_NAME);
123
        }
124
125
        public void init(DrawContext ctx) {
126
        }
127
128
        public boolean isActive(DrawContext ctx, MarkFactory.DrawMark mark) {
129
            return true;
130
        }
131
132
        public void updateContext(DrawContext ctx) {
133
            // Get the token type and docColorings
134
            TokenID tokenID = ctx.getTokenID();
135
            TokenContextPath tcp = ctx.getTokenContextPath();
136
            if (tokenID != null && tcp != null) {
137
                // Get the coloring according the name of the token
138
                String fullName = tcp.getFullTokenName(tokenID);
139
                Coloring c = ctx.getEditorUI().getColoring(fullName);
140
                if (c != null) {
141
                    c.apply(ctx);
142
143
                } else { // Token coloring null, try category
144
                    TokenCategory cat = tokenID.getCategory();
145
                    if (cat != null) {
146
                        fullName = tcp.getFullTokenName(cat);
147
                        c = ctx.getEditorUI().getColoring(fullName);
148
                        if (c !=  null) {
149
                            c.apply(ctx);
150
                        }
151
                    }
152
                }
153
            }
154
        }
155
156
    }
157
158
159
    /** 
160
     * This layer colors the line by a color specified in constructor
161
     * It requires only activation mark since it deactivates automatically
162
     * at the end of line.
163
     * 
164
     * @deprecated Please use Highlighting SPI instead, for details see
165
     *   <a href="@org-netbeans-modules-editor-lib2@/overview-summary.html">Editor Library 2</a>.
166
     */
167
    public static abstract class ColorLineLayer extends DrawLayer.AbstractLayer {
168
169
        /** Coloring to use for highlighting */
170
        Coloring coloring;
171
172
        public ColorLineLayer(String name) {
173
            super(name);
174
        }
175
176
        public boolean extendsEOL() {
177
            return true;
178
        }
179
180
        public void init(DrawContext ctx) {
181
            coloring = null;
182
        }
183
184
        public boolean isActive(DrawContext ctx, MarkFactory.DrawMark mark) {
185
            boolean active;
186
            if (mark == null) {
187
                View view = ctx instanceof DrawEngine.DrawInfo ? ((DrawEngine.DrawInfo)ctx).view.getParent() : null;
188
                if (view instanceof DrawEngineLineView) {
189
                    DrawEngineLineView delv = (DrawEngineLineView)view;
190
                    mark = getFoldedMark(delv, getName());
191
                    if (mark == null) {
192
                        view = delv.getView(delv.getViewCount() -1);
193
                        if (view instanceof DrawEngineLineView) {
194
                            delv = (DrawEngineLineView) view;
195
                            mark = getFoldedMark(delv, getName());
196
                        }
197
                    }
198
                }
199
            }
200
            if (mark != null) {
201
                active = (ctx.getEditorUI().getComponent() != null)
202
                    && mark.activateLayer;
203
                if (active) {
204
                    try {
205
                        BaseDocument doc = ctx.getEditorUI().getDocument();
206
                        int nextRowStartPos = Utilities.getRowStart(
207
                                doc, ctx.getFragmentOffset(), 1);
208
                        if (nextRowStartPos < 0) { // end of doc
209
                            nextRowStartPos = Integer.MAX_VALUE;
210
                        }
211
                        setNextActivityChangeOffset(nextRowStartPos);
212
213
                    } catch (BadLocationException e) {
214
                        active = false;
215
                    }
216
                }
217
            } else {
218
                active = false;
219
            }
220
            return active;
221
        }
222
223
        public void updateContext(DrawContext ctx) {
224
            if (coloring == null) {
225
                coloring = getColoring(ctx);
226
            }
227
            if (coloring != null) {
228
                coloring.apply(ctx);
229
            }
230
        }
231
232
        protected abstract Coloring getColoring(DrawContext ctx);
233
        
234
    }
235
236
237
    /** Layer that covers selection services provided by caret.
238
     * This layer assumes that both caretMark and selectionMark in
239
     * BaseCaret are properly served so that their active flags
240
     * are properly set.
241
     * 
242
     * @deprecated Please use Highlighting SPI instead, for details see
243
     *   <a href="@org-netbeans-modules-editor-lib2@/overview-summary.html">Editor Library 2</a>.
244
     */
245
    public static class CaretLayer extends DrawLayer.AbstractLayer {
246
247
        Coloring coloring;
248
249
        public CaretLayer() {
250
            super(CARET_LAYER_NAME);
251
        }
252
253
        public boolean extendsEmptyLine() {
254
            return true;
255
        }
256
257
        public void init(DrawContext ctx) {
258
            coloring = null;
259
        }
260
261
        public boolean isActive(DrawContext ctx, MarkFactory.DrawMark mark) {
262
            boolean active;
263
            if (mark != null) {
264
                active = mark.activateLayer;
265
            } else {
266
                JTextComponent c = ctx.getEditorUI().getComponent();
267
                active = (c != null) && Utilities.isSelectionShowing(c)
268
                         && ctx.getFragmentOffset() >= c.getSelectionStart()
269
                         && ctx.getFragmentOffset() < c.getSelectionEnd();
270
            }
271
272
            return active;
273
        }
274
275
        public void updateContext(DrawContext ctx) {
276
            if (coloring == null) {
277
                coloring = ctx.getEditorUI().getColoring(FontColorNames.SELECTION_COLORING);
278
            }
279
            if (coloring != null) {
280
                coloring.apply(ctx);
281
            }
282
        }
283
284
    }
285
286
287
    /** Highlight search layer highlights all occurences
288
     * of the searched string in text.
289
     * 
290
     * @deprecated Please use Highlighting SPI instead, for details see
291
     *   <a href="@org-netbeans-modules-editor-lib2@/overview-summary.html">Editor Library 2</a>.
292
     */
293
    public static class HighlightSearchLayer extends DrawLayer.AbstractLayer {
294
295
        /** Pairs of start and end position of the found string */
296
        int blocks[] = new int[] { -1, -1 };
297
298
        /** Coloring to use for highlighting */
299
        Coloring coloring;
300
301
        /** Current index for painting */
302
        int curInd;
303
304
        /** Enabled flag */
305
        boolean enabled;
306
307
        public HighlightSearchLayer() {
308
            super(HIGHLIGHT_SEARCH_LAYER_NAME);
309
        }
310
311
        public boolean isEnabled() {
312
            return enabled;
313
        }
314
315
        public void setEnabled(boolean enabled) {
316
            this.enabled = enabled;
317
        }
318
319
        public void init(DrawContext ctx) {
320
            if (enabled) {
321
                try {
322
                    BaseDocument doc = ctx.getEditorUI().getDocument();
323
                    blocks = FindSupport.getFindSupport().getBlocks(blocks,
324
                             doc, ctx.getStartOffset(), ctx.getEndOffset());
325
                } catch (BadLocationException e) {
326
                    blocks = new int[] { -1, -1 };
327
                }
328
                coloring = null; // reset so it will be re-read
329
                curInd = 0;
330
            }
331
        }
332
333
        public boolean isActive(DrawContext ctx, MarkFactory.DrawMark mark) {
334
            boolean active;
335
            if (enabled) {
336
                int pos = ctx.getFragmentOffset();
337
                if (pos == blocks[curInd]) {
338
                    active = true;
339
                    setNextActivityChangeOffset(blocks[curInd + 1]);
340
341
                } else if (pos == blocks[curInd + 1]) {
342
                    active = false;
343
                    curInd += 2;
344
                    setNextActivityChangeOffset(blocks[curInd]);
345
                    if (pos == blocks[curInd]) { // just follows
346
                        setNextActivityChangeOffset(blocks[curInd + 1]);
347
                        active = true;
348
                    }
349
350
                } else {
351
                    setNextActivityChangeOffset(blocks[curInd]);
352
                    active = false;
353
                }
354
            } else {
355
                active = false;
356
            }
357
358
            return active;
359
        }
360
361
        public void updateContext(DrawContext ctx) {
362
            int pos = ctx.getFragmentOffset();
363
            if (pos >= blocks[curInd] && pos < blocks[curInd + 1]) {
364
                if (coloring == null) {
365
                    coloring = ctx.getEditorUI().getColoring(FontColorNames.HIGHLIGHT_SEARCH_COLORING);
366
                }
367
                if (coloring != null) {
368
                    coloring.apply(ctx);
369
                }
370
            }
371
        }
372
373
    }
374
375
    /** Layer covering incremental search. There are just two positions
376
     * begining and end of the searched string
377
     * 
378
     * @deprecated Please use Highlighting SPI instead, for details see
379
     *   <a href="@org-netbeans-modules-editor-lib2@/overview-summary.html">Editor Library 2</a>.
380
     */
381
    public static class IncSearchLayer extends DrawLayer.AbstractLayer {
382
383
        /** Position where the searched string begins */
384
        int pos;
385
386
        /** Length of area to highlight */
387
        int len;
388
389
        /** Whether this layer is enabled */
390
        boolean enabled;
391
        
392
        boolean invert;
393
394
        public IncSearchLayer() {
395
            super(INC_SEARCH_LAYER_NAME);
396
        }
397
398
        public boolean isEnabled() {
399
            return enabled;
400
        }
401
402
        public void setEnabled(boolean enabled) {
403
            this.enabled = enabled;
404
        }
405
406
        void setArea(int pos, int len) {
407
            this.pos = pos;
408
            this.len = len;
409
        }
410
411
        public int getOffset() {
412
            return pos;
413
        }
414
415
        public int getLength() {
416
            return len;
417
        }
418
419
        public void init(DrawContext ctx) {
420
            setNextActivityChangeOffset(enabled ? pos : Integer.MAX_VALUE);
421
        }
422
423
        public boolean isActive(DrawContext ctx, MarkFactory.DrawMark mark) {
424
            boolean active = false;
425
            if (enabled) {
426
                if (ctx.getFragmentOffset() == pos) {
427
                    active = true;
428
                    setNextActivityChangeOffset(pos + len);
429
                }
430
            }
431
432
            return active;
433
        }
434
435
        /** current INC_SEARCH_COLORING is used only in block search.
436
         *  if there is no search, use selection
437
         *  @param invert if true - selection  coloring is used
438
         */
439
        void setInversion(boolean invert){
440
            this.invert = invert;
441
        }
442
        
443
        public void updateContext(DrawContext ctx) {
444
            if (!invert) {
445
                Coloring coloring = ctx.getEditorUI().getColoring(FontColorNames.INC_SEARCH_COLORING);
446
                if (coloring != null) {
447
                    coloring.apply(ctx);
448
                }
449
            } else {
450
                Coloring invertedColoring = ctx.getEditorUI().getColoring(FontColorNames.SELECTION_COLORING);
451
                if (invertedColoring != null) {
452
                    invertedColoring.apply(ctx);
453
                }
454
            }
455
        }
456
    } // End of IncSearchLayer class
457
458
    /**
459
     * @deprecated Please use Highlighting SPI instead, for details see
460
     *   <a href="@org-netbeans-modules-editor-lib2@/overview-summary.html">Editor Library 2</a>.
461
     */
462
    public static class BlockSearchLayer extends DrawLayer.AbstractLayer {
463
464
        /** Position where the searched string begins */
465
        int pos;
466
467
        /** Length of area to highlight */
468
        int len;
469
470
        /** Whether this layer is enabled */
471
        boolean enabled;
472
473
        public BlockSearchLayer() {
474
            super(BLOCK_SEARCH_LAYER_NAME);
475
        }
476
477
        public boolean extendsEmptyLine(){
478
            return true;
479
        }
480
        
481
        public boolean isEnabled() {
482
            return enabled;
483
        }
484
485
        public void setEnabled(boolean enabled) {
486
            this.enabled = enabled;
487
        }
488
489
        void setArea(int pos, int len) {
490
            this.pos = pos;
491
            this.len = len;
492
        }
493
494
        int getOffset() {
495
            return pos;
496
        }
497
498
        int getLength() {
499
            return len;
500
        }
501
502
        public void init(DrawContext ctx) {
503
            setNextActivityChangeOffset(enabled ? pos : Integer.MAX_VALUE);
504
        }
505
506
        public boolean isActive(DrawContext ctx, MarkFactory.DrawMark mark) {
507
            boolean active = false;
508
            if (enabled) {
509
                int fragOffset = ctx.getFragmentOffset();
510
                if (fragOffset >= pos && fragOffset<(pos+len))  {
511
                    active = true;
512
                    try {
513
                        BaseDocument doc = ctx.getEditorUI().getDocument();
514
                        int nextRowStartPos = Utilities.getRowStart(
515
                                doc, fragOffset, 1);
516
                        if (nextRowStartPos < 0) { // end of doc
517
                            nextRowStartPos = Integer.MAX_VALUE;
518
                        }
519
                        setNextActivityChangeOffset(Math.min(nextRowStartPos,(pos+len)));
520
521
                    } catch (BadLocationException e) {
522
                        active = false;
523
                    }
524
                
525
                }
526
           }
527
528
            return active;
529
        }
530
531
        public void updateContext(DrawContext ctx) {
532
            Coloring coloring = ctx.getEditorUI().getColoring(FontColorNames.BLOCK_SEARCH_COLORING);
533
            if (coloring != null) {
534
                coloring.apply(ctx);
535
            }
536
        }
537
    } // End of BlockSearchLayer class
538
539
//
540
//  XXX: Deprecated and not used anymore. Can be removed.
541
//
542
//    /** Layer for guarded blocks 
543
//     *
544
//     * @deprecated Please use Highlighting SPI instead, for details see
545
//     *   <a href="@org-netbeans-modules-editor-lib2@/overview-summary.html">Editor Library 2</a>.
546
//     */
547
//    static class GuardedLayer extends ColorLineLayer {
548
//
549
//        GuardedDocument doc;
550
//
551
//        GuardedLayer() {
552
//            super(GUARDED_LAYER_NAME);
553
//        }
554
//
555
//        public void init(DrawContext ctx) {
556
//            super.init(ctx);
557
//            doc = (GuardedDocument)ctx.getEditorUI().getDocument();
558
//        }
559
//
560
//        public boolean isActive(DrawContext ctx, MarkFactory.DrawMark mark) {
561
//            boolean active;
562
//            if (mark != null) {
563
//                active = mark.activateLayer;
564
//            } else {
565
//                active = doc.isPosGuarded(ctx.getFragmentOffset());
566
//            }
567
//
568
//            return active;
569
//        }
570
//
571
//        protected Coloring getColoring(DrawContext ctx) {
572
//            return ctx.getEditorUI().getColoring(SettingsNames.GUARDED_COLORING);
573
//        }
574
//
575
//    }
576
577
    
578
    
579
    /** 
580
     * Style layer getting color settings from particular style 
581
     * 
582
     * @deprecated Please use Highlighting SPI instead, for details see
583
     *   <a href="@org-netbeans-modules-editor-lib2@/overview-summary.html">Editor Library 2</a>.
584
     */
585
    public static class StyleLayer extends DrawLayer.AbstractLayer {
586
587
        protected Style style;
588
589
        protected MarkChain markChain;
590
591
        protected Color backColor;
592
593
        protected Color foreColor;
594
595
        public StyleLayer(String layerName, BaseDocument doc, Style style) {
596
            super(layerName);
597
            this.style = style;
598
            markChain = new MarkChain(doc, layerName);
599
        }
600
601
        public boolean extendsEOL() {
602
            return true;
603
        }
604
605
        public final MarkChain getMarkChain() {
606
            return markChain;
607
        }
608
609
        public void init(DrawContext ctx) {
610
            foreColor = StyleConstants.getForeground(style);
611
            backColor = StyleConstants.getBackground(style);
612
        }
613
614
        public boolean isActive(DrawContext ctx, MarkFactory.DrawMark mark) {
615
            boolean active = false;
616
            if (mark != null) {
617
                active = (ctx.getEditorUI().getComponent() != null)
618
                    && mark.activateLayer;
619
                if (active) {
620
                    try {
621
                        BaseDocument doc = ctx.getEditorUI().getDocument();
622
                        int nextRowStartPos = Utilities.getRowStart(
623
                                doc, ctx.getFragmentOffset(), 1);
624
                        if (nextRowStartPos < 0) { // end of doc
625
                            nextRowStartPos = Integer.MAX_VALUE;
626
                        }
627
628
                        setNextActivityChangeOffset(nextRowStartPos);
629
630
                    } catch (BadLocationException e) {
631
                        active = false;
632
                    }
633
                }
634
635
            }
636
637
            return active;
638
        }
639
640
        public void updateContext(DrawContext ctx) {
641
            if (foreColor != null) {
642
                ctx.setForeColor(foreColor);
643
            }
644
            if (backColor != null) {
645
                ctx.setBackColor(backColor);
646
            }
647
        }
648
649
        public String toString() {
650
            return super.toString() + ((markChain != null) ? (", " + markChain) : ""); // NOI18N
651
        }
652
653
    }
654
655
    /** 
656
     * Test layer for coloring the specific words
657
     * 
658
     * @deprecated Please use Highlighting SPI instead, for details see
659
     *   <a href="@org-netbeans-modules-editor-lib2@/overview-summary.html">Editor Library 2</a>.
660
     */
661
    public static class WordColoringLayer extends DrawLayer.AbstractLayer {
662
663
        protected StringMap stringMap = new StringMap();
664
665
        public WordColoringLayer(String name) {
666
            super(name);
667
        }
668
669
        public void put(String s, Coloring c) {
670
            stringMap.put(s, c);
671
        }
672
673
        public void put(String[] strings, Coloring c) {
674
            for (int i = 0; i < strings.length; i++) {
675
                put(strings[i], c);
676
            }
677
        }
678
679
        public void put(List stringList, Coloring c) {
680
            String strings[] = new String[stringList.size()];
681
            stringList.toArray(strings);
682
            put(strings, c);
683
        }
684
685
        public void init(DrawContext ctx) {
686
        }
687
688
        public boolean isActive(DrawContext ctx, MarkFactory.DrawMark mark) {
689
            return true;
690
        }
691
692
        public void updateContext(DrawContext ctx) {
693
            Coloring c = (Coloring)stringMap.get(ctx.getBuffer(),
694
                                 ctx.getTokenOffset(), ctx.getTokenLength());
695
            if (c != null) {
696
                c.apply(ctx);
697
            }
698
        }
699
700
    }
701
702
    /** 
703
     * Annotation layer for drawing of annotations. Each mark which is stored in markChain has
704
     * corresponding Annotation. More than one Annotation can share one mark. In this case
705
     * the only one annotation is active and this must be drawn. 
706
     * 
707
     * @deprecated Please use Highlighting SPI instead, for details see
708
     *   <a href="@org-netbeans-modules-editor-lib2@/overview-summary.html">Editor Library 2</a>.
709
     */
710
    public static class AnnotationLayer extends DrawLayer.AbstractLayer {
711
712
        /** Current coloring */
713
        private Coloring coloring;
714
        
715
        /** Chain of marks attached to this layer */
716
        private MarkChain markChain;
717
                
718
        public AnnotationLayer(BaseDocument doc) {
719
            super(ANNOTATION_LAYER_NAME);
720
            coloring = null;
721
            markChain = new MarkChain(doc, ANNOTATION_LAYER_NAME);
722
        }
723
724
        /** Get chain of marks attached to this draw layer
725
         * @return mark chain */        
726
        public final MarkChain getMarkChain() {
727
            return markChain;
728
        }
729
        
730
        public boolean extendsEOL() {
731
            return true;
732
        }
733
734
        public boolean isActive(DrawContext ctx, MarkFactory.DrawMark mark) {
735
            int nextActivityOffset;
736
            coloring = null;
737
//            LOG.setLevel(Level.FINE);
738
//            if (LOG.isLoggable(Level.FINE)) {
739
//                LOG.fine("  ctx-offset=" + ctx.getFragmentOffset() + ", mark=" + mark + '\n');
740
//            }
741
742
            if (mark == null) {
743
                View view = ctx instanceof DrawEngine.DrawInfo ? ((DrawEngine.DrawInfo)ctx).view : null;
744
                if (view instanceof DrawEngineLineView) {
745
                    mark = getFoldedMark((DrawEngineLineView)view, getName());
746
                }
747
            }
748
            
749
            if (mark == null) {
750
                return false;
751
            }
752
753
            if (ctx.getEditorUI().getComponent() == null || !mark.activateLayer) {
754
                return false;
755
            }
756
            
757
            BaseDocument doc = ctx.getEditorUI().getDocument();
758
            
759
            // Gets the active annotation attached to this mark. It is possible that
760
            // no active annotation might exist for the mark, e.g. there can be
761
            // mark at the beginning of the line for a whole line annotation
762
            // and there can be mark in the middle of the line for a line-part annotation
763
            AnnotationDesc anno = doc.getAnnotations().getActiveAnnotation(mark);
764
            if (anno == null) {
765
                // if no active annotation was found for the given mark, check
766
                // whether we are not already drawing some other annotation. If that's
767
                // true we have to continue drawing it (means return true here)
768
                AnnotationDesc activeAnno = doc.getAnnotations().getLineActiveAnnotation(mark);
769
                if (activeAnno == null) {
770
                    return false;
771
                }
772
                if (ctx.getFragmentOffset() >= activeAnno.getOffset()) {
773
                    if (ctx.getFragmentOffset() < activeAnno.getOffset() + activeAnno.getLength() || activeAnno.isWholeLine()) {
774
                        coloring = activeAnno.getColoring();
775
                        return true;
776
                    }
777
                }
778
                return false;
779
            }
780
781
//            if (LOG.isLoggable(Level.FINE)) {
782
//                LOG.log(Level.FINE, "anno: o=" + anno.getOffset() + ", l=" + anno.getLength() + ", wl=" + anno.isWholeLine()
783
//                    + ", m=" + mark + ", ctx-offset=" + ctx.getFragmentOffset() + '\n');
784
//            }
785
            if (anno.isWholeLine()) {
786
                try {
787
                    nextActivityOffset = Utilities.getRowEnd(doc, ctx.getFragmentOffset());
788
                } catch (BadLocationException ble) {
789
                    LOG.log(Level.FINE, null, ble);
790
                    return false;
791
                }
792
            } else {
793
                if (ctx.getFragmentOffset() < anno.getOffset()) { // Queried below annotation start
794
                    setNextActivityChangeOffset(anno.getOffset());
795
                    return false;
796
                }
797
                nextActivityOffset = anno.getOffset() + anno.getLength();
798
                if (ctx.getFragmentOffset() >= nextActivityOffset) { // Queried above annotation end
799
                    try {
800
                        setNextActivityChangeOffset(Utilities.getRowEnd(doc, ctx.getFragmentOffset()));
801
                    } catch (BadLocationException ble) {
802
                        LOG.log(Level.FINE, null, ble);
803
                        return false;
804
                    }
805
                    return false;
806
                }
807
            }
808
            
809
            setNextActivityChangeOffset(nextActivityOffset);
810
            coloring = anno.getColoring();
811
            
812
//      The following code ensures that if active annotation does not 
813
//      have highlight the color of next one will be used.
814
//      It was decided that it will not be used
815
//            
816
//            if (coloring.getBackColor() == null) {
817
//                AnnotationDesc[] annos = doc.getAnnotations().getPasiveAnnotations(anno.getLine());
818
//                if (annos != null) {
819
//                    for (int i=0; i<annos.length; i++) {
820
//                        if (annos[i].getColoring().getBackColor() != null) {
821
//                            coloring = annos[i].getColoring();
822
//                            break;
823
//                        }
824
//                    }
825
//                }
826
//            }
827
            
828
            return true;
829
        }
830
831
        public void updateContext(DrawContext ctx) {
832
            if (coloring != null) {
833
                coloring.apply(ctx);
834
            }
835
        }
836
837
    }
838
839
    private static MarkFactory.DrawMark getFoldedMark(DrawEngineLineView view, String layerName) {
840
        BaseDocument doc = (BaseDocument)view.getDocument();
841
        int startPos = view.getStartOffset();
842
        int endPos = view.getEndOffset() - 1;
843
        MarkVector docMarksStorage = doc.marksStorage;
844
        synchronized (docMarksStorage) {
845
            int low = 0;
846
            int high = docMarksStorage.getMarkCount() - 1;
847
848
            while (low < high) { // Unlike regular binary search only iterate (low < high) - code below handles that correctly
849
                int mid = (low + high) >> 1;
850
                int cmp = docMarksStorage.getMarkOffsetInternal(mid) - endPos;
851
                if (cmp < 0)
852
                    low = mid + 1;
853
                else if (cmp > 0)
854
                    high = mid - 1;
855
                else { // found
856
                    while (++mid <= high && docMarksStorage.getMarkOffsetInternal(mid) == endPos) { }
857
                    low = high = mid - 1;
858
                }
859
            }
860
861
            while (low >= 0 && low < docMarksStorage.getMarkCount()) {
862
                MultiMark mm = (MultiMark)docMarksStorage.getMark(low--);
863
                if (mm.isValid() && mm.getOffset() <= endPos) {
864
                    if (mm.getOffset() < startPos) {
865
                        break;
866
                    }
867
                    Mark mrk = doc.marks.get(mm);
868
                    if (mrk instanceof MarkFactory.DrawMark && layerName.equals(((MarkFactory.DrawMark)mrk).layerName)) {
869
                        return (MarkFactory.DrawMark)mrk;
870
                    }
871
                }
872
            }
873
        }
874
875
        return null;
876
    }
877
}
(-)a/editor.lib/src/org/netbeans/editor/EditorUI.java (-58 / +105 lines)
 Lines 90-95    Link Here 
90
import org.netbeans.modules.editor.lib2.EditorPreferencesKeys;
90
import org.netbeans.modules.editor.lib2.EditorPreferencesKeys;
91
import org.netbeans.modules.editor.lib.KitsTracker;
91
import org.netbeans.modules.editor.lib.KitsTracker;
92
import org.netbeans.modules.editor.lib.SettingsConversions;
92
import org.netbeans.modules.editor.lib.SettingsConversions;
93
import org.netbeans.modules.editor.lib.drawing.EditorUiAccessor;
94
import org.netbeans.modules.editor.lib.drawing.HighlightingDrawLayer;
93
import org.openide.util.WeakListeners;
95
import org.openide.util.WeakListeners;
94
96
95
/**
97
/**
 Lines 156-164    Link Here 
156
    /** Document for the case ext ui is constructed without the component */
158
    /** Document for the case ext ui is constructed without the component */
157
    private BaseDocument printDoc;
159
    private BaseDocument printDoc;
158
160
159
    /** Draw layer chain */
160
    private DrawLayerList drawLayerList = new DrawLayerList();
161
162
    /** Map holding the [name, coloring] pairs */
161
    /** Map holding the [name, coloring] pairs */
163
    private ColoringMap coloringMap;
162
    private ColoringMap coloringMap;
164
163
 Lines 289-295    Link Here 
289
                     }
288
                     }
290
                 };
289
                 };
291
290
292
        HighlightingDrawLayer.hookUp(this);
293
        getToolTipSupport();
291
        getToolTipSupport();
294
    }
292
    }
295
293
 Lines 316-324    Link Here 
316
        setLineNumberEnabled(lineNumberEnabled);
314
        setLineNumberEnabled(lineNumberEnabled);
317
315
318
        updateLineNumberWidth(0);
316
        updateLineNumberWidth(0);
319
320
        drawLayerList.add(printDoc.getDrawLayerList());
321
        HighlightingDrawLayer.hookUp(this);
322
    }
317
    }
323
    
318
    
324
    /**
319
    /**
 Lines 366-372    Link Here 
366
        // initialize rendering hints
361
        // initialize rendering hints
367
        FontColorSettings fcs = MimeLookup.getLookup(mimePath).lookup(FontColorSettings.class);
362
        FontColorSettings fcs = MimeLookup.getLookup(mimePath).lookup(FontColorSettings.class);
368
        renderingHints = (Map<?, ?>) fcs.getFontColors(FontColorNames.DEFAULT_COLORING).getAttribute(EditorStyleConstants.RenderingHints);
363
        renderingHints = (Map<?, ?>) fcs.getFontColors(FontColorNames.DEFAULT_COLORING).getAttribute(EditorStyleConstants.RenderingHints);
369
        
364
365
        // Initialize draw layers
366
        HighlightingDrawLayer.hookUp(c);
367
370
        synchronized (getComponentLock()) {
368
        synchronized (getComponentLock()) {
371
            this.component = c;
369
            this.component = c;
372
            
370
            
 Lines 562-578    Link Here 
562
    }
560
    }
563
561
564
    protected void modelChanged(BaseDocument oldDoc, BaseDocument newDoc) {
562
    protected void modelChanged(BaseDocument oldDoc, BaseDocument newDoc) {
565
        if (oldDoc != null) {
566
            // remove all document layers
567
            drawLayerList.remove(oldDoc.getDrawLayerList());
568
        }
569
570
        if (newDoc != null) {
563
        if (newDoc != null) {
571
            coloringMap = ColoringMap.get(Utilities.getMimeType(newDoc));
564
            coloringMap = ColoringMap.get(Utilities.getMimeType(newDoc));
572
            listener.preferenceChange(null);
565
            listener.preferenceChange(null);
573
566
574
            // add all document layers
575
            drawLayerList.add(newDoc.getDrawLayerList());
576
            checkUndoManager(newDoc);
567
            checkUndoManager(newDoc);
577
        }
568
        }
578
    }
569
    }
 Lines 963-1011    Link Here 
963
        return statusBar;
954
        return statusBar;
964
    }
955
    }
965
    
956
    
966
967
    final DrawLayerList getDrawLayerList() {
968
        return drawLayerList;
969
    }
970
971
    /** 
972
     * Find the layer with some layer name in the layer hierarchy.
973
     * 
974
     * <p>Using of <code>DrawLayer</code>s has been deprecated.
975
     * 
976
     * @deprecated Please use Highlighting SPI instead, for details see
977
     *   <a href="@org-netbeans-modules-editor-lib2@/overview-summary.html">Editor Library 2</a>.
978
     */
979
    public DrawLayer findLayer(String layerName) {
980
        return drawLayerList.findLayer(layerName);
981
    }
982
983
    /** 
984
     * Add new layer and use its priority to position it in the chain.
985
     * If there's the layer with same visibility then the inserted layer
986
     * will be placed after it.
987
     *
988
     * <p>Using of <code>DrawLayer</code>s has been deprecated.
989
     * 
990
     * @param layer layer to insert into the chain
991
     * 
992
     * @deprecated Please use Highlighting SPI instead, for details see
993
     *   <a href="@org-netbeans-modules-editor-lib2@/overview-summary.html">Editor Library 2</a>.
994
     */
995
    public boolean addLayer(DrawLayer layer, int visibility) {
996
        return drawLayerList.add(layer, visibility);
997
    }
998
999
    /**
1000
     * Using of <code>DrawLayer</code>s has been deprecated.
1001
     * 
1002
     * @deprecated Please use Highlighting SPI instead, for details see
1003
     *   <a href="@org-netbeans-modules-editor-lib2@/overview-summary.html">Editor Library 2</a>.
1004
     */
1005
    public DrawLayer removeLayer(String layerName) {
1006
        return drawLayerList.remove(layerName);
1007
    }
1008
1009
    public void repaint(int startY) {
957
    public void repaint(int startY) {
1010
        repaint(startY, component.getHeight());
958
        repaint(startY, component.getHeight());
1011
    }
959
    }
 Lines 1767-1770    Link Here 
1767
    public void setPopupMenu(JPopupMenu popupMenu) {
1715
    public void setPopupMenu(JPopupMenu popupMenu) {
1768
        this.popupMenu = popupMenu;
1716
        this.popupMenu = popupMenu;
1769
    }
1717
    }
1718
1719
    static {
1720
        EditorUiAccessor.register(new Accessor());
1721
    }
1722
1723
    private static final class Accessor extends EditorUiAccessor {
1724
1725
        @Override
1726
        public boolean isLineNumberVisible(EditorUI eui) {
1727
            return eui.lineNumberVisible;
1728
        }
1729
1730
        @Override
1731
        public Coloring getColoring(EditorUI eui, String coloringName) {
1732
            return eui.getColoring(coloringName);
1733
        }
1734
1735
        @Override
1736
        public int getLineNumberMaxDigitCount(EditorUI eui) {
1737
            return eui.lineNumberMaxDigitCount;
1738
        }
1739
1740
        @Override
1741
        public int getLineNumberWidth(EditorUI eui) {
1742
            return eui.lineNumberWidth;
1743
        }
1744
1745
        @Override
1746
        public int getLineNumberDigitWidth(EditorUI eui) {
1747
            return eui.lineNumberDigitWidth;
1748
        }
1749
1750
        @Override
1751
        public Insets getLineNumberMargin(EditorUI eui) {
1752
            return eui.getLineNumberMargin();
1753
        }
1754
1755
        @Override
1756
        public int getLineHeight(EditorUI eui) {
1757
            return eui.getLineHeight();
1758
        }
1759
1760
        @Override
1761
        public Coloring getDefaultColoring(EditorUI eui) {
1762
            return eui.getDefaultColoring();
1763
        }
1764
1765
        @Override
1766
        public int getDefaultSpaceWidth(EditorUI eui) {
1767
            return eui.defaultSpaceWidth;
1768
        }
1769
1770
        @Override
1771
        public Map<?, ?> getRenderingHints(EditorUI eui) {
1772
            return eui.renderingHints;
1773
        }
1774
1775
        @Override
1776
        public Rectangle getExtentBounds(EditorUI eui) {
1777
            return eui.getExtentBounds();
1778
        }
1779
1780
        @Override
1781
        public Insets getTextMargin(EditorUI eui) {
1782
            return eui.getTextMargin();
1783
        }
1784
1785
        @Override
1786
        public int getTextLeftMarginWidth(EditorUI eui) {
1787
            return eui.textLeftMarginWidth;
1788
        }
1789
1790
        @Override
1791
        public boolean getTextLimitLineVisible(EditorUI eui) {
1792
            return eui.textLimitLineVisible;
1793
        }
1794
1795
        @Override
1796
        public Color getTextLimitLineColor(EditorUI eui) {
1797
            return eui.getTextLimitLineColor();
1798
        }
1799
1800
        @Override
1801
        public int getTextLimitWidth(EditorUI eui) {
1802
            return eui.textLimitWidth;
1803
        }
1804
1805
        @Override
1806
        public int getLineAscent(EditorUI eui) {
1807
            return eui.getLineAscent();
1808
        }
1809
1810
        @Override
1811
        public void paint(EditorUI eui, Graphics g) {
1812
            eui.paint(g);
1813
        }
1814
1815
    } // End of Accessor class
1816
    
1770
}
1817
}
(-)a/editor.lib/src/org/netbeans/editor/GuardedDocument.java (-107 / +26 lines)
 Lines 42-48    Link Here 
42
package org.netbeans.editor;
42
package org.netbeans.editor;
43
43
44
import java.text.MessageFormat;
44
import java.text.MessageFormat;
45
import java.util.Hashtable;
46
import java.util.Enumeration;
45
import java.util.Enumeration;
47
import java.awt.Color;
46
import java.awt.Color;
48
import java.awt.Font;
47
import java.awt.Font;
 Lines 105-113    Link Here 
105
    /** Style context to hold the styles */
104
    /** Style context to hold the styles */
106
    protected StyleContext styles;
105
    protected StyleContext styles;
107
106
108
    /** Style to layer name mapping */
109
    protected Hashtable stylesToLayers;
110
111
    /** Name of the normal style. The normal style is used to reset the effect
107
    /** Name of the normal style. The normal style is used to reset the effect
112
    * of all styles applied to the line.
108
    * of all styles applied to the line.
113
    */
109
    */
 Lines 169-175    Link Here 
169
    
165
    
170
    private void init(StyleContext styles) {
166
    private void init(StyleContext styles) {
171
        this.styles = styles;
167
        this.styles = styles;
172
        stylesToLayers = new Hashtable(5);
173
        guardedBlockChain = new MarkBlockChain(this) {
168
        guardedBlockChain = new MarkBlockChain(this) {
174
            protected @Override Mark createBlockStartMark() {
169
            protected @Override Mark createBlockStartMark() {
175
                MarkFactory.ContextMark startMark = new MarkFactory.ContextMark(Position.Bias.Forward, false);
170
                MarkFactory.ContextMark startMark = new MarkFactory.ContextMark(Position.Bias.Forward, false);
 Lines 300-316    Link Here 
300
        }
295
        }
301
    }
296
    }
302
297
303
    public void setCharacterAttributes(int offset, int length, AttributeSet attribs, boolean replace) {
304
        if (((Boolean)attribs.getAttribute(GUARDED_ATTRIBUTE)).booleanValue() == true) {
305
            guardedBlockChain.addBlock(offset, offset + length, false); // no concat
306
            fireChangedUpdate(getDocumentEvent(offset, length, DocumentEvent.EventType.CHANGE, attribs));
307
        }
308
        if (((Boolean)attribs.getAttribute(GUARDED_ATTRIBUTE)).booleanValue() == false) {
309
            guardedBlockChain.removeBlock(offset, offset + length);
310
            fireChangedUpdate(getDocumentEvent(offset, length, DocumentEvent.EventType.CHANGE, attribs));
311
        }
312
    }
313
314
    public @Override void runAtomic(Runnable r) {
298
    public @Override void runAtomic(Runnable r) {
315
        if (debugAtomic) {
299
        if (debugAtomic) {
316
            System.out.println("GuardedDocument.runAtomic() called"); // NOI18N
300
            System.out.println("GuardedDocument.runAtomic() called"); // NOI18N
 Lines 376-405    Link Here 
376
        return new GuardedDocumentEvent(this, offset, length, type);
360
        return new GuardedDocumentEvent(this, offset, length, type);
377
    }
361
    }
378
362
363
    /** Set the name for normal style. Normal style is used to reset the effect
364
    * of all aplied styles.
365
    */
366
    public void setNormalStyleName(String normalStyleName) {
367
        this.normalStyleName = normalStyleName;
368
    }
369
370
    /** Fetches the list of style names */
371
    public Enumeration getStyleNames() {
372
        return styles.getStyleNames();
373
    }
374
375
    // ------------------------------------------------------------------------
376
    // StyleDocument implementation
377
    // ------------------------------------------------------------------------
378
379
    /** Adds style to the document */
379
    /** Adds style to the document */
380
    public Style addStyle(String styleName, Style parent) {
380
    public Style addStyle(String styleName, Style parent) {
381
        String layerName = (String)stylesToLayers.get(styleName);
382
        if (layerName == null) {
383
            layerName = styleName; // same layer name as style name
384
            addStyleToLayerMapping(styleName, layerName);
385
        }
386
387
        Style style =  styles.addStyle(styleName, parent);
381
        Style style =  styles.addStyle(styleName, parent);
388
        if (findLayer(layerName) == null) { // not created by default
389
            readLock();
390
            try {
391
                addStyledLayer(layerName, style);
392
            } finally {
393
                readUnlock();
394
            }
395
        }
396
        return style;
382
        return style;
397
    }
383
    }
398
384
399
    public void addStyleToLayerMapping(String styleName, String layerName) {
400
        stylesToLayers.put(styleName, layerName);
401
    }
402
403
    /** Removes style from document */
385
    /** Removes style from document */
404
    public void removeStyle(String styleName) {
386
    public void removeStyle(String styleName) {
405
        styles.removeStyle(styleName);
387
        styles.removeStyle(styleName);
 Lines 410-425    Link Here 
410
        return styles.getStyle(styleName);
392
        return styles.getStyle(styleName);
411
    }
393
    }
412
394
413
    /** Set the name for normal style. Normal style is used to reset the effect
395
    public void setCharacterAttributes(int offset, int length, AttributeSet attribs, boolean replace) {
414
    * of all aplied styles.
396
        if (((Boolean)attribs.getAttribute(GUARDED_ATTRIBUTE)).booleanValue() == true) {
415
    */
397
            guardedBlockChain.addBlock(offset, offset + length, false); // no concat
416
    public void setNormalStyleName(String normalStyleName) {
398
            fireChangedUpdate(getDocumentEvent(offset, length, DocumentEvent.EventType.CHANGE, attribs));
417
        this.normalStyleName = normalStyleName;
399
        }
418
    }
400
        if (((Boolean)attribs.getAttribute(GUARDED_ATTRIBUTE)).booleanValue() == false) {
419
401
            guardedBlockChain.removeBlock(offset, offset + length);
420
    /** Fetches the list of style names */
402
            fireChangedUpdate(getDocumentEvent(offset, length, DocumentEvent.EventType.CHANGE, attribs));
421
    public Enumeration getStyleNames() {
403
        }
422
        return styles.getStyleNames();
423
    }
404
    }
424
405
425
    /** Change attributes for part of the text.  */
406
    /** Change attributes for part of the text.  */
 Lines 440-488    Link Here 
440
     * @param s the style to set
421
     * @param s the style to set
441
     */
422
     */
442
    public void setLogicalStyle(int pos, Style s) {
423
    public void setLogicalStyle(int pos, Style s) {
443
        readLock();
444
        try {
445
            pos = Utilities.getRowStart(this, pos);
446
            String layerName = (String)stylesToLayers.get(s.getName());
447
            // remove all applied styles
448
            DrawLayer[] layerArray = getDrawLayerList().currentLayers();
449
            for (int i = 0; i < layerArray.length; i++) {
450
                if (layerArray[i] instanceof DrawLayerFactory.StyleLayer) {
451
                    ((DrawLayerFactory.StyleLayer)layerArray[i]).markChain.removeMark(pos);
452
                }
453
            }
454
            // now set the requested style
455
            DrawLayerFactory.StyleLayer styleLayer
456
            = (DrawLayerFactory.StyleLayer)findLayer(layerName);
457
            if (styleLayer != null) {
458
                styleLayer.markChain.addMark(pos);
459
            }
460
            fireChangedUpdate(getDocumentEvent(
461
                pos, 0, DocumentEvent.EventType.CHANGE, null)); // enough to say length 0
462
        } catch (BadLocationException e) {
463
            // do nothing for invalid positions
464
        } finally {
465
            readUnlock();
466
        }
467
    }
424
    }
468
425
469
    /** Get logical style for position in paragraph */
426
    /** Get logical style for position in paragraph */
470
    public Style getLogicalStyle(int pos) {
427
    public Style getLogicalStyle(int pos) {
471
        try {
428
        return null;
472
            pos = Utilities.getRowStart(this, pos);
473
            DrawLayer[] layerArray = getDrawLayerList().currentLayers();
474
            for (int i = 0; i < layerArray.length; i++) {
475
                DrawLayer layer = layerArray[i];
476
                if (layer instanceof DrawLayerFactory.StyleLayer) {
477
                    if (((DrawLayerFactory.StyleLayer)layer).markChain.isMark(pos)) {
478
                        return ((DrawLayerFactory.StyleLayer)layer).style;
479
                    }
480
                }
481
            }
482
            return getStyle(normalStyleName); // no style found
483
        } catch (BadLocationException e) {
484
            return null;
485
        }
486
    }
429
    }
487
430
488
    /**
431
    /**
 Lines 534-565    Link Here 
534
        return new Font("Default",Font.BOLD,12); // NOI18N
477
        return new Font("Default",Font.BOLD,12); // NOI18N
535
    }
478
    }
536
479
537
    /**
538
     * Using of <code>DrawLayer</code>s has been deprecated.
539
     * 
540
     * @deprecated Please use Highlighting SPI instead, for details see
541
     *   <a href="@org-netbeans-modules-editor-lib2@/overview-summary.html">Editor Library 2</a>.
542
     */
543
    protected DrawLayer addStyledLayer(String layerName, Style style) {
544
        if (layerName != null) {
545
            try {
546
                int indColon = layerName.indexOf(':'); //NOI18N
547
                int layerVisibility = Integer.parseInt(layerName.substring(indColon + 1));
548
                DrawLayer layer = new DrawLayerFactory.StyleLayer(layerName, this, style);
549
550
                addLayer(layer, layerVisibility);
551
                return layer;
552
553
            } catch (NumberFormatException e) {
554
                // wrong name, let it pass
555
            }
556
        }
557
        return null;
558
    }
559
560
    public @Override String toStringDetail() {
480
    public @Override String toStringDetail() {
561
        return super.toStringDetail()
481
        return super.toStringDetail()
562
               + getDrawLayerList()
563
               + ",\nGUARDED blocks:\n" + guardedBlockChain; // NOI18N
482
               + ",\nGUARDED blocks:\n" + guardedBlockChain; // NOI18N
564
    }
483
    }
565
484
(-)a/editor.lib/src/org/netbeans/editor/LeafView.java (-13 / +17 lines)
 Lines 51-56    Link Here 
51
import javax.swing.text.BadLocationException;
51
import javax.swing.text.BadLocationException;
52
import javax.swing.text.Document;
52
import javax.swing.text.Document;
53
import javax.swing.event.DocumentEvent;
53
import javax.swing.event.DocumentEvent;
54
import org.netbeans.modules.editor.lib.drawing.DrawContext;
55
import org.netbeans.modules.editor.lib.drawing.DrawEngine;
56
import org.netbeans.modules.editor.lib.drawing.DrawGraphics;
54
57
55
/**
58
/**
56
* Leaf view implementation. This corresponds and requires leaf element
59
* Leaf view implementation. This corresponds and requires leaf element
 Lines 103-119    Link Here 
103
    protected int mainHeight;
106
    protected int mainHeight;
104
107
105
    /** Draw graphics for converting position to coords */
108
    /** Draw graphics for converting position to coords */
106
    ModelToViewDG modelToViewDG = new ModelToViewDG();
109
    final ModelToViewDG modelToViewDG = new ModelToViewDG();
107
110
108
    /** Draw graphics for converting coords to position */
111
    /** Draw graphics for converting coords to position */
109
    ViewToModelDG viewToModelDG = new ViewToModelDG();
112
    final ViewToModelDG viewToModelDG = new ViewToModelDG();
110
113
111
    /** Construct new base view */
114
    /** Construct new base view */
112
    public LeafView(Element elem) {
115
    public LeafView(Element elem) {
113
        super(elem);
116
        super(elem);
114
    }
117
    }
115
118
116
    public void setParent(View parent) {
119
    public @Override void setParent(View parent) {
117
        super.setParent(parent);
120
        super.setParent(parent);
118
        
121
        
119
        if (getParent() != null) {
122
        if (getParent() != null) {
 Lines 173-179    Link Here 
173
                    int pos = getPosFromY(clipY + clipHeight - 1);
176
                    int pos = getPosFromY(clipY + clipHeight - 1);
174
                    int endPos = Utilities.getRowEnd(doc, pos);
177
                    int endPos = Utilities.getRowEnd(doc, pos);
175
                    int baseY = getYFromPos(startPos);
178
                    int baseY = getYFromPos(startPos);
176
                    DrawEngine.getDrawEngine().draw(new DrawGraphics.GraphicsDG(g),
179
                    DrawEngine.getDrawEngine().draw(
180
                        new DrawGraphics.GraphicsDG(g),
177
                        editorUI, startPos, endPos,
181
                        editorUI, startPos, endPos,
178
                        getBaseX(baseY), baseY, Integer.MAX_VALUE
182
                        getBaseX(baseY), baseY, Integer.MAX_VALUE
179
                    );
183
                    );
 Lines 249-265    Link Here 
249
    }
253
    }
250
254
251
    /** Returns the number of child views in this view. */
255
    /** Returns the number of child views in this view. */
252
    public final int getViewCount() {
256
    public @Override final int getViewCount() {
253
        return 0;
257
        return 0;
254
    }
258
    }
255
259
256
    /** Gets the n-th child view.  */
260
    /** Gets the n-th child view.  */
257
    public final View getView(int n) {
261
    public @Override final View getView(int n) {
258
        return null;
262
        return null;
259
    }
263
    }
260
264
261
    /** !!! osetrit konec view -> jump na dalsi v branchview */
265
    /** !!! osetrit konec view -> jump na dalsi v branchview */
262
    public int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a,
266
    public @Override int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a,
263
                                         int direction, Position.Bias[] biasRet)
267
                                         int direction, Position.Bias[] biasRet)
264
    throws BadLocationException {
268
    throws BadLocationException {
265
        if (biasRet != null) {
269
        if (biasRet != null) {
 Lines 342-348    Link Here 
342
        return ret;
346
        return ret;
343
    }
347
    }
344
348
345
    public Shape modelToView(int p0, Position.Bias b0, int p1, Position.Bias b1,
349
    public @Override Shape modelToView(int p0, Position.Bias b0, int p1, Position.Bias b1,
346
                             Shape a) throws BadLocationException {
350
                             Shape a) throws BadLocationException {
347
        Rectangle r0 = (Rectangle)modelToView(p0, a, b0);
351
        Rectangle r0 = (Rectangle)modelToView(p0, a, b0);
348
        Rectangle r1 = (Rectangle)modelToView(p1, a, b1);
352
        Rectangle r1 = (Rectangle)modelToView(p1, a, b1);
 Lines 413-419    Link Here 
413
    * @param a the current allocation of the view
417
    * @param a the current allocation of the view
414
    * @param f the factory to use to rebuild if the view has children
418
    * @param f the factory to use to rebuild if the view has children
415
    */
419
    */
416
    public void insertUpdate(DocumentEvent evt, Shape a, ViewFactory f) {
420
    public @Override void insertUpdate(DocumentEvent evt, Shape a, ViewFactory f) {
417
        try {
421
        try {
418
            BaseDocumentEvent bevt = (BaseDocumentEvent)evt;
422
            BaseDocumentEvent bevt = (BaseDocumentEvent)evt;
419
            EditorUI editorUI = getEditorUI();
423
            EditorUI editorUI = getEditorUI();
 Lines 449-455    Link Here 
449
    * @param a the current allocation of the view
453
    * @param a the current allocation of the view
450
    * @param f the factory to use to rebuild if the view has children
454
    * @param f the factory to use to rebuild if the view has children
451
    */
455
    */
452
    public void removeUpdate(DocumentEvent evt, Shape a, ViewFactory f) {
456
    public @Override void removeUpdate(DocumentEvent evt, Shape a, ViewFactory f) {
453
        try {
457
        try {
454
            BaseDocumentEvent bevt = (BaseDocumentEvent)evt;
458
            BaseDocumentEvent bevt = (BaseDocumentEvent)evt;
455
            EditorUI editorUI = getEditorUI();
459
            EditorUI editorUI = getEditorUI();
 Lines 482-488    Link Here 
482
    * @param a the current allocation of the view
486
    * @param a the current allocation of the view
483
    * @param f the factory to use to rebuild if the view has children
487
    * @param f the factory to use to rebuild if the view has children
484
    */
488
    */
485
    public void changedUpdate(DocumentEvent evt, Shape a, ViewFactory f) {
489
    public @Override void changedUpdate(DocumentEvent evt, Shape a, ViewFactory f) {
486
        try {
490
        try {
487
            if (getComponent().isShowing()) {
491
            if (getComponent().isShowing()) {
488
                getEditorUI().repaintBlock(evt.getOffset(), evt.getOffset() + evt.getLength());
492
                getEditorUI().repaintBlock(evt.getOffset(), evt.getOffset() + evt.getLength());
 Lines 501-507    Link Here 
501
505
502
        Rectangle r;
506
        Rectangle r;
503
507
504
        public boolean targetOffsetReached(int pos, char ch, int x,
508
        public @Override boolean targetOffsetReached(int pos, char ch, int x,
505
                                           int charWidth, DrawContext ctx) {
509
                                           int charWidth, DrawContext ctx) {
506
            r.x = x;
510
            r.x = x;
507
            r.y = getY();
511
            r.y = getY();
 Lines 533-539    Link Here 
533
            return offset;
537
            return offset;
534
        }
538
        }
535
539
536
        public boolean targetOffsetReached(int offset, char ch, int x,
540
        public @Override boolean targetOffsetReached(int offset, char ch, int x,
537
        int charWidth, DrawContext ctx) {
541
        int charWidth, DrawContext ctx) {
538
            if (offset <= eolOffset) {
542
            if (offset <= eolOffset) {
539
                if (x + charWidth < targetX) {
543
                if (x + charWidth < targetX) {
(-)a/editor.lib/src/org/netbeans/editor/Mark.java (+1 lines)
 Lines 48-53    Link Here 
48
import javax.swing.text.Element;
48
import javax.swing.text.Element;
49
import javax.swing.text.Position;
49
import javax.swing.text.Position;
50
import javax.swing.text.Position.Bias;
50
import javax.swing.text.Position.Bias;
51
import org.netbeans.modules.editor.lib.impl.MultiMark;
51
52
52
/**
53
/**
53
* Marks hold the relative position in the document.
54
* Marks hold the relative position in the document.
(-)a/editor.lib/src/org/netbeans/editor/MarkBlockChain.java (-28 / +1 lines)
 Lines 44-50    Link Here 
44
import java.beans.PropertyChangeListener;
44
import java.beans.PropertyChangeListener;
45
import java.beans.PropertyChangeSupport;
45
import java.beans.PropertyChangeSupport;
46
import javax.swing.text.BadLocationException;
46
import javax.swing.text.BadLocationException;
47
import javax.swing.text.Position;
48
47
49
/**
48
/**
50
* Support class for chain of MarkBlocks
49
* Support class for chain of MarkBlocks
 Lines 354-386    Link Here 
354
        return pos;
353
        return pos;
355
    }
354
    }
356
355
357
    public static class LayerChain extends MarkBlockChain {
356
    public @Override String toString() {
358
359
        private String layerName;
360
361
        public LayerChain(BaseDocument doc, String layerName) {
362
            super(doc);
363
            this.layerName = layerName;
364
        }
365
366
        public final String getLayerName() {
367
            return layerName;
368
        }
369
370
        protected Mark createBlockStartMark() {
371
            MarkFactory.DrawMark startMark = new MarkFactory.DrawMark(layerName, null);
372
            startMark.activateLayer = true;
373
            return startMark;
374
        }
375
376
        protected Mark createBlockEndMark() {
377
            MarkFactory.DrawMark endMark = new MarkFactory.DrawMark(layerName, null, Position.Bias.Backward);
378
            return endMark;
379
        }
380
381
    }
382
383
    public String toString() {
384
        return "MarkBlockChain: currentBlock=" + currentBlock + "\nblock chain: " // NOI18N
357
        return "MarkBlockChain: currentBlock=" + currentBlock + "\nblock chain: " // NOI18N
385
               + (chain != null ? ("\n" + chain.toStringChain()) : " Empty"); // NOI18N
358
               + (chain != null ? ("\n" + chain.toStringChain()) : " Empty"); // NOI18N
386
    }
359
    }
(-)a/editor.lib/src/org/netbeans/editor/MarkFactory.java (-174 / +1 lines)
 Lines 41-47    Link Here 
41
41
42
package org.netbeans.editor;
42
package org.netbeans.editor;
43
43
44
import java.lang.ref.WeakReference;
45
import javax.swing.text.Position;
44
import javax.swing.text.Position;
46
45
47
/**
46
/**
 Lines 97-103    Link Here 
97
        }
96
        }
98
97
99
        /** When removal occurs */
98
        /** When removal occurs */
100
        protected void removeUpdateAction(int pos, int len) {
99
        protected @Override void removeUpdateAction(int pos, int len) {
101
            try {
100
            try {
102
                remove();
101
                remove();
103
            } catch (InvalidMarkException e) {
102
            } catch (InvalidMarkException e) {
 Lines 124-299    Link Here 
124
123
125
    }
124
    }
126
125
127
    /** Activation mark for particular layer. When layer is not active
128
    * its updateContext() method is not called.
129
    */
130
    public static class DrawMark extends ContextMark {
131
132
        /** Activation flag means either activate layer or deactivate it */
133
        protected boolean activateLayer;
134
135
        /** Reference to draw layer this mark belogns to */
136
        String layerName;
137
138
        /** Reference to extended UI if this draw mark is info-specific or
139
        * null if it's document-wide.
140
        */
141
        WeakReference editorUIRef;
142
143
        public DrawMark(String layerName, EditorUI editorUI) {
144
            this(layerName, editorUI, Position.Bias.Forward);
145
        }
146
        
147
        public DrawMark(String layerName, EditorUI editorUI, Position.Bias bias) {
148
            super(bias, false);
149
            this.layerName = layerName;
150
            setEditorUI(editorUI);
151
        }
152
153
        public boolean isDocumentMark() {
154
            return (editorUIRef == null);
155
        }
156
157
        public EditorUI getEditorUI() {
158
            if (editorUIRef != null) {
159
                return (EditorUI)editorUIRef.get();
160
            }
161
            return null;
162
        }
163
164
        public void setEditorUI(EditorUI editorUI) {
165
            this.editorUIRef = (editorUI != null) ? new WeakReference(editorUI) : null;
166
        }
167
168
        public boolean isValidUI() {
169
            return !(editorUIRef != null && editorUIRef.get() == null);
170
        }
171
172
        public void setActivateLayer(boolean activateLayer) {
173
            this.activateLayer = activateLayer;
174
        }
175
176
        public boolean getActivateLayer() {
177
            return activateLayer;
178
        }
179
180
        public boolean removeInvalid() {
181
            if (!isValidUI() && isValid()) {
182
                try {
183
                    this.remove();
184
                } catch (InvalidMarkException e) {
185
                    throw new IllegalStateException(e.toString());
186
                }
187
                return true; // invalid and removed
188
            }
189
            return false; // valid
190
        }
191
192
        public String toString() {
193
            try {
194
                return "pos=" + getOffset() + ", line=" + getLine(); // NOI18N
195
            } catch (InvalidMarkException e) {
196
                return "mark not valid"; // NOI18N
197
            }
198
        }
199
200
    }
201
202
    /** Support for draw marks chained in double linked list */
203
    public static class ChainDrawMark extends DrawMark {
204
205
        /** Next mark in chain */
206
        protected ChainDrawMark next;
207
208
        /** Previous mark in chain */
209
        protected ChainDrawMark prev;
210
211
        public ChainDrawMark(String layerName, EditorUI editorUI) {
212
            this(layerName, editorUI, Position.Bias.Forward);
213
        }
214
        
215
        public ChainDrawMark(String layerName, EditorUI editorUI, Position.Bias bias) {
216
            super(layerName, editorUI, bias);
217
        }
218
219
        public final ChainDrawMark getNext() {
220
            return next;
221
        }
222
223
        public final void setNext(ChainDrawMark mark) {
224
            next = mark;
225
        }
226
227
        /** Set next mark in chain */
228
        public void setNextChain(ChainDrawMark mark) {
229
            this.next = mark;
230
            if (mark != null) {
231
                mark.prev = this;
232
            }
233
        }
234
235
        public final ChainDrawMark getPrev() {
236
            return prev;
237
        }
238
239
        public final void setPrev(ChainDrawMark mark) {
240
            prev = mark;
241
        }
242
243
        /** Set previous mark in chain */
244
        public void setPrevChain(ChainDrawMark mark) {
245
            this.prev = mark;
246
            if (mark != null) {
247
                mark.next = this;
248
            }
249
        }
250
251
        /** Insert mark before this one in chain
252
        * @return inserted mark
253
        */
254
        public ChainDrawMark insertChain(ChainDrawMark mark) {
255
            ChainDrawMark thisPrev = this.prev;
256
            mark.prev = thisPrev;
257
            mark.next = this;
258
            if (thisPrev != null) {
259
                thisPrev.next = mark;
260
            }
261
            this.prev = mark;
262
            return mark;
263
        }
264
265
        /** Remove this mark from the chain
266
        * @return next chain member or null for end of chain
267
        */
268
        public ChainDrawMark removeChain() {
269
            ChainDrawMark thisNext = this.next;
270
            ChainDrawMark thisPrev = this.prev;
271
            if (thisPrev != null) { // not the first
272
                thisPrev.next = thisNext;
273
                this.prev = null;
274
            }
275
            if (thisNext != null) { // not the last
276
                thisNext.prev = thisPrev;
277
                this.next = null;
278
            }
279
            try {
280
                this.remove(); // remove the mark from DocMarks
281
            } catch (InvalidMarkException e) {
282
                // already removed
283
            }
284
            return thisNext;
285
        }
286
287
        public String toStringChain() {
288
            return toString() + (next != null ? "\n" + next.toStringChain() : ""); // NOI18N
289
        }
290
291
        public String toString() {
292
            return super.toString() + ", " // NOI18N
293
                   + ((prev != null) ? ((next != null) ? "chain member" // NOI18N
294
                            : "last member") : ((next != null) ? "first member" // NOI18N
295
                                                            : "standalone member")); // NOI18N
296
        }
297
298
    }
299
}
126
}
(-)a/editor.lib/src/org/netbeans/editor/Utilities.java (+1 lines)
 Lines 62-67    Link Here 
62
import org.netbeans.api.editor.EditorRegistry;
62
import org.netbeans.api.editor.EditorRegistry;
63
import org.netbeans.lib.editor.util.CharSequenceUtilities;
63
import org.netbeans.lib.editor.util.CharSequenceUtilities;
64
import org.netbeans.lib.editor.util.swing.DocumentUtilities;
64
import org.netbeans.lib.editor.util.swing.DocumentUtilities;
65
import org.netbeans.modules.editor.lib.drawing.DrawEngineDocView;
65
import org.netbeans.modules.editor.lib2.EditorPreferencesKeys;
66
import org.netbeans.modules.editor.lib2.EditorPreferencesKeys;
66
import org.openide.util.NbBundle;
67
import org.openide.util.NbBundle;
67
68
(-)a/editor.lib/src/org/netbeans/editor/ext/ExtCaret.java (-326 lines)
 Lines 52-267    Link Here 
52
52
53
public class ExtCaret extends BaseCaret {
53
public class ExtCaret extends BaseCaret {
54
54
55
    /** 
56
     * Highlight row draw layer name.
57
     * 
58
     * <p>Using <code>DrawLayer</code>s has been deprecated and this constant
59
     * has no longer any meaning.
60
     * 
61
     * @deprecated Please use Highlighting SPI instead, for details see
62
     *   <a href="@org-netbeans-modules-editor-lib2@/overview-summary.html">Editor Library 2</a>.
63
     */
64
    public static final String HIGHLIGHT_ROW_LAYER_NAME = "highlight-row-layer"; // NOI18N
65
66
    /**
67
     * Highlight row draw layer visibility.
68
     * 
69
     * <p>Using <code>DrawLayer</code>s has been deprecated and this constant
70
     * has no longer any meaning.
71
     * 
72
     * @deprecated Please use Highlighting SPI instead, for details see
73
     *   <a href="@org-netbeans-modules-editor-lib2@/overview-summary.html">Editor Library 2</a>.
74
     */
75
    public static final int HIGHLIGHT_ROW_LAYER_VISIBILITY = 2050;
76
77
    /** 
78
     * Highlight matching brace draw layer name
79
     * 
80
     * @deprecated Please use Braces Matching SPI instead, for details see
81
     *   <a href="@org-netbeans-modules-editor-bracesmatching@/overview-summary.html">Editor Braces Matching</a>.
82
     */
83
    public static final String HIGHLIGHT_BRACE_LAYER_NAME = "highlight-brace-layer"; // NOI18N
84
85
    /** 
86
     * Highlight matching brace draw layer visibility 
87
     * 
88
     * @deprecated Please use Braces Matching SPI instead, for details see
89
     *   <a href="@org-netbeans-modules-editor-bracesmatching@/overview-summary.html">Editor Braces Matching</a>.
90
     */
91
    public static final int HIGHLIGHT_BRACE_LAYER_VISIBILITY = 11000;
92
93
// XXX: remove
94
//    /** Highlight a brace matching character before the caret */
95
//    public static final int MATCH_BRACE_BEFORE = -1;
96
//    
97
//    /** Highlight a brace matching character after (at) the caret */
98
//    public static final int MATCH_BRACE_AFTER = 0;
99
//    
100
//    /** Highlight a brace matching character either before or after caret;
101
//        the character before takes precedence. */
102
//    public static final int MATCH_BRACE_EITHER = java.lang.Integer.MAX_VALUE;
103
//
104
//    /** Whether to hightlight the matching brace */
105
//    boolean highlightBrace;
106
//
107
//    /** Coloring used for highlighting the matching brace */
108
//    Coloring highlightBraceColoring;
109
//
110
//    /** Mark holding the starting position of the matching brace. */
111
//    MarkFactory.DrawMark highlightBraceStartMark;
112
//
113
//    /** Mark holding the ending position of the matching brace. */
114
//    MarkFactory.DrawMark highlightBraceEndMark;
115
//
116
//    /** Timer that fires when the matching brace should be displayed */
117
//    private Timer braceTimer;
118
//    private ActionListener braceTimerListener; // because of unwanted GC
119
//
120
//    /** Signal that the next matching brace update
121
//    * will be immediate without waiting for the brace
122
//    * timer to fire the action.
123
//    */
124
//    private boolean matchBraceUpdateSync;
125
//
126
//    /** Whether the brace starting and ending marks are currently valid or not.
127
//     * If they are not valid the block they delimit is not highlighted.
128
//     */
129
//    boolean braceMarksValid;
130
//
131
//    boolean simpleMatchBrace;
132
//
133
//    private int matchBraceOffset = MATCH_BRACE_EITHER;
134
    
135
    static final long serialVersionUID =-4292670043122577690L;
55
    static final long serialVersionUID =-4292670043122577690L;
136
56
137
// XXX: remove    
138
//    protected void modelChanged(BaseDocument oldDoc, BaseDocument newDoc) {
139
//        // Fix for #7108
140
//        braceMarksValid = false; // brace marks are out of date - new document
141
//        if (highlightBraceStartMark != null) {
142
//            try {
143
//                highlightBraceStartMark.remove();
144
//            } catch (InvalidMarkException e) {
145
//            }
146
//            highlightBraceStartMark = null;
147
//        }
148
//
149
//        if (highlightBraceEndMark != null) {
150
//            try {
151
//                highlightBraceEndMark.remove();
152
//            } catch (InvalidMarkException e) {
153
//            }
154
//            highlightBraceEndMark = null;
155
//        }
156
//
157
//        super.modelChanged( oldDoc, newDoc );
158
//    }
159
160
// XXX: remove
161
//    /** Called when settings were changed. The method is called
162
//    * also in constructor, so the code must count with the evt being null.
163
//    */
164
//    public void settingsChange(SettingsChangeEvent evt) {
165
//        super.settingsChange(evt);
166
//        JTextComponent c = component;
167
//        if (c != null) {
168
//            Class kitClass = Utilities.getKitClass(c);
169
//// XXX: remove
170
////            EditorUI editorUI = Utilities.getEditorUI(c);
171
////            highlightBraceColoring = editorUI.getColoring(
172
////                                           ExtSettingsNames.HIGHLIGHT_MATCH_BRACE_COLORING);
173
////
174
////            highlightBrace = SettingsUtil.getBoolean(kitClass,
175
////                               ExtSettingsNames.HIGHLIGHT_MATCH_BRACE,
176
////                               ExtSettingsDefaults.defaultHighlightMatchBrace);
177
////            int highlightBraceDelay = SettingsUtil.getInteger(kitClass,
178
////                                        ExtSettingsNames.HIGHLIGHT_MATCH_BRACE_DELAY,
179
////                                        ExtSettingsDefaults.defaultHighlightMatchBraceDelay);
180
////
181
////            if (highlightBrace) {
182
////                if (highlightBraceDelay > 0) {
183
////                    // jdk12 compiler doesn't allow inside run()
184
////                    final JTextComponent c2 = component;
185
////
186
////                    braceTimer = new Timer(highlightBraceDelay, null);
187
////                    braceTimerListener = 
188
////                         new ActionListener() {
189
////                             public void actionPerformed(ActionEvent evt2) {
190
////                                 SwingUtilities.invokeLater(
191
////                                     new Runnable() {
192
////                                         public void run() {
193
////                                             if (c2 != null) {
194
////                                                 BaseDocument doc = Utilities.getDocument(c2);
195
////                                                 if( doc != null ) {
196
////                                                     doc.readLock();
197
////                                                     try {
198
////                                                         updateMatchBrace();
199
////                                                     } finally {
200
////                                                         doc.readUnlock();
201
////                                                     }
202
////                                                 }
203
////                                             }
204
////                                         }
205
////                                     }
206
////                                 );
207
////                             }
208
////                         };
209
////                         
210
////                    braceTimer.addActionListener(new WeakTimerListener(braceTimerListener));
211
////                    braceTimer.setRepeats(false);
212
////                } else {
213
////                    braceTimer = null; // signal no delay
214
////                }
215
////                c.repaint();
216
////            }
217
////
218
////            simpleMatchBrace = SettingsUtil.getBoolean(kitClass,
219
////                                    ExtSettingsNames.CARET_SIMPLE_MATCH_BRACE,
220
////                                    ExtSettingsDefaults.defaultCaretSimpleMatchBrace);
221
////            
222
//            popupMenuEnabled = SettingsUtil.getBoolean(kitClass,
223
//                ExtSettingsNames.POPUP_MENU_ENABLED, true);
224
//        }
225
//    }
226
// XXX: remove
227
//    public void install(JTextComponent c) {
228
//        EditorUI editorUI = Utilities.getEditorUI(c);
229
//        editorUI.addLayer(new HighlightBraceLayer(), HIGHLIGHT_BRACE_LAYER_VISIBILITY);
230
//        super.install(c);
231
//    }
232
//
233
//    public void deinstall(JTextComponent c) {
234
//        EditorUI editorUI = Utilities.getEditorUI(c);
235
//        editorUI.removeLayer(HIGHLIGHT_BRACE_LAYER_NAME);
236
//        super.deinstall(c);
237
//    }
238
//    
239
//    /** Set the match brace offset.
240
//     * @param offset One of <code>MATCH_BRACE_BEFORE</code>,
241
//     * <code>MATCH_BRACE_AFTER</code> * or <code>MATCH_BRACE_EITHER</code>.
242
//     */
243
//    public void setMatchBraceOffset(int offset) {
244
//        if(offset != MATCH_BRACE_BEFORE && offset != MATCH_BRACE_AFTER
245
//           && offset != MATCH_BRACE_EITHER) {
246
//            throw new IllegalArgumentException("Offset "+ offset + " not allowed\n");
247
//        }
248
//        matchBraceOffset = offset;
249
//        BaseDocument doc = Utilities.getDocument(component);
250
//        if( doc != null ) {
251
//            doc.readLock();
252
//            try {
253
//                updateMatchBrace();
254
//            } finally {
255
//                doc.readUnlock();
256
//            }
257
//        }
258
//    }
259
//    
260
//    /** Fetch the match brace offset. */
261
//    public int getMatchBraceOffset() {
262
//        return matchBraceOffset;
263
//    }
264
265
    /** 
57
    /** 
266
     * Update the matching brace of the caret. The document is read-locked
58
     * Update the matching brace of the caret. The document is read-locked
267
     * while this method is called.
59
     * while this method is called.
 Lines 270-351    Link Here 
270
     *   <a href="@org-netbeans-modules-editor-bracesmatching@/overview-summary.html">Editor Braces Matching</a>.
62
     *   <a href="@org-netbeans-modules-editor-bracesmatching@/overview-summary.html">Editor Braces Matching</a>.
271
     */
63
     */
272
    protected void updateMatchBrace() {
64
    protected void updateMatchBrace() {
273
// XXX: remove
274
//        JTextComponent c = component;
275
//        if (c != null && highlightBrace) {
276
//            try {
277
//                EditorUI editorUI = Utilities.getEditorUI(c);
278
//                BaseDocument doc = (BaseDocument)c.getDocument();
279
//                int dotPos = getDot();
280
//                ExtSyntaxSupport sup = (ExtSyntaxSupport)doc.getSyntaxSupport();
281
//                boolean madeValid = false; // whether brace marks display were validated
282
//                int[] matchBlk = null;
283
//                if(dotPos > 0 && (matchBraceOffset == MATCH_BRACE_BEFORE
284
//                                  || matchBraceOffset == MATCH_BRACE_EITHER)) {
285
//                    matchBlk = sup.findMatchingBlock(dotPos - 1, simpleMatchBrace);
286
//                }
287
//                if(matchBlk == null && (matchBraceOffset == MATCH_BRACE_AFTER
288
//                                        || matchBraceOffset == MATCH_BRACE_EITHER)) {
289
//                    matchBlk = sup.findMatchingBlock(dotPos, simpleMatchBrace);
290
//                }
291
//                if (matchBlk != null) {
292
//                    if (highlightBraceStartMark != null) {
293
//                        int markStartPos = highlightBraceStartMark.getOffset();
294
//                        int markEndPos = highlightBraceEndMark.getOffset();
295
//                        if (markStartPos != matchBlk[0] || markEndPos != matchBlk[1]) {
296
//                            editorUI.repaintBlock(markStartPos, markEndPos);
297
//                            Utilities.moveMark(doc, highlightBraceStartMark, matchBlk[0]);
298
//                            Utilities.moveMark(doc, highlightBraceEndMark, matchBlk[1]);
299
//                            editorUI.repaintBlock(matchBlk[0], matchBlk[1]);
300
//                        } else { // on the same position
301
//                            if (!braceMarksValid) { // was not valid, must repaint
302
//                                editorUI.repaintBlock(matchBlk[0], matchBlk[1]);
303
//                            }
304
//                        }
305
//                    } else { // highlight mark is null
306
//                        highlightBraceStartMark = new MarkFactory.DrawMark(
307
//                                                    HIGHLIGHT_BRACE_LAYER_NAME, editorUI);
308
//                        highlightBraceEndMark = new MarkFactory.DrawMark(
309
//                                                    HIGHLIGHT_BRACE_LAYER_NAME, editorUI);
310
//                        highlightBraceStartMark.setActivateLayer(true);
311
//                        Utilities.insertMark(doc, highlightBraceStartMark, matchBlk[0]);
312
//                        Utilities.insertMark(doc, highlightBraceEndMark, matchBlk[1]);
313
//                        editorUI.repaintBlock(matchBlk[0], matchBlk[1]);
314
//                    }
315
//                    braceMarksValid = true;
316
//                    madeValid = true;
317
//                }
318
//
319
//                if (!madeValid) {
320
//                    if (braceMarksValid) {
321
//                        braceMarksValid = false;
322
//                        editorUI.repaintBlock(highlightBraceStartMark.getOffset(),
323
//                                highlightBraceEndMark.getOffset());
324
//                    }
325
//                }
326
//            } catch (BadLocationException e) {
327
//                Utilities.annotateLoggable(e);
328
//                highlightBrace = false;
329
//            } catch (InvalidMarkException e) {
330
//                Utilities.annotateLoggable(e);
331
//                highlightBrace = false;
332
//            }
333
//        }
334
    }
65
    }
335
// XXX: remove
336
//    protected void update(boolean scrollViewToCaret) {
337
//        if (highlightBrace) {
338
//            if (matchBraceUpdateSync || braceTimer == null) {
339
//                updateMatchBrace();
340
//                matchBraceUpdateSync = false;
341
//
342
//            } else { // delay the brace update
343
//                braceTimer.restart();
344
//            }
345
//        }
346
//
347
//        super.update(scrollViewToCaret);
348
//    }
349
66
350
    /** 
67
    /** 
351
     * Signal that the next matching brace update
68
     * Signal that the next matching brace update
 Lines 357-405    Link Here 
357
     *   <a href="@org-netbeans-modules-editor-bracesmatching@/overview-summary.html">Editor Braces Matching</a>.
74
     *   <a href="@org-netbeans-modules-editor-bracesmatching@/overview-summary.html">Editor Braces Matching</a>.
358
     */
75
     */
359
    public void requestMatchBraceUpdateSync() {
76
    public void requestMatchBraceUpdateSync() {
360
// XXX: remove
361
//        matchBraceUpdateSync = true;
362
    }
77
    }
363
    
78
    
364
// XXX: remove
365
//    /* package */ static boolean NO_HIGHLIGHT_BRACE_LAYER = Boolean.getBoolean("nbeditor-no-HighlightBraceLayer");
366
//    
367
//    /** 
368
//     * Draw layer to highlight the matching brace.
369
//     * 
370
//     * XXX: The HighlightBraceLayer needs to be rewritten using the new Highlighting SPI.
371
//     */
372
//    class HighlightBraceLayer extends DrawLayer.AbstractLayer {
373
//
374
//        public HighlightBraceLayer() {
375
//            super(HIGHLIGHT_BRACE_LAYER_NAME);
376
//        }
377
//
378
//        public void init(DrawContext ctx) {
379
//        }
380
//
381
//        public boolean isActive(DrawContext ctx, MarkFactory.DrawMark mark) {
382
//            if (!NO_HIGHLIGHT_BRACE_LAYER && braceMarksValid) {
383
//                if (mark != null)
384
//                    return mark.getActivateLayer();
385
//                try {
386
//                    if (ctx.getStartOffset() > highlightBraceEndMark.getOffset())
387
//                        return highlightBraceEndMark.getActivateLayer();
388
//                    if (ctx.getStartOffset() > highlightBraceStartMark.getOffset())
389
//                        return highlightBraceStartMark.getActivateLayer();
390
//                } catch (InvalidMarkException ex) {                    
391
//                }
392
//            }
393
//
394
//            return false;
395
//        }
396
//
397
//        public void updateContext(DrawContext ctx) {
398
//            if (!NO_HIGHLIGHT_BRACE_LAYER && highlightBraceColoring != null) {
399
//                highlightBraceColoring.apply(ctx);
400
//            }
401
//        }
402
//
403
//    }
404
405
}
79
}
(-)a/editor.lib/src/org/netbeans/modules/editor/lib/BeforeSaveTasks.java (-1 / +1 lines)
 Lines 113-119    Link Here 
113
    private void runTasks() {
113
    private void runTasks() {
114
        doc.runAtomicAsUser (new Runnable () {
114
        doc.runAtomicAsUser (new Runnable () {
115
            public void run () {
115
            public void run () {
116
                CompoundEdit atomicEdit = EditorPackageAccessor.get().markAtomicEditsNonSignificant(doc);
116
                CompoundEdit atomicEdit = EditorPackageAccessor.get().BaseDocument_markAtomicEditsNonSignificant(doc);
117
                // Since these are before-save actions they should generally not prevent
117
                // Since these are before-save actions they should generally not prevent
118
                // the save operation to succeed. Thus the possible exceptions thrown
118
                // the save operation to succeed. Thus the possible exceptions thrown
119
                // by the tasks will be notified but they will not prevent the save to succeed.
119
                // by the tasks will be notified but they will not prevent the save to succeed.
(-)a/editor.lib/src/org/netbeans/modules/editor/lib/EditorPackageAccessor.java (-14 / +26 lines)
 Lines 41-48    Link Here 
41
41
42
package org.netbeans.modules.editor.lib;
42
package org.netbeans.modules.editor.lib;
43
43
44
import javax.swing.text.BadLocationException;
44
import javax.swing.undo.CompoundEdit;
45
import javax.swing.undo.CompoundEdit;
45
import org.netbeans.editor.BaseDocument;
46
import org.netbeans.editor.BaseDocument;
47
import org.netbeans.editor.InvalidMarkException;
48
import org.netbeans.editor.Mark;
49
import org.netbeans.modules.editor.lib.impl.MarkVector;
50
import org.netbeans.modules.editor.lib.impl.MultiMark;
46
51
47
52
48
/**
53
/**
 Lines 54-77    Link Here 
54
59
55
public abstract class EditorPackageAccessor {
60
public abstract class EditorPackageAccessor {
56
61
57
    private static EditorPackageAccessor INSTANCE;
62
    private static EditorPackageAccessor ACCESSOR = null;
58
63
59
    public static EditorPackageAccessor get() {
64
    public static synchronized void register(EditorPackageAccessor accessor) {
60
        if (INSTANCE == null) {
65
        assert ACCESSOR == null : "Can't register two package accessors!"; //NOI18N
61
            // Cause api accessor impl to get initialized
66
        ACCESSOR = accessor;
62
            try {
63
                Class.forName(BaseDocument.class.getName(), true, EditorPackageAccessor.class.getClassLoader());
64
            } catch (ClassNotFoundException e) {
65
                // Should never happen
66
            }
67
        }
68
        return INSTANCE;
69
    }
67
    }
70
68
71
    public static void register(EditorPackageAccessor accessor) {
69
    public static synchronized EditorPackageAccessor get() {
72
        INSTANCE = accessor;
70
        // Trying to wake up BaseDocument ...
71
        try {
72
            Class clazz = Class.forName(BaseDocument.class.getName());
73
        } catch (ClassNotFoundException e) {
74
            // ignore
75
        }
76
77
        assert ACCESSOR != null : "There is no package accessor available!"; //NOI18N
78
        return ACCESSOR;
73
    }
79
    }
74
80
75
    public abstract CompoundEdit markAtomicEditsNonSignificant(BaseDocument doc);
81
    protected EditorPackageAccessor() {
82
    }
83
84
    public abstract CompoundEdit BaseDocument_markAtomicEditsNonSignificant(BaseDocument doc);
85
    public abstract MarkVector BaseDocument_getMarksStorage(BaseDocument doc);
86
    public abstract Mark BaseDocument_getMark(BaseDocument doc, MultiMark multiMark);
87
    public abstract void Mark_insert(Mark mark, BaseDocument doc, int pos) throws InvalidMarkException, BadLocationException;
76
88
77
}
89
}
(-)a/editor.lib/src/org/netbeans/modules/editor/lib/drawing/ChainDrawMark.java (+142 lines)
Line 0    Link Here 
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
5
 *
6
 * The contents of this file are subject to the terms of either the GNU
7
 * General Public License Version 2 only ("GPL") or the Common
8
 * Development and Distribution License("CDDL") (collectively, the
9
 * "License"). You may not use this file except in compliance with the
10
 * License. You can obtain a copy of the License at
11
 * http://www.netbeans.org/cddl-gplv2.html
12
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
13
 * specific language governing permissions and limitations under the
14
 * License.  When distributing the software, include this License Header
15
 * Notice in each file and include the License file at
16
 * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
17
 * particular file as subject to the "Classpath" exception as provided
18
 * by Sun in the GPL Version 2 section of the License file that
19
 * accompanied this code. If applicable, add the following below the
20
 * License Header, with the fields enclosed by brackets [] replaced by
21
 * your own identifying information:
22
 * "Portions Copyrighted [year] [name of copyright owner]"
23
 *
24
 * If you wish your version of this file to be governed by only the CDDL
25
 * or only the GPL Version 2, indicate your decision by adding
26
 * "[Contributor] elects to include this software in this distribution
27
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
28
 * single choice of license, a recipient has the option to distribute
29
 * your version of this file under either the CDDL, the GPL Version 2 or
30
 * to extend the choice of license to its licensees as provided above.
31
 * However, if you add GPL Version 2 code and therefore, elected the GPL
32
 * Version 2 license, then the option applies only if the new code is
33
 * made subject to such option by the copyright holder.
34
 *
35
 * Contributor(s):
36
 *
37
 * Portions Copyrighted 2009 Sun Microsystems, Inc.
38
 */
39
40
package org.netbeans.modules.editor.lib.drawing;
41
42
import javax.swing.text.Position;
43
import org.netbeans.editor.EditorUI;
44
import org.netbeans.editor.InvalidMarkException;
45
46
/** Support for draw marks chained in double linked list */
47
public final class ChainDrawMark extends DrawMark {
48
49
    /** Next mark in chain */
50
    protected ChainDrawMark next;
51
52
    /** Previous mark in chain */
53
    protected ChainDrawMark prev;
54
55
    public ChainDrawMark(String layerName, EditorUI editorUI) {
56
        this(layerName, editorUI, Position.Bias.Forward);
57
    }
58
59
    public ChainDrawMark(String layerName, EditorUI editorUI, Position.Bias bias) {
60
        super(layerName, editorUI, bias);
61
    }
62
63
    public final ChainDrawMark getNext() {
64
        return next;
65
    }
66
67
    public final void setNext(ChainDrawMark mark) {
68
        next = mark;
69
    }
70
71
    /** Set next mark in chain */
72
    public void setNextChain(ChainDrawMark mark) {
73
        this.next = mark;
74
        if (mark != null) {
75
            mark.prev = this;
76
        }
77
    }
78
79
    public final ChainDrawMark getPrev() {
80
        return prev;
81
    }
82
83
    public final void setPrev(ChainDrawMark mark) {
84
        prev = mark;
85
    }
86
87
    /** Set previous mark in chain */
88
    public void setPrevChain(ChainDrawMark mark) {
89
        this.prev = mark;
90
        if (mark != null) {
91
            mark.next = this;
92
        }
93
    }
94
95
    /** Insert mark before this one in chain
96
    * @return inserted mark
97
    */
98
    public ChainDrawMark insertChain(ChainDrawMark mark) {
99
        ChainDrawMark thisPrev = this.prev;
100
        mark.prev = thisPrev;
101
        mark.next = this;
102
        if (thisPrev != null) {
103
            thisPrev.next = mark;
104
        }
105
        this.prev = mark;
106
        return mark;
107
    }
108
109
    /** Remove this mark from the chain
110
    * @return next chain member or null for end of chain
111
    */
112
    public ChainDrawMark removeChain() {
113
        ChainDrawMark thisNext = this.next;
114
        ChainDrawMark thisPrev = this.prev;
115
        if (thisPrev != null) { // not the first
116
            thisPrev.next = thisNext;
117
            this.prev = null;
118
        }
119
        if (thisNext != null) { // not the last
120
            thisNext.prev = thisPrev;
121
            this.next = null;
122
        }
123
        try {
124
            this.remove(); // remove the mark from DocMarks
125
        } catch (InvalidMarkException e) {
126
            // already removed
127
        }
128
        return thisNext;
129
    }
130
131
    public String toStringChain() {
132
        return toString() + (next != null ? "\n" + next.toStringChain() : ""); // NOI18N
133
    }
134
135
    public @Override String toString() {
136
        return super.toString() + ", " // NOI18N
137
               + ((prev != null) ? ((next != null) ? "chain member" // NOI18N
138
                        : "last member") : ((next != null) ? "first member" // NOI18N
139
                                                        : "standalone member")); // NOI18N
140
    }
141
142
}
(-)a/editor.lib/src/org/netbeans/editor/CollapsedView.java (-1 / +9 lines)
 Lines 39-45    Link Here 
39
 * made subject to such option by the copyright holder.
39
 * made subject to such option by the copyright holder.
40
 */
40
 */
41
41
42
package org.netbeans.editor;
42
package org.netbeans.modules.editor.lib.drawing;
43
43
44
import java.awt.Container;
44
import java.awt.Container;
45
import java.awt.FontMetrics;
45
import java.awt.FontMetrics;
 Lines 63-68    Link Here 
63
import org.netbeans.api.editor.settings.AttributesUtilities;
63
import org.netbeans.api.editor.settings.AttributesUtilities;
64
import org.netbeans.api.editor.settings.FontColorNames;
64
import org.netbeans.api.editor.settings.FontColorNames;
65
import org.netbeans.api.editor.settings.FontColorSettings;
65
import org.netbeans.api.editor.settings.FontColorSettings;
66
import org.netbeans.editor.BaseKit;
67
import org.netbeans.editor.BaseTextUI;
68
import org.netbeans.editor.Coloring;
69
import org.netbeans.editor.EditorUI;
70
import org.netbeans.editor.FoldingToolTip;
71
import org.netbeans.editor.FontMetricsCache;
72
import org.netbeans.editor.PopupManager;
73
import org.netbeans.editor.Utilities;
66
import org.netbeans.editor.ext.ToolTipSupport;
74
import org.netbeans.editor.ext.ToolTipSupport;
67
import org.netbeans.editor.view.spi.LockView;
75
import org.netbeans.editor.view.spi.LockView;
68
import org.openide.util.Lookup;
76
import org.openide.util.Lookup;
(-)a/editor.lib/src/org/netbeans/modules/editor/lib/drawing/ColoringAccessor.java (+73 lines)
Line 0    Link Here 
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
5
 *
6
 * The contents of this file are subject to the terms of either the GNU
7
 * General Public License Version 2 only ("GPL") or the Common
8
 * Development and Distribution License("CDDL") (collectively, the
9
 * "License"). You may not use this file except in compliance with the
10
 * License. You can obtain a copy of the License at
11
 * http://www.netbeans.org/cddl-gplv2.html
12
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
13
 * specific language governing permissions and limitations under the
14
 * License.  When distributing the software, include this License Header
15
 * Notice in each file and include the License file at
16
 * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
17
 * particular file as subject to the "Classpath" exception as provided
18
 * by Sun in the GPL Version 2 section of the License file that
19
 * accompanied this code. If applicable, add the following below the
20
 * License Header, with the fields enclosed by brackets [] replaced by
21
 * your own identifying information:
22
 * "Portions Copyrighted [year] [name of copyright owner]"
23
 *
24
 * If you wish your version of this file to be governed by only the CDDL
25
 * or only the GPL Version 2, indicate your decision by adding
26
 * "[Contributor] elects to include this software in this distribution
27
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
28
 * single choice of license, a recipient has the option to distribute
29
 * your version of this file under either the CDDL, the GPL Version 2 or
30
 * to extend the choice of license to its licensees as provided above.
31
 * However, if you add GPL Version 2 code and therefore, elected the GPL
32
 * Version 2 license, then the option applies only if the new code is
33
 * made subject to such option by the copyright holder.
34
 *
35
 * Contributor(s):
36
 *
37
 * Portions Copyrighted 2009 Sun Microsystems, Inc.
38
 */
39
40
package org.netbeans.modules.editor.lib.drawing;
41
42
import org.netbeans.editor.Coloring;
43
44
/**
45
 *
46
 * @author vita
47
 */
48
public abstract class ColoringAccessor {
49
50
    private static ColoringAccessor ACCESSOR = null;
51
52
    public static synchronized void register(ColoringAccessor accessor) {
53
        assert ACCESSOR == null : "Can't register two package accessors!"; //NOI18N
54
        ACCESSOR = accessor;
55
    }
56
57
    public static synchronized ColoringAccessor get() {
58
        // Trying to wake up EditorUI ...
59
        try {
60
            Class clazz = Class.forName(Coloring.class.getName());
61
        } catch (ClassNotFoundException e) {
62
            // ignore
63
        }
64
65
        assert ACCESSOR != null : "There is no package accessor available!"; //NOI18N
66
        return ACCESSOR;
67
    }
68
69
    protected ColoringAccessor() {
70
    }
71
72
    public abstract void apply(Coloring c, DrawContext ctx);
73
}
(-)a/editor.lib/src/org/netbeans/editor/DrawContext.java (-1 / +4 lines)
 Lines 39-48    Link Here 
39
 * made subject to such option by the copyright holder.
39
 * made subject to such option by the copyright holder.
40
 */
40
 */
41
41
42
package org.netbeans.editor;
42
package org.netbeans.modules.editor.lib.drawing;
43
43
44
import java.awt.Color;
44
import java.awt.Color;
45
import java.awt.Font;
45
import java.awt.Font;
46
import org.netbeans.editor.EditorUI;
47
import org.netbeans.editor.TokenContextPath;
48
import org.netbeans.editor.TokenID;
46
49
47
/** This interface provides methods for
50
/** This interface provides methods for
48
* getting and setting various drawing attributes.
51
* getting and setting various drawing attributes.
(-)a/editor.lib/src/org/netbeans/editor/DrawEngine.java (-45 / +85 lines)
 Lines 39-45    Link Here 
39
 * made subject to such option by the copyright holder.
39
 * made subject to such option by the copyright holder.
40
 */
40
 */
41
41
42
package org.netbeans.editor;
42
package org.netbeans.modules.editor.lib.drawing;
43
43
44
import java.awt.Graphics;
44
import java.awt.Graphics;
45
import java.awt.Graphics2D;
45
import java.awt.Graphics2D;
 Lines 50-55    Link Here 
50
import java.awt.Insets;
50
import java.awt.Insets;
51
import java.util.ArrayList;
51
import java.util.ArrayList;
52
import java.util.List;
52
import java.util.List;
53
import java.util.Map;
53
import java.util.logging.Level;
54
import java.util.logging.Level;
54
import java.util.logging.Logger;
55
import java.util.logging.Logger;
55
import javax.swing.text.BadLocationException;
56
import javax.swing.text.BadLocationException;
 Lines 59-64    Link Here 
59
import javax.swing.text.Segment;
60
import javax.swing.text.Segment;
60
import javax.swing.text.View;
61
import javax.swing.text.View;
61
import org.netbeans.api.editor.settings.FontColorNames;
62
import org.netbeans.api.editor.settings.FontColorNames;
63
import org.netbeans.editor.Analyzer;
64
import org.netbeans.editor.BaseDocument;
65
import org.netbeans.editor.Coloring;
66
import org.netbeans.editor.EditorDebug;
67
import org.netbeans.editor.EditorUI;
68
import org.netbeans.editor.FontMetricsCache;
69
import org.netbeans.editor.InvalidMarkException;
70
import org.netbeans.editor.Mark;
71
import org.netbeans.editor.TokenContextPath;
72
import org.netbeans.editor.TokenID;
73
import org.netbeans.editor.Utilities;
74
import org.netbeans.modules.editor.lib.EditorPackageAccessor;
75
import org.netbeans.modules.editor.lib.impl.MarkVector;
76
import org.netbeans.modules.editor.lib.impl.MultiMark;
62
77
63
/**
78
/**
64
 * This class is responsible for drawing editor components. It's a singleton.
79
 * This class is responsible for drawing editor components. It's a singleton.
 Lines 67-73    Link Here 
67
 * 
82
 * 
68
 * @author Miloslav Metelka
83
 * @author Miloslav Metelka
69
 */
84
 */
70
/* package */ final class DrawEngine {
85
public final class DrawEngine {
71
86
72
    private static final Logger LOG = Logger.getLogger(DrawEngine.class.getName());
87
    private static final Logger LOG = Logger.getLogger(DrawEngine.class.getName());
73
    
88
    
 Lines 92-100    Link Here 
92
        return drawEngine;
107
        return drawEngine;
93
    }
108
    }
94
    
109
    
95
    private void initLineNumbering(DrawInfo ctx) {
110
    private void initLineNumbering(DrawInfo ctx, EditorUI eui) {
111
        EditorUiAccessor accessor = EditorUiAccessor.get();
96
        // Resolve whether line numbers will be painted
112
        // Resolve whether line numbers will be painted
97
        ctx.lineNumbering = ctx.editorUI.lineNumberVisible
113
        ctx.lineNumbering = accessor.isLineNumberVisible(eui)
98
                            && ctx.drawGraphics.supportsLineNumbers();
114
                            && ctx.drawGraphics.supportsLineNumbers();
99
115
100
        // create buffer for showing line numbers
116
        // create buffer for showing line numbers
 Lines 105-111    Link Here 
105
                LOG.log(Level.WARNING, null, e);
121
                LOG.log(Level.WARNING, null, e);
106
            }
122
            }
107
123
108
            ctx.lineNumberColoring = ctx.editorUI.getColoring(FontColorNames.LINE_NUMBER_COLORING);
124
            ctx.lineNumberColoring = accessor.getColoring(eui, FontColorNames.LINE_NUMBER_COLORING);
109
            if (ctx.lineNumberColoring == null) {
125
            if (ctx.lineNumberColoring == null) {
110
                ctx.lineNumberColoring = ctx.defaultColoring; // no number coloring found
126
                ctx.lineNumberColoring = ctx.defaultColoring; // no number coloring found
111
127
 Lines 128-134    Link Here 
128
                lnForeColor = ctx.defaultColoring.getForeColor();
144
                lnForeColor = ctx.defaultColoring.getForeColor();
129
            }
145
            }
130
146
131
            ctx.lineNumberChars = new char[Math.max(ctx.editorUI.lineNumberMaxDigitCount, 1)];
147
            ctx.lineNumberChars = new char[Math.max(accessor.getLineNumberMaxDigitCount(eui), 1)];
148
            ctx.lineNumberWidth = accessor.getLineNumberWidth(eui);
149
            ctx.lineNumberDigitWidth = accessor.getLineNumberDigitWidth(eui);
150
            ctx.lineNumberMargin = accessor.getLineNumberMargin(eui);
132
            if (ctx.graphics == null) {
151
            if (ctx.graphics == null) {
133
                ctx.syncedLineNumbering = true;
152
                ctx.syncedLineNumbering = true;
134
153
 Lines 143-171    Link Here 
143
        }
162
        }
144
    }
163
    }
145
164
146
    private void initInfo(DrawInfo ctx) throws BadLocationException {
165
    private void initInfo(DrawInfo ctx, EditorUI eui) throws BadLocationException {
147
        if (ctx.startOffset < ctx.lineStartOffset) {
166
        if (ctx.startOffset < ctx.lineStartOffset) {
148
            throw new BadLocationException("Invalid startOffset: " + ctx.startOffset + " < line start offset = " + ctx.lineStartOffset, ctx.startOffset); //NOI18N
167
            throw new BadLocationException("Invalid startOffset: " + ctx.startOffset + " < line start offset = " + ctx.lineStartOffset, ctx.startOffset); //NOI18N
149
        }
168
        }
150
        if (ctx.endOffset > ctx.lineEndOffset) {
169
        if (ctx.endOffset > ctx.lineEndOffset) {
151
            throw new BadLocationException("Invalid endOffset: " + ctx.endOffset + " > line end offset = " + ctx.lineEndOffset, ctx.endOffset); //NOI18N
170
            throw new BadLocationException("Invalid endOffset: " + ctx.endOffset + " > line end offset = " + ctx.lineEndOffset, ctx.endOffset); //NOI18N
152
        }
171
        }
153
        
172
173
        EditorUiAccessor accessor = EditorUiAccessor.get();
174
154
        ctx.x = ctx.startX;
175
        ctx.x = ctx.startX;
155
        ctx.y = ctx.startY;
176
        ctx.y = ctx.startY;
156
        ctx.lineHeight = ctx.editorUI.getLineHeight();
177
        ctx.lineHeight = accessor.getLineHeight(eui);
157
        ctx.defaultColoring = ctx.editorUI.getDefaultColoring();
178
        ctx.defaultColoring = accessor.getDefaultColoring(eui);
158
        ctx.tabSize = ctx.doc.getTabSize();
179
        ctx.tabSize = ctx.doc.getTabSize();
180
        ctx.defaultSpaceWidth = accessor.getDefaultSpaceWidth(eui);
159
        ctx.fragmentOffset = ctx.startOffset; // actual painting position
181
        ctx.fragmentOffset = ctx.startOffset; // actual painting position
160
        ctx.graphics = ctx.drawGraphics.getGraphics();
182
        ctx.graphics = ctx.drawGraphics.getGraphics();
161
183
162
        if (ctx.graphics != null) {
184
        if (ctx.graphics != null) {
163
            if (ctx.editorUI.renderingHints != null) {
185
            Map<?, ?> hints = accessor.getRenderingHints(eui);
164
                ((Graphics2D)ctx.graphics).setRenderingHints(ctx.editorUI.renderingHints);
186
            if (hints != null) {
187
                ((Graphics2D)ctx.graphics).setRenderingHints(hints);
165
            }
188
            }
166
        }
189
        }
167
190
168
        initLineNumbering(ctx);
191
        ctx.extentBounds = accessor.getExtentBounds(eui);
192
        ctx.textMargin = accessor.getTextMargin(eui);
193
        ctx.textLeftMarginWidth = accessor.getTextLeftMarginWidth(eui);
194
        ctx.textLimitLineVisible = accessor.getTextLimitLineVisible(eui);
195
        ctx.textLimitLineColor = accessor.getTextLimitLineColor(eui);
196
        ctx.textLimitWidth = accessor.getTextLimitWidth(eui);
197
        initLineNumbering(ctx, eui);
169
198
170
        // Initialize draw context
199
        // Initialize draw context
171
        ctx.foreColor = ctx.defaultColoring.getForeColor();
200
        ctx.foreColor = ctx.defaultColoring.getForeColor();
 Lines 177-188    Link Here 
177
        ctx.drawGraphics.init(ctx);
206
        ctx.drawGraphics.init(ctx);
178
        ctx.drawGraphics.setDefaultBackColor(ctx.defaultColoring.getBackColor());
207
        ctx.drawGraphics.setDefaultBackColor(ctx.defaultColoring.getBackColor());
179
        ctx.drawGraphics.setLineHeight(ctx.lineHeight);
208
        ctx.drawGraphics.setLineHeight(ctx.lineHeight);
180
        ctx.drawGraphics.setLineAscent(ctx.editorUI.getLineAscent());
209
        ctx.drawGraphics.setLineAscent(accessor.getLineAscent(eui));
181
        ctx.drawGraphics.setX(ctx.x);
210
        ctx.drawGraphics.setX(ctx.x);
182
        ctx.drawGraphics.setY(ctx.y);
211
        ctx.drawGraphics.setY(ctx.y);
183
212
184
        // Init all draw-layers
213
        // Init all draw-layers
185
        ctx.layers = ctx.editorUI.getDrawLayerList().currentLayers();
214
        ctx.layers = DrawLayerList.forComponent(ctx.component).currentLayers();
186
        int layersLength = ctx.layers.length;
215
        int layersLength = ctx.layers.length;
187
        ctx.layerActives = new boolean[layersLength];
216
        ctx.layerActives = new boolean[layersLength];
188
        ctx.layerActivityChangeOffsets = new int[layersLength];
217
        ctx.layerActivityChangeOffsets = new int[layersLength];
 Lines 191-198    Link Here 
191
            ctx.layers[i].init(ctx); // init all layers
220
            ctx.layers[i].init(ctx); // init all layers
192
        }
221
        }
193
222
194
        ctx.drawMarkList = new ArrayList<MarkFactory.DrawMark>();
223
        ctx.drawMarkList = new ArrayList<DrawMark>();
195
        MarkVector docMarksStorage = ctx.doc.marksStorage;
224
        MarkVector docMarksStorage = EditorPackageAccessor.get().BaseDocument_getMarksStorage(ctx.doc);
196
        synchronized (docMarksStorage) {
225
        synchronized (docMarksStorage) {
197
            int offset = ctx.startOffset;
226
            int offset = ctx.startOffset;
198
            int low = 0;
227
            int low = 0;
 Lines 226-237    Link Here 
226
                        break;
255
                        break;
227
                    }
256
                    }
228
257
229
                    Mark mark = ctx.doc.marks.get(m);
258
                    Mark mark = EditorPackageAccessor.get().BaseDocument_getMark(ctx.doc, m);
230
                    if (mark == null) {
259
                    if (mark == null) {
231
                        throw new IllegalStateException("No mark for m=" + m); // NOI18N
260
                        throw new IllegalStateException("No mark for m=" + m); // NOI18N
232
                    }
261
                    }
233
                    if (mark instanceof MarkFactory.DrawMark) {
262
                    if (mark instanceof DrawMark) {
234
                        ctx.drawMarkList.add((MarkFactory.DrawMark)mark);
263
                        ctx.drawMarkList.add((DrawMark)mark);
235
                    }
264
                    }
236
                }
265
                }
237
266
 Lines 326-334    Link Here 
326
                }
355
                }
327
356
328
                // Fill the DG's attributes and draw
357
                // Fill the DG's attributes and draw
329
                int numX = ctx.x - ctx.editorUI.lineNumberWidth;
358
                int numX = ctx.x - ctx.lineNumberWidth;
330
                if (ctx.editorUI.getLineNumberMargin() != null) {
359
                if (ctx.lineNumberMargin != null) {
331
                    numX += ctx.editorUI.getLineNumberMargin().left;
360
                    numX += ctx.lineNumberMargin.left;
332
                }
361
                }
333
                ctx.drawGraphics.setX(numX);
362
                ctx.drawGraphics.setX(numX);
334
363
 Lines 343-357    Link Here 
343
                ctx.drawGraphics.setBottomBorderLineColor(ctx.bottomBorderLineColor);
372
                ctx.drawGraphics.setBottomBorderLineColor(ctx.bottomBorderLineColor);
344
                ctx.drawGraphics.setLeftBorderLineColor(ctx.leftBorderLineColor);
373
                ctx.drawGraphics.setLeftBorderLineColor(ctx.leftBorderLineColor);
345
                ctx.drawGraphics.setFont(ctx.font);
374
                ctx.drawGraphics.setFont(ctx.font);
346
                ctx.drawGraphics.drawChars(0, ctx.lineNumberChars.length,
375
                ctx.drawGraphics.drawChars(0, ctx.lineNumberChars.length, ctx.lineNumberWidth);
347
                    ctx.editorUI.lineNumberWidth);
348
376
349
                // When printing there should be an additional space between
377
                // When printing there should be an additional space between
350
                // line number and the text
378
                // line number and the text
351
                if (ctx.drawGraphics.getGraphics() == null) {
379
                if (ctx.drawGraphics.getGraphics() == null) {
352
                    ctx.drawGraphics.setBuffer(SPACE);
380
                    ctx.drawGraphics.setBuffer(SPACE);
353
                    ctx.drawGraphics.drawChars(0, 1,
381
                    ctx.drawGraphics.drawChars(0, 1, ctx.lineNumberDigitWidth);
354
                        ctx.editorUI.lineNumberDigitWidth);
355
                }
382
                }
356
383
357
                ctx.drawGraphics.setX(ctx.x);
384
                ctx.drawGraphics.setX(ctx.x);
 Lines 507-513    Link Here 
507
        // Handle possible white space expansion and compute display width
534
        // Handle possible white space expansion and compute display width
508
        FontMetricsCache.Info fmcInfo = FontMetricsCache.getInfo(ctx.font);
535
        FontMetricsCache.Info fmcInfo = FontMetricsCache.getInfo(ctx.font);
509
        ctx.spaceWidth = (ctx.component != null)
536
        ctx.spaceWidth = (ctx.component != null)
510
            ? fmcInfo.getSpaceWidth(ctx.component) : ctx.editorUI.defaultSpaceWidth;
537
            ? fmcInfo.getSpaceWidth(ctx.component) : ctx.defaultSpaceWidth;
511
538
512
        // Compute real count of chars in fragment - can differ if tabs
539
        // Compute real count of chars in fragment - can differ if tabs
513
        ctx.fragmentCharCount = ctx.fragmentLength;
540
        ctx.fragmentCharCount = ctx.fragmentLength;
 Lines 615-621    Link Here 
615
                    
642
                    
616
                    ctx.drawGraphics.setBackColor(ctx.backColor);
643
                    ctx.drawGraphics.setBackColor(ctx.backColor);
617
                    ctx.drawGraphics.fillRect(blankWidth);
644
                    ctx.drawGraphics.fillRect(blankWidth);
618
                    if (emptyLine && ctx.x <= ctx.editorUI.getTextMargin().left) { //#58652
645
                    if (emptyLine && ctx.x <= ctx.textMargin.left) { //#58652
619
                        ctx.x += blankWidth;
646
                        ctx.x += blankWidth;
620
                    }
647
                    }
621
                }
648
                }
 Lines 912-923    Link Here 
912
    private void drawTheRestOfTextLine(DrawInfo ctx) {
939
    private void drawTheRestOfTextLine(DrawInfo ctx) {
913
        handleEOL(ctx);
940
        handleEOL(ctx);
914
941
915
        if (ctx.editorUI.textLimitLineVisible) { // draw limit line
942
        if (ctx.textLimitLineVisible) { // draw limit line
916
            int lineX = ctx.editorUI.getTextMargin().left + ctx.getEditorUI().textLimitWidth() * ctx.editorUI.defaultSpaceWidth;
943
            int lineX = ctx.textMargin.left + ctx.textLimitWidth * ctx.defaultSpaceWidth;
917
            if (ctx.graphics !=null){
944
            if (ctx.graphics !=null){
918
                ctx.graphics.setColor(ctx.editorUI.getTextLimitLineColor());
945
                ctx.graphics.setColor(ctx.textLimitLineColor);
919
                Rectangle clip = ctx.graphics.getClipBounds();
946
                Rectangle clip = ctx.graphics.getClipBounds();
920
                if (clip.height>ctx.editorUI.getLineHeight()){
947
                if (clip.height>ctx.lineHeight){
921
                    ctx.graphics.drawLine(lineX, ctx.y, lineX, ctx.y+clip.height);
948
                    ctx.graphics.drawLine(lineX, ctx.y, lineX, ctx.y+clip.height);
922
                }
949
                }
923
            }
950
            }
 Lines 925-935    Link Here 
925
    }
952
    }
926
    
953
    
927
    private void graphicsSpecificUpdates(DrawInfo ctx) {
954
    private void graphicsSpecificUpdates(DrawInfo ctx) {
928
        Rectangle bounds = ctx.editorUI.getExtentBounds();
955
        Rectangle bounds = ctx.extentBounds;
929
        Rectangle clip = ctx.graphics.getClipBounds();
956
        Rectangle clip = ctx.graphics.getClipBounds();
930
        Insets textMargin = ctx.editorUI.getTextMargin();
957
        Insets textMargin = ctx.textMargin;
931
        int leftMarginWidth = textMargin.left - ctx.editorUI.lineNumberWidth
958
        int leftMarginWidth = textMargin.left - ctx.lineNumberWidth - ctx.textLeftMarginWidth;
932
                              - ctx.editorUI.textLeftMarginWidth;
933
959
934
        // Draw line numbers bar and all the line nummbers
960
        // Draw line numbers bar and all the line nummbers
935
        if (ctx.lineNumbering && !ctx.syncedLineNumbering) {
961
        if (ctx.lineNumbering && !ctx.syncedLineNumbering) {
 Lines 938-944    Link Here 
938
            int lnBarX = bounds.x + leftMarginWidth;
964
            int lnBarX = bounds.x + leftMarginWidth;
939
            if (!lnBackColor.equals(ctx.defaultColoring.getBackColor()) || bounds.x > 0) {
965
            if (!lnBackColor.equals(ctx.defaultColoring.getBackColor()) || bounds.x > 0) {
940
                ctx.graphics.setColor(lnBackColor);
966
                ctx.graphics.setColor(lnBackColor);
941
                ctx.graphics.fillRect(lnBarX, numY, ctx.editorUI.lineNumberWidth,
967
                ctx.graphics.fillRect(lnBarX, numY, ctx.lineNumberWidth,
942
                                      ctx.lineIndex * ctx.lineHeight); // can't use dg because of height
968
                                      ctx.lineIndex * ctx.lineHeight); // can't use dg because of height
943
            }
969
            }
944
970
 Lines 946-953    Link Here 
946
972
947
            int lastDigitInd = Math.max(ctx.lineNumberChars.length - 1, 0);
973
            int lastDigitInd = Math.max(ctx.lineNumberChars.length - 1, 0);
948
            int numX = lnBarX;
974
            int numX = lnBarX;
949
            if (ctx.editorUI.getLineNumberMargin() != null) {
975
            if (ctx.lineNumberMargin != null) {
950
                numX += ctx.editorUI.getLineNumberMargin().left;
976
                numX += ctx.lineNumberMargin.left;
951
            }
977
            }
952
978
953
            ctx.bol = true; //
979
            ctx.bol = true; //
 Lines 998-1008    Link Here 
998
                ctx.drawGraphics.setFont(ctx.font);
1024
                ctx.drawGraphics.setFont(ctx.font);
999
1025
1000
                ctx.drawGraphics.setX(lnBarX);
1026
                ctx.drawGraphics.setX(lnBarX);
1001
                ctx.drawGraphics.fillRect(ctx.editorUI.lineNumberWidth);
1027
                ctx.drawGraphics.fillRect(ctx.lineNumberWidth);
1002
                ctx.drawGraphics.setX(numX);
1028
                ctx.drawGraphics.setX(numX);
1003
1029
1004
                ctx.drawGraphics.drawChars(0, ctx.lineNumberChars.length,
1030
                ctx.drawGraphics.drawChars(0, ctx.lineNumberChars.length,
1005
                    ctx.lineNumberChars.length * ctx.editorUI.lineNumberDigitWidth);
1031
                    ctx.lineNumberChars.length * ctx.lineNumberDigitWidth);
1006
                
1032
                
1007
                ctx.drawGraphics.setBuffer(null); // will do changes in buffer
1033
                ctx.drawGraphics.setBuffer(null); // will do changes in buffer
1008
1034
 Lines 1162-1168    Link Here 
1162
                }
1188
                }
1163
1189
1164
                // Initialize the draw-info
1190
                // Initialize the draw-info
1165
                initInfo(ctx);
1191
                initInfo(ctx, editorUI);
1166
1192
1167
                // Draw the area
1193
                // Draw the area
1168
                drawArea(ctx);
1194
                drawArea(ctx);
 Lines 1323-1328    Link Here 
1323
        /** Coloring for the line-number. */
1349
        /** Coloring for the line-number. */
1324
        Coloring lineNumberColoring;
1350
        Coloring lineNumberColoring;
1325
1351
1352
        int lineNumberWidth;
1353
        int lineNumberDigitWidth;
1354
        Insets lineNumberMargin;
1355
1326
        /** Graphics object. It can be null when not drawing to the component. */
1356
        /** Graphics object. It can be null when not drawing to the component. */
1327
        Graphics graphics;
1357
        Graphics graphics;
1328
1358
 Lines 1361-1373    Link Here 
1361
        boolean drawMarkUpdate;
1391
        boolean drawMarkUpdate;
1362
1392
1363
        /** List of draw marks in the painted area. */
1393
        /** List of draw marks in the painted area. */
1364
        List<MarkFactory.DrawMark> drawMarkList;
1394
        List<DrawMark> drawMarkList;
1365
        
1395
        
1366
        /** Current index in the drawMarkList */
1396
        /** Current index in the drawMarkList */
1367
        int drawMarkIndex;
1397
        int drawMarkIndex;
1368
1398
1369
        /** Current draw-mark */
1399
        /** Current draw-mark */
1370
        MarkFactory.DrawMark drawMark;
1400
        DrawMark drawMark;
1371
1401
1372
        /** Position of the current draw-mark */
1402
        /** Position of the current draw-mark */
1373
        int drawMarkOffset;
1403
        int drawMarkOffset;
 Lines 1383-1388    Link Here 
1383
1413
1384
        /** Width of one space character for the current context font. */
1414
        /** Width of one space character for the current context font. */
1385
        int spaceWidth;
1415
        int spaceWidth;
1416
        int defaultSpaceWidth;
1386
1417
1387
        /** Display width of the fragment */
1418
        /** Display width of the fragment */
1388
        int fragmentWidth;
1419
        int fragmentWidth;
 Lines 1392-1397    Link Here 
1392
        */
1423
        */
1393
        int fragmentCharCount;
1424
        int fragmentCharCount;
1394
1425
1426
        Rectangle extentBounds;
1427
        Insets textMargin;
1428
        int textLeftMarginWidth;
1429
1430
        boolean textLimitLineVisible;
1431
        Color textLimitLineColor;
1432
        int textLimitWidth;
1433
        
1395
        public Color getForeColor() {
1434
        public Color getForeColor() {
1396
            return foreColor;
1435
            return foreColor;
1397
        }
1436
        }
 Lines 1525-1528    Link Here 
1525
        }
1564
        }
1526
1565
1527
    } // End of DrawInfo class
1566
    } // End of DrawInfo class
1567
    
1528
}
1568
}
(-)a/editor.lib/src/org/netbeans/editor/DrawEngineDocView.java (-13 / +15 lines)
 Lines 39-45    Link Here 
39
 * made subject to such option by the copyright holder.
39
 * made subject to such option by the copyright holder.
40
 */
40
 */
41
41
42
package org.netbeans.editor;
42
package org.netbeans.modules.editor.lib.drawing;
43
43
44
import java.awt.Graphics;
44
import java.awt.Graphics;
45
import java.awt.Rectangle;
45
import java.awt.Rectangle;
 Lines 59-64    Link Here 
59
import org.netbeans.api.editor.fold.FoldUtilities;
59
import org.netbeans.api.editor.fold.FoldUtilities;
60
import org.netbeans.api.editor.fold.FoldHierarchyEvent;
60
import org.netbeans.api.editor.fold.FoldHierarchyEvent;
61
import org.netbeans.api.editor.fold.FoldHierarchyListener;
61
import org.netbeans.api.editor.fold.FoldHierarchyListener;
62
import org.netbeans.editor.BaseTextUI;
63
import org.netbeans.editor.EditorUI;
62
import org.netbeans.lib.editor.view.GapDocumentView;
64
import org.netbeans.lib.editor.view.GapDocumentView;
63
import org.netbeans.editor.view.spi.LockView;
65
import org.netbeans.editor.view.spi.LockView;
64
66
 Lines 67-73    Link Here 
67
 *
69
 *
68
 * @author Miloslav Metelka
70
 * @author Miloslav Metelka
69
 */
71
 */
70
/* package */ class DrawEngineDocView extends GapDocumentView
72
public class DrawEngineDocView extends GapDocumentView
71
implements FoldHierarchyListener, PropertyChangeListener {
73
implements FoldHierarchyListener, PropertyChangeListener {
72
    
74
    
73
    private static final boolean debugRebuild
75
    private static final boolean debugRebuild
 Lines 86-98    Link Here 
86
    
88
    
87
    private boolean estimatedSpanResetInitiated;
89
    private boolean estimatedSpanResetInitiated;
88
    
90
    
89
    DrawEngineDocView(Element elem) {
91
    public DrawEngineDocView(Element elem) {
90
        super(elem);
92
        super(elem);
91
        
93
        
92
        setEstimatedSpan(true);
94
        setEstimatedSpan(true);
93
    }
95
    }
94
    
96
    
95
    public void setParent(View parent) {
97
    public @Override void setParent(View parent) {
96
        if (parent != null) { // start listening
98
        if (parent != null) { // start listening
97
            JTextComponent component = (JTextComponent)parent.getContainer();
99
            JTextComponent component = (JTextComponent)parent.getContainer();
98
            foldHierarchy = FoldHierarchy.get(component);
100
            foldHierarchy = FoldHierarchy.get(component);
 Lines 127-133    Link Here 
127
        return foldHierarchy;
129
        return foldHierarchy;
128
    }
130
    }
129
    
131
    
130
    protected boolean useCustomReloadChildren() {
132
    protected @Override boolean useCustomReloadChildren() {
131
        return true;
133
        return true;
132
    }
134
    }
133
135
 Lines 201-207    Link Here 
201
        collapsedFold = null;
203
        collapsedFold = null;
202
    }
204
    }
203
205
204
    protected void customReloadChildren(int index, int removeLength, int startOffset, int endOffset) {
206
    protected @Override void customReloadChildren(int index, int removeLength, int startOffset, int endOffset) {
205
        // if removing all the views reset the flag
207
        // if removing all the views reset the flag
206
        if (index == 0 && removeLength == getViewCount()) {
208
        if (index == 0 && removeLength == getViewCount()) {
207
            collapsedFoldsInPresentViews = false; // suppose there will be no folds in line views
209
            collapsedFoldsInPresentViews = false; // suppose there will be no folds in line views
 Lines 224-230    Link Here 
224
        }
226
        }
225
    }
227
    }
226
        
228
        
227
    protected View createCustomView(ViewFactory f,
229
    protected @Override View createCustomView(ViewFactory f,
228
    int startOffset, int maxEndOffset, int elementIndex) {
230
    int startOffset, int maxEndOffset, int elementIndex) {
229
        if (elementIndex == -1) {
231
        if (elementIndex == -1) {
230
            throw new IllegalStateException("Need underlying line element structure"); // NOI18N
232
            throw new IllegalStateException("Need underlying line element structure"); // NOI18N
 Lines 244-252    Link Here 
244
                List foldAndEndLineElemList = new ArrayList();
246
                List foldAndEndLineElemList = new ArrayList();
245
247
246
                while (true) {
248
                while (true) {
247
                    int collapsedFoldEndOffset = collapsedFold.getEndOffset();
249
                    int _collapsedFoldEndOffset = collapsedFold.getEndOffset();
248
                    // Find line element index of the line in which the collapsed fold ends
250
                    // Find line element index of the line in which the collapsed fold ends
249
                    while (collapsedFoldEndOffset > lineElemEndOffset) {
251
                    while (_collapsedFoldEndOffset > lineElemEndOffset) {
250
                        elementIndex++;
252
                        elementIndex++;
251
                        lineElem = elem.getElement(elementIndex);
253
                        lineElem = elem.getElement(elementIndex);
252
                        lineElemEndOffset = lineElem.getEndOffset();
254
                        lineElemEndOffset = lineElem.getEndOffset();
 Lines 322-333    Link Here 
322
        }
324
        }
323
    }
325
    }
324
326
325
    public void paint(Graphics g, Shape allocation) {
327
    public @Override void paint(Graphics g, Shape allocation) {
326
        java.awt.Component c = getContainer();
328
        java.awt.Component c = getContainer();
327
        if (c instanceof javax.swing.text.JTextComponent){
329
        if (c instanceof javax.swing.text.JTextComponent){
328
            TextUI textUI = ((javax.swing.text.JTextComponent)c).getUI();
330
            TextUI textUI = ((javax.swing.text.JTextComponent)c).getUI();
329
            if (textUI instanceof BaseTextUI){
331
            if (textUI instanceof BaseTextUI){
330
                ((BaseTextUI) textUI).getEditorUI().paint(g);
332
                EditorUiAccessor.get().paint(((BaseTextUI) textUI).getEditorUI(), g);
331
            }
333
            }
332
        }
334
        }
333
335
 Lines 340-346    Link Here 
340
        }
342
        }
341
    }
343
    }
342
    
344
    
343
    public void setSize(float width, float height) {
345
    public @Override void setSize(float width, float height) {
344
        super.setSize(width, height);
346
        super.setSize(width, height);
345
347
346
        /* #69446 - disabled estimated span reset
348
        /* #69446 - disabled estimated span reset
 Lines 375-381    Link Here 
375
         */
377
         */
376
    }
378
    }
377
379
378
    protected boolean isChildrenResizeDisabled() {
380
    protected @Override boolean isChildrenResizeDisabled() {
379
        return true;
381
        return true;
380
    }
382
    }
381
    
383
    
(-)a/editor.lib/src/org/netbeans/editor/DrawEngineFakeDocView.java (-2 / +2 lines)
 Lines 39-45    Link Here 
39
 * made subject to such option by the copyright holder.
39
 * made subject to such option by the copyright holder.
40
 */
40
 */
41
41
42
package org.netbeans.editor;
42
package org.netbeans.modules.editor.lib.drawing;
43
43
44
import javax.swing.text.Element;
44
import javax.swing.text.Element;
45
import org.netbeans.api.editor.fold.Fold;
45
import org.netbeans.api.editor.fold.Fold;
 Lines 50-56    Link Here 
50
 *
50
 *
51
 * @author Martin Roskanin
51
 * @author Martin Roskanin
52
 */
52
 */
53
class DrawEngineFakeDocView extends DrawEngineDocView{
53
/* package */ class DrawEngineFakeDocView extends DrawEngineDocView{
54
54
55
        private boolean useCollapsing = true;
55
        private boolean useCollapsing = true;
56
        private int fakeStartOffset;
56
        private int fakeStartOffset;
(-)a/editor.lib/src/org/netbeans/editor/DrawEngineLineView.java (-2 / +5 lines)
 Lines 39-45    Link Here 
39
 * made subject to such option by the copyright holder.
39
 * made subject to such option by the copyright holder.
40
 */
40
 */
41
41
42
package org.netbeans.editor;
42
package org.netbeans.modules.editor.lib.drawing;
43
43
44
import java.awt.Graphics;
44
import java.awt.Graphics;
45
import java.awt.Rectangle;
45
import java.awt.Rectangle;
 Lines 55-60    Link Here 
55
import javax.swing.text.Position.Bias;
55
import javax.swing.text.Position.Bias;
56
import javax.swing.text.View;
56
import javax.swing.text.View;
57
import javax.swing.text.ViewFactory;
57
import javax.swing.text.ViewFactory;
58
import org.netbeans.editor.BaseDocument;
59
import org.netbeans.editor.BaseTextUI;
60
import org.netbeans.editor.EditorUI;
58
import org.netbeans.editor.view.spi.EstimatedSpanView;
61
import org.netbeans.editor.view.spi.EstimatedSpanView;
59
import org.netbeans.editor.view.spi.LockView;
62
import org.netbeans.editor.view.spi.LockView;
60
import org.netbeans.editor.view.spi.ViewLayoutState;
63
import org.netbeans.editor.view.spi.ViewLayoutState;
 Lines 67-73    Link Here 
67
 *
70
 *
68
 * @author  Martin Roskanin
71
 * @author  Martin Roskanin
69
 */
72
 */
70
/* package */ class DrawEngineLineView extends View implements ViewLayoutState, EstimatedSpanView {
73
public class DrawEngineLineView extends View implements ViewLayoutState, EstimatedSpanView {
71
74
72
    private static final Logger LOG = Logger.getLogger(DrawEngineLineView.class.getName());
75
    private static final Logger LOG = Logger.getLogger(DrawEngineLineView.class.getName());
73
    private static final boolean loggable = LOG.isLoggable(Level.FINEST);
76
    private static final boolean loggable = LOG.isLoggable(Level.FINEST);
(-)a/editor.lib/src/org/netbeans/editor/DrawGraphics.java (-11 / +18 lines)
 Lines 39-45    Link Here 
39
 * made subject to such option by the copyright holder.
39
 * made subject to such option by the copyright holder.
40
 */
40
 */
41
41
42
package org.netbeans.editor;
42
package org.netbeans.modules.editor.lib.drawing;
43
43
44
import java.awt.Graphics;
44
import java.awt.Graphics;
45
import java.awt.Font;
45
import java.awt.Font;
 Lines 53-58    Link Here 
53
import java.awt.font.TextLayout;
53
import java.awt.font.TextLayout;
54
import javax.swing.JComponent;
54
import javax.swing.JComponent;
55
import javax.swing.text.View;
55
import javax.swing.text.View;
56
import org.netbeans.editor.Analyzer;
57
import org.netbeans.editor.AnnotationDesc;
58
import org.netbeans.editor.AnnotationTypes;
59
import org.netbeans.editor.Annotations;
60
import org.netbeans.editor.FontMetricsCache;
61
import org.netbeans.editor.PrintContainer;
56
62
57
/** Draw graphics functions as abstraction over various kinds of drawing. It's used
63
/** Draw graphics functions as abstraction over various kinds of drawing. It's used
58
* for drawing into classic graphics, printing and measuring.
64
* for drawing into classic graphics, printing and measuring.
 Lines 63-69    Link Here 
63
* @author Miloslav Metelka
69
* @author Miloslav Metelka
64
* @version 1.00
70
* @version 1.00
65
*/
71
*/
66
interface DrawGraphics {
72
public interface DrawGraphics {
67
    
73
    
68
    /** Set foreground color */
74
    /** Set foreground color */
69
    public void setForeColor(Color foreColor);
75
    public void setForeColor(Color foreColor);
 Lines 191-197    Link Here 
191
    /** Abstract draw-graphics that maintains a fg and bg color, font,
197
    /** Abstract draw-graphics that maintains a fg and bg color, font,
192
    * current x and y coordinates.
198
    * current x and y coordinates.
193
    */
199
    */
194
    static abstract class AbstractDG implements DrawGraphics {
200
    public static abstract class AbstractDG implements DrawGraphics {
195
201
196
        /** Current foreground color */
202
        /** Current foreground color */
197
        Color foreColor;
203
        Color foreColor;
 Lines 326-332    Link Here 
326
332
327
    } // End of AbstractDG class
333
    } // End of AbstractDG class
328
334
329
    static class SimpleDG extends AbstractDG {
335
    public static class SimpleDG extends AbstractDG {
330
336
331
        public Graphics getGraphics() {
337
        public Graphics getGraphics() {
332
            return null;
338
            return null;
 Lines 359-365    Link Here 
359
    * It optimizes the drawing by joining together the pieces of
365
    * It optimizes the drawing by joining together the pieces of
360
    * the text drawn with the same font and fg/bg color.
366
    * the text drawn with the same font and fg/bg color.
361
    */
367
    */
362
    static final class GraphicsDG extends SimpleDG {
368
    public static final class GraphicsDG extends SimpleDG {
363
369
364
        /** Whether debug messages should be displayed */
370
        /** Whether debug messages should be displayed */
365
        private static final boolean debug
371
        private static final boolean debug
 Lines 420-426    Link Here 
420
426
421
        private JComponent component;
427
        private JComponent component;
422
428
423
        GraphicsDG(Graphics graphics) {
429
        public GraphicsDG(Graphics graphics) {
424
            this.graphics = graphics;
430
            this.graphics = graphics;
425
            // #33165 - set invalid y initially
431
            // #33165 - set invalid y initially
426
            this.y = -1;
432
            this.y = -1;
 Lines 532-542    Link Here 
532
        }
538
        }
533
539
534
        public @Override void init(DrawContext ctx) {
540
        public @Override void init(DrawContext ctx) {
541
            EditorUiAccessor accessor = EditorUiAccessor.get();
535
            annos = ctx.getEditorUI().getDocument().getAnnotations();
542
            annos = ctx.getEditorUI().getDocument().getAnnotations();
536
            drawTextLimitLine = ctx.getEditorUI().textLimitLineVisible;
543
            drawTextLimitLine = accessor.getTextLimitLineVisible(ctx.getEditorUI());
537
            textLimitWidth = ctx.getEditorUI().textLimitWidth();
544
            textLimitWidth = accessor.getTextLimitWidth(ctx.getEditorUI());
538
            defaultSpaceWidth = ctx.getEditorUI().defaultSpaceWidth;
545
            defaultSpaceWidth = accessor.getDefaultSpaceWidth(ctx.getEditorUI());
539
            textLimitLineColor = ctx.getEditorUI().getTextLimitLineColor();
546
            textLimitLineColor = accessor.getTextLimitLineColor(ctx.getEditorUI());
540
            absoluteX = ctx.getEditorUI().getTextMargin().left;
547
            absoluteX = ctx.getEditorUI().getTextMargin().left;
541
            maxWidth = ctx.getEditorUI().getExtentBounds().width;
548
            maxWidth = ctx.getEditorUI().getExtentBounds().width;
542
            component = ctx.getEditorUI().getComponent();
549
            component = ctx.getEditorUI().getComponent();
 Lines 822-828    Link Here 
822
829
823
    } // End of GraphicsDG class
830
    } // End of GraphicsDG class
824
831
825
    static final class PrintDG extends SimpleDG {
832
    public static final class PrintDG extends SimpleDG {
826
833
827
        PrintContainer container;
834
        PrintContainer container;
828
835
(-)a/editor.lib/src/org/netbeans/editor/DrawLayer.java (-4 / +4 lines)
 Lines 39-45    Link Here 
39
 * made subject to such option by the copyright holder.
39
 * made subject to such option by the copyright holder.
40
 */
40
 */
41
41
42
package org.netbeans.editor;
42
package org.netbeans.modules.editor.lib.drawing;
43
43
44
/** Draw layer applies changes to draw context during painting process.
44
/** Draw layer applies changes to draw context during painting process.
45
* Each extended UI has its own set of layers.
45
* Each extended UI has its own set of layers.
 Lines 61-67    Link Here 
61
*/
61
*/
62
62
63
63
64
public interface DrawLayer {
64
/* package */ interface DrawLayer {
65
65
66
    /**
66
    /**
67
     * Start of the next region with the frame.
67
     * Start of the next region with the frame.
 Lines 122-128    Link Here 
122
    * @param mark draw-mark at the fragment-offset or null if called
122
    * @param mark draw-mark at the fragment-offset or null if called
123
    * because of the next-activity-change-offset.
123
    * because of the next-activity-change-offset.
124
    */
124
    */
125
    public boolean isActive(DrawContext ctx, MarkFactory.DrawMark mark);
125
    public boolean isActive(DrawContext ctx, DrawMark mark);
126
126
127
    /** Update draw context by setting colors, fonts and possibly other draw
127
    /** Update draw context by setting colors, fonts and possibly other draw
128
    * properties.
128
    * properties.
 Lines 200-206    Link Here 
200
            return lineNumber;
200
            return lineNumber;
201
        }
201
        }
202
202
203
        public String toString() {
203
        public @Override String toString() {
204
            return "Layer " + getClass() + ", name='" + name; // NOI18N
204
            return "Layer " + getClass() + ", name='" + name; // NOI18N
205
        }
205
        }
206
206
(-)a/editor.lib/src/org/netbeans/editor/DrawLayerList.java (-3 / +14 lines)
 Lines 39-45    Link Here 
39
 * made subject to such option by the copyright holder.
39
 * made subject to such option by the copyright holder.
40
 */
40
 */
41
41
42
package org.netbeans.editor;
42
package org.netbeans.modules.editor.lib.drawing;
43
43
44
import java.util.ArrayList;
44
import java.util.ArrayList;
45
import java.util.Arrays;
45
import java.util.Arrays;
 Lines 48-53    Link Here 
48
import java.util.Set;
48
import java.util.Set;
49
import java.util.logging.Level;
49
import java.util.logging.Level;
50
import java.util.logging.Logger;
50
import java.util.logging.Logger;
51
import javax.swing.text.JTextComponent;
52
import org.netbeans.editor.EditorDebug;
51
53
52
/** Draw layer list stores multiple draw-layers sorted
54
/** Draw layer list stores multiple draw-layers sorted
53
* according to their visibility which is the integer giving the z-order
55
* according to their visibility which is the integer giving the z-order
 Lines 59-65    Link Here 
59
*/
61
*/
60
62
61
63
62
class DrawLayerList {
64
/* package */ class DrawLayerList {
63
65
64
    private static final Logger LOG = Logger.getLogger(DrawLayerList.class.getName());
66
    private static final Logger LOG = Logger.getLogger(DrawLayerList.class.getName());
65
67
 Lines 71-76    Link Here 
71
    
73
    
72
    private final ArrayList visibilityList = new ArrayList();
74
    private final ArrayList visibilityList = new ArrayList();
73
75
76
    public static synchronized DrawLayerList forComponent(JTextComponent jtc) {
77
        DrawLayerList dll = (DrawLayerList) jtc.getClientProperty(DrawLayerList.class);
78
        if (dll == null) {
79
            dll = new DrawLayerList();
80
            jtc.putClientProperty(DrawLayerList.class, dll);
81
        }
82
        return dll;
83
    }
84
74
    /** Add the new layer to the list depending on visibility.
85
    /** Add the new layer to the list depending on visibility.
75
    * @param layer layer to add to the layer list
86
    * @param layer layer to add to the layer list
76
    * @return true when new layer was added false otherwise. The layer
87
    * @return true when new layer was added false otherwise. The layer
 Lines 168-174    Link Here 
168
        return -1;
179
        return -1;
169
    }
180
    }
170
181
171
    public String toString() {
182
    public @Override String toString() {
172
        switch (layers.length) {
183
        switch (layers.length) {
173
        case 0:
184
        case 0:
174
            return "No layers"; // NOI18N
185
            return "No layers"; // NOI18N
(-)a/editor.lib/src/org/netbeans/modules/editor/lib/drawing/DrawMark.java (+121 lines)
Line 0    Link Here 
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
5
 *
6
 * The contents of this file are subject to the terms of either the GNU
7
 * General Public License Version 2 only ("GPL") or the Common
8
 * Development and Distribution License("CDDL") (collectively, the
9
 * "License"). You may not use this file except in compliance with the
10
 * License. You can obtain a copy of the License at
11
 * http://www.netbeans.org/cddl-gplv2.html
12
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
13
 * specific language governing permissions and limitations under the
14
 * License.  When distributing the software, include this License Header
15
 * Notice in each file and include the License file at
16
 * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
17
 * particular file as subject to the "Classpath" exception as provided
18
 * by Sun in the GPL Version 2 section of the License file that
19
 * accompanied this code. If applicable, add the following below the
20
 * License Header, with the fields enclosed by brackets [] replaced by
21
 * your own identifying information:
22
 * "Portions Copyrighted [year] [name of copyright owner]"
23
 *
24
 * If you wish your version of this file to be governed by only the CDDL
25
 * or only the GPL Version 2, indicate your decision by adding
26
 * "[Contributor] elects to include this software in this distribution
27
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
28
 * single choice of license, a recipient has the option to distribute
29
 * your version of this file under either the CDDL, the GPL Version 2 or
30
 * to extend the choice of license to its licensees as provided above.
31
 * However, if you add GPL Version 2 code and therefore, elected the GPL
32
 * Version 2 license, then the option applies only if the new code is
33
 * made subject to such option by the copyright holder.
34
 *
35
 * Contributor(s):
36
 *
37
 * Portions Copyrighted 2009 Sun Microsystems, Inc.
38
 */
39
40
package org.netbeans.modules.editor.lib.drawing;
41
42
import java.lang.ref.WeakReference;
43
import javax.swing.text.Position;
44
import org.netbeans.editor.EditorUI;
45
import org.netbeans.editor.InvalidMarkException;
46
import org.netbeans.editor.MarkFactory.ContextMark;
47
48
/** Activation mark for particular layer. When layer is not active
49
* its updateContext() method is not called.
50
*/
51
/* package */ class DrawMark extends ContextMark {
52
53
    /** Activation flag means either activate layer or deactivate it */
54
    protected boolean activateLayer;
55
56
    /** Reference to draw layer this mark belogns to */
57
    String layerName;
58
59
    /** Reference to extended UI if this draw mark is info-specific or
60
    * null if it's document-wide.
61
    */
62
    WeakReference editorUIRef;
63
64
    public DrawMark(String layerName, EditorUI editorUI) {
65
        this(layerName, editorUI, Position.Bias.Forward);
66
    }
67
68
    public DrawMark(String layerName, EditorUI editorUI, Position.Bias bias) {
69
        super(bias, false);
70
        this.layerName = layerName;
71
        setEditorUI(editorUI);
72
    }
73
74
    public boolean isDocumentMark() {
75
        return (editorUIRef == null);
76
    }
77
78
    public EditorUI getEditorUI() {
79
        if (editorUIRef != null) {
80
            return (EditorUI)editorUIRef.get();
81
        }
82
        return null;
83
    }
84
85
    public void setEditorUI(EditorUI editorUI) {
86
        this.editorUIRef = (editorUI != null) ? new WeakReference(editorUI) : null;
87
    }
88
89
    public boolean isValidUI() {
90
        return !(editorUIRef != null && editorUIRef.get() == null);
91
    }
92
93
    public void setActivateLayer(boolean activateLayer) {
94
        this.activateLayer = activateLayer;
95
    }
96
97
    public boolean getActivateLayer() {
98
        return activateLayer;
99
    }
100
101
    public boolean removeInvalid() {
102
        if (!isValidUI() && isValid()) {
103
            try {
104
                this.remove();
105
            } catch (InvalidMarkException e) {
106
                throw new IllegalStateException(e.toString());
107
            }
108
            return true; // invalid and removed
109
        }
110
        return false; // valid
111
    }
112
113
    public @Override String toString() {
114
        try {
115
            return "pos=" + getOffset() + ", line=" + getLine(); // NOI18N
116
        } catch (InvalidMarkException e) {
117
            return "mark not valid"; // NOI18N
118
        }
119
    }
120
121
}
(-)a/editor.lib/src/org/netbeans/modules/editor/lib/drawing/EditorUiAccessor.java (+97 lines)
Line 0    Link Here 
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
5
 *
6
 * The contents of this file are subject to the terms of either the GNU
7
 * General Public License Version 2 only ("GPL") or the Common
8
 * Development and Distribution License("CDDL") (collectively, the
9
 * "License"). You may not use this file except in compliance with the
10
 * License. You can obtain a copy of the License at
11
 * http://www.netbeans.org/cddl-gplv2.html
12
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
13
 * specific language governing permissions and limitations under the
14
 * License.  When distributing the software, include this License Header
15
 * Notice in each file and include the License file at
16
 * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
17
 * particular file as subject to the "Classpath" exception as provided
18
 * by Sun in the GPL Version 2 section of the License file that
19
 * accompanied this code. If applicable, add the following below the
20
 * License Header, with the fields enclosed by brackets [] replaced by
21
 * your own identifying information:
22
 * "Portions Copyrighted [year] [name of copyright owner]"
23
 *
24
 * If you wish your version of this file to be governed by only the CDDL
25
 * or only the GPL Version 2, indicate your decision by adding
26
 * "[Contributor] elects to include this software in this distribution
27
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
28
 * single choice of license, a recipient has the option to distribute
29
 * your version of this file under either the CDDL, the GPL Version 2 or
30
 * to extend the choice of license to its licensees as provided above.
31
 * However, if you add GPL Version 2 code and therefore, elected the GPL
32
 * Version 2 license, then the option applies only if the new code is
33
 * made subject to such option by the copyright holder.
34
 *
35
 * Contributor(s):
36
 *
37
 * Portions Copyrighted 2009 Sun Microsystems, Inc.
38
 */
39
40
package org.netbeans.modules.editor.lib.drawing;
41
42
import java.awt.Color;
43
import java.awt.Graphics;
44
import java.awt.Insets;
45
import java.awt.Rectangle;
46
import java.util.Map;
47
import org.netbeans.editor.Coloring;
48
import org.netbeans.editor.EditorUI;
49
50
/**
51
 *
52
 * @author vita
53
 */
54
public abstract class EditorUiAccessor {
55
56
    private static EditorUiAccessor ACCESSOR = null;
57
58
    public static synchronized void register(EditorUiAccessor accessor) {
59
        assert ACCESSOR == null : "Can't register two package accessors!"; //NOI18N
60
        ACCESSOR = accessor;
61
    }
62
63
    public static synchronized EditorUiAccessor get() {
64
        // Trying to wake up EditorUI ...
65
        try {
66
            Class clazz = Class.forName(EditorUI.class.getName());
67
        } catch (ClassNotFoundException e) {
68
            // ignore
69
        }
70
71
        assert ACCESSOR != null : "There is no package accessor available!"; //NOI18N
72
        return ACCESSOR;
73
    }
74
75
    protected EditorUiAccessor() {
76
    }
77
78
    public abstract boolean isLineNumberVisible(EditorUI eui);
79
    public abstract Coloring getColoring(EditorUI eui, String coloringName);
80
    public abstract int getLineNumberMaxDigitCount(EditorUI eui);
81
    public abstract int getLineNumberWidth(EditorUI eui);
82
    public abstract int getLineNumberDigitWidth(EditorUI eui);
83
    public abstract Insets getLineNumberMargin(EditorUI eui);
84
    public abstract int getLineHeight(EditorUI eui);
85
    public abstract Coloring getDefaultColoring(EditorUI eui);
86
    public abstract int getDefaultSpaceWidth(EditorUI eui);
87
    public abstract Map<?, ?> getRenderingHints(EditorUI eui);
88
    public abstract Rectangle getExtentBounds(EditorUI eui);
89
    public abstract Insets getTextMargin(EditorUI eui);
90
    public abstract int getTextLeftMarginWidth(EditorUI eui);
91
    public abstract boolean getTextLimitLineVisible(EditorUI eui);
92
    public abstract Color getTextLimitLineColor(EditorUI eui);
93
    public abstract int getTextLimitWidth(EditorUI eui);
94
    public abstract int getLineAscent(EditorUI eui);
95
    public abstract void paint(EditorUI eui, Graphics g);
96
97
}
(-)a/editor.lib/src/org/netbeans/editor/FoldMultiLineView.java (-3 / +4 lines)
 Lines 39-45    Link Here 
39
 * made subject to such option by the copyright holder.
39
 * made subject to such option by the copyright holder.
40
 */
40
 */
41
41
42
package org.netbeans.editor;
42
package org.netbeans.modules.editor.lib.drawing;
43
43
44
import java.util.ArrayList;
44
import java.util.ArrayList;
45
import java.util.List;
45
import java.util.List;
 Lines 50-55    Link Here 
50
import javax.swing.text.View;
50
import javax.swing.text.View;
51
import javax.swing.text.ViewFactory;
51
import javax.swing.text.ViewFactory;
52
import org.netbeans.api.editor.fold.Fold;
52
import org.netbeans.api.editor.fold.Fold;
53
import org.netbeans.editor.BaseDocument;
53
import org.netbeans.lib.editor.view.GapMultiLineView;
54
import org.netbeans.lib.editor.view.GapMultiLineView;
54
55
55
/**
56
/**
 Lines 84-94    Link Here 
84
        return (JTextComponent)getContainer();
85
        return (JTextComponent)getContainer();
85
    }
86
    }
86
    
87
    
87
    protected boolean useCustomReloadChildren() {
88
    protected @Override boolean useCustomReloadChildren() {
88
        return true;
89
        return true;
89
    }
90
    }
90
    
91
    
91
    protected void reloadChildren(int index, int removeLength, int startOffset, int endOffset) {
92
    protected @Override void reloadChildren(int index, int removeLength, int startOffset, int endOffset) {
92
        // TODO uncomment assert (index == 0 && removeLength == 0
93
        // TODO uncomment assert (index == 0 && removeLength == 0
93
            // && startOffset == getStartOffset() && endOffset == getEndOffset());
94
            // && startOffset == getStartOffset() && endOffset == getEndOffset());
94
95
(-)a/editor.lib/src/org/netbeans/editor/HighlightingDrawLayer.java (-28 / +33 lines)
 Lines 39-45    Link Here 
39
 * made subject to such option by the copyright holder.
39
 * made subject to such option by the copyright holder.
40
 */
40
 */
41
41
42
package org.netbeans.editor;
42
package org.netbeans.modules.editor.lib.drawing;
43
43
44
import java.lang.ref.WeakReference;
44
import java.lang.ref.WeakReference;
45
import java.util.ArrayList;
45
import java.util.ArrayList;
 Lines 61-67    Link Here 
61
import javax.swing.text.SimpleAttributeSet;
61
import javax.swing.text.SimpleAttributeSet;
62
import javax.swing.text.View;
62
import javax.swing.text.View;
63
import org.netbeans.api.editor.settings.AttributesUtilities;
63
import org.netbeans.api.editor.settings.AttributesUtilities;
64
import org.netbeans.editor.ext.ExtCaret;
64
import org.netbeans.editor.AtomicLockEvent;
65
import org.netbeans.editor.AtomicLockListener;
66
import org.netbeans.editor.BaseCaret;
67
import org.netbeans.editor.BaseDocument;
68
import org.netbeans.editor.Coloring;
65
import org.netbeans.editor.view.spi.LockView;
69
import org.netbeans.editor.view.spi.LockView;
66
import org.netbeans.modules.editor.lib2.highlighting.CaretBasedBlockHighlighting.CaretRowHighlighting;
70
import org.netbeans.modules.editor.lib2.highlighting.CaretBasedBlockHighlighting.CaretRowHighlighting;
67
import org.netbeans.modules.editor.lib2.highlighting.HighlightingManager;
71
import org.netbeans.modules.editor.lib2.highlighting.HighlightingManager;
 Lines 80-86    Link Here 
80
 *
84
 *
81
 * @author vita
85
 * @author vita
82
 */
86
 */
83
/* package */ final class HighlightingDrawLayer extends DrawLayer.AbstractLayer 
87
public final class HighlightingDrawLayer extends DrawLayer.AbstractLayer
84
    implements HighlightsChangeListener, AtomicLockListener
88
    implements HighlightsChangeListener, AtomicLockListener
85
{
89
{
86
    // -J-Dorg.netbeans.editor.HighlightingDrawLayer.level=FINE
90
    // -J-Dorg.netbeans.editor.HighlightingDrawLayer.level=FINE
 Lines 89-96    Link Here 
89
    // Above CaretRowHighlighting.LAYER_TYPE_ID
93
    // Above CaretRowHighlighting.LAYER_TYPE_ID
90
    private static final String LAYER_A_NAME = "org-netbeans-lib-editor-nview-HighlightingDrawLayer/A"; //NOI18N
94
    private static final String LAYER_A_NAME = "org-netbeans-lib-editor-nview-HighlightingDrawLayer/A"; //NOI18N
91
    // above ZOrder.SYNTAX_RACK and below (including) CaretRowHighlighting.LAYER_TYPE_ID
95
    // above ZOrder.SYNTAX_RACK and below (including) CaretRowHighlighting.LAYER_TYPE_ID
92
    // Using the original name for the caret row highlighting, some clients use it to remove the layer.
96
    private static final String LAYER_B_NAME = "org-netbeans-lib-editor-nview-HighlightingDrawLayer/B"; //NOI18N
93
    private static final String LAYER_B_NAME = ExtCaret.HIGHLIGHT_ROW_LAYER_NAME; 
94
    // Only ZOrder.SYNTAX_RACK
97
    // Only ZOrder.SYNTAX_RACK
95
    private static final String LAYER_C_NAME = "org-netbeans-lib-editor-nview-HighlightingDrawLayer/C"; //NOI18N
98
    private static final String LAYER_C_NAME = "org-netbeans-lib-editor-nview-HighlightingDrawLayer/C"; //NOI18N
96
    // ZOrder.BOTTOM_RACK
99
    // ZOrder.BOTTOM_RACK
 Lines 188-247    Link Here 
188
        }
191
        }
189
    }; // End of FILTER_D constant
192
    }; // End of FILTER_D constant
190
    
193
    
191
    public static void hookUp(EditorUI eui) {
194
    public static void hookUp(JTextComponent jtc) {
192
        DrawLayer layerA = eui.findLayer(LAYER_A_NAME);
195
        DrawLayerList dll = DrawLayerList.forComponent(jtc);
196
        DrawLayer layerA = dll.findLayer(LAYER_A_NAME);
193
        if (layerA == null) {
197
        if (layerA == null) {
194
            layerA = new HighlightingDrawLayer(LAYER_A_NAME, FILTER_A);
198
            layerA = new HighlightingDrawLayer(LAYER_A_NAME, FILTER_A);
195
            eui.addLayer(layerA, 10000); // the old text selection layer's z-order (DrawLayerFactory.CaretLayer)
199
            dll.add(layerA, 10000); // the old text selection layer's z-order (DrawLayerFactory.CaretLayer)
196
200
197
            if (LOG.isLoggable(Level.FINE)) {
201
            if (LOG.isLoggable(Level.FINE)) {
198
                LOG.fine("Successfully registered layerA in " + simpleToString(eui)); //NOI18N
202
                LOG.fine("Successfully registered layerA in " + simpleToString(jtc)); //NOI18N
199
            }
203
            }
200
        } else {
204
        } else {
201
            if (LOG.isLoggable(Level.FINE)) {
205
            if (LOG.isLoggable(Level.FINE)) {
202
                LOG.fine("LayerA is already registered in " + simpleToString(eui)); //NOI18N
206
                LOG.fine("LayerA is already registered in " + simpleToString(jtc)); //NOI18N
203
            }
207
            }
204
        }
208
        }
205
209
206
        DrawLayer layerB = eui.findLayer(LAYER_B_NAME);
210
        DrawLayer layerB = dll.findLayer(LAYER_B_NAME);
207
        if (layerB == null) {
211
        if (layerB == null) {
208
            layerB = new HighlightingDrawLayer(LAYER_B_NAME, FILTER_B);
212
            layerB = new HighlightingDrawLayer(LAYER_B_NAME, FILTER_B);
209
            eui.addLayer(layerB, 2050); // the old caret row highlight layer's z-order
213
            dll.add(layerB, 2050); // the old caret row highlight layer's z-order
210
214
211
            if (LOG.isLoggable(Level.FINE)) {
215
            if (LOG.isLoggable(Level.FINE)) {
212
                LOG.fine("Successfully registered layerB in " + simpleToString(eui)); //NOI18N
216
                LOG.fine("Successfully registered layerB in " + simpleToString(jtc)); //NOI18N
213
            }
217
            }
214
        } else {
218
        } else {
215
            if (LOG.isLoggable(Level.FINE)) {
219
            if (LOG.isLoggable(Level.FINE)) {
216
                LOG.fine("LayerB is already registered in " + simpleToString(eui)); //NOI18N
220
                LOG.fine("LayerB is already registered in " + simpleToString(jtc)); //NOI18N
217
            }
221
            }
218
        }
222
        }
219
223
220
        DrawLayer layerC = eui.findLayer(LAYER_C_NAME);
224
        DrawLayer layerC = dll.findLayer(LAYER_C_NAME);
221
        if (layerC == null) {
225
        if (layerC == null) {
222
            layerC = new HighlightingDrawLayer(LAYER_C_NAME, FILTER_C);
226
            layerC = new HighlightingDrawLayer(LAYER_C_NAME, FILTER_C);
223
            eui.addLayer(layerC, 1000); // the old syntax draw layer's z-order (DrawLayerFactory.SyntaxLayer)
227
            dll.add(layerC, 1000); // the old syntax draw layer's z-order (DrawLayerFactory.SyntaxLayer)
224
228
225
            if (LOG.isLoggable(Level.FINE)) {
229
            if (LOG.isLoggable(Level.FINE)) {
226
                LOG.fine("Successfully registered layerC in " + simpleToString(eui)); //NOI18N
230
                LOG.fine("Successfully registered layerC in " + simpleToString(jtc)); //NOI18N
227
            }
231
            }
228
        } else {
232
        } else {
229
            if (LOG.isLoggable(Level.FINE)) {
233
            if (LOG.isLoggable(Level.FINE)) {
230
                LOG.fine("LayerC is already registered in " + simpleToString(eui)); //NOI18N
234
                LOG.fine("LayerC is already registered in " + simpleToString(jtc)); //NOI18N
231
            }
235
            }
232
        }
236
        }
233
237
234
        DrawLayer layerD = eui.findLayer(LAYER_D_NAME);
238
        DrawLayer layerD = dll.findLayer(LAYER_D_NAME);
235
        if (layerD == null) {
239
        if (layerD == null) {
236
            layerD = new HighlightingDrawLayer(LAYER_D_NAME, FILTER_D);
240
            layerD = new HighlightingDrawLayer(LAYER_D_NAME, FILTER_D);
237
            eui.addLayer(layerD, 500);
241
            dll.add(layerD, 500);
238
242
239
            if (LOG.isLoggable(Level.FINE)) {
243
            if (LOG.isLoggable(Level.FINE)) {
240
                LOG.fine("Successfully registered layerD in " + simpleToString(eui)); //NOI18N
244
                LOG.fine("Successfully registered layerD in " + simpleToString(jtc)); //NOI18N
241
            }
245
            }
242
        } else {
246
        } else {
243
            if (LOG.isLoggable(Level.FINE)) {
247
            if (LOG.isLoggable(Level.FINE)) {
244
                LOG.fine("LayerD is already registered in " + simpleToString(eui)); //NOI18N
248
                LOG.fine("LayerD is already registered in " + simpleToString(jtc)); //NOI18N
245
            }
249
            }
246
        }
250
        }
247
    }
251
    }
 Lines 341-347    Link Here 
341
        }
345
        }
342
    }
346
    }
343
    
347
    
344
    public boolean isActive(DrawContext ctx, MarkFactory.DrawMark mark) {
348
    public boolean isActive(DrawContext ctx, DrawMark mark) {
345
        if (highlights != null) {
349
        if (highlights != null) {
346
            return processOffset(ctx, false);
350
            return processOffset(ctx, false);
347
        } else {
351
        } else {
 Lines 351-371    Link Here 
351
355
352
    public void updateContext(DrawContext ctx) {
356
    public void updateContext(DrawContext ctx) {
353
        if (highlights != null) {
357
        if (highlights != null) {
358
            ColoringAccessor accessor = ColoringAccessor.get();
354
            if (ctx.isEOL() && ctx.isBOL()) {
359
            if (ctx.isEOL() && ctx.isBOL()) {
355
                if (extendsEmptyLine() && !theLittleSpitAtTheBeginningOfAnEmptyLineDrawn) {
360
                if (extendsEmptyLine() && !theLittleSpitAtTheBeginningOfAnEmptyLineDrawn) {
356
                    theLittleSpitAtTheBeginningOfAnEmptyLineDrawn = true;
361
                    theLittleSpitAtTheBeginningOfAnEmptyLineDrawn = true;
357
                    Coloring coloring = Coloring.fromAttributeSet(lastELAttribs);
362
                    Coloring coloring = Coloring.fromAttributeSet(lastELAttribs);
358
                    coloring.apply(ctx);
363
                    accessor.apply(coloring, ctx);
359
                } else {
364
                } else {
360
                    if (extendsEOL()) {
365
                    if (extendsEOL()) {
361
                        Coloring coloring = Coloring.fromAttributeSet(lastEOLAttribs);
366
                        Coloring coloring = Coloring.fromAttributeSet(lastEOLAttribs);
362
                        coloring.apply(ctx);
367
                        accessor.apply(coloring, ctx);
363
                    }
368
                    }
364
                }
369
                }
365
            } else if (ctx.isEOL()) {
370
            } else if (ctx.isEOL()) {
366
                if (extendsEOL()) {
371
                if (extendsEOL()) {
367
                    Coloring coloring = Coloring.fromAttributeSet(lastEOLAttribs);
372
                    Coloring coloring = Coloring.fromAttributeSet(lastEOLAttribs);
368
                    coloring.apply(ctx);
373
                    accessor.apply(coloring, ctx);
369
                }
374
                }
370
            } else {
375
            } else {
371
                processOffset(ctx, true);
376
                processOffset(ctx, true);
 Lines 624-630    Link Here 
624
            if (hs.getStartOffset() <= currentOffset) {
629
            if (hs.getStartOffset() <= currentOffset) {
625
                if (applyAttributes) {
630
                if (applyAttributes) {
626
                    Coloring coloring = Coloring.fromAttributeSet(hs.getAttributes());
631
                    Coloring coloring = Coloring.fromAttributeSet(hs.getAttributes());
627
                    coloring.apply(ctx);
632
                    ColoringAccessor.get().apply(coloring, ctx);
628
                }
633
                }
629
                
634
                
630
                lastAttributeSet = hs.getAttributes();
635
                lastAttributeSet = hs.getAttributes();
 Lines 676-682    Link Here 
676
681
677
        return new AttributeSet [] { eolAttribs, elAttribs };
682
        return new AttributeSet [] { eolAttribs, elAttribs };
678
    }
683
    }
679
    
684
680
    private static String simpleToString(Object o) {
685
    private static String simpleToString(Object o) {
681
        return o == null ? "null" : o.getClass() + "@" + Integer.toHexString(System.identityHashCode(o)); //NOI18N
686
        return o == null ? "null" : o.getClass() + "@" + Integer.toHexString(System.identityHashCode(o)); //NOI18N
682
    }
687
    }
(-)a/editor.lib/src/org/netbeans/modules/editor/lib/drawing/LayerChain.java (+71 lines)
Line 0    Link Here 
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
5
 *
6
 * The contents of this file are subject to the terms of either the GNU
7
 * General Public License Version 2 only ("GPL") or the Common
8
 * Development and Distribution License("CDDL") (collectively, the
9
 * "License"). You may not use this file except in compliance with the
10
 * License. You can obtain a copy of the License at
11
 * http://www.netbeans.org/cddl-gplv2.html
12
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
13
 * specific language governing permissions and limitations under the
14
 * License.  When distributing the software, include this License Header
15
 * Notice in each file and include the License file at
16
 * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
17
 * particular file as subject to the "Classpath" exception as provided
18
 * by Sun in the GPL Version 2 section of the License file that
19
 * accompanied this code. If applicable, add the following below the
20
 * License Header, with the fields enclosed by brackets [] replaced by
21
 * your own identifying information:
22
 * "Portions Copyrighted [year] [name of copyright owner]"
23
 *
24
 * If you wish your version of this file to be governed by only the CDDL
25
 * or only the GPL Version 2, indicate your decision by adding
26
 * "[Contributor] elects to include this software in this distribution
27
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
28
 * single choice of license, a recipient has the option to distribute
29
 * your version of this file under either the CDDL, the GPL Version 2 or
30
 * to extend the choice of license to its licensees as provided above.
31
 * However, if you add GPL Version 2 code and therefore, elected the GPL
32
 * Version 2 license, then the option applies only if the new code is
33
 * made subject to such option by the copyright holder.
34
 *
35
 * Contributor(s):
36
 *
37
 * Portions Copyrighted 2009 Sun Microsystems, Inc.
38
 */
39
40
package org.netbeans.modules.editor.lib.drawing;
41
42
import javax.swing.text.Position;
43
import org.netbeans.editor.BaseDocument;
44
import org.netbeans.editor.Mark;
45
import org.netbeans.editor.MarkBlockChain;
46
47
/* package */ class LayerChain extends MarkBlockChain {
48
49
    private String layerName;
50
51
    public LayerChain(BaseDocument doc, String layerName) {
52
        super(doc);
53
        this.layerName = layerName;
54
    }
55
56
    public final String getLayerName() {
57
        return layerName;
58
    }
59
60
    protected @Override Mark createBlockStartMark() {
61
        DrawMark startMark = new DrawMark(layerName, null);
62
        startMark.activateLayer = true;
63
        return startMark;
64
    }
65
66
    protected @Override Mark createBlockEndMark() {
67
        DrawMark endMark = new DrawMark(layerName, null, Position.Bias.Backward);
68
        return endMark;
69
    }
70
71
}
<
(-)a/editor.lib/src/org/netbeans/editor/MarkChain.java (-17 / +21 lines)
 Lines 39-48    Link Here 
39
 * made subject to such option by the copyright holder.
39
 * made subject to such option by the copyright holder.
40
 */
40
 */
41
41
42
package org.netbeans.editor;
42
package org.netbeans.modules.editor.lib.drawing;
43
43
44
import javax.swing.text.BadLocationException;
44
import javax.swing.text.BadLocationException;
45
import javax.swing.text.Position;
45
import javax.swing.text.Position;
46
import org.netbeans.editor.BaseDocument;
47
import org.netbeans.editor.InvalidMarkException;
48
import org.netbeans.editor.Utilities;
49
import org.netbeans.modules.editor.lib.EditorPackageAccessor;
46
50
47
/**
51
/**
48
* Support class for chain of MarkBlocks
52
* Support class for chain of MarkBlocks
 Lines 51-63    Link Here 
51
* @version 1.00
55
* @version 1.00
52
*/
56
*/
53
57
54
public class MarkChain {
58
public final class MarkChain {
55
59
56
    /** Chain of all marks */
60
    /** Chain of all marks */
57
    protected MarkFactory.ChainDrawMark chain;
61
    protected ChainDrawMark chain;
58
62
59
    /** Current mark to make checks faster */
63
    /** Current mark to make checks faster */
60
    protected MarkFactory.ChainDrawMark curMark;
64
    protected ChainDrawMark curMark;
61
65
62
    /** Document for this mark */
66
    /** Document for this mark */
63
    protected BaseDocument doc;
67
    protected BaseDocument doc;
 Lines 70-76    Link Here 
70
    /** The mark created by addMark() method is stored in this variable. In case
74
    /** The mark created by addMark() method is stored in this variable. In case
71
     * the mark was not created, because there already was some on this position,
75
     * the mark was not created, because there already was some on this position,
72
     * the already existing mark is returned. */
76
     * the already existing mark is returned. */
73
    private MarkFactory.ChainDrawMark recentlyAddedMark;
77
    private ChainDrawMark recentlyAddedMark;
74
    
78
    
75
    /** Construct chain using draw marks */
79
    /** Construct chain using draw marks */
76
    public MarkChain(BaseDocument doc, String layerName) {
80
    public MarkChain(BaseDocument doc, String layerName) {
 Lines 78-88    Link Here 
78
        this.layerName = layerName;
82
        this.layerName = layerName;
79
    }
83
    }
80
84
81
    public final MarkFactory.ChainDrawMark getChain() {
85
    public final ChainDrawMark getChain() {
82
        return chain;
86
        return chain;