+++ /dev/null
-package org.argeo.cms.e4.rap.parts;
-
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-
-import javax.annotation.PostConstruct;
-
-import org.apache.commons.io.IOUtils;
-import org.argeo.cms.CmsException;
-import org.argeo.cms.util.CmsUtils;
-import org.eclipse.nebula.widgets.richtext.RichTextEditor;
-import org.eclipse.nebula.widgets.richtext.RichTextEditorConfiguration;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-public class HtmlEditor {
-
- @PostConstruct
- public void createUI(Composite parent) {
- String toolbarGroups;
- String removeButtons;
- try {
- toolbarGroups = IOUtils.toString(HtmlEditor.class.getResourceAsStream("CkEditor-toolbarGroups.json"),
- StandardCharsets.UTF_8);
- removeButtons = IOUtils.toString(HtmlEditor.class.getResourceAsStream("CkEditor-removeButtons.js"),
- StandardCharsets.UTF_8);
- } catch (IOException e) {
- throw new CmsException("Cannot configure toolbar", e);
- }
-// System.out.println(toolbarGroups);
-// System.out.println(removeButtons);
- RichTextEditorConfiguration richTextEditorConfig = new RichTextEditorConfiguration();
- richTextEditorConfig.setOption(RichTextEditorConfiguration.TOOLBAR_GROUPS, toolbarGroups);
- richTextEditorConfig.setOption(RichTextEditorConfiguration.REMOVE_BUTTONS, removeButtons);
-// richTextEditorConfig.setRemoveStyles(false);
-// richTextEditorConfig.setRemovePasteFromWord(true);
-// richTextEditorConfig.setRemovePasteText(false);
-
-// richTextEditorConfig.setToolbarCollapsible(true);
-// richTextEditorConfig.setToolbarInitialExpanded(false);
-
- final Display display = parent.getDisplay();
- Composite composite = new Composite(parent, SWT.NONE);
-// composite.setLayoutData(new Fill);
- composite.setLayout(new GridLayout());
- final RichTextEditor richTextEditor = new RichTextEditor(composite, richTextEditorConfig, SWT.BORDER);
- richTextEditor.setText("<a href='http://googl.com'>Google</a>");
- GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
- richTextEditor.setLayoutData(layoutData);
- richTextEditor.setBackground(new Color(display, 247, 247, 247));
- Composite toolbar = new Composite(composite, SWT.NONE);
- toolbar.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
- toolbar.setLayout(new GridLayout(3, false));
- Button showContent = new Button(toolbar, SWT.PUSH);
- showContent.setText("Show Content");
- showContent.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- showContent(parent, richTextEditor, false);
- }
- });
- Button showSource = new Button(toolbar, SWT.PUSH);
- showSource.setText("Show Source");
- showSource.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- showContent(parent, richTextEditor, true);
- }
- });
- Button clearBtn = new Button(toolbar, SWT.NONE);
- clearBtn.setText("Clear");
- clearBtn.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- richTextEditor.setText("");
- }
- });
-
- }
-
- private static void showContent(Composite parent, RichTextEditor editor, boolean source) {
- int style = SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL;
- final Shell content = new Shell(parent.getShell(), style);
- content.setLayout(new GridLayout(1, true));
- String text = editor.getText();
- if (source) {
- content.setText("Rich Text Source");
- Text viewer = new Text(content, SWT.MULTI | SWT.WRAP);
- viewer.setLayoutData(new GridData(400, 400));
- viewer.setText(text);
- viewer.setEditable(false);
- } else {
- content.setText("Rich Text");
- Browser viewer = new Browser(content, SWT.NONE);
- viewer.setLayoutData(new GridData(400, 400));
- viewer.setText(text);
- viewer.setEnabled(false);
- }
- Button ok = new Button(content, SWT.PUSH);
- ok.setLayoutData(new GridData(SWT.RIGHT, SWT.BOTTOM, false, false));
- ok.setText("OK");
- ok.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- content.dispose();
- }
- });
- content.setDefaultButton(ok);
- content.pack();
- Display display = parent.getDisplay();
- int left = (display.getClientArea().width / 2) - (content.getBounds().width / 2);
- content.setLocation(left, 40);
- content.open();
- ok.setFocus();
- }
-
-}