HTML редактор с Java и And webkit - SWT браузър

искам да добавя WYSIWYG HTML редактор към моята Java програма.
идеята ми е да направя нещо като това, но не с python - с Java.

знам за няколко опции и техните проблеми:

  • HTMLEditorKit - не е достатъчно сложен.
  • JWebpane - приказка.
  • QtWebKit - не е с отворен код.
  • JWebEngine - не е с отворен код.
  • metaphaseeditor - до просто.
  • The Lobo Project - не поддържа атрибута 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' атрибути?
  • възможно ли е?
  • това ли е правилният начин за WYSIWYG HTML редактор в 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

Направих някои тестове и не съм сигурен, че това работи, въпреки че със сигурност изглежда, че трябва!
person Paul Lammertsma    schedule 08.11.2010
comment
Благодаря за комплимента и още повече благодаря за отговора!!! Изглежда подходящият момент да научите c/c++... С тези езици би трябвало да е много по-подходящ за такива неща... - person Arnon; 09.11.2010

Това ти е tinymc: http://tinymce.moxiecode.com/ Той е добре документиран и можеш да го интегрираш в почти всеки съществуващ код, тъй като има приятен интерфейс и много добавки.

person guido    schedule 08.11.2010