Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/ExpressionBuilder.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/ExpressionBuilder.java	(revision 47375)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/ExpressionBuilder.java	(revision 47376)
@@ -153,6 +153,10 @@
     public static final String FUNCTION_URLREADBYTES = "URL_READBYTES";
     public static final String FUNCTION_URL = "URL";
 
+    public static final String FUNCTION_DESKTOPBROWSE = "DESKTOP_BROWSE";
+    public static final String FUNCTION_DESKTOPOPEN = "DESKTOP_OPEN";
+    public static final String FUNCTION_DESKTOPEDIT = "DESKTOP_EDIT";
+
     public static final String FUNCTION_CRC32 = "CRC";
     public static final String FUNCTION_MD5HEX = "MD5HEX";
     
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/programming/DesktopEdit.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/programming/DesktopEdit.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/programming/DesktopEdit.java	(revision 47376)
@@ -0,0 +1,44 @@
+package org.gvsig.expressionevaluator.impl.function.programming;
+
+import java.io.File;
+import java.net.URL;
+import org.apache.commons.lang3.Range;
+import org.gvsig.desktopopen.DesktopOpen;
+import static org.gvsig.expressionevaluator.ExpressionBuilder.FUNCTION_DESKTOPEDIT;
+import org.gvsig.expressionevaluator.Function;
+import org.gvsig.expressionevaluator.Interpreter;
+import org.gvsig.expressionevaluator.spi.AbstractFunction;
+import org.gvsig.tools.util.ToolsUtilLocator;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class DesktopEdit extends AbstractFunction {
+
+    public DesktopEdit() {
+        super(Function.GROUP_PROGRAMMING, 
+            FUNCTION_DESKTOPEDIT, 
+            Range.is(1),
+            null,
+            FUNCTION_DESKTOPEDIT+"({{file}})",
+            null,
+            "NULL",
+            false
+        );
+    }
+    
+    @Override
+    public boolean allowConstantFolding() {
+        return false;
+    }
+    
+    @Override
+    public Object call(Interpreter interpreter, Object[] args) throws Exception {
+        File f = getFile(args,0);
+        DesktopOpen desktop = ToolsUtilLocator.getToolsUtilManager().createDesktopOpen();
+        desktop.edit(f);
+        return null;
+    }
+    
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/programming/DesktopOpen.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/programming/DesktopOpen.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/programming/DesktopOpen.java	(revision 47376)
@@ -0,0 +1,42 @@
+package org.gvsig.expressionevaluator.impl.function.programming;
+
+import java.io.File;
+import org.apache.commons.lang3.Range;
+import static org.gvsig.expressionevaluator.ExpressionBuilder.FUNCTION_DESKTOPOPEN;
+import org.gvsig.expressionevaluator.Function;
+import org.gvsig.expressionevaluator.Interpreter;
+import org.gvsig.expressionevaluator.spi.AbstractFunction;
+import org.gvsig.tools.util.ToolsUtilLocator;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class DesktopOpen extends AbstractFunction {
+
+    public DesktopOpen() {
+        super(Function.GROUP_PROGRAMMING, 
+            FUNCTION_DESKTOPOPEN, 
+            Range.is(1),
+            null,
+            FUNCTION_DESKTOPOPEN+"({{file}})",
+            null,
+            "NULL",
+            false
+        );
+    }
+    
+    @Override
+    public boolean allowConstantFolding() {
+        return false;
+    }
+    
+    @Override
+    public Object call(Interpreter interpreter, Object[] args) throws Exception {
+        File f = getFile(args,0);
+        org.gvsig.desktopopen.DesktopOpen desktop = ToolsUtilLocator.getToolsUtilManager().createDesktopOpen();
+        desktop.open(f);
+        return null;
+    }
+    
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/programming/DesktopBrowse.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/programming/DesktopBrowse.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/programming/DesktopBrowse.java	(revision 47376)
@@ -0,0 +1,43 @@
+package org.gvsig.expressionevaluator.impl.function.programming;
+
+import java.net.URL;
+import org.apache.commons.lang3.Range;
+import org.gvsig.desktopopen.DesktopOpen;
+import static org.gvsig.expressionevaluator.ExpressionBuilder.FUNCTION_DESKTOPBROWSE;
+import org.gvsig.expressionevaluator.Function;
+import org.gvsig.expressionevaluator.Interpreter;
+import org.gvsig.expressionevaluator.spi.AbstractFunction;
+import org.gvsig.tools.util.ToolsUtilLocator;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class DesktopBrowse extends AbstractFunction {
+
+    public DesktopBrowse() {
+        super(Function.GROUP_PROGRAMMING, 
+            FUNCTION_DESKTOPBROWSE, 
+            Range.is(1),
+            null,
+            FUNCTION_DESKTOPBROWSE+"({{url}})",
+            null,
+            "NULL",
+            false
+        );
+    }
+    
+    @Override
+    public boolean allowConstantFolding() {
+        return false;
+    }
+    
+    @Override
+    public Object call(Interpreter interpreter, Object[] args) throws Exception {
+        URL url = getURL(args,0);
+        DesktopOpen desktop = ToolsUtilLocator.getToolsUtilManager().createDesktopOpen();
+        desktop.browse(url.toURI());
+        return null;
+    }
+    
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/symboltable/ProgrammingSymbolTable.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/symboltable/ProgrammingSymbolTable.java	(revision 47375)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/symboltable/ProgrammingSymbolTable.java	(revision 47376)
@@ -18,6 +18,9 @@
 import org.gvsig.expressionevaluator.impl.function.programming.CreateChartPanelFunction;
 import org.gvsig.expressionevaluator.impl.function.programming.CreateFnFunction;
 import org.gvsig.expressionevaluator.impl.function.programming.CreateHtmlPanelFunction;
+import org.gvsig.expressionevaluator.impl.function.programming.DesktopBrowse;
+import org.gvsig.expressionevaluator.impl.function.programming.DesktopEdit;
+import org.gvsig.expressionevaluator.impl.function.programming.DesktopOpen;
 import org.gvsig.expressionevaluator.impl.function.programming.EvalFunction;
 import org.gvsig.expressionevaluator.impl.function.programming.FileFunction;
 import org.gvsig.expressionevaluator.impl.function.programming.GetattrFunction;
@@ -114,6 +117,10 @@
         this.addFunction(new StringBuilderFunction());
         this.addFunction(new StringWriterFunction());
         this.addFunction(new ImportFunction());
+
+        this.addFunction(new DesktopBrowse());
+        this.addFunction(new DesktopOpen());
+        this.addFunction(new DesktopEdit());
     }
 
     private void addOperator(Function operator) {
