package org.docear.plugin.core.listeners; public class WorkspaceChangeListener /*implements IWorkspaceEventListener*/ { //WORKSPACE - todo: implement in DocearProjectLoader // // private boolean workspacePrepared = false; // // public void openWorkspace(AWorkspaceEvent event) { // if (DocearController.getController().isLicenseDialogNecessary()) // { // DocearController.getController().dispatchDocearEvent(new DocearEvent(DocearController.getController(), DocearEventType.SHOW_LICENSES)); // } // } // // public void closeWorkspace(AWorkspaceEvent event) {} // // public void workspaceChanged(AWorkspaceEvent event) {} // // public void toolBarChanged(AWorkspaceEvent event) {} // // public void workspaceReady(AWorkspaceEvent event) { // setSystemNodes(); // ResourceController resController = Controller.getCurrentController().getResourceController(); // if (resController.getProperty("ApplicationName").equals("Docear")) { // String mapPath = new File(WorkspaceUtils.getDataDirectory(), "/help/docear-welcome.mm").toURI().getPath(); // resController.setProperty("first_start_map", mapPath); // resController.setProperty("tutorial_map", mapPath); // } // } // // private void setSystemNodes() { // try{ // File libPath = WorkspaceController.resolveFile(DocearController.getController().getLibraryPath()); // URI _tempFile = Compat.fileToUrl(new File(libPath, "temp.mm")).toURI(); // URI _trashFile = Compat.fileToUrl(new File(libPath, "trash.mm")).toURI(); // // AWorkspaceTreeNode parent = WorkspaceUtils.getNodeForPath(((WorkspaceRoot) WorkspaceUtils.getModel().getRoot()).getName()+"/Library"); // for(AWorkspaceTreeNode node : Collections.list(parent.children())){ // if(node.getType().equals(LinkTypeIncomingCreator.LINK_TYPE_INCOMING) || node.getType().equals(LinkTypeLiteratureAnnotationsCreator.LINK_TYPE_LITERATUREANNOTATIONS) || node.getType().equals(LinkTypeMyPublicationsCreator.LINK_TYPE_MYPUBLICATIONS)){ // node.setSystem(true); // } // if(node.getType().equals(ALinkNode.LINK_TYPE_FILE)){ // URI linkPath = WorkspaceUtils.absoluteURI(((ALinkNode)node).getLinkPath()); // if(linkPath.equals(_trashFile) || linkPath.equals(_tempFile)){ // node.setSystem(true); // } // } // } // } // catch (MalformedURLException e) { // LogUtils.warn(e); // } // catch (URISyntaxException e) { // LogUtils.warn(e); // } // } // // public void configurationLoaded(AWorkspaceEvent event) { // linkWelcomeMindmapAfterWorkspaceCreation(); // IDocearLibrary lib = DocearController.getController().getLibrary(); // if(lib != null && lib instanceof FolderTypeLibraryNode) { // WorkspaceController.getController().getExpansionStateHandler().addPathKey(((AWorkspaceTreeNode)lib).getKey()); // WorkspaceController.getCurrentModel().getRoot().refresh(); // } // // } // // public void configurationBeforeLoading(AWorkspaceEvent event) { // removeLibraryPaths(); // prepareWorkspace(); // } // // private void removeLibraryPaths() { // CoreConfiguration.projectPathObserver.reset(); // CoreConfiguration.referencePathObserver.reset(); // CoreConfiguration.repositoryPathObserver.reset(); // } // // private void prepareWorkspace() { // if(!workspacePrepared) { // WorkspaceController controller = WorkspaceController.getController(); // controller.getConfiguration().registerTypeCreator(WorkspaceConfiguration.WSNODE_FOLDER, FolderTypeLibraryCreator.FOLDER_TYPE_LIBRARY, new FolderTypeLibraryCreator()); // controller.getConfiguration().registerTypeCreator(WorkspaceConfiguration.WSNODE_FOLDER, FolderTypeLiteratureRepositoryCreator.FOLDER_TYPE_LITERATUREREPOSITORY, new FolderTypeLiteratureRepositoryCreator()); // controller.getConfiguration().registerTypeCreator(WorkspaceConfiguration.WSNODE_FOLDER, FolderTypeProjectsCreator.FOLDER_TYPE_PROJECTS, new FolderTypeProjectsCreator()); // controller.getConfiguration().registerTypeCreator(WorkspaceConfiguration.WSNODE_LINK, LinkTypeMyPublicationsCreator.LINK_TYPE_MYPUBLICATIONS , new LinkTypeMyPublicationsCreator()); // controller.getConfiguration().registerTypeCreator(WorkspaceConfiguration.WSNODE_LINK, LinkTypeReferencesCreator.LINK_TYPE_REFERENCES , new LinkTypeReferencesCreator()); // controller.getConfiguration().registerTypeCreator(WorkspaceConfiguration.WSNODE_LINK, LinkTypeLiteratureAnnotationsCreator.LINK_TYPE_LITERATUREANNOTATIONS , new LinkTypeLiteratureAnnotationsCreator()); // controller.getConfiguration().registerTypeCreator(WorkspaceConfiguration.WSNODE_LINK, LinkTypeIncomingCreator.LINK_TYPE_INCOMING , new LinkTypeIncomingCreator()); // // controller.getConfiguration().setDefaultConfigTemplateUrl(getClass().getResource("/conf/workspace_default_docear.xml")); // // modifyContextMenus(); // } // workspacePrepared = true; // copyInfoIfNeeded(); // } // // private void copyInfoIfNeeded() { // File infoFile = new File(WorkspaceUtils.getProfileBaseFile(), "!!!info.txt"); // if(!infoFile.exists()) { // createAndCopy(infoFile, "/conf/!!!info.txt"); // } // // File _dataInfoFile = new File(WorkspaceUtils.getDataDirectory(), "!!!info.txt"); // if(!_dataInfoFile.exists()) { // createAndCopy(_dataInfoFile, "/conf/!!!info.txt"); // } // // File _welcomeFile = new File(WorkspaceUtils.getDataDirectory(), "/help/docear-welcome.mm"); // if(!_welcomeFile.exists()) { // createAndCopy(_welcomeFile, "/conf/docear-welcome.mm"); // } // // File _docearLogo = new File(WorkspaceUtils.getDataDirectory(), "/help/docear-logo.png"); // if(!_docearLogo.exists()) { // createAndCopy(_docearLogo, "/images/docear_logo.png"); // } // } // // /** // * @param file // * @param resourcePath // */ // private void createAndCopy(File file, String resourcePath) { // try { // createFile(file); // FileUtils.copyInputStreamToFile(CoreConfiguration.class.getResourceAsStream(resourcePath), file); // } // catch (IOException e) { // LogUtils.warn(e); // } // } // // /** // * @param file // * @throws IOException // */ // private void createFile(File file) throws IOException { // if(!file.getParentFile().exists() && !file.getParentFile().mkdirs()) { // return; // } // file.createNewFile(); // } // // private void linkWelcomeMindmapAfterWorkspaceCreation() { // AWorkspaceTreeNode parent = WorkspaceUtils.getNodeForPath(((WorkspaceRoot) WorkspaceController.getCurrentModel().getRoot()).getName()+"/Miscellaneous"); // if (parent == null) { // return; // } // File _welcomeFile = new File(WorkspaceUtils.getDataDirectory(), "/help/docear-welcome.mm"); // LinkTypeFileNode node = new LinkTypeFileNode(); // node.setName(_welcomeFile.getName()); // node.setLinkPath(WorkspaceUtils.getWorkspaceRelativeURI(_welcomeFile)); // WorkspaceUtils.getModel().addNodeTo(node, parent, false); // parent.refresh(); // } // // private void modifyContextMenus() { // AWorkspaceTreeNode root = (AWorkspaceTreeNode) WorkspaceUtils.getModel().getRoot(); // WorkspacePopupMenuBuilder.insertAction(root.getContextMenu(), "workspace.action.docear.locations.change", 3); // } }