Revision 1690

View differences:

org.gvsig.tools/library/tags/org.gvsig.tools-3.0.149/org.gvsig.tools.util/org.gvsig.tools.util.api/src/main/java/org/gvsig/tools/util/ToolsUtilManager.java
1
package org.gvsig.tools.util;
2

  
3
import org.gvsig.desktopopen.DesktopOpen;
4

  
5
/**
6
 * gvSIG. Desktop Geographic Information System.
7
 *
8
 * Copyright (C) 2007-2013 gvSIG Association.
9
 *
10
 * This program is free software; you can redistribute it and/or
11
 * modify it under the terms of the GNU General Public License
12
 * as published by the Free Software Foundation; either version 3
13
 * of the License, or (at your option) any later version.
14
 *
15
 * This program is distributed in the hope that it will be useful,
16
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18
 * GNU General Public License for more details.
19
 *
20
 * You should have received a copy of the GNU General Public License
21
 * along with this program; if not, write to the Free Software
22
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
23
 * MA  02110-1301, USA.
24
 *
25
 * For any additional information, do not hesitate to contact us
26
 * at info AT gvsig.com, or visit our website www.gvsig.com.
27
 */
28

  
29
/**
30
 * @author fdiaz
31
 *
32
 */
33
public interface ToolsUtilManager  {
34

  
35
	/**
36
	 * @return
37
	 */
38
	public InformationBuilder createInformationBuilder();
39

  
40
    public DesktopOpen createDesktopOpen() ;
41
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.149/org.gvsig.tools.util/org.gvsig.tools.util.api/src/main/java/org/gvsig/tools/util/InformationBuilder.java
1
package org.gvsig.tools.util;
2

  
3
public interface InformationBuilder {
4

  
5
    public interface Element {
6

  
7
        public Element value(String format, Object... args);
8
        public String build();
9
    }
10

  
11
    public interface TitleElement extends Element {
12

  
13
        @Override
14
        public TitleElement value(String format, Object... args);
15
        public TitleElement label(String label);
16
        public TitleElement labelkey(String labelkey);
17
    }
18

  
19
    public interface RawElement extends Element {
20

  
21
        @Override
22
        public RawElement value(String format, Object... args);
23
    }
24

  
25
    public interface TextElement extends RawElement {
26

  
27
        @Override
28
        public TextElement value(String format, Object... args);
29

  
30
    }
31

  
32
    public interface PropertyElement extends TextElement {
33

  
34
        public PropertyElement monospace();
35

  
36
        public PropertyElement label(String label);
37

  
38
        public PropertyElement labelkey(String labelkey);
39

  
40
        @Override
41
        public PropertyElement value(String format, Object... args);
42

  
43
    }
44

  
45
    public InformationBuilder backgroundColor(String color);
46

  
47
    public InformationBuilder backgroundColorTitle(String color);
48

  
49
    public InformationBuilder backgroundColorPropertyLabel(String color);
50

  
51
    public InformationBuilder backgroundColorPropertyValue1(String color);
52

  
53
    public InformationBuilder backgroundColorPropertyValue2(String color);
54

  
55
    public TitleElement title();
56

  
57
    public PropertyElement property();
58

  
59
    public TextElement text();
60

  
61
    public RawElement raw();
62

  
63
    public String build();
64

  
65
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.149/org.gvsig.tools.util/org.gvsig.tools.util.api/src/main/java/org/gvsig/tools/util/ToolsUtilLocator.java
1
package org.gvsig.tools.util;
2
/**
3
 * gvSIG. Desktop Geographic Information System.
4
 *
5
 * Copyright (C) 2007-2013 gvSIG Association.
6
 *
7
 * This program is free software; you can redistribute it and/or
8
 * modify it under the terms of the GNU General Public License
9
 * as published by the Free Software Foundation; either version 3
10
 * of the License, or (at your option) any later version.
11
 *
12
 * This program is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 * GNU General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU General Public License
18
 * along with this program; if not, write to the Free Software
19
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
 * MA  02110-1301, USA.
21
 *
22
 * For any additional information, do not hesitate to contact us
23
 * at info AT gvsig.com, or visit our website www.gvsig.com.
24
 */
25

  
26

  
27
import org.gvsig.filedialogchooser.FileDialogChooserManager;
28
import org.gvsig.svgsupport.SVGSupportManager;
29
import org.gvsig.tools.locator.AbstractLocator;
30
import org.gvsig.tools.locator.Locator;
31
import org.gvsig.tools.locator.LocatorException;
32

  
33
/**
34
 * @author fdiaz
35
 *
36
 */
37
@SuppressWarnings("rawtypes")
38
public class ToolsUtilLocator extends AbstractLocator {
39

  
40
	private static final String LOCATOR_NAME = "ToolsUtilLocator";
41

  
42
	public static final String TOOLS_UTIL_MANAGER_NAME = "org.gvsig.tools.util.manager";
43
	private static final String TOOLS_UTIL_MANAGER_DESCRIPTION = "Tools utilities.";
44

  
45
    public static final String FILE_DIALOG_CHOOSER_MANAGER_NAME = "org.gvsig.filedialogchooser.manager";
46
	private static final String FILE_DIALOG_CHOOSER_MANAGER_DESCRIPTION = "File dialog chooser.";
47

  
48
    public static final String PLUGINS_SVGSUPPORT_MANAGER_NAME = "SVGSupportManager";
49
    private static final String PLUGINS_SVGSUPPORT_MANAGER_DESCRIPTION = "SVGSupportManager";
50

  
51
	private static final ToolsUtilLocator instance = new ToolsUtilLocator();
52

  
53
	private ToolsUtilLocator() {
54

  
55
	}
56

  
57
	/**
58
	 * Return the singleton instance.
59
	 *
60
	 * @return the singleton instance
61
	 */
62
	public static ToolsUtilLocator getInstance() {
63
		return instance;
64
	}
65

  
66
	public String getLocatorName() {
67
		return LOCATOR_NAME;
68
	}
69

  
70
	/**
71
	 * Return a reference to ToolsUtilManager.
72
	 *
73
	 * @return a reference to ToolsUtilManager
74
	 * @throws LocatorException
75
	 *             if there is no access to the class or the class cannot be
76
	 *             instantiated
77
	 * @see Locator#get(String)
78
	 */
79
	public static ToolsUtilManager getToolsUtilManager()
80
			throws LocatorException {
81
		return (ToolsUtilManager) getInstance().get(TOOLS_UTIL_MANAGER_NAME);
82
	}
83

  
84
	/**
85
	 * Registers the Class implementing the ToolsUtilManager interface.
86
	 *
87
	 * @param clazz
88
	 *            implementing the ToolsUtilManager interface
89
	 */
90
	public static void registerToolsUtilManager(Class clazz) {
91
		getInstance().register(TOOLS_UTIL_MANAGER_NAME,
92
		    TOOLS_UTIL_MANAGER_DESCRIPTION, clazz);
93
	}
94

  
95
	public static void registerDefaultToolsUtilManager(Class clazz) {
96
		getInstance().registerDefault(TOOLS_UTIL_MANAGER_NAME,
97
		    TOOLS_UTIL_MANAGER_DESCRIPTION, clazz);
98
	}
99

  
100
	public static FileDialogChooserManager getFileDialogChooserManager()
101
			throws LocatorException {
102
		return (FileDialogChooserManager) getInstance().get(FILE_DIALOG_CHOOSER_MANAGER_NAME);
103
	}
104

  
105
    public static void registerFileDialogChooserManager(Class clazz) {
106
		getInstance().register(FILE_DIALOG_CHOOSER_MANAGER_NAME,
107
		    FILE_DIALOG_CHOOSER_MANAGER_DESCRIPTION, clazz);
108
	}
109

  
110
	public static void registerDefaultFileDialogChooserManager(Class clazz) {
111
		getInstance().registerDefault(FILE_DIALOG_CHOOSER_MANAGER_NAME,
112
		    FILE_DIALOG_CHOOSER_MANAGER_DESCRIPTION, clazz);
113
	}
114

  
115
	//SVG support
116
    public static SVGSupportManager getSVGSupportManager() throws LocatorException {
117
        return (SVGSupportManager) getInstance().get(PLUGINS_SVGSUPPORT_MANAGER_NAME);
118
    }
119

  
120
    public static void registerSVGSupportManager(Class clazz) {
121
        getInstance().register(PLUGINS_SVGSUPPORT_MANAGER_NAME, PLUGINS_SVGSUPPORT_MANAGER_DESCRIPTION,
122
                clazz);
123
    }
124

  
125
	public static void registerDefaultSVGSupportManager(Class clazz) {
126
		getInstance().registerDefault(PLUGINS_SVGSUPPORT_MANAGER_NAME,
127
		    PLUGINS_SVGSUPPORT_MANAGER_DESCRIPTION, clazz);
128
	}
129

  
130
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.149/org.gvsig.tools.util/org.gvsig.tools.util.api/src/main/java/org/gvsig/tools/util/ToolsUtilLibrary.java
1
package org.gvsig.tools.util;
2

  
3
import org.gvsig.tools.ToolsLibrary;
4
import org.gvsig.tools.library.AbstractLibrary;
5
import org.gvsig.tools.library.LibraryException;
6
import org.gvsig.tools.locator.ReferenceNotRegisteredException;
7

  
8
/**
9
 * gvSIG. Desktop Geographic Information System.
10
 *
11
 * Copyright (C) 2007-2013 gvSIG Association.
12
 *
13
 * This program is free software; you can redistribute it and/or
14
 * modify it under the terms of the GNU General Public License
15
 * as published by the Free Software Foundation; either version 3
16
 * of the License, or (at your option) any later version.
17
 *
18
 * This program is distributed in the hope that it will be useful,
19
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21
 * GNU General Public License for more details.
22
 *
23
 * You should have received a copy of the GNU General Public License
24
 * along with this program; if not, write to the Free Software
25
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
26
 * MA  02110-1301, USA.
27
 *
28
 * For any additional information, do not hesitate to contact us
29
 * at info AT gvsig.com, or visit our website www.gvsig.com.
30
 */
31

  
32

  
33

  
34
@SuppressWarnings("unchecked")
35
public class ToolsUtilLibrary extends AbstractLibrary {
36

  
37
	public void doRegistration() {
38
		super.doRegistration();
39
		registerAsAPI(ToolsUtilLibrary.class);
40
		this.require(ToolsLibrary.class);
41
	}
42

  
43
	protected void doInitialize() throws LibraryException {
44

  
45
	}
46

  
47
	protected void doPostInitialize() throws LibraryException {
48
		  // Validate there is any implementation registered.
49
        ToolsUtilManager manager = ToolsUtilLocator.getToolsUtilManager();
50
        if (manager == null) {
51
            throw new ReferenceNotRegisteredException(
52
            		ToolsUtilLocator.TOOLS_UTIL_MANAGER_NAME, ToolsUtilLocator
53
                    .getInstance());
54
        }
55

  
56
	}
57

  
58
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.149/org.gvsig.tools.util/org.gvsig.tools.util.api/src/main/java/org/gvsig/filedialogchooser/FileDialogChooserManager.java
1
package org.gvsig.filedialogchooser;
2

  
3
import java.io.File;
4

  
5

  
6
public interface FileDialogChooserManager {
7

  
8
    public void setUseNativeFileChooser(boolean b);
9
    
10
    public boolean useNativeFileChooser();
11
    
12
    public FileDialogChooser create(String fileChooserID);
13

  
14
    public FileDialogChooser create();
15
    
16
    public File getLastPath(String fileChooserID, File defaultDirectory);
17
    
18
    public void setLastPath(String fileChooserID, File path);
19
    
20
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.149/org.gvsig.tools.util/org.gvsig.tools.util.api/src/main/java/org/gvsig/filedialogchooser/FileDialogChooser.java
1
/*
2
 * To change this license header, choose License Headers in Project Properties.
3
 * To change this template file, choose Tools | Templates
4
 * and open the template in the editor.
5
 */
6
package org.gvsig.filedialogchooser;
7

  
8
import java.awt.Component;
9
import java.io.File;
10
import javax.swing.JFileChooser;
11
import javax.swing.filechooser.FileFilter;
12

  
13
public interface FileDialogChooser {
14

  
15
    /**
16
     * Return value if approve (yes, ok) is chosen.
17
     */
18
    int APPROVE_OPTION = JFileChooser.APPROVE_OPTION;
19
    
20
    /**
21
     * Return value if cancel is chosen.
22
     */
23
    int CANCEL_OPTION = JFileChooser.CANCEL_OPTION;
24

  
25
    /** Instruction to display only directories. */
26
    int DIRECTORIES_ONLY = JFileChooser.DIRECTORIES_ONLY;
27

  
28
    /**
29
     * Return value if an error occurred.
30
     */
31
    int ERROR_OPTION = JFileChooser.ERROR_OPTION;
32

  
33
    /** Instruction to display both files and directories. */
34
    int FILES_AND_DIRECTORIES = JFileChooser.FILES_AND_DIRECTORIES;
35

  
36
    /** Instruction to display only files. */
37
    int FILES_ONLY = JFileChooser.FILES_ONLY;
38

  
39
    /**
40
     * Type value indicating that the <code>FileDialogChooser</code> supports an
41
     * "Open" file operation.
42
     */
43
    int OPEN_DIALOG = JFileChooser.OPEN_DIALOG;
44
    
45
    /**
46
     * Type value indicating that the <code>FileDialogChooser</code> supports a
47
     * "Save" file operation.
48
     */
49
    int SAVE_DIALOG = JFileChooser.SAVE_DIALOG;
50

  
51

  
52
    void setCurrentDirectory(File dir);
53

  
54
    public File getCurrentDirectory();
55

  
56
    void setDialogTitle(String dialogTitle);
57

  
58
    void setDialogType(int dialogType);
59

  
60
    void setDragEnabled(boolean b);
61

  
62
    void setFileFilter(FileFilter filter);
63

  
64
    void setFileSelectionMode(int mode);
65

  
66
    File getSelectedFile();
67

  
68
    /**
69
     * Returns a list of selected files if the file chooser is
70
     * set to allow multiple selection.
71
     * @return 
72
     */
73
    File[] getSelectedFiles();
74

  
75
    void setFileHidingEnabled(boolean b);
76

  
77
    void setMultiSelectionEnabled(boolean b);
78

  
79
    public boolean isMultiSelectionEnabled();
80

  
81
    int showOpenDialog(Component parent);
82

  
83
    int showSaveDialog(Component parent);
84

  
85
    public void setAcceptAllFileFilterUsed(boolean b);
86

  
87
    public void addChoosableFileFilter(FileFilter next);
88

  
89
    public FileFilter getFileFilter();
90
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.149/org.gvsig.tools.util/org.gvsig.tools.util.api/src/main/java/org/gvsig/desktopopen/DesktopOpen.java
1
package org.gvsig.desktopopen;
2

  
3
import java.io.File;
4
import java.net.URI;
5

  
6
public interface DesktopOpen {
7

  
8
    public boolean browse(URI uri);
9

  
10
    public boolean edit(File file);
11

  
12
    public boolean open(File file);
13
    
14
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.149/org.gvsig.tools.util/org.gvsig.tools.util.api/src/main/java/org/gvsig/svgsupport/SVGRenderer.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or modify it under
7
 * the terms of the GNU General Public License as published by the Free Software
8
 * Foundation; either version 3 of the License, or (at your option) any later
9
 * version.
10
 *
11
 * This program is distributed in the hope that it will be useful, but WITHOUT
12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
14
 * details.
15
 *
16
 * You should have received a copy of the GNU General Public License along with
17
 * this program; if not, write to the Free Software Foundation, Inc., 51
18
 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us at info AT
21
 * gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.svgsupport;
24

  
25
import java.awt.Graphics2D;
26
import java.awt.geom.Rectangle2D;
27
import java.io.File;
28
import java.io.IOException;
29
import java.net.URL;
30

  
31
public interface SVGRenderer {
32

  
33
    public Rectangle2D getBounds();
34

  
35
    public void drawInsideRectangle(
36
        Graphics2D g,
37
        Rectangle2D rect,
38
        boolean keepAspectRatio
39
    );
40

  
41
    public void setSource(URL url) throws IOException;
42
    public void setSource(File f) throws IOException;
43

  
44

  
45
    public URL getSource();
46

  
47
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.149/org.gvsig.tools.util/org.gvsig.tools.util.api/src/main/java/org/gvsig/svgsupport/SVGSupportManager.java
1
package org.gvsig.svgsupport;
2

  
3
import java.io.File;
4
import java.io.IOException;
5
import java.net.URL;
6

  
7
public interface SVGSupportManager {
8

  
9
    public SVGRenderer createRenderer();    
10
    public SVGRenderer createRenderer(URL source) throws IOException ;
11
    public SVGRenderer createRenderer(File source) throws IOException ;
12
    
13
    
14
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.149/org.gvsig.tools.util/org.gvsig.tools.util.api/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
1
org.gvsig.tools.util.ToolsUtilLibrary
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.149/org.gvsig.tools.util/org.gvsig.tools.util.api/pom.xml
1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2
  <modelVersion>4.0.0</modelVersion>
3
  <parent>
4
    <groupId>org.gvsig</groupId>
5
    <artifactId>org.gvsig.tools.util</artifactId>
6
    <version>3.0.149</version>
7
  </parent>
8
  <groupId>org.gvsig</groupId>
9
  <artifactId>org.gvsig.tools.util.api</artifactId>
10
  <name>org.gvsig.tools.util.api</name>
11
  <dependencies>
12
    <dependency>
13
      <groupId>org.gvsig</groupId>
14
      <artifactId>org.gvsig.tools.lib</artifactId>
15
      <scope>compile</scope>
16
    </dependency>
17
  </dependencies>
18
</project>
0 19

  
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.149/org.gvsig.tools.util/pom.xml
1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2
  <modelVersion>4.0.0</modelVersion>
3
  <parent>
4
    <groupId>org.gvsig</groupId>
5
    <artifactId>org.gvsig.tools</artifactId>
6
    <version>3.0.149</version>
7
  </parent>
8
  <artifactId>org.gvsig.tools.util</artifactId>
9
  <name>org.gvsig.tools.util</name>
10
  <packaging>pom</packaging>
11
  <modules>
12
    <module>org.gvsig.tools.util.api</module>
13
    <module>org.gvsig.tools.util.impl</module>
14
  </modules>
15
</project>
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.149/org.gvsig.tools.util/org.gvsig.tools.util.impl/pom.xml
1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2
  <modelVersion>4.0.0</modelVersion>
3
  <parent>
4
    <groupId>org.gvsig</groupId>
5
    <artifactId>org.gvsig.tools.util</artifactId>
6
    <version>3.0.149</version>
7
  </parent>
8
  <groupId>org.gvsig</groupId>
9
  <artifactId>org.gvsig.tools.util.impl</artifactId>
10
  <name>org.gvsig.tools.util.impl</name>
11
  <dependencies>
12
    <dependency>
13
      <groupId>org.apache.commons</groupId>
14
      <artifactId>commons-lang3</artifactId>
15
    </dependency>
16
    <dependency>
17
      <groupId>org.gvsig</groupId>
18
      <artifactId>org.gvsig.tools.lib</artifactId>
19
    </dependency>
20
    <dependency>
21
      <groupId>org.gvsig</groupId>
22
      <artifactId>org.gvsig.tools.util.api</artifactId>
23
      <scope>compile</scope>
24
    </dependency>
25
    <dependency>
26
      <groupId>com.github.fracpete</groupId>
27
      <artifactId>vfsjfilechooser2</artifactId>
28
      <scope>compile</scope>
29
    </dependency>
30
  </dependencies>
31
</project>
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.149/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/desktopopen/DefaultDesktopOpen.java
1
package org.gvsig.desktopopen;
2

  
3
import java.awt.Desktop;
4
import java.io.File;
5
import java.io.IOException;
6
import java.net.URI;
7
import java.util.ArrayList;
8
import java.util.List;
9
import org.slf4j.Logger;
10
import org.slf4j.LoggerFactory;
11

  
12
/*
13
 * Based on portions of code of MightyPork, http://www.ondrovo.com/
14
 * extracted from :
15
 * http://stackoverflow.com/questions/18004150/desktop-api-is-not-supported-on-the-current-platform
16
 */
17
public class DefaultDesktopOpen implements DesktopOpen {
18

  
19
    private static Logger logger = LoggerFactory.getLogger(DefaultDesktopOpen.class);
20

  
21
    public enum EnumOS {
22

  
23
        linux, macos, solaris, unknown, windows;
24

  
25
        public boolean isLinux() {
26

  
27
            return this == linux || this == solaris;
28
        }
29

  
30
        public boolean isMac() {
31

  
32
            return this == macos;
33
        }
34

  
35
        public boolean isWindows() {
36

  
37
            return this == windows;
38
        }
39
    }
40

  
41
    @Override
42
    public boolean browse(URI uri) {
43

  
44
        if ( browseDESKTOP(uri) ) {
45
            return true;
46
        }
47

  
48
        return openSystemSpecific(uri.toString());
49
    }
50

  
51
    @Override
52
    public boolean open(File file) {
53

  
54
        if ( openDESKTOP(file) ) {
55
            return true;
56
        }
57

  
58
        return openSystemSpecific(file.getPath());
59
    }
60

  
61
    @Override
62
    public boolean edit(File file) {
63

  
64
        if ( editDESKTOP(file) ) {
65
            return true;
66
        }
67

  
68
        return openSystemSpecific(file.getPath());
69
    }
70

  
71
    private boolean openSystemSpecific(String what) {
72

  
73
        EnumOS os = getOs();
74

  
75
        if (os.isLinux()) {
76
//            if (runCommand("gnome-open", "%s", what)) {
77
//                return true;
78
//            }
79
//            if (runCommand("kde-open", "%s", what)) {
80
//                return true;
81
//            }
82
            if (runCommand("xdg-open", "%s", what)) {
83
                return true;
84
            }
85
        }
86

  
87
        if ( os.isMac() ) {
88
            if ( runCommand("open", "%s", what) ) {
89
                return true;
90
            }
91
        }
92

  
93
        if ( os.isWindows() ) {
94
            if ( runCommand("explorer", "%s", what) ) {
95
                return true;
96
            }
97
        }
98

  
99
        return false;
100
    }
101

  
102
    private boolean browseDESKTOP(URI uri) {
103

  
104
        logger.info("Trying to use Desktop.getDesktop().browse() with " + uri.toString());
105
        try {
106
            if ( !Desktop.isDesktopSupported() ) {
107
                logger.warn("Platform is not supported.");
108
                return false;
109
            }
110

  
111
            if ( !Desktop.getDesktop().isSupported(Desktop.Action.BROWSE) ) {
112
                logger.warn("BROWSE is not supported.");
113
                return false;
114
            }
115

  
116
            Desktop.getDesktop().browse(uri);
117

  
118
            return true;
119
        } catch (Throwable t) {
120
            if( logger.isDebugEnabled() ) {
121
                logger.warn("Error using desktop browse.", t);
122
            } else {
123
                logger.warn("Error using Desktop.getDesktop().browse(). "+ t.toString());
124
            }
125
            return false;
126
        }
127
    }
128

  
129
    private boolean openDESKTOP(File file) {
130

  
131
        logger.info("Trying to use Desktop.getDesktop().open() with " + file.toString());
132
        try {
133
            if ( !Desktop.isDesktopSupported() ) {
134
                logger.warn("Platform is not supported.");
135
                return false;
136
            }
137

  
138
            if ( !Desktop.getDesktop().isSupported(Desktop.Action.OPEN) ) {
139
                logger.warn("OPEN is not supported.");
140
                return false;
141
            }
142

  
143
            Desktop.getDesktop().open(file);
144

  
145
            return true;
146
        } catch (Throwable t) {
147
            if( logger.isDebugEnabled() ) {
148
                logger.warn("Error using desktop open.", t);
149
            } else {
150
                logger.warn("Error using Desktop.getDesktop().open(). "+ t.toString());
151
            }
152
            return false;
153
        }
154
    }
155

  
156
    private boolean editDESKTOP(File file) {
157

  
158
        logger.info("Trying to use Desktop.getDesktop().edit() with " + file);
159
        try {
160
            if ( !Desktop.isDesktopSupported() ) {
161
                logger.warn("Platform is not supported.");
162
                return false;
163
            }
164

  
165
            if ( !Desktop.getDesktop().isSupported(Desktop.Action.EDIT) ) {
166
                logger.warn("EDIT is not supported.");
167
                return false;
168
            }
169

  
170
            Desktop.getDesktop().edit(file);
171

  
172
            return true;
173
        } catch (Throwable t) {
174
            if( logger.isDebugEnabled() ) {
175
                logger.warn("Error using desktop edit.", t);
176
            } else {
177
                logger.warn("Error using Desktop.getDesktop().edit(). "+ t.toString());
178
            }
179
            return false;
180
        }
181
    }
182

  
183
    private boolean runCommand(String command, String args, String file) {
184

  
185
        logger.info("Trying to exec:\n   cmd = " + command + "\n   args = " + args + "\n   %s = " + file);
186

  
187
        String[] parts = prepareCommand(command, args, file);
188

  
189
        try {
190
            Process p = Runtime.getRuntime().exec(parts);
191
            if ( p == null ) {
192
                return false;
193
            }
194

  
195
            try {
196
                int retval = p.exitValue();
197
                if ( retval == 0 ) {
198
                    logger.warn("Process ended immediately.");
199
                    return false;
200
                } else {
201
                    logger.warn("Process crashed.");
202
                    return false;
203
                }
204
            } catch (IllegalThreadStateException itse) {
205
                logger.warn("Process is running.");
206
                return true;
207
            }
208
        } catch (IOException e) {
209
            if( logger.isDebugEnabled() ) {
210
                logger.warn("Error running command.", e);
211
            } else {
212
                logger.warn("Error running command. "+ e.toString());
213
            }
214
            return false;
215
        }
216
    }
217

  
218
    private String[] prepareCommand(String command, String args, String file) {
219

  
220
        List<String> parts = new ArrayList<>();
221
        parts.add(command);
222

  
223
        if ( args != null ) {
224
            for ( String s : args.split(" ") ) {
225
                s = String.format(s, file); // put in the filename thing
226

  
227
                parts.add(s.trim());
228
            }
229
        }
230

  
231
        return parts.toArray(new String[parts.size()]);
232
    }
233

  
234
    public EnumOS getOs() {
235

  
236
        String s = System.getProperty("os.name").toLowerCase();
237

  
238
        if ( s.contains("win") ) {
239
            return EnumOS.windows;
240
        }
241

  
242
        if ( s.contains("mac") ) {
243
            return EnumOS.macos;
244
        }
245

  
246
        if ( s.contains("solaris") ) {
247
            return EnumOS.solaris;
248
        }
249

  
250
        if ( s.contains("sunos") ) {
251
            return EnumOS.solaris;
252
        }
253

  
254
        if ( s.contains("linux") ) {
255
            return EnumOS.linux;
256
        }
257

  
258
        if ( s.contains("unix") ) {
259
            return EnumOS.linux;
260
        } else {
261
            return EnumOS.unknown;
262
        }
263
    }
264
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.149/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/svgsupport/DumbSVGRenderer.java
1

  
2
package org.gvsig.svgsupport;
3

  
4
import java.awt.Graphics2D;
5
import java.awt.geom.Rectangle2D;
6
import java.io.File;
7
import java.io.IOException;
8
import java.net.URISyntaxException;
9
import java.net.URL;
10

  
11

  
12
public class DumbSVGRenderer implements SVGRenderer {
13

  
14
    private URL source;
15

  
16
    @Override
17
    public void drawInsideRectangle(Graphics2D g, Rectangle2D rect, boolean keepAspectRatio) {
18

  
19
    }
20

  
21
    @Override
22
    public Rectangle2D getBounds() {
23
        return new Rectangle2D.Float(0, 0, 1, 1);
24
    }
25

  
26
    @Override
27
    public URL getSource() {
28
        return source;
29
    }
30

  
31
    @Override
32
    public void setSource(URL url) throws IOException {
33
        this.source = url;
34
    }
35

  
36
    @Override
37
    public void setSource(File f) throws IOException {
38
        try {
39
            this.source = source.toURI().toURL();
40
        } catch (URISyntaxException ex) {
41

  
42
        }
43
    }
44
    
45
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.149/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/svgsupport/DumbSVGSupportManager.java
1

  
2
package org.gvsig.svgsupport;
3

  
4
import java.io.File;
5
import java.io.IOException;
6
import java.net.URL;
7

  
8

  
9
public class DumbSVGSupportManager implements SVGSupportManager {
10

  
11
    @Override
12
    public SVGRenderer createRenderer() {
13
        return new DumbSVGRenderer();
14
    }
15

  
16
    @Override
17
    public SVGRenderer createRenderer(URL source) throws IOException {
18
        SVGRenderer renderer = new DumbSVGRenderer();
19
        renderer.setSource(source);
20
        return renderer;
21
    }
22

  
23
    @Override
24
    public SVGRenderer createRenderer(File source) throws IOException {
25
        SVGRenderer renderer = new DumbSVGRenderer();
26
        renderer.setSource(source);
27
        return renderer;
28
    }
29
    
30
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.149/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/tools/util/impl/BaseInformationBuilder.java
1
package org.gvsig.tools.util.impl;
2

  
3
import java.util.ArrayList;
4
import java.util.List;
5

  
6
import org.apache.commons.lang3.StringEscapeUtils;
7
import org.apache.commons.lang3.StringUtils;
8

  
9
import org.gvsig.tools.ToolsLocator;
10
import org.gvsig.tools.util.InformationBuilder;
11

  
12

  
13
public class BaseInformationBuilder implements InformationBuilder {
14

  
15
    private String backgroundColor = "\"#FFFFFF\"";
16
    private String backgroundColorTitle = "\"#FBFFE1\""; // light yellow
17
    private String backgroundColorPropertyLabel = "\"#D6D6D6\""; // Gris
18
    private String backgroundColorPropertyValue1 = "\"#FEEDD6\""; // light salmon
19
    private String backgroundColorPropertyValue2 = "\"#EAEAEA\""; // light grey
20

  
21
    protected int propertyCount = 0;
22
    protected final List<Element> elements;
23

  
24
    protected class BaseTitleElement implements TitleElement {
25

  
26
        protected String label;
27

  
28
        @Override
29
        public TitleElement value(String format, Object... args) {
30
            if (args == null) {
31
                this.label = format;
32
            } else {
33
                this.label = String.format(format, args);
34
            }
35
            return this;
36
        }
37
        
38
        @Override
39
        public TitleElement label(String label) {
40
            this.label = StringEscapeUtils.escapeHtml3(label);
41
            return this;
42
        }
43

  
44
        @Override
45
        public TitleElement labelkey(String labelkey) {
46
            return label(ToolsLocator.getI18nManager().getTranslation(labelkey));
47
        }
48

  
49
        @Override
50
        public String build() {
51
            propertyCount = 0;
52
            return "<tr valign=\"middle\" >"
53
                    + "<td bgcolor=" + backgroundColorTitle + " align=\"center\" colspan=\"2\"><font face=\"Arial\" size=\"3\"><b> " + this.label + "</b></font></td>"
54
                    + "</tr>";
55
        }
56
    }
57

  
58
    protected class BaseRawElement implements RawElement {
59

  
60
        protected String value;
61

  
62
        @Override
63
        public RawElement value(String format, Object... args) {
64
            if (args == null) {
65
                this.value = format;
66
            } else {
67
                this.value = String.format(format, args);
68
            }
69
            return this;
70
        }
71

  
72
        @Override
73
        public String build() {
74
            String color = ((propertyCount++ % 2) == 0) ? backgroundColorPropertyValue1 : backgroundColorPropertyValue2;
75
            String content = "<tr valign=\"top\">\n";
76
            content += "<td bgcolor=" + color + "align=\"left\" colspan=\"2\"><font face=\"Arial\" size=\"3\"><div>" + value.replace("\\n",  "<br>\n") + "</div></font></td>\n";
77
            content += "</tr>\n";
78
            return content;
79
        }
80
    }
81

  
82
    protected class BaseTextElement implements TextElement {
83

  
84
        protected String value;
85

  
86
        @Override
87
        public TextElement value(String format, Object... args) {
88
            if (args == null) {
89
                this.value = StringEscapeUtils.escapeHtml3(format);
90
            } else {
91
                this.value = StringEscapeUtils.escapeHtml3(String.format(format, args));
92
            }
93
            return this;
94
        }
95

  
96
        @Override
97
        public String build() {
98
            String color = ((propertyCount++ % 2) == 0) ? backgroundColorPropertyValue1 : backgroundColorPropertyValue2;
99
            String content = "<tr valign=\"top\">\n";
100
            content += "<td bgcolor=" + color + "align=\"left\" colspan=\"2\"><font face=\"Arial\" size=\"3\">" + value.replace("\n",  "<br>\n") + "</font></td>\n";
101
            content += "</tr>\n";
102
            return content;
103
        }
104
    }
105

  
106
    protected class BasePropertyElement implements PropertyElement {
107

  
108
        protected String label;
109
        protected boolean monospace = false;
110
        protected String value;
111

  
112
        @Override
113
        public PropertyElement value(String format, Object... args) {
114
            if (args == null) {
115
                this.value = StringEscapeUtils.escapeHtml3(format);
116
            } else {
117
                this.value = StringEscapeUtils.escapeHtml3(String.format(format, args));
118
            }
119
            return this;
120
        }
121

  
122
        @Override
123
        public PropertyElement label(String label) {
124
            this.label = StringEscapeUtils.escapeHtml3(label);
125
            return this;
126
        }
127

  
128
        @Override
129
        public PropertyElement labelkey(String labelkey) {
130
            return label(ToolsLocator.getI18nManager().getTranslation(labelkey));
131
        }
132

  
133
        @Override
134
        public PropertyElement monospace() {
135
            this.monospace = true;
136
            return this;
137
        }
138

  
139
        @Override
140
        public String build() {
141
            String color = ((propertyCount++ % 2) == 0) ? backgroundColorPropertyValue1 : backgroundColorPropertyValue2;
142
            String content = "<tr valign=\"top\">\n";
143
            if (!StringUtils.isEmpty(label)) {
144
                content += "<td nowrap bgcolor=" + backgroundColorPropertyLabel + "align=\"right\" width=\"140\"><font face=\"Arial\" size=\"3\">" + label + ":&nbsp;</font></td>\n";
145
            }
146
            if( this.monospace ) {
147
                content += "<td bgcolor=" + color + "align=\"left\"><font face=\"Monospaced\" size=\"3\">" + value.replace("\\n",  "<br>\n") + "</font></td>";
148
            } else {
149
                content += "<td bgcolor=" + color + "align=\"left\"><font face=\"Arial\" size=\"3\">" + value.replace("\\n",  "<br>\n") + "</font></td>";
150
            }
151
            content += "</tr>\n";
152
            return content;
153
        }
154

  
155
    }
156

  
157
    public BaseInformationBuilder() {
158
        this.elements = new ArrayList<>();
159
    }
160

  
161
    @Override
162
    public InformationBuilder backgroundColor(String color) {
163
        this.backgroundColor = color;
164
        return this;
165
    }
166

  
167
    @Override
168
    public InformationBuilder backgroundColorTitle(String color) {
169
        this.backgroundColorTitle = color;
170
        return this;
171
    }
172

  
173
    @Override
174
    public InformationBuilder backgroundColorPropertyLabel(String color) {
175
        this.backgroundColorPropertyLabel = color;
176
        return this;
177
    }
178

  
179
    @Override
180
    public InformationBuilder backgroundColorPropertyValue1(String color) {
181
        this.backgroundColorPropertyValue1 = color;
182
        return this;
183
    }
184

  
185
    @Override
186
    public InformationBuilder backgroundColorPropertyValue2(String color) {
187
        this.backgroundColorPropertyValue2 = color;
188
        return this;
189
    }
190

  
191
    @Override
192
    public TitleElement title() {
193
        TitleElement element = new BaseTitleElement();
194
        this.elements.add(element);
195
        return element;
196
    }
197

  
198
    @Override
199
    public PropertyElement property() {
200
        PropertyElement element = new BasePropertyElement();
201
        this.elements.add(element);
202
        return element;
203
    }
204

  
205
    @Override
206
    public TextElement text() {
207
        TextElement element = new BaseTextElement();
208
        this.elements.add(element);
209
        return element;
210
    }
211

  
212
    @Override
213
    public RawElement raw() {
214
        RawElement element = new BaseRawElement();
215
        this.elements.add(element);
216
        return element;
217
    }
218

  
219
    @Override
220
    public String build() {
221
        StringBuilder html = new StringBuilder();
222
        html.append("<html>\n");
223
        html.append("<body bgcolor=").append(backgroundColor).append(" topmargin=\"0\" marginheight=\"0\">\n");
224
        html.append("<table cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">");
225
        boolean first = true;
226
        for (Element element : elements) {
227
            if( element instanceof TitleElement ) {
228
                if( first ) {
229
                    first = false;
230
                } else {
231
                    html.append("<tr>\n<td><br></td>\n<td></td></tr>\n");
232
                }
233
            }
234
            html.append(element.build());
235
        }
236
        html.append("</table>");
237
        html.append("</body>");
238
        html.append("</html>");
239
        return html.toString();
240
    }
241

  
242
    @Override
243
    public String toString() {
244
        return this.build();
245
    }
246
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.149/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/tools/util/impl/DefaultToolsUtilManager.java
1

  
2
package org.gvsig.tools.util.impl;
3

  
4
import org.gvsig.desktopopen.DefaultDesktopOpen;
5
import org.gvsig.desktopopen.DesktopOpen;
6
import org.gvsig.tools.util.InformationBuilder;
7
import org.gvsig.tools.util.ToolsUtilManager;
8

  
9

  
10
/**
11
 * @author fdiaz
12
 *
13
 */
14
public class DefaultToolsUtilManager implements ToolsUtilManager {
15

  
16
    @Override
17
    public InformationBuilder createInformationBuilder() {
18
        return new BaseInformationBuilder();
19
    }
20

  
21
    @Override
22
    public DesktopOpen createDesktopOpen() {
23
        return new DefaultDesktopOpen();
24
    }
25
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.149/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/tools/util/impl/ToolsUtilLibraryImpl.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or modify it under
7
 * the terms of the GNU General Public License as published by the Free Software
8
 * Foundation; either version 2 of the License, or (at your option) any later
9
 * version.
10
 *
11
 * This program is distributed in the hope that it will be useful, but WITHOUT
12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
14
 * details.
15
 *
16
 * You should have received a copy of the GNU General Public License along with
17
 * this program; if not, write to the Free Software Foundation, Inc., 51
18
 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us at info AT
21
 * gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.tools.util.impl;
24

  
25
import org.gvsig.filedialogchooser.impl.DefaultFileDialogChooserManager;
26
import org.gvsig.svgsupport.DumbSVGSupportManager;
27
import org.gvsig.tools.library.AbstractLibrary;
28
import org.gvsig.tools.library.Library;
29
import org.gvsig.tools.library.LibraryException;
30
import org.gvsig.tools.util.ToolsUtilLibrary;
31
import org.gvsig.tools.util.ToolsUtilLocator;
32

  
33
/**
34
 * {@link Library} for the default tools util implementation.
35
 *
36
 * @author gvSIG team
37
 */
38
public class ToolsUtilLibraryImpl extends AbstractLibrary {
39

  
40
    @Override
41
    public void doRegistration() {
42
        super.doRegistration();
43
        registerAsImplementationOf(ToolsUtilLibrary.class);
44
    }
45

  
46
    @Override
47
    protected void doInitialize() throws LibraryException {
48
        ToolsUtilLocator.registerDefaultToolsUtilManager(DefaultToolsUtilManager.class);
49
        ToolsUtilLocator.registerDefaultFileDialogChooserManager(DefaultFileDialogChooserManager.class);
50
        ToolsUtilLocator.registerDefaultSVGSupportManager(DumbSVGSupportManager.class);
51
    }
52

  
53
    @Override
54
    protected void doPostInitialize() throws LibraryException {
55

  
56
    }
57

  
58
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.149/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/filedialogchooser/impl/VFSJFileChooserBased.java
1
/*
2
 * To change this license header, choose License Headers in Project Properties.
3
 * To change this template file, choose Tools | Templates
4
 * and open the template in the editor.
5
 */
6
package org.gvsig.filedialogchooser.impl;
7

  
8
import com.googlecode.vfsjfilechooser2.VFSJFileChooser;
9
import com.googlecode.vfsjfilechooser2.filechooser.AbstractVFSFileFilter;
10
import java.awt.Component;
11
import java.io.File;
12
import javax.swing.filechooser.FileFilter;
13
import org.apache.commons.vfs2.FileObject;
14
import org.apache.commons.vfs2.provider.local.LocalFile;
15
import org.gvsig.filedialogchooser.FileDialogChooser;
16
import org.gvsig.filedialogchooser.FileDialogChooserManager;
17
import org.gvsig.tools.util.ToolsUtilLocator;
18

  
19

  
20
public class VFSJFileChooserBased implements FileDialogChooser {
21

  
22
    private static class FileFilterAdapter extends AbstractVFSFileFilter {
23

  
24
        private final FileFilter filter;
25

  
26
        FileFilterAdapter(FileFilter filter) {
27
            this.filter = filter;
28
        }
29

  
30
        @Override
31
        public boolean accept(FileObject f) {
32
            if( f instanceof LocalFile ) {
33
                return this.filter.accept( new File(f.getName().getPath()));
34
            }
35
            return false;
36
        }
37

  
38
        @Override
39
        public String getDescription() {
40
            return this.filter.getDescription();
41
        }
42

  
43
        public FileFilter getFilter() {
44
            return this.filter;
45
        }
46
    }
47
    
48
    private final VFSJFileChooser jfc;
49
    private final String fileChooserID;
50

  
51
    public VFSJFileChooserBased(String fileChooserID) {
52
        super();
53
        this.jfc = new VFSJFileChooser();
54
        this.fileChooserID = fileChooserID;
55
    }
56
    
57
    @Override
58
    public void setCurrentDirectory(File dir) {
59
        if( dir == null ) {
60
            dir = new File(System.getProperty("user.home"));
61
        }
62
        this.jfc.setCurrentDirectory(dir);
63
    }
64

  
65
    @Override
66
    public File getCurrentDirectory() {
67
        return this.jfc.getCurrentDirectory();
68
    }
69

  
70
    @Override
71
    public void setDialogTitle(String dialogTitle) {
72
        this.jfc.setDialogTitle(dialogTitle);
73
    }
74

  
75
    @Override
76
    public void setDialogType(int dialogType) {
77
        switch(dialogType) {
78
        default:
79
        case OPEN_DIALOG:
80
            this.jfc.setDialogType(VFSJFileChooser.DIALOG_TYPE.OPEN);
81
            break;
82
        case SAVE_DIALOG:
83
            this.jfc.setDialogType(VFSJFileChooser.DIALOG_TYPE.SAVE);
84
            break;
85
        }
86
    }
87

  
88
    @Override
89
    public void setDragEnabled(boolean b) {
90
        this.jfc.setDragEnabled(b);
91
    }
92

  
93
    @Override
94
    public void setFileFilter(FileFilter filter) {
95
        if( filter == null ) {
96
            this.jfc.setFileFilter(null);
97
        } else {
98
            this.jfc.setFileFilter(new FileFilterAdapter(filter));
99
        }
100
    }
101

  
102
    @Override
103
    public FileFilter getFileFilter() {
104
        FileFilterAdapter f = (FileFilterAdapter) this.jfc.getFileFilter();
105
        return f.getFilter();
106
    }
107

  
108
    @Override
109
    public void setFileSelectionMode(int mode) {
110
        switch(mode) {
111
        case FILES_ONLY:
112
            this.jfc.setFileSelectionMode(VFSJFileChooser.SELECTION_MODE.FILES_ONLY);
113
            break;
114
        case DIRECTORIES_ONLY:
115
            this.jfc.setFileSelectionMode(VFSJFileChooser.SELECTION_MODE.DIRECTORIES_ONLY);
116
            break;
117
        default:
118
        case FILES_AND_DIRECTORIES:
119
            this.jfc.setFileSelectionMode(VFSJFileChooser.SELECTION_MODE.FILES_AND_DIRECTORIES);
120
            break;
121
        }
122
    }
123

  
124
    @Override
125
    public File getSelectedFile() {
126
        return this.jfc.getSelectedFile();
127
    }
128

  
129
    @Override
130
    public File[] getSelectedFiles() {
131
        return this.jfc.getSelectedFiles();
132
    }
133

  
134
    @Override
135
    public void setFileHidingEnabled(boolean b) {
136
        this.jfc.setFileHidingEnabled(b);
137
    }
138

  
139
    @Override
140
    public void setMultiSelectionEnabled(boolean b) {
141
        this.jfc.setMultiSelectionEnabled(b);
142
    }
143

  
144
    @Override
145
    public boolean isMultiSelectionEnabled() {
146
        return this.jfc.isMultiSelectionEnabled();
147
    }
148

  
149
    @Override
150
    public int showOpenDialog(Component parent) {
151
        FileDialogChooserManager manager = ToolsUtilLocator.getFileDialogChooserManager();
152
        File f = manager.getLastPath(fileChooserID, this.getCurrentDirectory());
153
        this.jfc.setCurrentDirectory(f);
154
        VFSJFileChooser.RETURN_TYPE r = this.jfc.showOpenDialog(parent);
155
        if( r == VFSJFileChooser.RETURN_TYPE.CANCEL ) {
156
            return CANCEL_OPTION;            
157
        }
158
        if( r == VFSJFileChooser.RETURN_TYPE.APPROVE ) {
159
            manager.setLastPath(fileChooserID, this.getCurrentDirectory());
160
            return APPROVE_OPTION;            
161
        }
162
        if( r == VFSJFileChooser.RETURN_TYPE.ERROR ) {
163
            return ERROR_OPTION;            
164
        }
165
        return ERROR_OPTION;            
166
    }
167

  
168
    @Override
169
    public int showSaveDialog(Component parent) {
170
        FileDialogChooserManager manager = ToolsUtilLocator.getFileDialogChooserManager();
171
        File f = manager.getLastPath(fileChooserID, this.getCurrentDirectory());
172
        this.jfc.setCurrentDirectory(f);
173
        VFSJFileChooser.RETURN_TYPE r = this.jfc.showSaveDialog(parent);
174
        if( r == VFSJFileChooser.RETURN_TYPE.CANCEL ) {
175
            return CANCEL_OPTION;            
176
        }
177
        if( r == VFSJFileChooser.RETURN_TYPE.APPROVE ) {
178
            manager.setLastPath(fileChooserID, this.getCurrentDirectory());
179
            return APPROVE_OPTION;            
180
        }
181
        if( r == VFSJFileChooser.RETURN_TYPE.ERROR ) {
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff