Statistics
| Revision:

svn-gvsig-desktop / 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 / ShowWindowFunction.java @ 46050

History | View | Annotate | Download (1.6 KB)

1
package org.gvsig.expressionevaluator.impl.function.programming;
2

    
3
import javax.swing.JComponent;
4
import org.apache.commons.lang3.Range;
5
import org.gvsig.expressionevaluator.Function;
6
import org.gvsig.expressionevaluator.Interpreter;
7
import org.gvsig.expressionevaluator.spi.AbstractFunction;
8
import org.gvsig.tools.swing.api.ToolsSwingLocator;
9
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
10

    
11
public class ShowWindowFunction extends AbstractFunction {
12

    
13
    public ShowWindowFunction() {
14
        super(
15
            Function.GROUP_PROGRAMMING, 
16
            "SHOW_WINDOW", 
17
            Range.is(3),
18
            "",
19
            "SHOW_WINDOW"+"({{string}})",
20
            null,
21
            "null",
22
            false
23
        );
24
    }
25
    
26
    @Override
27
    public boolean allowConstantFolding() {
28
        return false;
29
    }    
30
    
31
    @Override
32
    public Object call(Interpreter interpreter, final Object[] args) throws Exception {
33
        JComponent component = (JComponent) this.getObject(args, 0);
34
        String title = this.getStr(args, 1);
35
        String mode_s = this.getStr(args, 2);
36
        WindowManager.MODE mode;
37
        switch (mode_s.toLowerCase()) {
38
            case "dialog":
39
                mode = WindowManager.MODE.DIALOG;
40
                break;
41
            case "window":
42
            default:
43
                mode = WindowManager.MODE.WINDOW;
44
                break;
45
            case "tool":
46
                mode = WindowManager.MODE.TOOL;
47
                break;
48
        }
49
        ToolsSwingLocator.getWindowManager().showWindow(component, title, mode);
50
        
51
        return null;
52
        
53
    }
54
    
55

    
56
}