Skip to content

Commit 1ece833

Browse files
committed
CobraHtmlPanel improve
1 parent d2e3764 commit 1ece833

File tree

6 files changed

+49
-43
lines changed

6 files changed

+49
-43
lines changed

LoboHTML/src/main/java/org/loboevolution/gui/HtmlPanel.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -506,17 +506,11 @@ public void setDefaultOverflowY(int overflow) {
506506
}
507507
}
508508

509-
public static HtmlPanel createlocalPanel(URLConnection connection, String uri) throws Exception {
510-
final HtmlPanel panel = new HtmlPanel();
511-
panel.setBrowserPanel(null);
509+
public static HtmlPanel createlocalPanel(URLConnection connection, HtmlPanel panel, HtmlRendererContext rendererContext,
510+
HtmlRendererConfig config, String uri) throws Exception {
512511
try (InputStream in = HttpNetwork.openConnectionCheckRedirects(connection);
513512
Reader reader = new InputStreamReader(in, StandardCharsets.UTF_8)) {
514-
515513
final InputSource is = new InputSourceImpl(reader, uri);
516-
final UserAgentContext ucontext = new UserAgentContext(new LocalHtmlRendererConfig());
517-
final HtmlRendererContext rendererContext = new LocalHtmlRendererContext(panel, ucontext);
518-
final HtmlRendererConfig config = new LocalHtmlRendererConfig();
519-
panel.setPreferredSize(new Dimension(800, 400));
520514
final DocumentBuilderImpl builder = new DocumentBuilderImpl(rendererContext.getUserAgentContext(),rendererContext, config);
521515
final Document document = builder.parse(is);
522516
panel.setDocument(document, rendererContext);

LoboHTML/src/main/java/org/loboevolution/gui/LocalHtmlRendererConfig.java

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -21,34 +21,19 @@
2121

2222
import lombok.AllArgsConstructor;
2323
import lombok.Data;
24-
import org.loboevolution.common.Urls;
25-
import org.loboevolution.component.IBrowserFrame;
26-
import org.loboevolution.component.IBrowserPanel;
27-
import org.loboevolution.component.IToolBar;
2824
import org.loboevolution.config.DesktopConfig;
2925
import org.loboevolution.config.HtmlRendererConfig;
30-
import org.loboevolution.html.dom.HTMLElement;
31-
import org.loboevolution.html.dom.HTMLLinkElement;
32-
import org.loboevolution.html.dom.domimpl.HTMLDocumentImpl;
33-
import org.loboevolution.html.dom.input.FormInput;
34-
import org.loboevolution.http.UserAgentContext;
3526
import org.loboevolution.info.GeneralInfo;
3627
import org.loboevolution.info.TabInfo;
3728
import org.loboevolution.net.Cookie;
3829
import org.loboevolution.net.HttpNetwork;
3930

40-
import javax.swing.*;
4131
import java.awt.*;
42-
import java.awt.event.MouseEvent;
43-
import java.io.InputStream;
44-
import java.net.MalformedURLException;
45-
import java.net.Proxy;
4632
import java.net.URL;
47-
import java.net.URLConnection;
48-
import java.util.*;
33+
import java.util.ArrayList;
34+
import java.util.HashMap;
4935
import java.util.List;
50-
import java.util.logging.Level;
51-
import java.util.logging.Logger;
36+
import java.util.Map;
5237

5338
@Data
5439
@AllArgsConstructor

LoboHTML/src/main/java/org/loboevolution/html/dom/domimpl/HTMLIFrameElementImpl.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -256,11 +256,13 @@ public void draw(FrameControl frameControl) {
256256
connection.setRequestProperty("User-Agent", UserAgent.getUserAgent());
257257
connection.getHeaderField("Set-Cookie");
258258
connection.connect();
259-
final HtmlPanel hpanel = HtmlPanel.createlocalPanel(connection, createURL.toString());
259+
HtmlPanel panel = new HtmlPanel();
260+
panel.setBrowserPanel(null);
261+
panel = HtmlPanel.createlocalPanel(connection, panel, doc.getHtmlRendererContext(), doc.getHtmlRendererConfig(), createURL.toString());
260262
if (Strings.isNotBlank(getWidth()) && Strings.isNotBlank(getHeight())) {
261-
hpanel.setPreferredSize(new Dimension(Integer.parseInt(getWidth()), Integer.parseInt(getHeight())));
263+
panel.setPreferredSize(new Dimension(Integer.parseInt(getWidth()), Integer.parseInt(getHeight())));
262264
}
263-
frameControl.add(hpanel);
265+
frameControl.add(panel);
264266
}
265267
} catch (Exception e) {
266268
logger.log(Level.SEVERE, e.getMessage(), e);

LoboHTML/src/main/java/org/loboevolution/html/dom/domimpl/HTMLImageElementImpl.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,11 @@
2323
package org.loboevolution.html.dom.domimpl;
2424

2525
import org.loboevolution.common.Urls;
26+
import org.loboevolution.gui.HtmlRendererContext;
2627
import org.loboevolution.html.control.ImgSvgControl;
2728
import org.loboevolution.html.dom.HTMLImageElement;
2829
import org.loboevolution.gui.HtmlPanel;
30+
import org.loboevolution.html.dom.nodeimpl.NodeImpl;
2931
import org.loboevolution.html.renderstate.ImageRenderState;
3032
import org.loboevolution.html.renderstate.RenderState;
3133
import org.loboevolution.net.UserAgent;
@@ -410,12 +412,15 @@ public void draw(ImgSvgControl imgSvgControl) {
410412
connection.getHeaderField("Set-Cookie");
411413
connection.connect();
412414

413-
final HtmlPanel hpanel = HtmlPanel.createlocalPanel(connection, uri);
414-
final Dimension dim = hpanel.getPreferredSize();
415-
final double height = getHeight() == -1 ? dim.getHeight() : getHeight();
416-
final double width = getWidth() == -1 ? dim.getWidth() : getWidth();
417-
hpanel.setPreferredSize(new Dimension((int) width, (int) height));
418-
imgSvgControl.add(hpanel);
415+
NodeImpl mode = (NodeImpl) document;
416+
HtmlPanel panel = new HtmlPanel();
417+
panel.setBrowserPanel(null);
418+
HtmlRendererContext htmlRendererContext = mode.getHtmlRendererContext();
419+
panel = HtmlPanel.createlocalPanel(connection, panel, mode.getHtmlRendererContext(), mode.getHtmlRendererConfig(), uri);
420+
final double height = getHeight() == -1 ? htmlRendererContext.getInnerWidth() : getHeight();
421+
final double width = getWidth() == -1 ? htmlRendererContext.getInnerWidth() : getWidth();
422+
panel.setPreferredSize(new Dimension((int) width, (int) height));
423+
imgSvgControl.add(panel);
419424
} catch (Exception e) {
420425
logger.log(Level.SEVERE, e.getMessage(), e);
421426
}
Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
package
22
org.loboevolution.driver;
33

4+
import org.loboevolution.config.HtmlRendererConfig;
45
import org.loboevolution.gui.HtmlPanel;
6+
import org.loboevolution.gui.HtmlRendererContext;
7+
import org.loboevolution.gui.LocalHtmlRendererConfig;
8+
import org.loboevolution.gui.LocalHtmlRendererContext;
9+
import org.loboevolution.http.UserAgentContext;
510
import org.loboevolution.net.UserAgent;
611

712
import javax.swing.*;
@@ -14,7 +19,7 @@ public class CobraHtmlPanel {
1419

1520
public static void main(String[] args) throws Exception {
1621
JFrame window = new JFrame();
17-
window.setSize(600, 400);
22+
window.setSize(800, 400);
1823
window.setVisible(true);
1924

2025
URL createURL = new URL(Objects.
@@ -23,11 +28,14 @@ public static void main(String[] args) throws Exception {
2328
connection.setRequestProperty("User-Agent", UserAgent.getUserAgent());
2429
connection.getHeaderField("Set-Cookie");
2530
connection.connect();
26-
final HtmlPanel hpanel = HtmlPanel.createlocalPanel(connection, createURL.toString());
27-
hpanel.setPreferredSize(new Dimension(500, 800));
28-
window.getContentPane().add(hpanel);
31+
HtmlPanel panel = new HtmlPanel();
32+
panel.setBrowserPanel(null);
33+
panel.setPreferredSize(new Dimension(800, 400));
34+
final HtmlRendererConfig config = new LocalHtmlRendererConfig();
35+
final UserAgentContext ucontext = new UserAgentContext(config);
36+
final HtmlRendererContext rendererContext = new LocalHtmlRendererContext(panel, ucontext);
37+
panel = HtmlPanel.createlocalPanel(connection, panel, rendererContext, config, createURL.toString());
38+
window.getContentPane().add(panel);
2939

3040
}
31-
}
32-
33-
//https://codeberg.org/miurahr/LoboComponent
41+
}

README.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,13 @@
1-
# CobraEvolution
1+
# CobraEvolution
2+
3+
CobraEvolution is HTML render and parser used from LoboEvolution [credits](https://github.com/LoboEvolution/LoboEvolution).
4+
5+
### Maven Users
6+
```
7+
mvn install
8+
```
9+
10+
Code examples:
11+
* Html Parser => [CobraParser](https://github.com/LoboEvolution/CobraEvolution/blob/main/LoboUnitTest/src/test/java/org/loboevolution/driver/CobraParser.java)
12+
* Html Render and Parser => [CobraHtmlPanel](https://github.com/LoboEvolution/CobraEvolution/blob/main/LoboUnitTest/src/test/java/org/loboevolution/driver/CobraHtmlPanel.java)
13+
* Java Browser => [LoboEvolution](https://github.com/LoboEvolution/LoboEvolution)

0 commit comments

Comments
 (0)