Revision 1608

View differences:

org.gvsig.tools/library/tags/org.gvsig.tools-3.0.130/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.130/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.130/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.130/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.130/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.130/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.130/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.130/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.130/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.130/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.130/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.130</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.130/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.130</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.130/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
        this.jfc.setCurrentDirectory(dir);
60
    }
61

  
62
    @Override
63
    public File getCurrentDirectory() {
64
        return this.jfc.getCurrentDirectory();
65
    }
66

  
67
    @Override
68
    public void setDialogTitle(String dialogTitle) {
69
        this.jfc.setDialogTitle(dialogTitle);
70
    }
71

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

  
85
    @Override
86
    public void setDragEnabled(boolean b) {
87
        this.jfc.setDragEnabled(b);
88
    }
89

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

  
99
    @Override
100
    public FileFilter getFileFilter() {
101
        FileFilterAdapter f = (FileFilterAdapter) this.jfc.getFileFilter();
102
        return f.getFilter();
103
    }
104

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

  
121
    @Override
122
    public File getSelectedFile() {
123
        return this.jfc.getSelectedFile();
124
    }
125

  
126
    @Override
127
    public File[] getSelectedFiles() {
128
        return this.jfc.getSelectedFiles();
129
    }
130

  
131
    @Override
132
    public void setFileHidingEnabled(boolean b) {
133
        this.jfc.setFileHidingEnabled(b);
134
    }
135

  
136
    @Override
137
    public void setMultiSelectionEnabled(boolean b) {
138
        this.jfc.setMultiSelectionEnabled(b);
139
    }
140

  
141
    @Override
142
    public boolean isMultiSelectionEnabled() {
143
        return this.jfc.isMultiSelectionEnabled();
144
    }
145

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

  
165
    @Override
166
    public int showSaveDialog(Component parent) {
167
        FileDialogChooserManager manager = ToolsUtilLocator.getFileDialogChooserManager();
168
        File f = manager.getLastPath(fileChooserID, this.getCurrentDirectory());
169
        this.jfc.setCurrentDirectory(f);
170
        VFSJFileChooser.RETURN_TYPE r = this.jfc.showSaveDialog(parent);
171
        if( r == VFSJFileChooser.RETURN_TYPE.CANCEL ) {
172
            return CANCEL_OPTION;            
173
        }
174
        if( r == VFSJFileChooser.RETURN_TYPE.APPROVE ) {
175
            manager.setLastPath(fileChooserID, this.getCurrentDirectory());
176
            return APPROVE_OPTION;            
177
        }
178
        if( r == VFSJFileChooser.RETURN_TYPE.ERROR ) {
179
            return ERROR_OPTION;            
180
        }
181
        return ERROR_OPTION;            
182
    }
183
    
184
    @Override
185
    public void setAcceptAllFileFilterUsed(boolean b) {
186
        this.jfc.setAcceptAllFileFilterUsed(b);
187
    }
188

  
189
    @Override
190
    public void addChoosableFileFilter(FileFilter next) {
191
        this.jfc.addChoosableFileFilter(new FileFilterAdapter(next));
192
    }
193

  
194
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.130/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/filedialogchooser/impl/JFileChooserBased.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 java.awt.Component;
9
import java.awt.HeadlessException;
10
import java.io.File;
11
import javax.swing.JFileChooser;
12
import org.gvsig.filedialogchooser.FileDialogChooser;
13
import org.gvsig.filedialogchooser.FileDialogChooserManager;
14
import org.gvsig.tools.util.ToolsUtilLocator;
15

  
16

  
17

  
18

  
19
public class JFileChooserBased extends JFileChooser implements FileDialogChooser {
20
    
21
    private static final long serialVersionUID = 2825200958209418322L;
22
    private final String fileChooserID;
23

  
24
    public JFileChooserBased(String fileChooserID) {
25
        super();
26
        this.fileChooserID = fileChooserID;
27
    }
28

  
29
    @Override
30
    public int showOpenDialog(Component parent) throws HeadlessException {
31
        FileDialogChooserManager manager = ToolsUtilLocator.getFileDialogChooserManager();
32
        File f = manager.getLastPath(fileChooserID, this.getCurrentDirectory());
33
        super.setCurrentDirectory(f);
34
        int r = super.showOpenDialog(parent);
35
        if( r == JFileChooser.APPROVE_OPTION ) {
36
            manager.setLastPath(fileChooserID, this.getCurrentDirectory());
37
        }
38
        return r;
39
    }
40

  
41
    @Override
42
    public int showSaveDialog(Component parent) throws HeadlessException {
43
        FileDialogChooserManager manager = ToolsUtilLocator.getFileDialogChooserManager();
44
        File f = manager.getLastPath(fileChooserID, this.getCurrentDirectory());
45
        super.setCurrentDirectory(f);        int r = super.showSaveDialog(parent);
46
        if( r == JFileChooser.APPROVE_OPTION ) {
47
            manager.setLastPath(fileChooserID, this.getCurrentDirectory());
48
        }
49
        return r;
50
    }
51
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.130/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/filedialogchooser/impl/DefaultFileDialogChooserManager.java
1

  
2
package org.gvsig.filedialogchooser.impl;
3

  
4
import java.io.File;
5
import java.util.HashMap;
6
import java.util.Map;
7
import javax.swing.filechooser.FileSystemView;
8
import org.gvsig.filedialogchooser.FileDialogChooser;
9
import org.gvsig.filedialogchooser.FileDialogChooserManager;
10

  
11

  
12

  
13
public class DefaultFileDialogChooserManager implements FileDialogChooserManager {
14

  
15
    private Map<String,File> lastPaths;
16
    private boolean useNativeFileChooser = true;
17
    
18
    public DefaultFileDialogChooserManager() {
19
        this.lastPaths = new HashMap<>();
20
    }
21
    
22
    @Override
23
    public void setUseNativeFileChooser(boolean b) {
24
        useNativeFileChooser = b;
25
    }
26
    
27
    @Override
28
    public boolean useNativeFileChooser() {
29
        return useNativeFileChooser;
30
    }
31
    
32
    @Override
33
    public FileDialogChooser create(String fileChooserID) {
34
        if( useNativeFileChooser ) {
35
          return new JFileChooserBased(fileChooserID);
36
        }
37
        return new VFSJFileChooserBased(fileChooserID);
38
    }
39

  
40
    @Override
41
    public FileDialogChooser create() {
42
        String fileChooserID = "DEFAULT_ID";
43
        if( useNativeFileChooser ) {
44
            return new JFileChooserBased(fileChooserID);
45
        }
46
        return new VFSJFileChooserBased(fileChooserID);
47
    }
48
    
49
    @Override
50
    public File getLastPath(String fileChooserID, File defaultDirectory) {
51
		File path = this.lastPaths.get(fileChooserID);
52

  
53
		if (path != null) {
54
			return path;
55
        }
56
		if (defaultDirectory != null) {
57
			return defaultDirectory;
58
        }
59
		return FileSystemView.getFileSystemView().getHomeDirectory();
60
    }
61
    
62
    @Override
63
    public void setLastPath(String fileChooserID, File path) {
64
        lastPaths.put(fileChooserID, path);
65
    }
66

  
67
    
68
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.130/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
            logger.warn("Error using desktop browse.", t);
121
            return false;
122
        }
123
    }
124

  
125
    private boolean openDESKTOP(File file) {
126

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

  
134
            if ( !Desktop.getDesktop().isSupported(Desktop.Action.OPEN) ) {
135
                logger.warn("OPEN is not supported.");
136
                return false;
137
            }
138

  
139
            Desktop.getDesktop().open(file);
140

  
141
            return true;
142
        } catch (Throwable t) {
143
            logger.warn("Error using desktop open.", t);
144
            return false;
145
        }
146
    }
147

  
148
    private boolean editDESKTOP(File file) {
149

  
150
        logger.info("Trying to use Desktop.getDesktop().edit() with " + file);
151
        try {
152
            if ( !Desktop.isDesktopSupported() ) {
153
                logger.warn("Platform is not supported.");
154
                return false;
155
            }
156

  
157
            if ( !Desktop.getDesktop().isSupported(Desktop.Action.EDIT) ) {
158
                logger.warn("EDIT is not supported.");
159
                return false;
160
            }
161

  
162
            Desktop.getDesktop().edit(file);
163

  
164
            return true;
165
        } catch (Throwable t) {
166
            logger.warn("Error using desktop edit.", t);
167
            return false;
168
        }
169
    }
170

  
171
    private boolean runCommand(String command, String args, String file) {
172

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

  
175
        String[] parts = prepareCommand(command, args, file);
176

  
177
        try {
178
            Process p = Runtime.getRuntime().exec(parts);
179
            if ( p == null ) {
180
                return false;
181
            }
182

  
183
            try {
184
                int retval = p.exitValue();
185
                if ( retval == 0 ) {
186
                    logger.warn("Process ended immediately.");
187
                    return false;
188
                } else {
189
                    logger.warn("Process crashed.");
190
                    return false;
191
                }
192
            } catch (IllegalThreadStateException itse) {
193
                logger.warn("Process is running.");
194
                return true;
195
            }
196
        } catch (IOException e) {
197
            logger.warn("Error running command.", e);
198
            return false;
199
        }
200
    }
201

  
202
    private String[] prepareCommand(String command, String args, String file) {
203

  
204
        List<String> parts = new ArrayList<>();
205
        parts.add(command);
206

  
207
        if ( args != null ) {
208
            for ( String s : args.split(" ") ) {
209
                s = String.format(s, file); // put in the filename thing
210

  
211
                parts.add(s.trim());
212
            }
213
        }
214

  
215
        return parts.toArray(new String[parts.size()]);
216
    }
217

  
218
    public EnumOS getOs() {
219

  
220
        String s = System.getProperty("os.name").toLowerCase();
221

  
222
        if ( s.contains("win") ) {
223
            return EnumOS.windows;
224
        }
225

  
226
        if ( s.contains("mac") ) {
227
            return EnumOS.macos;
228
        }
229

  
230
        if ( s.contains("solaris") ) {
231
            return EnumOS.solaris;
232
        }
233

  
234
        if ( s.contains("sunos") ) {
235
            return EnumOS.solaris;
236
        }
237

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

  
242
        if ( s.contains("unix") ) {
243
            return EnumOS.linux;
244
        } else {
245
            return EnumOS.unknown;
246
        }
247
    }
248
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.130/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.130/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.130/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.130/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) {
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff