/***************************************************
*
* 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);
}
});
}
}