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.