first version of external tools
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / externaltools / variable / LastPHPUrlExpander.java
1 package net.sourceforge.phpdt.externaltools.variable;
2
3 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
4
5 import org.eclipse.core.resources.IResource;
6 import org.eclipse.core.runtime.IPath;
7 import org.eclipse.jface.preference.IPreferenceStore;
8
9 /**
10  * Expands a variable into the last opened PHP file 
11  * <p>
12  * This class is not intended to be extended by clients.
13  * </p>
14  */
15 public class LastPHPUrlExpander extends ResourceExpander { //implements IVariableTextExpander {
16
17   /**
18    * Create an instance
19    */
20   public LastPHPUrlExpander() {
21     super();
22   }
23
24   /**
25    * Returns a string representation of the path to a file or directory
26    * for the given variable tag and value or <code>null</code>.
27    * 
28    * @see IVariableTextExpander#getText(String, String, ExpandVariableContext)
29    */
30   public String getText(String varTag, String varValue, ExpandVariableContext context) {
31     IPath path = getPath(varTag, varValue, context);
32     if (path != null) {
33       IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore();
34       String localhostURL = path.toString();
35       String lowerCaseFileName = localhostURL.toLowerCase();
36       //       fileName = "http://localhost"+fileName.replaceAll("c:", "");
37       String documentRoot = store.getString(PHPeclipsePlugin.DOCUMENTROOT_PREF);
38       documentRoot = documentRoot.replace('\\', '/');
39       documentRoot = documentRoot.toLowerCase();
40
41       if (lowerCaseFileName.startsWith(documentRoot)) {
42         localhostURL = localhostURL.substring(documentRoot.length());
43       } else {
44         return localhostURL;
45       }
46
47       return store.getString(PHPeclipsePlugin.LOCALHOST_PREF) + localhostURL.replaceAll(documentRoot, "");
48
49     }
50     return null;
51   }
52
53 }