/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package de.cismet.tools.gui; import javafx.application.Platform; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.concurrent.Worker; import java.awt.BorderLayout; /** * DOCUMENT ME! * * @author thorsten * @version $Revision$, $Date$ */ public class FXWebViewPanelTester extends javax.swing.JFrame { //~ Instance fields -------------------------------------------------------- FXWebViewPanel fxWV = new FXWebViewPanel(); // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JEditorPane jEditorPane1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTabbedPane jTabbedPane1; private javax.swing.JTextField jTextField1; private javax.swing.JPanel panEditor; private javax.swing.JPanel panJFX; // End of variables declaration//GEN-END:variables //~ Constructors ----------------------------------------------------------- /** * Creates new form FXWebViewPanelTester. * * @param url DOCUMENT ME! */ public FXWebViewPanelTester(final String url) { initComponents(); jTextField1.setText(url); panJFX.add(fxWV, BorderLayout.CENTER); Platform.runLater(new Runnable() { @Override public void run() { fxWV.webEng.getLoadWorker().stateProperty().addListener( new ChangeListener<Worker.State>() { @Override public void changed(final ObservableValue ov, final Worker.State oldState, final Worker.State newState) { if (newState == Worker.State.SUCCEEDED) { System.out.println("Ready"); final String html = (String)fxWV.webEng.executeScript( "document.documentElement.outerHTML"); jEditorPane1.setText(html); } } }); } }); } //~ Methods ---------------------------------------------------------------- /** * This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The * content of this method is always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; jTabbedPane1 = new javax.swing.JTabbedPane(); panJFX = new javax.swing.JPanel(); panEditor = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); jEditorPane1 = new javax.swing.JEditorPane(); jButton2 = new javax.swing.JButton(); jTextField1 = new javax.swing.JTextField(); jButton1 = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle(org.openide.util.NbBundle.getMessage(FXWebViewPanelTester.class, "FXWebViewPanelTester.title")); // NOI18N getContentPane().setLayout(new java.awt.GridBagLayout()); panJFX.setLayout(new java.awt.BorderLayout()); jTabbedPane1.addTab(org.openide.util.NbBundle.getMessage( FXWebViewPanelTester.class, "FXWebViewPanelTester.panJFX.TabConstraints.tabTitle"), panJFX); // NOI18N panEditor.setLayout(new java.awt.BorderLayout()); jScrollPane1.setViewportView(jEditorPane1); panEditor.add(jScrollPane1, java.awt.BorderLayout.CENTER); org.openide.awt.Mnemonics.setLocalizedText( jButton2, org.openide.util.NbBundle.getMessage(FXWebViewPanelTester.class, "FXWebViewPanelTester.jButton2.text")); // NOI18N jButton2.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(final java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); panEditor.add(jButton2, java.awt.BorderLayout.PAGE_START); jTabbedPane1.addTab(org.openide.util.NbBundle.getMessage( FXWebViewPanelTester.class, "FXWebViewPanelTester.panEditor.TabConstraints.tabTitle"), panEditor); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.gridwidth = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; getContentPane().add(jTabbedPane1, gridBagConstraints); jTextField1.setText(org.openide.util.NbBundle.getMessage( FXWebViewPanelTester.class, "FXWebViewPanelTester.jTextField1.text")); // NOI18N jTextField1.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(final java.awt.event.ActionEvent evt) { jTextField1ActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; getContentPane().add(jTextField1, gridBagConstraints); org.openide.awt.Mnemonics.setLocalizedText( jButton1, org.openide.util.NbBundle.getMessage(FXWebViewPanelTester.class, "FXWebViewPanelTester.jButton1.text")); // NOI18N jButton1.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(final java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; getContentPane().add(jButton1, gridBagConstraints); setBounds(0, 0, 1073, 750); } // </editor-fold>//GEN-END:initComponents /** * DOCUMENT ME! * * @param evt DOCUMENT ME! */ private void jTextField1ActionPerformed(final java.awt.event.ActionEvent evt) { //GEN-FIRST:event_jTextField1ActionPerformed // TODO add your handling code here: } //GEN-LAST:event_jTextField1ActionPerformed /** * DOCUMENT ME! * * @param evt DOCUMENT ME! */ private void jButton1ActionPerformed(final java.awt.event.ActionEvent evt) { //GEN-FIRST:event_jButton1ActionPerformed fxWV.loadUrl(jTextField1.getText()); } //GEN-LAST:event_jButton1ActionPerformed /** * DOCUMENT ME! * * @param evt DOCUMENT ME! */ private void jButton2ActionPerformed(final java.awt.event.ActionEvent evt) { //GEN-FIRST:event_jButton2ActionPerformed fxWV.loadContent(jEditorPane1.getText()); } //GEN-LAST:event_jButton2ActionPerformed /** * DOCUMENT ME! * * @param args the command line arguments */ public static void main(final String[] args) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (final javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(FXWebViewPanelTester.class.getName()) .log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(FXWebViewPanelTester.class.getName()) .log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(FXWebViewPanelTester.class.getName()) .log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(FXWebViewPanelTester.class.getName()) .log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> String url = null; if (args.length > 0) { url = args[0]; } if (url == null) { url = "https:/www.cismet.de"; } final String myUrl = url; /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { @Override public void run() { new FXWebViewPanelTester(myUrl).setVisible(true); } }); } }