Quiero agregar el editor HTML WYSIWYG a mi programa Java.
mi idea es hacer algo como this pero no con python - con Java.Editor HTML con Java y Y webkit - Navegador SWT
que sé de par de opciones y sus problemas:
- HTMLEditorKit - no lo suficientemente sofisticada.
- JWebpane - cuento de hadas.
- QtWebKit - no de código abierto.
- JWebEngine - no de código abierto.
- metaphaseeditor - a simple.
- El proyecto Lobo - no es compatible con el atributo contenteditable.
- JavaXPCOM - No tengo éxito para operarlo en mi mac OS X 10.6.
De todos modos, prefiero no usarlo porque Gecko es más lento que Webkit.
Esa es la manera que elegí para trabajar con Browser Object de org.eclipse.swt.browser paquete. Por ahora, tengo el siguiente código:
El código, primero crea una instancia del objeto del navegador.
Después de esto, carga la página HTML con los atributos contenteditable='true'
en la etiqueta del cuerpo.
Si se carga una página se supone que debe agregar contenteditable='true'
atributos a la etiqueta de cuerpo, y cuando se guarda la página se supone eliminarla.
Mis preguntas son:
- ¿Cómo agarrar el código HTML editado?
- ¿Cómo sé si el cursor está en el paso?
- ¿Cómo sé si algún texto está resaltado?
o, en general:
- ¿Cómo construir un poseedor palabra con objeto Navegador y ontenteditable = 'verdadero' atributos?
- ¿es posible?
- ¿Es esta la manera correcta para el editor HTML WYSIWYG en Java?
- ¿Hay algún ejemplo por ahí?
Ya compruebo el SWT Snippets - no ayuda mucho.
Muchas gracias.
import org.eclipse.swt.SWT;
import org.eclipse.swt.SWTError;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class editor {
public static void main(String [] args) {
String html = "<html><title>Editor</title>"
+ "<body contenteditable='true'>"
+ " <h2>All the Page is ditable!!!!!</h2>"
+ "<p>Heres a typical paragraph element</p>"
+ "<ol><li>and now a list</li>"
+ "<li>with only</li>"
+ "<li>three items</li>"
+ "</ol></body></html>";
Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
final Browser browser;
try {
browser = new Browser(shell, SWT.BORDER);
}
catch (SWTError e) {
System.out.println(e.getMessage());
display.dispose();
return;
}
Composite comp = new Composite(shell, SWT.NONE);
comp.setLayout(new FillLayout(SWT.ALL));
browser.setText(html);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
Gracias por el cumplido y aún más gracias por la respuesta !!! Parece el momento adecuado para aprender c/C++ ... Con estos lenguajes es mucho más apropiado para estas cosas ... – Arnon