Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

8301121: RichTextArea Control (Incubator) #1374

Draft
wants to merge 71 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
425b5f4
8301121: rich text area control
andy-goryachev-oracle Feb 21, 2024
fa51991
8301121: rich text area control
andy-goryachev-oracle Feb 21, 2024
43455ef
input map v2
andy-goryachev-oracle Mar 11, 2024
5899e77
Merge remote-tracking branch 'origin/master' into 8301121.rich.text.a…
andy-goryachev-oracle Mar 11, 2024
5a50ad3
whitespace
andy-goryachev-oracle Mar 11, 2024
77c6d17
font and var
andy-goryachev-oracle Mar 15, 2024
f1a7920
sync up with dev branch
andy-goryachev-oracle Apr 18, 2024
3e0109a
Merge remote-tracking branch 'origin/master' into 8301121.rich.text.a…
andy-goryachev-oracle Apr 18, 2024
cb5c47a
whitespace
andy-goryachev-oracle Apr 18, 2024
4a6e909
key mapping
andy-goryachev-oracle Apr 19, 2024
dae665c
windows
andy-goryachev-oracle Apr 19, 2024
2031e5e
fixed and review comments
andy-goryachev-oracle Apr 30, 2024
85731ba
whitespace
andy-goryachev-oracle Apr 30, 2024
aefec37
javadoc
andy-goryachev-oracle Apr 30, 2024
c2013b9
Merge remote-tracking branch 'origin/master' into 8301121.rich.text.a…
andy-goryachev-oracle Apr 30, 2024
cda2dd9
review comments
andy-goryachev-oracle May 2, 2024
7c0b111
Merge remote-tracking branch 'origin/master' into 8301121.rich.text.a…
andy-goryachev-oracle May 2, 2024
2c78b02
Merge remote-tracking branch 'origin/master' into 8301121.rich.text.a…
andy-goryachev-oracle May 15, 2024
0fe9569
bug fixes and review comments
andy-goryachev-oracle May 15, 2024
f69607f
whitespace
andy-goryachev-oracle May 15, 2024
7c95230
Merge remote-tracking branch 'origin/master' into 8301121.rich.text.a…
andy-goryachev-oracle May 16, 2024
680eaa8
Merge remote-tracking branch 'origin/master' into 8301121.rich.text.a…
andy-goryachev-oracle May 23, 2024
cb488b8
api review comments
andy-goryachev-oracle May 23, 2024
1b5947e
whitespace
andy-goryachev-oracle May 23, 2024
cd35938
Merge remote-tracking branch 'origin/master' into ag.rich.dev
andy-goryachev-oracle May 24, 2024
5f5cda1
font style
andy-goryachev-oracle May 24, 2024
aff1bd9
rtf text color
andy-goryachev-oracle May 24, 2024
ab1d644
font option
andy-goryachev-oracle May 29, 2024
717c259
Merge remote-tracking branch 'origin/master' into ag.rich.dev
andy-goryachev-oracle May 29, 2024
45ae62a
cleanup
andy-goryachev-oracle May 30, 2024
77b777e
accessibility
andy-goryachev-oracle May 31, 2024
e7030af
Merge remote-tracking branch 'origin/master' into ag.rich.dev
andy-goryachev-oracle May 31, 2024
ff14233
review comments
andy-goryachev-oracle May 31, 2024
4935d23
borders
andy-goryachev-oracle Jun 3, 2024
cd294cd
accessibility
andy-goryachev-oracle Jun 4, 2024
09fc057
font
andy-goryachev-oracle Jun 4, 2024
0db2c82
css ref
andy-goryachev-oracle Jun 4, 2024
86b98a5
Merge remote-tracking branch 'origin/master' into ag.rich.dev
andy-goryachev-oracle Jun 5, 2024
cc6f974
order
andy-goryachev-oracle Jun 5, 2024
fc5b8b9
sort
andy-goryachev-oracle Jun 5, 2024
73ca352
tags
andy-goryachev-oracle Jun 5, 2024
dd8f50f
screenshots
andy-goryachev-oracle Jun 6, 2024
febf07e
Merge branch 'master' into ag.rich.dev
andy-goryachev-oracle Jun 6, 2024
753756f
input map v3
andy-goryachev-oracle Jun 6, 2024
a08e61e
Merge remote-tracking branch 'origin/ag.rich.dev' into ag.rich.dev
andy-goryachev-oracle Jun 6, 2024
d55f74a
cleanup
andy-goryachev-oracle Jun 10, 2024
06453f1
.
andy-goryachev-oracle Jun 10, 2024
cb7858e
redesigned selection
andy-goryachev-oracle Jun 11, 2024
54b7465
selection updates
andy-goryachev-oracle Jun 11, 2024
110686f
v3
andy-goryachev-oracle Jun 11, 2024
4657919
caret info
andy-goryachev-oracle Jun 12, 2024
80524c8
code area tests
andy-goryachev-oracle Jun 12, 2024
4953905
javadoc
andy-goryachev-oracle Jun 12, 2024
53ab41e
javadoc
andy-goryachev-oracle Jun 12, 2024
f65ad58
move caret
andy-goryachev-oracle Jun 12, 2024
c1558cf
rta
andy-goryachev-oracle Jun 13, 2024
ff7d74a
Merge remote-tracking branch 'origin/master' into ag.rich.dev
andy-goryachev-oracle Jun 13, 2024
3219416
javadoc
andy-goryachev-oracle Jun 13, 2024
f8ea9d9
rich pkg
andy-goryachev-oracle Jun 13, 2024
a8f8767
model
andy-goryachev-oracle Jun 14, 2024
80bf1a1
user editable
andy-goryachev-oracle Jun 14, 2024
c02bf6f
Merge remote-tracking branch 'origin/master' into ag.rich.dev
andy-goryachev-oracle Jun 14, 2024
f91386b
model package
andy-goryachev-oracle Jun 14, 2024
8d2f0b0
javadoc
andy-goryachev-oracle Jun 14, 2024
3a7ab41
review comments
andy-goryachev-oracle Jun 14, 2024
0ff427c
api update, javadoc
andy-goryachev-oracle Jun 14, 2024
2a167cc
Merge remote-tracking branch 'origin/master' into 8301121.rich.text.a…
andy-goryachev-oracle Jun 14, 2024
4ae974f
whitespace
andy-goryachev-oracle Jun 14, 2024
184844c
Merge branch 'ag.rich.dev' into 8301121.rich.text.area.incubator
andy-goryachev-oracle Jun 14, 2024
7fa2980
review comments
andy-goryachev-oracle Jun 17, 2024
359b4bd
Merge branch 'ag.rich.dev' into 8301121.rich.text.area.incubator
andy-goryachev-oracle Jun 17, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
221 changes: 209 additions & 12 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2752,6 +2752,181 @@ project(":controls") {
addValidateSourceSets(project, sourceSets)
}

project(":incubator.input") {
project.ext.buildModule = true
project.ext.includeSources = true
project.ext.moduleRuntime = true
project.ext.moduleName = "jfx.incubator.input"
project.ext.incubating = true

sourceSets {
main
shims {
java {
compileClasspath += sourceSets.main.output
runtimeClasspath += sourceSets.main.output
}
}
test {
java {
compileClasspath += sourceSets.shims.output
runtimeClasspath += sourceSets.shims.output
}
}
}

project.ext.moduleSourcePath = defaultModuleSourcePath
project.ext.moduleSourcePathShim = defaultModuleSourcePathShim

commonModuleSetup(project, [
'base',
'graphics',
'controls',
'incubator.input'
])

dependencies {
testImplementation project(":base").sourceSets.test.output
testImplementation project(":graphics").sourceSets.test.output
testImplementation project(":controls").sourceSets.test.output
implementation project(':base')
implementation project(':graphics')
implementation project(':controls')
}

test {
jvmArgs "-Djavafx.toolkit=test.com.sun.javafx.pgstub.StubToolkit"
}

def modulePath = "${project.sourceSets.main.java.getDestinationDirectory().get().getAsFile()}"
modulePath += File.pathSeparator + "${rootProject.projectDir}/modules/javafx.controls/build/classes/java/main"
modulePath += File.pathSeparator + "${rootProject.projectDir}/modules/javafx.graphics/build/classes/java/main"
modulePath += File.pathSeparator + "${rootProject.projectDir}/modules/javafx.base/build/classes/java/main"

// FIXME: KCR
// processResources {
// doLast {
// def cssFiles = fileTree(dir: "$moduleDir/com/sun/javafx/scene/control/skin")
// cssFiles.include "**/*.css"
// cssFiles.each { css ->
// logger.info("converting CSS to BSS ${css}");
//
// javaexec {
// executable = JAVA
// workingDir = project.projectDir
// jvmArgs += patchModuleArgs
// jvmArgs += "--module-path=$modulePath"
// jvmArgs += "--add-modules=javafx.graphics"
// mainClass = "com.sun.javafx.css.parser.Css2Bin"
// args css
// }
// }
// }
// }
//
// def copyShimBssTask = project.task("copyShimBss", type: Copy,
// dependsOn: [project.tasks.getByName("compileJava"),
// project.tasks.getByName("processResources")]) {
// from project.moduleDir
// into project.moduleShimsDir
// include "**/*.bss"
// }
// processShimsResources.dependsOn(copyShimBssTask)

addMavenPublication(project, [ 'graphics' , 'controls'])

addValidateSourceSets(project, sourceSets)
}

project(":incubator.richtext") {
project.ext.buildModule = true
project.ext.includeSources = true
project.ext.moduleRuntime = true
project.ext.moduleName = "jfx.incubator.richtext"
project.ext.incubating = true

sourceSets {
main
shims {
java {
compileClasspath += sourceSets.main.output
runtimeClasspath += sourceSets.main.output
}
}
test {
java {
compileClasspath += sourceSets.shims.output
runtimeClasspath += sourceSets.shims.output
}
}
}

project.ext.moduleSourcePath = defaultModuleSourcePath
project.ext.moduleSourcePathShim = defaultModuleSourcePathShim

commonModuleSetup(project, [
'base',
'graphics',
'controls',
'incubator.input',
'incubator.richtext'
])

dependencies {
testImplementation project(":base").sourceSets.test.output
testImplementation project(":graphics").sourceSets.test.output
testImplementation project(":controls").sourceSets.test.output
testImplementation project(":incubator.input").sourceSets.test.output
implementation project(':base')
implementation project(':graphics')
implementation project(':controls')
implementation project(':incubator.input')
}

test {
jvmArgs "-Djavafx.toolkit=test.com.sun.javafx.pgstub.StubToolkit"
}

def modulePath = "${project.sourceSets.main.java.getDestinationDirectory().get().getAsFile()}"
modulePath += File.pathSeparator + "${rootProject.projectDir}/modules/javafx.controls/build/classes/java/main"
modulePath += File.pathSeparator + "${rootProject.projectDir}/modules/javafx.graphics/build/classes/java/main"
modulePath += File.pathSeparator + "${rootProject.projectDir}/modules/javafx.base/build/classes/java/main"

// FIXME: KCR
// processResources {
// doLast {
// def cssFiles = fileTree(dir: "$moduleDir/com/sun/javafx/scene/control/skin")
// cssFiles.include "**/*.css"
// cssFiles.each { css ->
// logger.info("converting CSS to BSS ${css}");
//
// javaexec {
// executable = JAVA
// workingDir = project.projectDir
// jvmArgs += patchModuleArgs
// jvmArgs += "--module-path=$modulePath"
// jvmArgs += "--add-modules=javafx.graphics"
// mainClass = "com.sun.javafx.css.parser.Css2Bin"
// args css
// }
// }
// }
// }
//
// def copyShimBssTask = project.task("copyShimBss", type: Copy,
// dependsOn: [project.tasks.getByName("compileJava"),
// project.tasks.getByName("processResources")]) {
// from project.moduleDir
// into project.moduleShimsDir
// include "**/*.bss"
// }
// processShimsResources.dependsOn(copyShimBssTask)

addMavenPublication(project, [ 'graphics' , 'controls'])

addValidateSourceSets(project, sourceSets)
}

project(":swing") {

// We need to skip setting compiler.options.release for this module,
Expand Down Expand Up @@ -3863,7 +4038,17 @@ project(":systemTests") {
testImplementation project(":swing").sourceSets.test.output
}

def dependentProjects = [ 'base', 'graphics', 'controls', 'media', 'web', 'swing', 'fxml' ]
def dependentProjects = [
'base',
'graphics',
'controls',
'incubator.input',
'incubator.richtext',
'media',
'web',
'swing',
'fxml'
]
commonModuleSetup(project, dependentProjects)

File testJavaPolicyFile = new File(rootProject.buildDir, TESTJAVAPOLICYFILE);
Expand Down Expand Up @@ -4243,7 +4428,10 @@ task javadoc(type: Javadoc, dependsOn: createMSPfile) {
description = "Generates the JavaDoc for all the public API"
executable = JAVADOC
def projectsToDocument = [
project(":base"), project(":graphics"), project(":controls"), project(":media"),
project(":base"), project(":graphics"), project(":controls"),
project(":incubator.input"),
project(":incubator.richtext"),
project(":media"),
project(":swing"), /*project(":swt"),*/ project(":fxml"), project(":web")]
source(projectsToDocument.collect({
[it.sourceSets.main.java]
Expand Down Expand Up @@ -5567,6 +5755,7 @@ compileTargets { t ->
def modnames = []
moduleProjList.each { project ->
if (project.hasProperty("moduleName") && project.buildModule) {
def incubating = project.hasProperty("incubating") && project.ext.incubating
modnames << project.ext.moduleName
File dir;
if (project.sourceSets.hasProperty('shims')) {
Expand All @@ -5578,16 +5767,18 @@ compileTargets { t ->
def dstModuleDir = cygpath(dir.path)
modpath << "${dstModuleDir}"

String themod = dir.toURI()
testJavaPolicyFile << "grant codeBase \"${themod}\" {\n" +
" permission java.security.AllPermission;\n" +
"};\n"

dir = new File(rootProject.buildDir, "sdk/lib/${project.ext.moduleName}.jar")
themod = dir.toURI()
runJavaPolicyFile << "grant codeBase \"${themod}\" {\n" +
" permission java.security.AllPermission;\n" +
"};\n"
if (!incubating) {
String themod = dir.toURI()
testJavaPolicyFile << "grant codeBase \"${themod}\" {\n" +
" permission java.security.AllPermission;\n" +
"};\n"

dir = new File(rootProject.buildDir, "sdk/lib/${project.ext.moduleName}.jar")
themod = dir.toURI()
runJavaPolicyFile << "grant codeBase \"${themod}\" {\n" +
" permission java.security.AllPermission;\n" +
"};\n"
}
}
}

Expand Down Expand Up @@ -5633,6 +5824,8 @@ compileTargets { t ->
def jmodName = "${moduleName}.jmod"
def jmodFile = "${jmodsDir}/${jmodName}"

def incubating = project.hasProperty("incubating") && project.ext.incubating

// On Windows, copy the native libraries in the jmod image
// to a "javafx" subdir to avoid conflicting with the Microsoft
// DLLs that are shipped with the JDK
Expand Down Expand Up @@ -5674,6 +5867,10 @@ compileTargets { t ->
if (sourceDateEpoch != null) {
args("--date", extendedTimestamp)
}
if (incubating) {
args("--do-not-resolve-by-default")
args("--warn-if-resolved=incubating")
}
args(jmodFile)
}
}
Expand Down
Loading