Vaadin 6: RichTextArea и удалить форматирование

Уже давно мне сообщают о проблеме с программным обеспечением, за которое я отвечаю. Я постараюсь объяснить это как можно более подробно (извините, если мой английский кажется вам плохим кстати ^^').

Контекст: Программное обеспечение было разработано как веб-приложение (Java EE) + фреймворк Vaadin 6 (не 7). Поскольку этот проект существует около 4 или 5 лет, используемая технология не самая новая, но в настоящее время она в порядке. Это программное обеспечение используется нашими внутренними клиентами, поэтому около 70 пользователей используют его в день. Я отвечаю за этот проект в течение 9 месяцев.

Проблема: часто пользователи копируют некоторую информацию (слова, таблицы и т. Д.) Из других источников, таких как документ Word или PowerPoint. Затем вставьте его в RichTextArea. затем они экспортируют всю эту информацию в файл Excel (XLS). Но иногда эта вставленная информация не сообщается или генерирует некоторые теги HTML (непонятно для большинства пользователей).

Что я предложил: RichTextArea имеет несколько инструментов, отображаемых с помощью кнопок, одним из которых является "Удалить форматирование", если они нажмут его, все будет в порядке. Но я должен был согласиться с ними, он не интуитивно понятен и "дружелюбен" в использовании. Так как они мои клиенты, я хочу помочь им как можно больше.

Что я хочу: я хочу, чтобы, если они копируют вставить в RichTextArea:

  • Им следует предложить удалить формат (с уведомлением о вставке), нажав кнопку "Удалить форматирование", поэтому я должен оценить его.
  • Или автоматически применить удаление форматирования на вставке.

Но я не смог достичь этих решений, потому что я не знаю, как обнаружить действие вставки, более того, для второго решения я не смог извлечь из кода действие удаления форматирования.

Можете ли вы помочь мне, чтобы добиться этого, пожалуйста? Любые советы, которые не связаны с другой технологией, будут оценены:)

Aynath

1 ответ

Если это все еще актуально:

Не уверен насчет первого подхода. Но первое, что приходит мне в голову - это использовать обычное событие изменения. Когда пользователь вставит новый текст, вы получите уведомление об изменении значений. Затем используйте любой инструмент для очистки HTML и получения простого текста (я предлагаю использовать что-то вроде jsoup, потому что это проще всего). Или, если вам нужно что-то конкретное, реализуйте свой собственный парсер / очиститель. Последнее, что нужно сделать, это просто установить новый текст в текущее значение области.

В противном случае вы можете использовать дополнения Vaadin, которые могут предоставить такую ​​информацию. Просто найдите репозиторий дополнений для CKEditor или TinyMCE Editor.

Другие вопросы по тегам