X-Git-Url: http://git.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/preferences/Util.java b/archive/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/preferences/Util.java index 4d154f7..b986737 100644 --- a/archive/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/preferences/Util.java +++ b/archive/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/preferences/Util.java @@ -10,6 +10,7 @@ import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.QualifiedName; @@ -21,6 +22,18 @@ import org.eclipse.ui.PlatformUI; import org.plog4u.wiki.filter.FilterUtil; public class Util { + public static String titleToDB(String in) { + return in.replaceAll(" ", "_"); + } + + public static String db2Title(String in) { + return in.replaceAll("_", " "); + } + + public static String db2TitleLink(String in) { + return "[[" + in.replaceAll("_", " ") + "]]"; + } + public static Shell findShell() { IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); if (window != null) { @@ -49,6 +62,12 @@ public class Util { } public static String getHTMLFileName(IFile file, String binBasePath, String srcBasePath) { + return getHTMLFileName(file,binBasePath,srcBasePath, ".html"); + } + public static String getXMLFileName(IFile file, String binBasePath, String srcBasePath) { + return getHTMLFileName(file,binBasePath,srcBasePath, ".xml"); + } + public static String getHTMLFileName(IFile file, String binBasePath, String srcBasePath, String fileExtension) { StringBuffer htmlBuffer = new StringBuffer(); String htmlName = null; // String srcBasePath = Util.getWikiTextsPath(file); @@ -61,7 +80,7 @@ public class Util { } int index = fileName.lastIndexOf(".wp"); if (index >= 0) { - htmlName = binBasePath + fileName.substring(0, index) + ".html"; + htmlName = binBasePath + fileName.substring(0, index) + fileExtension; } else { htmlName = binBasePath + fileName; } @@ -110,12 +129,16 @@ public class Util { return "true".equals(use); } - public static void setWikiTextsPath(IProject project) { + public static void setWikiBuilderPreferences(IProject project) { String value = project.getLocation().toString(); IPreferenceStore store = WikiEditorPlugin.getDefault().getPreferenceStore(); String globalBasePath = store.getString(WikiEditorPlugin.WIKI_TEXTS_BASE_PATH); if (globalBasePath == null || globalBasePath.equals("")) { store.setValue(WikiEditorPlugin.WIKI_TEXTS_BASE_PATH, value + "/wpsrc"); + store.setValue(WikiEditorPlugin.LOCAL_TEMPLATE_FILE_NAME, value + "/wpsrc/main.vm"); + store.setValue(WikiEditorPlugin.EXPORT_TEMPLATE_FILE_NAME, value + "/wpsrc/export.vm"); + store.setValue(WikiEditorPlugin.LOCAL_CSS_URL, "file://" + value + "/wpsrc/main.css"); + store.setValue(WikiEditorPlugin.EXPORT_CSS_URL, "file://" + value + "/wpsrc/main.css"); } String htmlFolder = store.getString(WikiEditorPlugin.HTML_OUTPUT_PATH); if (htmlFolder == null || htmlFolder.equals("")) { @@ -125,7 +148,10 @@ public class Util { setProperty(project, WikiProjectPreferences.PREF_ID, FieldEditorOverlayPage.USEPROJECTSETTINGS, "true"); setProperty(project, WikiProjectPreferences.PREF_ID, WikiEditorPlugin.WIKI_TEXTS_BASE_PATH, value + "/wpsrc"); setProperty(project, WikiProjectPreferences.PREF_ID, WikiEditorPlugin.HTML_OUTPUT_PATH, value + "/wpbin"); - + setProperty(project, WikiProjectPreferences.PREF_ID, WikiEditorPlugin.LOCAL_TEMPLATE_FILE_NAME, value + "/wpsrc/main.vm"); + setProperty(project, WikiProjectPreferences.PREF_ID, WikiEditorPlugin.EXPORT_TEMPLATE_FILE_NAME, value + "/wpsrc/export.vm"); + setProperty(project, WikiProjectPreferences.PREF_ID, WikiEditorPlugin.LOCAL_CSS_URL, "file://" + value + "/wpsrc/main.css"); + setProperty(project, WikiProjectPreferences.PREF_ID, WikiEditorPlugin.EXPORT_CSS_URL, "file://" + value + "/wpsrc/main.css"); // IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); // IResource resource = root.findMember(project.getLocation()); NullProgressMonitor _monitor = new NullProgressMonitor(); @@ -153,19 +179,52 @@ public class Util { return Util.getPreferenceValue(file.getProject(), WikiEditorPlugin.WIKI_TEXTS_BASE_PATH); } + public static String getLocalTemplate(IResource file) { + return Util.getPreferenceValue(file.getProject(), WikiEditorPlugin.LOCAL_TEMPLATE_FILE_NAME); + } + + public static String getLocalCssUrl(IResource file) { + return Util.getPreferenceValue(file.getProject(), WikiEditorPlugin.LOCAL_CSS_URL); + } + + public static String getExportTemplate(IResource file) { + return Util.getPreferenceValue(file.getProject(), WikiEditorPlugin.EXPORT_TEMPLATE_FILE_NAME); + } + + public static String getExportCssUrl(IResource file) { + return Util.getPreferenceValue(file.getProject(), WikiEditorPlugin.EXPORT_CSS_URL); + } + public static String getProjectsWikiTextsPath(IProject project) { return Util.getPreferenceValue(project, WikiEditorPlugin.WIKI_TEXTS_BASE_PATH); } - + public static String getWikiFileName(String wikiLink, IFile currentFile, String key) { // String basePath = currentFile.getProject().getLocation().toString(); String basePath = getWikiTextsPath(currentFile); return basePath + "/" + FilterUtil.normalizeWikiLink(wikiLink) + ".wp"; } - public static String getFileWikiName(IFile currentFile, String key) { + /** + * Extract the wiki name from the current filename, but doesn't replace '_' characters + * + * @param currentFile + * @return + */ + public static String getURLWikiName(IFile currentFile) { + return getURLWikiName(currentFile, false); + } + + /** + * Extract the wiki name from the current filename, replaces '_' with ' ' characters if + * replaceUnderscore==true + * + * @param currentFile + * @param replaceUnderscore + * @return + */ + public static String getURLWikiName(IFile currentFile, boolean replaceUnderscore) { String filePath = currentFile.getLocation().toString(); - // String basePath = currentFile.getProject().getLocation().toString(); String basePath = getWikiTextsPath(currentFile); StringBuffer result = new StringBuffer(); int lastIndex = filePath.lastIndexOf(".wp"); @@ -176,16 +235,30 @@ public class Util { for (int i = basePath.length() + 1; i < lastIndex; i++) { ch = filePath.charAt(i); switch (ch) { - case '/': - result.append(':'); - break; +// case '/': +// result.append(':'); +// break; default: - result.append(ch); + if (ch == '_' && replaceUnderscore) { + result.append(' '); + } else { + result.append(ch); + } } } return result.toString(); } + /** + * Extract the wiki name from the current filename, replaces '/' with ':' characters, and replaces all '_' with ' ' characters + * + * @param currentFile + * @return + */ + public static String getReadableWikiName(IFile currentFile) { + return getURLWikiName(currentFile, true); + } + public static String getWikiTitle(IFile currentFile) { String fileName = currentFile.getName(); String fileExt = currentFile.getFileExtension().toLowerCase(); @@ -194,4 +267,30 @@ public class Util { } return null; } + + /** + * Create the folder resource in the workspace + * Recursive to create any folders which does not exist already + * + * @param folderHandle + * @param monitor + */ + public static void createFolder(IFolder folderHandle, IProgressMonitor monitor) { + try { + // Create the folder resource in the workspace + // Recursive to create any folders which does not exist already + if (!folderHandle.exists()) { + IContainer parent = folderHandle.getParent(); + if (parent instanceof IFolder && (!((IFolder) parent).exists())) { + createFolder((IFolder) parent, monitor); + } + // if (linkTargetPath != null) + // folderHandle.createLink(linkTargetPath, IResource.ALLOW_MISSING_LOCAL, monitor); + // else + folderHandle.create(false, true, monitor); + } + } catch (CoreException e) { + + } + } } \ No newline at end of file