Skip to content

Commit

Permalink
Initial attempt to integrate JCEF to NetBeans
Browse files Browse the repository at this point in the history
  • Loading branch information
lkishalmi committed Jan 7, 2024
1 parent e8b206e commit 49212ad
Show file tree
Hide file tree
Showing 28 changed files with 1,512 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
/*/*/external/*.exe
/*/*/external/*.js
/*/*/external/*.nbm
/*/*/external/*.tar.gz
/*/*/external/*/**
/nbbuild/installer/jnlp/external/*.zip
/nbbuild/installer/jnlp/external/*.jar
Expand Down
25 changes: 25 additions & 0 deletions jcef/jcef.browser/build.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<project basedir="." default="build" name="jcef/jcef.browser">
<description>Builds, tests, and runs the project org.netbeans.libs.jcef</description>
<import file="../../nbbuild/templates/projectized.xml"/>
</project>
6 changes: 6 additions & 0 deletions jcef/jcef.browser/manifest.mf
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Manifest-Version: 1.0
OpenIDE-Module: org.netbeans.modules.jcef.browser
OpenIDE-Module-Layer: org/netbeans/modules/jcef/browser/layer.xml
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/jcef/browser/Bundle.properties
OpenIDE-Module-Specification-Version: 1.0
AutoUpdate-Show-In-Client: true
23 changes: 23 additions & 0 deletions jcef/jcef.browser/nbproject/project.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

javac.source=11
javac.target=11
javac.compilerargs=-Xlint -Xlint:-serial

#tryme.args=-J-Dorg.netbeans.core.startup.level=FINE -J-Dorg.netbeans.core.modules.level=FINEST
#tryme.args=-J-Dorg.netbeans.core.modules.level=FINEST
64 changes: 64 additions & 0 deletions jcef/jcef.browser/nbproject/project.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.apisupport.project</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/nb-module-project/3">
<code-name-base>org.netbeans.modules.jcef.browser</code-name-base>
<module-dependencies>
<dependency>
<code-name-base>org.netbeans.libs.jcef</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
<specification-version>1.0</specification-version>
</run-dependency>
</dependency>
<dependency>
<code-name-base>org.openide.awt</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
<specification-version>7.90</specification-version>
</run-dependency>
</dependency>
<dependency>
<code-name-base>org.openide.modules</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
<specification-version>7.40</specification-version>
</run-dependency>
</dependency>
<dependency>
<code-name-base>org.openide.util.lookup</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
<specification-version>8.23</specification-version>
</run-dependency>
</dependency>
</module-dependencies>
<public-packages/>
</data>
</configuration>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.netbeans.modules.jcef.browser;

import org.openide.awt.HtmlBrowser;

/**
*
* @author Laszlo Kishalmi
*/
public final class BrowserFactory implements HtmlBrowser.Factory {

public static boolean isHidden() {
return false;
}

@Override
public HtmlBrowser.Impl createHtmlBrowserImpl() {
return new JCEFBrowser();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.netbeans.modules.jcef.browser;

import java.awt.Component;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.beans.BeanDescriptor;
import java.beans.IntrospectionException;
import java.beans.PropertyChangeListener;
import java.beans.PropertyDescriptor;
import java.beans.PropertyEditor;
import java.beans.SimpleBeanInfo;
import javax.swing.JPanel;

/**
*
* @author Laszlo Kishalmi
*/
public class BrowserFactoryBeanInfo extends SimpleBeanInfo {

@Override
public BeanDescriptor getBeanDescriptor() {
return new BeanDescriptor(BrowserFactory.class);
}

@Override
public PropertyDescriptor[] getPropertyDescriptors() {
PropertyDescriptor[] properties;
try {
properties = new PropertyDescriptor[]{
new PropertyDescriptor("id", BrowserFactory.class, "getId", null)
};

properties[0].setPreferred(true);
properties[0].setPropertyEditorClass(EBPropertyEditor.class);

} catch (IntrospectionException ie) {
return null;
}
return properties;
}

public static class EBPropertyEditor implements PropertyEditor {

public EBPropertyEditor() {

}

@Override
public void setValue(Object value) {
}

@Override
public Object getValue() {
return null;
}

@Override
public boolean isPaintable() {
return false;
}

@Override
public void paintValue(Graphics gfx, Rectangle box) {
}

@Override
public String getJavaInitializationString() {
return null;
}

@Override
public String getAsText() {
return "";
}

@Override
public void setAsText(String text) throws IllegalArgumentException {
}

@Override
public String[] getTags() {
return null;
}

@Override
public Component getCustomEditor() {
return new JPanel();
}

@Override
public boolean supportsCustomEditor() {
return true;
}

@Override
public void addPropertyChangeListener(PropertyChangeListener listener) {
}

@Override
public void removePropertyChangeListener(PropertyChangeListener listener) {
}
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

OpenIDE-Module-Name=JCEF Browser
OpenIDE-Module-Display-Category=Platform
OpenIDE-Module-Short-Description=Java Chromium Embedded Browser
OpenIDE-Module-Long-Description=Java Chromium Embedded Browser

Services/Browsers/jcefBrowser.settings=Embedded Chromium Browser
Loading

0 comments on commit 49212ad

Please sign in to comment.