Редактор HTML с Java и WebKit - SWT Browser

я хочу добавить HTML-редактор WYSIWYG в свою программу на Java.
моя идея состоит в том, чтобы сделать что-то вроде это, но не с python — с Java.

я знаю о нескольких вариантах и ​​их проблемах:

  • HTMLEditorKit — недостаточно сложный.
  • JWebpane - сказка.
  • QtWebKit — не с открытым исходным кодом.
  • JWebEngine — не с открытым исходным кодом.
  • редактор метафаз - слишком простой.
  • Проект Lobo — атрибут contenteditable не поддерживается.
  • JavaXPCOM — мне не удается использовать его на моем Mac OS X 10.6.
    В любом случае, я просто предпочитаю не использовать его, потому что Gecko медленнее, чем webkit.

Именно так я решил работать с Объект браузера из пакета org.eclipse.swt.browser.

На данный момент у меня есть код ниже:
Код, сначала создайте экземпляр объекта браузера.
После этого он загружает HTML-страницу с атрибутами contenteditable='true' в теге body.
Если он загружает страницу, его предполагается добавить атрибуты contenteditable='true' в тег body, а при сохранении страницы предполагается удалить его.

Мои вопросы:

  • Как получить отредактированный HTML-код?
  • Как я узнаю, что курсор находится на шаге?
  • Как узнать, выделен ли какой-либо текст?

Или вообще:

  • Как создать владельца слова с атрибутами Browser Object и ontenteditable='true'?
  • Является ли это возможным?
  • это правильный путь для HTML-редактора WYSIWYG в Java?
  • Есть какие-нибудь примеры?
    Я уже проверил фрагменты SWT — нет помочь много.

Большое спасибо.

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();
 }
}

person Arnon    schedule 05.11.2010    source источник


Ответы (3)


В проекте DJ Native Swing есть несколько редакторов HTML, реализованных с помощью браузера SWT (это деталь реализации): http://djproject.sourceforge.net/ns

person Christopher Deckers    schedule 26.01.2011


Вот этот tinymc: http://tinymce.moxiecode.com/ Он хорошо документирован, и вы можете интегрировать его в практически любой существующий код, так как имеет приятный интерфейс и множество плагинов.

person guido    schedule 08.11.2010