Hierarchy providers refactored
[fedora-idea.git] / lang-impl / src / com / intellij / ide / macro / FileRelativeDirMacro.java
blobfd98a3fb733f5461dcd1202c9219cbdce2e2491a
1 package com.intellij.ide.macro;
3 import com.intellij.ide.DataAccessors;
4 import com.intellij.ide.IdeBundle;
5 import com.intellij.openapi.actionSystem.DataContext;
6 import com.intellij.openapi.util.io.FileUtil;
7 import com.intellij.openapi.vfs.VfsUtil;
8 import com.intellij.openapi.vfs.VirtualFile;
10 public class FileRelativeDirMacro extends Macro {
11 public String getName() {
12 return "FileRelativeDir";
15 public String getDescription() {
16 return IdeBundle.message("macro.file.directory.relative");
19 public String expand(DataContext dataContext) {
20 //Project project = (Project)dataContext.getData(DataConstants.PROJECT);
21 //if (project == null) return null;
22 //VirtualFile file = (VirtualFile)dataContext.getData(DataConstantsEx.VIRTUAL_FILE);
23 //if (file == null) return null;
24 //if (!file.isDirectory()){
25 // file = file.getParent();
26 // if (file == null) return null;
27 //}
28 final VirtualFile baseDir = DataAccessors.PROJECT_BASE_DIR.from(dataContext);
29 if (baseDir == null) {
30 return null;
33 VirtualFile dir = DataAccessors.VIRTUAL_DIR_OR_PARENT.from(dataContext);
34 if (dir == null) return null;
35 return FileUtil.getRelativePath(VfsUtil.virtualToIoFile(baseDir), VfsUtil.virtualToIoFile(dir));