Search in sources :

Example 1 with EditNodeWYSIWYG

use of org.freeplane.features.text.mindmapmode.EditNodeWYSIWYG in project freeplane by freeplane.

the class MMapViewController method createEditor.

public EditNodeBase createEditor(final NodeModel node, final EditNodeBase.IEditControl editControl, String text, final boolean editLong) {
    final String htmlEditingOption = ResourceController.getResourceController().getProperty("html_editing_option");
    final boolean editInternalWysiwyg = editLong && StringUtils.equals(htmlEditingOption, "internal-wysiwyg");
    final boolean editExternal = editLong && StringUtils.equals(htmlEditingOption, "external");
    if (!HtmlUtils.isHtmlNode(text)) {
        text = HtmlUtils.plainToHTML(text);
    }
    if (editInternalWysiwyg) {
        final EditNodeWYSIWYG editNodeWYSIWYG = new EditNodeWYSIWYG(node, text, editControl, true);
        final ViewController viewController = Controller.getCurrentModeController().getController().getViewController();
        if (EditedComponent.TEXT.equals(editControl.getEditType())) {
            int preferredHeight = (int) (getComponent(node).getHeight() * 1.2);
            preferredHeight = Math.max(preferredHeight, Integer.parseInt(ResourceController.getResourceController().getProperty("el__min_default_window_height")));
            preferredHeight = Math.min(preferredHeight, Integer.parseInt(ResourceController.getResourceController().getProperty("el__max_default_window_height")));
            int preferredWidth = (int) (getComponent(node).getWidth() * 1.2);
            preferredWidth = Math.max(preferredWidth, Integer.parseInt(ResourceController.getResourceController().getProperty("el__min_default_window_width")));
            preferredWidth = Math.min(preferredWidth, Integer.parseInt(ResourceController.getResourceController().getProperty("el__max_default_window_width")));
            final Dimension preferredSize = new Dimension(preferredWidth, preferredHeight);
            editNodeWYSIWYG.setPreferredSize(preferredSize);
        }
        final MainView mainView = (MainView) getComponent(node);
        final NodeView nodeView = mainView.getNodeView();
        if (EditedComponent.TEXT.equals(editControl.getEditType())) {
            final Font font = getFont(node);
            editNodeWYSIWYG.setTitle("edit_long_node");
            editNodeWYSIWYG.setFont(font);
            final Color nodeTextColor = getTextColor(node);
            editNodeWYSIWYG.setTextColor(nodeTextColor);
            editNodeWYSIWYG.setBackground(nodeView.getTextBackground());
        } else if (EditedComponent.DETAIL.equals(editControl.getEditType())) {
            final MapView map = nodeView.getMap();
            editNodeWYSIWYG.setTitle("edit_details");
            editNodeWYSIWYG.setFont(map.getDetailFont());
            editNodeWYSIWYG.setTextColor(map.getDetailForeground());
            editNodeWYSIWYG.setBackground(nodeView.getDetailBackground());
        } else if (EditedComponent.NOTE.equals(editControl.getEditType())) {
            final MapView map = nodeView.getMap();
            editNodeWYSIWYG.setTitle("edit_note");
            editNodeWYSIWYG.setFont(map.getDefaultNoteFont());
            editNodeWYSIWYG.setBackground(Color.WHITE);
        }
        return editNodeWYSIWYG;
    } else if (editExternal) {
        return new EditNodeExternalApplication(node, text, editControl);
    } else {
        final EditNodeBase textfield = createEditor(node, editControl.getEditType(), text, editControl);
        if (textfield != null)
            return textfield;
    }
    return createEditor(node, editControl, text, true);
}
Also used : MainView(org.freeplane.view.swing.map.MainView) EditNodeBase(org.freeplane.features.text.mindmapmode.EditNodeBase) Color(java.awt.Color) Dimension(java.awt.Dimension) EditNodeWYSIWYG(org.freeplane.features.text.mindmapmode.EditNodeWYSIWYG) NodeView(org.freeplane.view.swing.map.NodeView) Font(java.awt.Font) MapViewController(org.freeplane.view.swing.map.MapViewController) ViewController(org.freeplane.features.ui.ViewController) MapView(org.freeplane.view.swing.map.MapView)

Aggregations

Color (java.awt.Color)1 Dimension (java.awt.Dimension)1 Font (java.awt.Font)1 EditNodeBase (org.freeplane.features.text.mindmapmode.EditNodeBase)1 EditNodeWYSIWYG (org.freeplane.features.text.mindmapmode.EditNodeWYSIWYG)1 ViewController (org.freeplane.features.ui.ViewController)1 MainView (org.freeplane.view.swing.map.MainView)1 MapView (org.freeplane.view.swing.map.MapView)1 MapViewController (org.freeplane.view.swing.map.MapViewController)1 NodeView (org.freeplane.view.swing.map.NodeView)1