Revision 43746

View differences:

tags/org.gvsig.desktop-2.0.216/org.gvsig.desktop.library/org.gvsig.about/pom.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2
<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">
3

  
4
	<modelVersion>4.0.0</modelVersion>
5
	<artifactId>org.gvsig.about</artifactId>
6
	<packaging>pom</packaging>
7
	<name>org.gvsig.about</name>
8
	<description>"About us..." dialog library</description>
9
    <parent>
10
        <groupId>org.gvsig</groupId>
11
        <artifactId>org.gvsig.desktop.library</artifactId>
12
        <version>2.0.216</version>
13
    </parent>
14

  
15
	<modules>
16
		<module>org.gvsig.about.api</module>
17
		<module>org.gvsig.about.impl</module>
18
	</modules>
19
</project>
tags/org.gvsig.desktop-2.0.216/org.gvsig.desktop.library/org.gvsig.about/org.gvsig.about.impl/src/main/java/org/gvsig/htmlBrowser/SimpleHtmlBrowserPanel.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.htmlBrowser;
23

  
24
import java.awt.BorderLayout;
25
import java.io.IOException;
26
import java.net.URL;
27

  
28
import javax.swing.JEditorPane;
29
import javax.swing.JScrollPane;
30
import javax.swing.event.HyperlinkEvent;
31
import javax.swing.event.HyperlinkListener;
32

  
33
import org.slf4j.Logger;
34
import org.slf4j.LoggerFactory;
35

  
36
/**
37
 * @author gvSIG Team
38
 * @version $Id$
39
 * 
40
 */
41
public class SimpleHtmlBrowserPanel extends HtmlBrowserPanel implements
42
    HyperlinkListener {
43

  
44
    private static final long serialVersionUID = 2222495134882233629L;
45
    private static final Logger LOG = LoggerFactory
46
        .getLogger(SimpleHtmlBrowserPanel.class);
47

  
48
    public JEditorPane htmlPane;
49
    public JScrollPane scroll;
50

  
51
    public SimpleHtmlBrowserPanel() {
52
        setLayout(new BorderLayout());
53

  
54
        this.htmlPane = new JEditorPane();
55
        this.htmlPane.setContentType("text/html");
56
        this.htmlPane.setEditable(false);
57

  
58
        this.scroll = new JScrollPane(htmlPane);
59
        // htmlPane.addHyperlinkListener(this);
60

  
61
        add(scroll, BorderLayout.CENTER);
62
    }
63

  
64
    @Override
65
    public void navigate(URL url) {
66
        try {
67
            this.htmlPane.setPage(url);
68
        } catch (IOException e) {
69
            this.htmlPane.setText("Error reading html content");
70
            LOG.error("Error reading html content from URL: " + url, e);
71
        }
72
    }
73

  
74
    @Override
75
    public void setText(String text) {
76
        this.htmlPane.setText(text);
77
        this.htmlPane.setCaretPosition(0);
78
    }
79

  
80
    public void hyperlinkUpdate(HyperlinkEvent event) {
81
        if (event.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
82
            try {
83
                htmlPane.setPage(event.getURL());
84
            } catch (IOException ioe) {
85
                this.htmlPane.setText("Error reading html content");
86
                LOG.error(
87
                    "Error reading html content from URL: " + event.getURL(),
88
                    ioe);
89
            }
90
        }
91
    }
92

  
93
    public JEditorPane getJEditorPane() {
94
        return htmlPane;
95
    }
96

  
97
}
tags/org.gvsig.desktop-2.0.216/org.gvsig.desktop.library/org.gvsig.about/org.gvsig.about.impl/src/main/java/org/gvsig/htmlBrowser/LoboHtmlBrowserPanel.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.htmlBrowser;
23

  
24
import java.net.URL;
25

  
26
//import org.lobobrowser.gui.FramePanel;
27

  
28
/**
29
 * @author gvSIG Team
30
 * @version $Id$
31
 * 
32
 */
33
public class LoboHtmlBrowserPanel extends HtmlBrowserPanel {
34

  
35
    /**
36
	 * 
37
	 */
38
    private static final long serialVersionUID = 2789434542951170259L;
39

  
40
    // FramePanel framePanel = null;
41

  
42
    public LoboHtmlBrowserPanel() {
43
        super();
44
    }
45

  
46
    @Override
47
    public void navigate(URL url) {
48
        // this.framePanel.navigate(url);
49
    }
50

  
51
    @Override
52
    public void setText(String text) {
53

  
54
    }
55

  
56
}
tags/org.gvsig.desktop-2.0.216/org.gvsig.desktop.library/org.gvsig.about/org.gvsig.about.impl/src/main/java/org/gvsig/htmlBrowser/HtmlBrowserPanel.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.htmlBrowser;
23

  
24
import java.net.URL;
25

  
26
import javax.swing.JPanel;
27

  
28
/**
29
 * @author gvSIG Team
30
 * @version $Id$
31
 * 
32
 */
33
public abstract class HtmlBrowserPanel extends JPanel {
34

  
35
    private static final long serialVersionUID = 8497218072224309746L;
36

  
37
    abstract public void navigate(URL url);
38

  
39
    abstract public void setText(String text);
40

  
41
}
tags/org.gvsig.desktop-2.0.216/org.gvsig.desktop.library/org.gvsig.about/org.gvsig.about.impl/src/main/java/org/gvsig/about/swing/JAboutPanel.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.about.swing;
23

  
24
import java.awt.BorderLayout;
25
import java.awt.Dimension;
26
import java.awt.event.ActionEvent;
27
import java.awt.event.ActionListener;
28

  
29
import javax.swing.BorderFactory;
30
import javax.swing.JPanel;
31

  
32
import org.gvsig.about.AboutParticipant;
33
import org.gvsig.about.AboutProject;
34
import org.gvsig.about.impl.DefaultAboutManager;
35

  
36
/**
37
 * @author gvSIG Team
38
 * @version $Id$
39
 * 
40
 */
41
public class JAboutPanel extends JPanel implements ActionListener {
42

  
43
    /**
44
	 * 
45
	 */
46
    private static final long serialVersionUID = 5605530722128487156L;
47
    protected DefaultAboutManager manager;
48
    protected JAboutBrowser browser;
49
    protected JContentPanel content;
50

  
51
    public JAboutPanel(DefaultAboutManager manager) {
52
        this.manager = manager;
53

  
54
        setLayout(new BorderLayout());
55

  
56
        browser = new JAboutBrowser(manager, manager.getProject());
57
        browser.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
58
        browser.addDefaultActionListener(this);
59
        add(browser, BorderLayout.WEST);
60

  
61
        content = new JContentPanel(manager, manager.getProject());
62
        content.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
63
        add(content, BorderLayout.CENTER);
64
        setPreferredSize(new Dimension(650, 400));
65
    }
66

  
67
    public void actionPerformed(ActionEvent arg0) {
68

  
69
        if (arg0.getSource() instanceof JAboutBrowser) {
70
            JAboutBrowser browser = (JAboutBrowser) arg0.getSource();
71

  
72
            if (browser.getSelectedNode() instanceof AboutProject) {
73
                AboutProject project = (AboutProject) browser.getSelectedNode();
74
                content.setContent(project);
75
            } else
76
                if (browser.getSelectedNode() instanceof AboutParticipant) {
77
                    AboutParticipant participant =
78
                        (AboutParticipant) browser.getSelectedNode();
79
                    content.setContent(participant);
80
                }
81

  
82
        }
83
    }
84

  
85
}
tags/org.gvsig.desktop-2.0.216/org.gvsig.desktop.library/org.gvsig.about/org.gvsig.about.impl/src/main/java/org/gvsig/about/swing/JContentPanel.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.about.swing;
23

  
24
import java.awt.BorderLayout;
25

  
26
import javax.swing.JPanel;
27

  
28
import org.gvsig.about.AboutManager;
29
import org.gvsig.about.AboutParticipant;
30
import org.gvsig.about.AboutProject;
31
import org.gvsig.htmlBrowser.HtmlBrowserPanel;
32
import org.gvsig.htmlBrowser.SimpleHtmlBrowserPanel;
33

  
34
/**
35
 * @author gvSIG Team
36
 * @version $Id$
37
 * 
38
 */
39
public class JContentPanel extends JPanel /* implements HyperlinkListener */{
40

  
41
    /**
42
	 * 
43
	 */
44
    private static final long serialVersionUID = 5605530722128487156L;
45
    protected AboutManager manager;
46
    HtmlBrowserPanel htmlPane;
47

  
48
    public JContentPanel(AboutManager manager, AboutProject project) {
49
        this.manager = manager;
50
        this.htmlPane = null;
51

  
52
        setLayout(new BorderLayout());
53
        this.htmlPane = new SimpleHtmlBrowserPanel();
54
        add(this.htmlPane, BorderLayout.CENTER);
55

  
56
        this.setContent(manager.getProject());
57
        setVisible(true);
58
    }
59

  
60
    public void setContent(AboutParticipant participant) {
61
        htmlPane.setText(participant.getInformationPage());
62
    }
63

  
64
    public void setContent(AboutProject project) {
65
        htmlPane.setText(project.getInformationPage());
66
    }
67

  
68
}
tags/org.gvsig.desktop-2.0.216/org.gvsig.desktop.library/org.gvsig.about/org.gvsig.about.impl/src/main/java/org/gvsig/about/swing/JAboutBrowser.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.about.swing;
23

  
24
import java.awt.Color;
25
import java.awt.Component;
26
import java.awt.Dimension;
27
import java.awt.Graphics;
28
import java.awt.GridLayout;
29
import java.awt.event.ActionEvent;
30
import java.awt.event.ActionListener;
31
import java.awt.event.MouseEvent;
32
import java.awt.event.MouseListener;
33
import java.util.List;
34

  
35
import javax.swing.Icon;
36
import javax.swing.ImageIcon;
37
import javax.swing.JLabel;
38
import javax.swing.JPanel;
39
import javax.swing.JScrollPane;
40
import javax.swing.JTree;
41
import javax.swing.UIManager;
42
import javax.swing.tree.DefaultMutableTreeNode;
43
import javax.swing.tree.DefaultTreeModel;
44
import javax.swing.tree.TreeCellRenderer;
45
import javax.swing.tree.TreePath;
46
import javax.swing.tree.TreeSelectionModel;
47

  
48
import org.gvsig.about.AboutManager;
49
import org.gvsig.about.AboutParticipant;
50
import org.gvsig.about.AboutProject;
51
import org.gvsig.about.impl.DefaultAboutManager;
52

  
53
/**
54
 * @author gvSIG Team
55
 * @version $Id$
56
 * 
57
 */
58
public class JAboutBrowser extends JPanel {
59

  
60
    public static final int DEFAULT_ACTION = 1;
61
    public static final int SELECTION_ACTION = 2;
62
    public static final int DROPDOWN_ACTION = 3;
63
    /**
64
	 * 
65
	 */
66
    private static final long serialVersionUID = 1L;
67

  
68
    protected DefaultAboutManager manager;
69
    protected DefaultMutableTreeNode rootNode;
70
    protected DefaultTreeModel treeModel;
71
    protected JTree tree;
72
    protected AboutProject root;
73
    protected ActionListener defaultActionlistener = null;
74
    protected ActionListener selectionActionlistener = null;
75
    protected ActionListener dropDownActionlistener = null;
76

  
77
    public static class BrowserActionEvent extends ActionEvent {
78

  
79
        /**
80
		 * 
81
		 */
82
        private static final long serialVersionUID = -1474410768278633364L;
83
        private Object participant;
84

  
85
        public BrowserActionEvent(Object source, int id, String command,
86
            Object participant) {
87
            super(source, id, command);
88
            this.participant = participant;
89
        }
90

  
91
        public Object getParticipant() {
92
            return this.participant;
93
        }
94
    }
95

  
96
    public JAboutBrowser(DefaultAboutManager manager, AboutProject root) {
97
        super(new GridLayout(1, 2));
98
        this.manager = manager;
99
        this.root = root;
100
        this.makeUI();
101
    }
102

  
103
    public AboutManager getManager() {
104
        return this.manager;
105
    }
106

  
107
    public void addDefaultActionListener(ActionListener actionlistener) {
108
        this.defaultActionlistener = actionlistener;
109
    }
110

  
111
    public void addSelectionActionListener(ActionListener actionlistener) {
112
        this.selectionActionlistener = actionlistener;
113
    }
114

  
115
    public void addDropDownActionListener(ActionListener actionlistener) {
116
        this.dropDownActionlistener = actionlistener;
117
    }
118

  
119
    private void makeUI() {
120
        // Creamos el nodo raíz
121

  
122
        ImageIcon icon =
123
            this.manager.getImageIcon(this.root.getIcon(), "gvSIG.png");
124
        rootNode =
125
            new DefaultMutableTreeNode(new NodeData(icon, icon, this.root));
126

  
127
        // Lo asignamos al modelo del árbol e iniciamos el árbol con ese
128
        // modelo
129
        treeModel = new DefaultTreeModel(rootNode);
130
        tree = new JTree(treeModel);
131

  
132
        // Cargamos la información inicial del árbol
133
        this.initializeTree();
134

  
135
        // Para asignar iconos especiales según el tipo de objeto
136
        TreeCellRenderer renderer = new IconCellRenderer();
137
        tree.setCellRenderer(renderer);
138

  
139
        // Para marcar que no son editables sus propiedades o nodos
140
        tree.setEditable(false);
141
        this.expandAll();
142

  
143
        // Determina que sólo se puede seleccionar una linea
144
        tree.getSelectionModel().setSelectionMode(
145
            TreeSelectionModel.SINGLE_TREE_SELECTION);
146

  
147
        tree.addMouseListener(new MouseListener() {
148

  
149
            public void mouseClicked(MouseEvent arg0) {
150
                if (arg0.getClickCount() == 1) {
151
                    JTree tree = (JTree) arg0.getSource();
152
                    if (!tree.isSelectionEmpty()) {
153
                        throwEventElementSelected(tree.getSelectionPath());
154
                    }
155

  
156
                }
157
            }
158

  
159
            public void mouseEntered(MouseEvent arg0) {
160
            }
161

  
162
            public void mouseExited(MouseEvent arg0) {
163
            }
164

  
165
            public void mousePressed(MouseEvent arg0) {
166
            }
167

  
168
            public void mouseReleased(MouseEvent arg0) {
169
            }
170
        });
171

  
172
        // Indica si el nodo raíz actúa como un nodo más o queda desplegado
173
        // de
174
        // manera fija
175
        tree.setShowsRootHandles(true);
176

  
177
        // Añadimos el Scroll
178
        JScrollPane scrollPane = new JScrollPane(tree);
179
        add(scrollPane);
180

  
181
        setPreferredSize(new Dimension(200, 300));
182

  
183
    }
184

  
185
    public Object getSelectedNode() {
186
        DefaultMutableTreeNode node;
187
        if (tree.getSelectionPath() != null) {
188
            node =
189
                (DefaultMutableTreeNode) tree.getSelectionPath()
190
                    .getLastPathComponent();
191
        } else {
192
            node = this.rootNode;
193
        }
194
        NodeData nodeData = (NodeData) node.getUserObject();
195
        if (nodeData.getParticipant() != null) {
196
            return nodeData.getParticipant();
197
        } else
198
            if (nodeData.getProject() != null) {
199
                return nodeData.getProject();
200
            }
201
        return null;
202
    }
203

  
204
    private void throwEventElementSelected(TreePath path) {
205
        DefaultMutableTreeNode node =
206
            (DefaultMutableTreeNode) path.getLastPathComponent();
207
        NodeData nodeData = (NodeData) node.getUserObject();
208
        if (nodeData.getParticipant() != null) {
209
            if (this.defaultActionlistener != null) {
210
                ActionEvent event =
211
                    new BrowserActionEvent(this, DEFAULT_ACTION, "default",
212
                        nodeData.getParticipant());
213
                this.defaultActionlistener.actionPerformed(event);
214
            }
215
        } else
216
            if (nodeData.getProject() != null) {
217
                if (this.defaultActionlistener != null) {
218
                    ActionEvent event =
219
                        new BrowserActionEvent(this, DEFAULT_ACTION, "default",
220
                            nodeData.getProject());
221
                    this.defaultActionlistener.actionPerformed(event);
222
                }
223
            }
224
    }
225

  
226
    /**
227
     * Función para la inicialización de los datos del árbol.
228
     **/
229
    @SuppressWarnings("rawtypes")
230
    private void initializeTree() {
231

  
232
        AboutParticipant ap = null;
233
        List participants;
234
        ImageIcon icon;
235
        NodeData data;
236

  
237
        NodeData sponsors =
238
            new NodeData(this.manager.getImageIcon("folder.png"),
239
                this.manager.getImageIcon("folder-drag-accept.png"), "Sponsors");
240
        DefaultMutableTreeNode sponsorsNode =
241
            this.addObject(this.rootNode, sponsors);
242
        participants = this.manager.getSponsors();
243
        for (int i = 0; i < participants.size(); i++) {
244
            ap = (AboutParticipant) participants.get(i);
245
            icon =
246
                (this.manager).getImageIcon(ap.getIcon(),
247
                    "applications-internet.png");
248
            data = new NodeData(icon, icon, ap);
249
            this.addObject(sponsorsNode, data);
250
        }
251

  
252
        NodeData developers =
253
            new NodeData(this.manager.getImageIcon("edit.png"),
254
                this.manager.getImageIcon("edit.png"), "Developers");
255
        DefaultMutableTreeNode developersNode =
256
            this.addObject(this.rootNode, developers);
257
        participants = this.manager.getDevelopers();
258
        for (int i = 0; i < participants.size(); i++) {
259
            ap = (AboutParticipant) participants.get(i);
260
            icon =
261
                this.manager.getImageIcon(ap.getIcon(),
262
                    "preferences-system.png");
263
            data = new NodeData(icon, icon, ap);
264
            this.addObject(developersNode, data);
265
        }
266

  
267
        NodeData translators =
268
            new NodeData(this.manager.getImageIcon("system-users.png"),
269
                this.manager.getImageIcon("system-users.png"), "Contributors");
270
        DefaultMutableTreeNode translatorsNode =
271
            this.addObject(this.rootNode, translators);
272
        participants = this.manager.getTranslators();
273

  
274
        for (int i = 0; i < participants.size(); i++) {
275
            ap = (AboutParticipant) participants.get(i);
276
            icon = this.manager.getImageIcon(ap.getIcon(), "people.png");
277
            data = new NodeData(icon, icon, ap);
278
            this.addObject(translatorsNode, data);
279
        }
280

  
281
    }
282

  
283
    public void expandAll() {
284
        int row = 0;
285
        while (row < this.tree.getRowCount()) {
286
            this.tree.expandRow(row);
287
            row++;
288
        }
289
    }
290

  
291
    /**
292
     * Función para añadir un hijo al nodo actual.
293
     **/
294
    // private DefaultMutableTreeNode addObject(Object child) {
295
    // DefaultMutableTreeNode parentNode = rootNode;
296
    // return addObject(parentNode, child, true);
297
    // }
298

  
299
    private DefaultMutableTreeNode addObject(DefaultMutableTreeNode parent,
300
        Object child) {
301
        return addObject(parent, child, false);
302
    }
303

  
304
    private DefaultMutableTreeNode addObject(DefaultMutableTreeNode parent,
305
        Object child, boolean shouldBeVisible) {
306
        DefaultMutableTreeNode childNode = new DefaultMutableTreeNode(child);
307

  
308
        // Si no especificamos padre, lo colgará del raíz
309
        if (parent == null) {
310
            parent = rootNode;
311
        }
312

  
313
        // Insertamos el nuevo nodo en el modelo del árbol
314
        treeModel.insertNodeInto(childNode, parent, parent.getChildCount());
315

  
316
        // Para que el usuario pueda ver el nuevo nodo
317
        if (shouldBeVisible) {
318
            tree.scrollPathToVisible(new TreePath(childNode.getPath()));
319
        }
320

  
321
        return childNode;
322
    }
323

  
324
    /**
325
     * Clase IconData permite asociar hasta dos iconos (para cuando está
326
     * expandido y cuando no) a un objeto del árbol
327
     **/
328
    static private class NodeData {
329

  
330
        private Icon m_icon;
331
        private Icon m_expandedIcon;
332
        private Object m_data;
333

  
334
        public NodeData(Icon icon, Icon expandedIcon, Object data) {
335
            m_icon = icon;
336
            m_expandedIcon = expandedIcon;
337
            m_data = data;
338
        }
339

  
340
        public Icon getIcon() {
341
            return m_icon;
342
        }
343

  
344
        public Icon getExpandedIcon() {
345
            return m_expandedIcon != null ? m_expandedIcon : m_icon;
346
        }
347

  
348
        public AboutParticipant getParticipant() {
349
            try {
350
                return (AboutParticipant) m_data;
351
            } catch (Exception e) {
352
                return null;
353
            }
354
        }
355

  
356
        public AboutProject getProject() {
357
            try {
358
                return (AboutProject) m_data;
359
            } catch (Exception e) {
360
                return null;
361
            }
362
        }
363

  
364
        @Override
365
        public String toString() {
366
            return m_data.toString();
367
        }
368
    }
369

  
370
    private class IconCellRenderer extends JLabel implements TreeCellRenderer {
371

  
372
        /**
373
		 * 
374
		 */
375
        private static final long serialVersionUID = 1L;
376
        protected Color m_textSelectionColor;
377
        protected Color m_textNonSelectionColor;
378
        protected Color m_bkSelectionColor;
379
        protected Color m_bkNonSelectionColor;
380
        protected Color m_borderSelectionColor;
381

  
382
        protected boolean m_selected;
383

  
384
        public IconCellRenderer() {
385
            super();
386
            m_textSelectionColor =
387
                UIManager.getColor("Tree.selectionForeground");
388
            m_textNonSelectionColor = UIManager.getColor("Tree.textForeground");
389
            m_bkSelectionColor = UIManager.getColor("Tree.selectionBackground");
390
            m_bkNonSelectionColor = UIManager.getColor("Tree.textBackground");
391
            m_borderSelectionColor =
392
                UIManager.getColor("Tree.selectionBorderColor");
393
            setOpaque(false);
394
        }
395

  
396
        public Component getTreeCellRendererComponent(JTree tree, Object value,
397
            boolean sel, boolean expanded, boolean leaf, int row,
398
            boolean hasFocus) {
399

  
400
            DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
401
            Object obj = node.getUserObject();
402
            setText(obj.toString());
403

  
404
            if (obj instanceof Boolean) {
405
                setText("Retrieving data...");
406
            }
407
            if (obj instanceof NodeData) {
408
                NodeData nodeData = (NodeData) obj;
409
                if (expanded) {
410
                    setIcon(nodeData.getExpandedIcon());
411
                } else {
412
                    setIcon(nodeData.getIcon());
413
                }
414
            } else {
415
                setIcon(null);
416
            }
417

  
418
            setFont(tree.getFont());
419
            setForeground(sel ? m_textSelectionColor : m_textNonSelectionColor);
420
            setBackground(sel ? m_bkSelectionColor : m_bkNonSelectionColor);
421
            m_selected = sel;
422
            return this;
423
        }
424

  
425
        @Override
426
        public void paintComponent(Graphics g) {
427
            Color bColor = getBackground();
428
            Icon icon = getIcon();
429

  
430
            g.setColor(bColor);
431
            int offset = 0;
432
            if ((icon != null) && (getText() != null)) {
433
                offset = (icon.getIconWidth() + getIconTextGap());
434
            }
435
            g.fillRect(offset, 0, getWidth() - 1 - offset, getHeight() - 1);
436

  
437
            if (m_selected) {
438
                g.setColor(m_borderSelectionColor);
439
                g.drawRect(offset, 0, getWidth() - 1 - offset, getHeight() - 1);
440
            }
441
            super.paintComponent(g);
442
        }
443
    }
444

  
445
}
tags/org.gvsig.desktop-2.0.216/org.gvsig.desktop.library/org.gvsig.about/org.gvsig.about.impl/src/main/java/org/gvsig/about/impl/package.html
1
<?xml version="1.0" encoding="UTF-8" ?>
2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
<html xmlns="http://www.w3.org/1999/xhtml">
4
<head>
5
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6
<title>org.gvsig.scripting.impl package documentation</title>
7
</head>
8
<body>
9

  
10
	<p>TODO: Example library default implementation description.</p>
11
	
12
	<p>See the <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#packagecomment">Javadoc Tool documentation about the package file</a></p>
13

  
14
</body>
15
</html>
tags/org.gvsig.desktop-2.0.216/org.gvsig.desktop.library/org.gvsig.about/org.gvsig.about.impl/src/main/java/org/gvsig/about/impl/DefaultAboutContribution.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.about.impl;
23

  
24
import java.util.Date;
25

  
26
import org.gvsig.about.AboutContribution;
27
import org.gvsig.about.AboutManager;
28
import org.gvsig.about.AboutParticipant;
29

  
30
/**
31
 * @author gvSIG Team
32
 * @version $Id$
33
 * 
34
 */
35
public class DefaultAboutContribution implements AboutContribution {
36

  
37
    private AboutParticipant participant;
38
    private Date begin;
39
    private Date end;
40
    private String description;
41
    private String title;
42

  
43
    public DefaultAboutContribution(AboutParticipant participant, String title,
44
        String description, Date begin, Date end) {
45
        this.participant = participant;
46
        this.title = title;
47
        this.description = description;
48
        this.begin = begin;
49
        this.end = end;
50
    }
51

  
52
    public DefaultAboutContribution(AboutManager manager, String tipo,
53
        String participantName, String title, String description, Date begin,
54
        Date end) {
55
        AboutParticipant ap = null;
56
        if (tipo.equals("AboutDeveloper")) {
57
            ap = manager.getDeveloper(participantName);
58
        } else
59
            if (tipo.equals("AboutSponsor")) {
60
                ap = manager.getSponsor(participantName);
61
            } else
62
                if (tipo.equals("AboutTranslator")) {
63
                    ap = manager.getTranslator(participantName);
64
                }
65
        this.participant = ap;
66
        this.title = title;
67
        this.description = description;
68
        this.begin = begin;
69
        this.end = end;
70
    }
71

  
72
    public String getTitle() {
73
        return this.title;
74
    }
75

  
76
    public Date getEnd() {
77
        return this.end;
78
    }
79

  
80
    public Date getBegin() {
81
        return this.begin;
82
    }
83

  
84
    public AboutParticipant getParticipant() {
85
        return this.participant;
86
    }
87

  
88
    public String getDescription() {
89
        return this.description;
90
    }
91
}
tags/org.gvsig.desktop-2.0.216/org.gvsig.desktop.library/org.gvsig.about/org.gvsig.about.impl/src/main/java/org/gvsig/about/impl/AbstractParticipant.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.about.impl;
23

  
24
import java.net.URL;
25
import java.text.SimpleDateFormat;
26
import java.util.ArrayList;
27
import java.util.Calendar;
28
import java.util.Collections;
29
import java.util.Comparator;
30
import java.util.Date;
31
import java.util.HashMap;
32
import java.util.Iterator;
33
import java.util.List;
34
import java.util.Map;
35
import java.util.regex.Pattern;
36

  
37
import org.gvsig.about.AboutContribution;
38
import org.gvsig.about.AboutManager;
39
import org.gvsig.about.AboutParticipant;
40

  
41
/**
42
 * @author gvSIG Team
43
 * @version $Id$
44
 * 
45
 */
46
public class AbstractParticipant implements AboutParticipant {
47

  
48
    private String name;
49
    private URL description;
50
    private int priority;
51
    private URL icon;
52
    protected List<AboutContribution> contributions;
53
    private DefaultAboutManager manager;
54
    private Map<String, String> vars;
55

  
56
    public AbstractParticipant(AboutManager manager, String name,
57
        URL description, int priority, URL icon) {
58
        this.manager = (DefaultAboutManager) manager;
59
        this.name = name;
60
        this.description = description;
61
        this.priority = priority;
62
        this.icon = icon;
63
        this.contributions = new ArrayList<AboutContribution>();
64
        this.vars = new HashMap<String, String>();
65
    }
66

  
67
    public void addVariables(Map<String, String> vars) {
68
        this.vars.putAll(vars);
69
    }
70

  
71
    public void set(String name, String value) {
72
        this.vars.put(name, value);
73
    }
74

  
75
    public String getName() {
76
        return this.name;
77
    }
78

  
79
    public URL getDescription() {
80
        return this.description;
81
    }
82

  
83
    public int getPriority() {
84
        return this.priority;
85
    }
86

  
87
    @Override
88
    public String toString() {
89
        return this.name;
90
    }
91

  
92
    public URL getIcon() {
93
        return this.icon;
94
    }
95

  
96
    public AboutManager getManager() {
97
        return this.manager;
98
    }
99

  
100
    protected Date getDate(int year, int month, int day) {
101
        Calendar cal = Calendar.getInstance();
102
        cal.set(year, month, day);
103
        return cal.getTime();
104
    }
105

  
106
    public AboutContribution addContribution(String title, String description,
107
        int begin_year, int begin_month, int begin_day, int end_year,
108
        int end_month, int end_day) {
109
        return this.addContribution(title, description,
110
            getDate(begin_year, begin_month, begin_day),
111
            getDate(end_year, end_month, end_day));
112
    }
113

  
114
    public AboutContribution addContribution(String title, String description,
115
        Date begin, Date end) {
116
        AboutContribution contribution =
117
            new DefaultAboutContribution(this, title, description, begin, end);
118
        // Añadimos a la lista de contribuciones
119
        this.contributions.add(contribution);
120
        // Ordenamos por fecha de inicio
121
        Collections.sort(this.contributions,
122
            new Comparator<AboutContribution>() {
123

  
124
                public int compare(AboutContribution p1, AboutContribution p2) {
125
                    if (p1.getBegin().before(p2.getBegin())) {
126
                        return -1;
127
                    } else
128
                        if (p1.getBegin().after(p2.getBegin())) {
129
                            return 1;
130
                        } else {
131
                            return 0;
132
                        }
133
                }
134
            });
135

  
136
        return contribution;
137
    }
138

  
139
    public List<AboutContribution> getContributions() {
140
        return this.contributions;
141
    }
142

  
143
    public String getInformationPage() {
144
        String description = null;
145
        String contributionsTable = this.getContributionsTable();
146

  
147
        if (this.description != null) {
148
            description = manager.getStringFromUrl(this.description, this.vars);
149
        }
150
        if (description == null) {
151
            return "<html>\n" // Begin html
152
                + "<body>\n" + contributionsTable + "</body>\n" // Body
153
                + "</html>"; // End html
154
        }
155

  
156
        String baseTag =
157
            "<base href=\"" + manager.getURLBase(getDescription()) + "\"/>";
158

  
159
        int index = description.indexOf("<head>");
160
        if (index > -1) {
161
            description =
162
                description.substring(0, index) // HTML init
163
                    + "<head>"
164
                    + baseTag
165
                    + description.substring(index + "<head>".length());
166
        } else {
167
            index = description.indexOf("<html>");
168
            if (index > -1) {
169
                description =
170
                    description.substring(0, index + "<html>".length())
171
                        + "<head>" + baseTag + "</head>" // Head
172
                        + description.substring(index + "<html>".length());
173
            } else {
174
                description = "<head>" + baseTag + "</head>" // Head
175
                    + description;
176
            }
177
        }
178

  
179
        if (description.toLowerCase().indexOf("</body>") < 0) {
180
            return description + "\n" + contributionsTable;
181
        }
182
        return Pattern.compile("</body>", Pattern.CASE_INSENSITIVE)
183
            .matcher(description)
184
            .replaceFirst(contributionsTable + "\n</body>");
185
    }
186

  
187
    public String getContributionsTable() {
188
        List<AboutContribution> contributions = this.getContributions();
189
        if (contributions.size() < 1) {
190
            return "";
191
        }
192
        String table =
193
            "\t<div style=\"padding-top:5px\">\n"
194
                + "\t\t<div style=\"background-color: white;padding-top: 5px\">\n"
195
                + "\t\t\t<center><h3>Contribuciones realizadas</h3></center>\n"
196
                + "\t\t\t<br>\n"
197
                + "\t\t\t<table width=\"100%\" border=\"1\">\n"
198
                + "\t\t\t\t<tr>\n"
199
                + "\t\t\t\t\t<td valign=\"top\" align=\"center\">Nombre</td>\n"
200
                + "\t\t\t\t\t<td valign=\"top\" align=\"center\">Descripcion</td>\n"
201
                + "\t\t\t\t\t<td valign=\"top\" colspan=\"2\" align=\"center\">Periodo</td>\n"
202
                + "\t\t\t\t</tr>\n";
203
        Iterator<AboutContribution> it = contributions.iterator();
204
        SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
205
        while (it.hasNext()) {
206
            AboutContribution ap = it.next();
207
            String cont = "";
208
            if (ap.getDescription() != null) {
209
                cont = ap.getDescription();
210
            }
211

  
212
            table =
213
                table + "\t\t\t\t<tr>\n" + "\t\t\t\t\t <td valign=\"top\">"
214
                    + ap.getTitle() + "</td>\n"
215
                    + "\t\t\t\t\t <td valign=\"top\">" + cont + "</td>\n"
216
                    + "\t\t\t\t\t  <td valign=\"top\">"
217
                    + formatter.format(ap.getBegin().getTime()) + "</td>\n"
218
                    + "\t\t\t\t\t  <td valign=\"top\">"
219
                    + formatter.format(ap.getEnd().getTime()) + "</td>\n"
220
                    + "\t\t\t\t</tr>\n";
221
        }
222
        table = table + "\t\t\t</table>\n\t\t</div>\n\t</div>\n";
223
        return table;
224
    }
225

  
226
}
tags/org.gvsig.desktop-2.0.216/org.gvsig.desktop.library/org.gvsig.about/org.gvsig.about.impl/src/main/java/org/gvsig/about/impl/DefaultAboutSponsor.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.about.impl;
23

  
24
import java.net.URL;
25

  
26
import org.gvsig.about.AboutSponsor;
27

  
28
/**
29
 * @author gvSIG Team
30
 * @version $Id$
31
 * 
32
 */
33
public class DefaultAboutSponsor extends AbstractParticipant implements
34
    AboutSponsor {
35

  
36
    public DefaultAboutSponsor(DefaultAboutManager manager, String name,
37
        URL description, int priority, URL icon) {
38
        super(manager, name, description, priority, icon);
39
    }
40

  
41
    public DefaultAboutSponsor(DefaultAboutManager manager, String name,
42
        URL description, int priority) {
43
        super(manager, name, description, priority, null);
44
    }
45
}
tags/org.gvsig.desktop-2.0.216/org.gvsig.desktop.library/org.gvsig.about/org.gvsig.about.impl/src/main/java/org/gvsig/about/impl/DefaultAboutDeveloper.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.about.impl;
23

  
24
import java.net.URL;
25

  
26
import org.gvsig.about.AboutDeveloper;
27

  
28
/**
29
 * @author gvSIG Team
30
 * @version $Id$
31
 * 
32
 */
33
public class DefaultAboutDeveloper extends AbstractParticipant implements
34
    AboutDeveloper {
35

  
36
    public DefaultAboutDeveloper(DefaultAboutManager manager, String name,
37
        URL description, int priority, URL icon) {
38
        super(manager, name, description, priority, icon);
39
    }
40

  
41
    public DefaultAboutDeveloper(DefaultAboutManager manager, String name,
42
        URL description, int priority) {
43
        super(manager, name, description, priority, null);
44
    }
45

  
46
}
tags/org.gvsig.desktop-2.0.216/org.gvsig.desktop.library/org.gvsig.about/org.gvsig.about.impl/src/main/java/org/gvsig/about/impl/AboutDefaultImplLibrary.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.about.impl;
23

  
24
import org.gvsig.about.AboutLibrary;
25
import org.gvsig.about.AboutLocator;
26
import org.gvsig.tools.ToolsLibrary;
27
import org.gvsig.tools.library.AbstractLibrary;
28
import org.gvsig.tools.library.LibraryException;
29

  
30
/**
31
 * @author gvSIG Team
32
 * @version $Id$
33
 */
34
public class AboutDefaultImplLibrary extends AbstractLibrary {
35

  
36
    @Override
37
    public void doRegistration() {
38
        registerAsImplementationOf(AboutLibrary.class);
39
        require(ToolsLibrary.class);
40
    }
41

  
42
    @Override
43
    protected void doInitialize() throws LibraryException {
44
        AboutLocator.registerManager(DefaultAboutManager.class);
45
    }
46

  
47
    @Override
48
    protected void doPostInitialize() throws LibraryException {
49
        // Nothing to do
50
    }
51

  
52
}
tags/org.gvsig.desktop-2.0.216/org.gvsig.desktop.library/org.gvsig.about/org.gvsig.about.impl/src/main/java/org/gvsig/about/impl/DefaultAboutProject.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.about.impl;
23

  
24
import java.net.URL;
25
import java.util.HashMap;
26
import java.util.Map;
27

  
28
import org.gvsig.about.AboutProject;
29

  
30
/**
31
 * @author gvSIG Team
32
 * @version $Id$
33
 * 
34
 */
35
public class DefaultAboutProject implements AboutProject {
36

  
37
    protected String name;
38
    protected URL description;
39
    protected URL icon;
40
    private DefaultAboutManager manager;
41
    private Map<String, String> vars;
42

  
43
    public DefaultAboutProject(DefaultAboutManager manager, String name,
44
        URL description, URL icon) {
45
        this(manager, name, description, icon, null);
46
    }
47

  
48
    public DefaultAboutProject(DefaultAboutManager manager, String name,
49
        URL description, URL icon, Map<String, String> vars) {
50
        this.manager = manager;
51
        this.name = name;
52
        this.description = description;
53
        this.icon = icon;
54
        this.vars = new HashMap<String, String>();
55
        if (vars != null) {
56
            this.vars.putAll(vars);
57
        }
58
    }
59

  
60
    public void set(String name, String value) {
61
        this.vars.put(name, value);
62
    }
63

  
64
    public String getName() {
65
        return this.name;
66
    }
67

  
68
    public URL getDescription() {
69
        return this.description;
70
    }
71

  
72
    public URL getIcon() {
73
        return this.icon;
74
    }
75

  
76
    @Override
77
    public String toString() {
78
        return this.name;
79
    }
80

  
81
    public String getInformationPage() {
82
        String description = null;
83

  
84
        if (this.description != null) {
85
            description = manager.getStringFromUrl(this.description, this.vars);
86
        }
87
        if (description == null) {
88
            return "<html><body></body></html>";
89
        }
90
        return description;
91
    }
92

  
93
}
tags/org.gvsig.desktop-2.0.216/org.gvsig.desktop.library/org.gvsig.about/org.gvsig.about.impl/src/main/java/org/gvsig/about/impl/DefaultAboutTranslator.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.about.impl;
23

  
24
import java.net.URL;
25

  
26
import org.gvsig.about.AboutTranslator;
27

  
28
/**
29
 * @author gvSIG Team
30
 * @version $Id$
31
 * 
32
 */
33
public class DefaultAboutTranslator extends AbstractParticipant implements
34
    AboutTranslator {
35

  
36
    public DefaultAboutTranslator(DefaultAboutManager manager, String name,
37
        URL description, int priority, URL icon) {
38
        super(manager, name, description, priority, icon);
39
    }
40

  
41
    public DefaultAboutTranslator(DefaultAboutManager manager, String name,
42
        URL description, int priority) {
43
        super(manager, name, description, priority, null);
44
    }
45

  
46
}
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff