package org.xmind.ui.internal; @Deprecated public class TemplateManagerImpl { // private static final String TEMPLATES_PATH = "templates"; //$NON-NLS-1$ // private static final String TEMPLATES_DIR = TEMPLATES_PATH + "/"; //$NON-NLS-1$ // // private ListenerList listeners = new ListenerList(); // private ITemplate defaultTemplate; // // @Override // public ITemplate getTemplate(URI templateURI) { // String path = templateURI.getPath(); // if (path == null) // return null; // // if (path.equals(ClonedTemplate.URI_PATH)) { // return ClonedTemplate.create(templateURI); // } // // return null; // } // // @Override // public List<ITemplate> getSystemTemplates() { // List<ITemplate> sysTemplates = new ArrayList<ITemplate>(); // loadSystemTemplates(sysTemplates); // return sysTemplates; // } // // private void loadSystemTemplates(List<ITemplate> templates) { // Bundle bundle = Platform.getBundle(MindMapUI.PLUGIN_ID); // if (bundle != null) { // Element element = getTemplateListElement(bundle); // if (element != null) { // java.util.Properties properties = getTemplateListProperties( // bundle); // Iterator<Element> it = DOMUtils.childElementIterByTag(element, // "template"); //$NON-NLS-1$ // while (it.hasNext()) { // Element templateEle = it.next(); // String resourcePath = templateEle.getAttribute("resource"); //$NON-NLS-1$ // if (!"".equals(resourcePath)) { //$NON-NLS-1$ // if (!resourcePath.startsWith("/")) { //$NON-NLS-1$ // resourcePath = TEMPLATES_DIR + resourcePath; // } // URL url = findTemplateResource(bundle, resourcePath); // if (url != null) { // URI uri = null; // try { // uri = URIUtil.toURI(url); // } catch (URISyntaxException e) { // } // if (uri != null) { // String name = templateEle.getAttribute("name"); //$NON-NLS-1$ // if (name.startsWith("%")) { //$NON-NLS-1$ // if (properties != null) { // name = properties // .getProperty(name.substring(1)); // } else { // name = null; // } // } // if (name == null || "".equals(name)) { //$NON-NLS-1$ // name = FileUtils.getNoExtensionFileName( // resourcePath); // } // templates.add(ClonedTemplate // .createFromSourceWorkbookURI(uri, // name)); // } // } // } // } // } // } // } // // private URL findTemplateResource(Bundle bundle, String resourcePath) { // return FileLocator.find(bundle, new Path("$nl$/" + resourcePath), null); //$NON-NLS-1$ // } // // private java.util.Properties getTemplateListProperties(Bundle bundle) { // URL propURL = ResourceFinder.findResource(bundle, TEMPLATES_DIR, // "templates", ".properties"); //$NON-NLS-1$ //$NON-NLS-2$ // if (propURL != null) { // try { // InputStream is = propURL.openStream(); // try { // java.util.Properties properties = new java.util.Properties(); // properties.load(is); // return properties; // } finally { // is.close(); // } // } catch (IOException e) { // } // } // return null; // } // // private Element getTemplateListElement(Bundle bundle) { // URL xmlURL = FileLocator.find(bundle, // new Path(TEMPLATES_DIR + "templates.xml"), null); //$NON-NLS-1$ // if (xmlURL == null) // return null; // try { // InputStream is = xmlURL.openStream(); // if (is != null) { // try { // Document doc = DOMUtils.loadDocument(is); // if (doc != null) // return doc.getDocumentElement(); // } finally { // is.close(); // } // } // } catch (Throwable e) { // } // return null; // } // // private File createNonConflictingFile(File rootDir, String fileName) { // int dotIndex = fileName.lastIndexOf('.'); // String name = dotIndex < 0 ? fileName : fileName.substring(0, dotIndex); // String ext = dotIndex < 0 ? "" : fileName.substring(dotIndex); //$NON-NLS-1$ // File targetFile = new File(rootDir, fileName); // int i = 1; // while (targetFile.exists()) { // i++; // targetFile = new File(rootDir, // String.format("%s %s%s", name, i, ext)); //$NON-NLS-1$ // } // return targetFile; // } // // @Override // public List<ITemplate> getCustomTemplates() { // List<ITemplate> customTemplates = new ArrayList<ITemplate>(); // loadCustomTemplates(customTemplates); // return customTemplates; // } // // private void loadCustomTemplates(List<ITemplate> templates) { // loadTemplatesFromDir(templates, getCustomTemplatesDir()); // } // // private static File getCustomTemplatesDir() { // return new File(Core.getWorkspace().getAbsolutePath(TEMPLATES_PATH)); // } // // private void loadTemplatesFromDir(List<ITemplate> templates, // File templatesDir) { // List<ITemplate> list = new ArrayList<ITemplate>(); // if (templatesDir != null && templatesDir.isDirectory()) { // for (String fileName : templatesDir.list()) { // if (fileName.endsWith(MindMapUI.FILE_EXT_TEMPLATE) // || fileName.endsWith(MindMapUI.FILE_EXT_XMIND)) { // File file = new File(templatesDir, fileName); // if (file.isFile() && file.canRead()) { // list.add(ClonedTemplate.createFromSourceWorkbookURI( // file.toURI(), fileName)); // } // } // } // } // Collections.sort(list, new Comparator<ITemplate>() { // public int compare(ITemplate t1, ITemplate t2) { // if (!(t1 instanceof ClonedTemplate) // || !(t2 instanceof ClonedTemplate)) // return 0; // ClonedTemplate ct1 = (ClonedTemplate) t1; // ClonedTemplate ct2 = (ClonedTemplate) t2; // // File f1 = URIUtil.toFile(ct1.getSourceWorkbookURI()); // File f2 = URIUtil.toFile(ct2.getSourceWorkbookURI()); // if (f1 == null || f2 == null || !f1.exists() || !f2.exists()) // return 0; // return (int) (f1.lastModified() - f2.lastModified()); // } // }); // templates.addAll(list); // } // // @Override // public ITemplate addCustomTemplateFromWorkbookURI(URI workbookURI) // throws CoreException { // if (URIUtil.isFileURI(workbookURI)) { // File sourceFile = URIUtil.toFile(workbookURI); // String fileName = sourceFile.getName(); // File targetFile = createCustomTemplateOutputFile(fileName); // try { // FileUtils.copy(sourceFile, targetFile); // ClonedTemplate template = ClonedTemplate // .createFromSourceWorkbookURI(targetFile.toURI(), // fileName); // fireTemplateAdded(template); // return template; // } catch (IOException e) { // } // // } // return null; // } // // private void fireTemplateAdded(ITemplate template) { // for (Object listener : listeners.getListeners()) { // try { // ((ITemplateManagerListener) listener) // .customTemplateAdded(template); // } catch (Throwable e) { // Logger.log(e); // } // } // } // // private void fireTemplateRemoved(ITemplate template) { // for (Object listener : listeners.getListeners()) { // try { // ((ITemplateManagerListener) listener) // .customTemplateRemoved(template); // } catch (Throwable e) { // Logger.log(e); // } // } // } // // private File createCustomTemplateOutputFile(String fileName) { // File dir = getCustomTemplatesDir(); // FileUtils.ensureDirectory(dir); // return createNonConflictingFile(dir, fileName); // } // // @Override // public void removeCustomTemplate(ITemplate template) { // if (template instanceof ISourceWorkbookProvider) { // URI templateURI = ((ISourceWorkbookProvider) template) // .getSourceWorkbookURI(); // if (URIUtil.isFileURI(templateURI)) { // File file = URIUtil.toFile(templateURI); // if (file.delete()) { // fireTemplateRemoved(template); // } // } // } // } // // @Override // public void addTemplateManagerListener(ITemplateManagerListener listener) { // listeners.add(listener); // } // // @Override // public void removeTemplateManagerListener( // ITemplateManagerListener listener) { // listeners.remove(listener); // } // // @Override // public ITemplate getDefaultTemplate() { // return this.defaultTemplate; // } // // @Override // public void setDefaultTemplate(ITemplate defaultTemplate) { // this.defaultTemplate = defaultTemplate; // } }