package org.docear.plugin.bibtex.actions; import java.awt.event.ActionEvent; import java.util.ArrayList; import org.docear.plugin.bibtex.ReferenceUpdater; import org.docear.plugin.core.mindmap.MindmapUpdateController; import org.freeplane.core.ui.EnabledAction; import org.freeplane.core.util.TextUtils; import org.freeplane.features.map.NodeModel; import org.freeplane.features.mode.Controller; import org.freeplane.features.url.mindmapmode.SaveAll; import org.freeplane.plugin.workspace.WorkspaceController; import org.freeplane.plugin.workspace.actions.AWorkspaceAction; import org.freeplane.plugin.workspace.components.menu.CheckEnableOnPopup; import org.freeplane.plugin.workspace.features.WorkspaceMapModelExtension; import org.freeplane.plugin.workspace.model.project.AWorkspaceProject; @CheckEnableOnPopup @EnabledAction(checkOnNodeChange=true) public class UpdateReferencesAllOpenMapsAction extends AWorkspaceAction { /** * */ private static final long serialVersionUID = 1L; public static final String KEY = "UpdateReferencesAllOpenMapsAction"; public UpdateReferencesAllOpenMapsAction() { super(KEY); } public void actionPerformed(ActionEvent e) { new SaveAll().actionPerformed(null); MindmapUpdateController mindmapUpdateController = new MindmapUpdateController(); mindmapUpdateController.addMindmapUpdater(new ReferenceUpdater(TextUtils.getText("update_references_open_mindmaps"))); ArrayList<AWorkspaceProject> projects = new ArrayList<AWorkspaceProject>(); projects.add(WorkspaceController.getMapProject()); mindmapUpdateController.updateOpenMindmaps(projects); } @Override public void setEnabled() { try { NodeModel node = Controller.getCurrentModeController().getMapController().getSelectedNode(); WorkspaceMapModelExtension modelExt = WorkspaceController.getMapModelExtension(node.getMap(), false); setEnabled(modelExt.getProject() != null && modelExt.getProject().isLoaded()); } catch (Exception e) { setEnabled(false); } } }