Search in sources :

Example 46 with MapController

use of org.freeplane.features.map.MapController in project freeplane by freeplane.

the class UrlManager method loadURL.

/**
 *@deprecated -- use LinkController
 */
@Deprecated
public void loadURL(URI uri) {
    final String uriString = uri.toString();
    if (uriString.startsWith("#")) {
        final String target = uri.getFragment();
        try {
            final ModeController modeController = Controller.getCurrentModeController();
            final MapController mapController = modeController.getMapController();
            final NodeModel node = mapController.getNodeFromID(target);
            if (node != null) {
                mapController.select(node);
            }
        } catch (final Exception e) {
            LogUtils.warn("link " + target + " not found", e);
            UITools.errorMessage(TextUtils.format("link_not_found", target));
        }
        return;
    }
    try {
        final String extension = FileUtils.getExtension(uri.getRawPath());
        if (!uri.isAbsolute()) {
            URI absoluteUri = getAbsoluteUri(uri);
            if (absoluteUri == null) {
                final MapModel map = Controller.getCurrentController().getMap();
                if (map.getURL() == null)
                    UITools.errorMessage(TextUtils.getText("map_not_saved"));
                else
                    UITools.errorMessage(TextUtils.format("link_not_found", String.valueOf(uri)));
                return;
            }
            uri = absoluteUri;
        }
        // DOCEAR: mindmaps can be linked in a mindmap --> therefore project-relative-paths are possible
        if (!asList(FILE_SCHEME, SMB_SCHEME, FREEPLANE_SCHEME).contains(uri.getScheme())) {
            try {
                uri = uri.toURL().openConnection().getURL().toURI().normalize();
            } catch (Exception e) {
                LogUtils.warn("link " + uri + " not found", e);
                UITools.errorMessage(TextUtils.format("link_not_found", uri.toString()));
            }
        }
        try {
            if ((extension != null) && extension.equals(UrlManager.FREEPLANE_FILE_EXTENSION_WITHOUT_DOT)) {
                FreeplaneUriConverter freeplaneUriConverter = new FreeplaneUriConverter();
                final URL url = freeplaneUriConverter.freeplaneUrl(uri);
                final ModeController modeController = Controller.getCurrentModeController();
                modeController.getMapController().newMap(url);
                final String ref = uri.getFragment();
                if (ref != null) {
                    final ModeController newModeController = Controller.getCurrentModeController();
                    final MapController newMapController = newModeController.getMapController();
                    newMapController.select(newMapController.getNodeFromID(ref));
                }
                return;
            }
            Controller.getCurrentController().getViewController().openDocument(uri);
        } catch (final Exception e) {
            LogUtils.warn("link " + uri + " not found", e);
            UITools.errorMessage(TextUtils.format("link_not_found", uri.toString()));
        }
        return;
    } catch (final MalformedURLException ex) {
        LogUtils.warn("URL " + uriString + " not found", ex);
        UITools.errorMessage(TextUtils.format("link_not_found", uriString));
    }
}
Also used : NodeModel(org.freeplane.features.map.NodeModel) MalformedURLException(java.net.MalformedURLException) ModeController(org.freeplane.features.mode.ModeController) MapModel(org.freeplane.features.map.MapModel) URI(java.net.URI) XMLParseException(org.freeplane.n3.nanoxml.XMLParseException) XMLException(org.freeplane.n3.nanoxml.XMLException) URISyntaxException(java.net.URISyntaxException) HeadlessException(java.awt.HeadlessException) MalformedURLException(java.net.MalformedURLException) IOException(java.io.IOException) FileNotFoundException(java.io.FileNotFoundException) URL(java.net.URL) MapController(org.freeplane.features.map.MapController)

Example 47 with MapController

use of org.freeplane.features.map.MapController in project freeplane by freeplane.

the class NextPresentationItemAction method actionPerformed.

/**
 */
public void actionPerformed(final ActionEvent e) {
    final FilterController filterController = FilterController.getCurrentFilterController();
    final NodeModel start = Controller.getCurrentController().getSelection().getSelected();
    final NodeModel next = filterController.findNext(start, null, Direction.FORWARD_N_FOLD, null);
    if (next != null) {
        final MapController mapController = Controller.getCurrentModeController().getMapController();
        if (!next.isVisible()) {
            next.getFilterInfo().reset();
            mapController.nodeRefresh(next);
        }
        final NodeModel[] path = next.getPathToRoot();
        for (int i = 1; i < path.length; i++) {
            final NodeModel nodeOnPath = path[i];
            final NodeModel parentNode = nodeOnPath.getParentNode();
            while (parentNode.isFolded() || nodeOnPath.containsExtension(HideChildSubtree.class)) mapController.showNextChild(parentNode);
        }
        Controller.getCurrentController().getSelection().selectAsTheOnlyOneSelected(next);
    }
}
Also used : NodeModel(org.freeplane.features.map.NodeModel) MapController(org.freeplane.features.map.MapController) HideChildSubtree(org.freeplane.features.map.HideChildSubtree)

Example 48 with MapController

use of org.freeplane.features.map.MapController in project freeplane by freeplane.

the class MCloudController method setCloud.

public void setCloud(final NodeModel node, final boolean enable) {
    final CloudModel cloud = CloudModel.getModel(node);
    if ((cloud != null) == enable) {
        return;
    }
    final Color color = cloud != null ? cloud.getColor() : CloudController.getStandardColor();
    final ModeController modeController = Controller.getCurrentModeController();
    final IActor actor = new IActor() {

        public void act() {
            if (enable) {
                enable();
            } else {
                disable();
            }
        }

        private void disable() {
            final MapController mapController = modeController.getMapController();
            CloudModel.setModel(node, null);
            mapController.nodeChanged(node);
        }

        private void enable() {
            final CloudModel cloud = new CloudModel();
            cloud.setColor(color);
            final MapController mapController = modeController.getMapController();
            CloudModel.setModel(node, cloud);
            mapController.nodeChanged(node);
        }

        public String getDescription() {
            return "setCloud";
        }

        public void undo() {
            if (enable) {
                disable();
            } else {
                enable();
            }
        }
    };
    modeController.execute(actor, node.getMap());
}
Also used : Color(java.awt.Color) IActor(org.freeplane.core.undo.IActor) ModeController(org.freeplane.features.mode.ModeController) CloudModel(org.freeplane.features.cloud.CloudModel) MapController(org.freeplane.features.map.MapController)

Example 49 with MapController

use of org.freeplane.features.map.MapController in project freeplane by freeplane.

the class MLogicalStyleController method initM.

public void initM() {
    final ModeController modeController = Controller.getCurrentModeController();
    modeController.getMapController().addNodeChangeListener(new StyleRemover());
    modeController.registerExtensionCopier(new ExtensionCopier());
    modeController.addAction(new RedefineStyleAction());
    modeController.addAction(new NewUserStyleAction());
    modeController.addAction(new ManageMapConditionalStylesAction());
    modeController.addAction(new ManageNodeConditionalStylesAction());
    modeController.addAction(new CopyStyleExtensionsAction());
    if (modeController.getModeName().equals("MindMap")) {
        modeController.addAction(new MapBackgroundColorAction());
        modeController.addAction(new MapBackgroundImageAction());
        modeController.addAction(new MapBackgroundClearAction());
        modeController.addAction(new SetBooleanMapPropertyAction(MapStyle.FIT_TO_VIEWPORT));
        modeController.addAction(new CopyMapStylesAction());
    }
    if (!modeController.getController().getViewController().isHeadless()) {
        final IUserInputListenerFactory userInputListenerFactory = modeController.getUserInputListenerFactory();
        final MenuBuilder menuBuilder = userInputListenerFactory.getMenuBuilder(MenuBuilder.class);
        // TODO RIBBONS - apply to ribbons as well
        Controller.getCurrentController().getMapViewManager().addMapSelectionListener(new IMapSelectionListener() {

            public void beforeMapChange(final MapModel oldMap, final MapModel newMap) {
                removeStyleMenu(menuBuilder, "main_menu_styles");
                removeStyleMenu(menuBuilder, "node_popup_styles");
            }

            public void afterMapChange(final MapModel oldMap, final MapModel newMap) {
                addStyleMenu(menuBuilder, "main_menu_styles", newMap);
                addStyleMenu(menuBuilder, "node_popup_styles", newMap);
            }
        });
        final MapController mapController = modeController.getMapController();
        mapController.addMapChangeListener(new IMapChangeListener() {

            public void onPreNodeMoved(final NodeModel oldParent, final int oldIndex, final NodeModel newParent, final NodeModel child, final int newIndex) {
            }

            public void onPreNodeDelete(final NodeModel oldParent, final NodeModel selectedNode, final int index) {
            }

            public void onNodeMoved(final NodeModel oldParent, final int oldIndex, final NodeModel newParent, final NodeModel child, final int newIndex) {
            }

            public void onNodeInserted(final NodeModel parent, final NodeModel child, final int newIndex) {
            }

            public void onNodeDeleted(final NodeModel parent, final NodeModel child, final int index) {
            }

            public void mapChanged(final MapChangeEvent event) {
                if (event.getProperty().equals(MapStyle.MAP_STYLES)) {
                    removeStyleMenu(menuBuilder, "main_menu_styles");
                    addStyleMenu(menuBuilder, "main_menu_styles", event.getMap());
                    removeStyleMenu(menuBuilder, "node_popup_styles");
                    addStyleMenu(menuBuilder, "node_popup_styles", event.getMap());
                }
            }
        });
        mapController.addNodeSelectionListener(new INodeSelectionListener() {

            public void onSelect(final NodeModel node) {
                selectActions();
            }

            public void onDeselect(final NodeModel node) {
            }
        });
    }
}
Also used : IMapSelectionListener(org.freeplane.features.map.IMapSelectionListener) IMapChangeListener(org.freeplane.features.map.IMapChangeListener) IUserInputListenerFactory(org.freeplane.core.ui.IUserInputListenerFactory) MapBackgroundImageAction(org.freeplane.view.swing.features.filepreview.MapBackgroundImageAction) IExtensionCopier(org.freeplane.features.map.IExtensionCopier) ModeController(org.freeplane.features.mode.ModeController) MapModel(org.freeplane.features.map.MapModel) MenuBuilder(org.freeplane.core.ui.MenuBuilder) MapController(org.freeplane.features.map.MapController) INodeSelectionListener(org.freeplane.features.map.INodeSelectionListener) NodeModel(org.freeplane.features.map.NodeModel) MapBackgroundClearAction(org.freeplane.view.swing.features.filepreview.MapBackgroundClearAction) MapChangeEvent(org.freeplane.features.map.MapChangeEvent)

Example 50 with MapController

use of org.freeplane.features.map.MapController in project freeplane by freeplane.

the class MTextController method joinNodes.

public void joinNodes(final List<NodeModel> selectedNodes) {
    if (selectedNodes.isEmpty())
        return;
    final NodeModel selectedNode = selectedNodes.get(0);
    final NodeModel parentNode = selectedNode.getParentNode();
    for (final NodeModel node : selectedNodes) {
        if (node.getParentNode() != parentNode) {
            UITools.errorMessage(TextUtils.getText("cannot_add_parent_diff_parents"));
            return;
        }
    }
    String joinedContent = "";
    final Controller controller = Controller.getCurrentController();
    boolean isHtml = false;
    final LinkedHashSet<MindIcon> icons = new LinkedHashSet<MindIcon>();
    for (final NodeModel node : selectedNodes) {
        final String nodeContent = node.getText();
        icons.addAll(node.getIcons());
        final boolean isHtmlNode = HtmlUtils.isHtmlNode(nodeContent);
        joinedContent = addContent(joinedContent, isHtml, nodeContent, isHtmlNode);
        if (node != selectedNode) {
            final MMapController mapController = (MMapController) Controller.getCurrentModeController().getMapController();
            for (final NodeModel child : node.getChildren().toArray(new NodeModel[] {})) {
                mapController.moveNode(child, selectedNode, selectedNode.getChildCount());
            }
            mapController.deleteNode(node);
        }
        isHtml = isHtml || isHtmlNode;
    }
    controller.getSelection().selectAsTheOnlyOneSelected(selectedNode);
    setNodeText(selectedNode, joinedContent);
    final MIconController iconController = (MIconController) IconController.getController();
    iconController.removeAllIcons(selectedNode);
    for (final MindIcon icon : icons) {
        iconController.addIcon(selectedNode, icon);
    }
}
Also used : LinkedHashSet(java.util.LinkedHashSet) NodeModel(org.freeplane.features.map.NodeModel) MIconController(org.freeplane.features.icon.mindmapmode.MIconController) MMapController(org.freeplane.features.map.mindmapmode.MMapController) MindIcon(org.freeplane.features.icon.MindIcon) MMapController(org.freeplane.features.map.mindmapmode.MMapController) MapController(org.freeplane.features.map.MapController) MIconController(org.freeplane.features.icon.mindmapmode.MIconController) IconController(org.freeplane.features.icon.IconController) Controller(org.freeplane.features.mode.Controller) TextController(org.freeplane.features.text.TextController) MLinkController(org.freeplane.features.link.mindmapmode.MLinkController) NodeStyleController(org.freeplane.features.nodestyle.NodeStyleController) FormatController(org.freeplane.features.format.FormatController) ResourceController(org.freeplane.core.resources.ResourceController) ViewController(org.freeplane.features.ui.ViewController) LinkController(org.freeplane.features.link.LinkController) ModeController(org.freeplane.features.mode.ModeController) MNodeStyleController(org.freeplane.features.nodestyle.mindmapmode.MNodeStyleController) MModeController(org.freeplane.features.mode.mindmapmode.MModeController) ScannerController(org.freeplane.features.format.ScannerController)

Aggregations

MapController (org.freeplane.features.map.MapController)60 NodeModel (org.freeplane.features.map.NodeModel)30 ModeController (org.freeplane.features.mode.ModeController)22 Controller (org.freeplane.features.mode.Controller)16 IActor (org.freeplane.core.undo.IActor)13 MapModel (org.freeplane.features.map.MapModel)10 LinkController (org.freeplane.features.link.LinkController)9 TextController (org.freeplane.features.text.TextController)9 MMapController (org.freeplane.features.map.mindmapmode.MMapController)8 MModeController (org.freeplane.features.mode.mindmapmode.MModeController)8 NodeStyleController (org.freeplane.features.nodestyle.NodeStyleController)8 ResourceController (org.freeplane.core.resources.ResourceController)7 IconController (org.freeplane.features.icon.IconController)7 INodeSelectionListener (org.freeplane.features.map.INodeSelectionListener)7 ViewController (org.freeplane.features.ui.ViewController)7 URI (java.net.URI)6 MLinkController (org.freeplane.features.link.mindmapmode.MLinkController)6 MNodeStyleController (org.freeplane.features.nodestyle.mindmapmode.MNodeStyleController)6 JPopupMenu (javax.swing.JPopupMenu)5 CloudController (org.freeplane.features.cloud.CloudController)5