Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.metadata.basic / org.gvsig.metadata.basic.swing / org.gvsig.metadata.swing.basic.impl / src / main / java / org / gvsig / metadata / swing / basic / impl / BasicJMetadataPanel.java @ 47135

History | View | Annotate | Download (3.91 KB)

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.metadata.swing.basic.impl;
24

    
25
import java.awt.BorderLayout;
26

    
27
import javax.swing.JLabel;
28

    
29
import org.gvsig.metadata.Metadata;
30
import org.gvsig.metadata.MetadataLocator;
31
import org.gvsig.metadata.MetadataManager;
32
import org.gvsig.metadata.exceptions.MetadataException;
33
import org.gvsig.metadata.swing.basic.api.AbstractSimpleMetadataPanel;
34
import org.gvsig.metadata.swing.basic.api.JMetadataPanel;
35
import org.gvsig.metadata.swing.basic.api.MetadataSwingManager;
36
import org.gvsig.tools.ToolsLocator;
37
import org.gvsig.tools.dynform.DynFormLocator;
38
import org.gvsig.tools.dynform.DynFormManager;
39
import org.gvsig.tools.dynform.JDynForm;
40
import org.gvsig.tools.dynobject.exception.DynObjectValidateException;
41
import org.gvsig.tools.i18n.I18nManager;
42
import org.gvsig.tools.service.ServiceException;
43

    
44
import org.slf4j.Logger;
45
import org.slf4j.LoggerFactory;
46

    
47
public class BasicJMetadataPanel extends JMetadataPanel {
48

    
49
    private static final Logger logger = LoggerFactory.getLogger(BasicJMetadataPanel.class);
50

    
51
    private static final long serialVersionUID = 6514865354393558940L;
52
    private JLabel lblName;
53
    private MetadataManager manager;
54
    private JDynForm dynform;
55

    
56
    private I18nManager i18nManager;
57

    
58

    
59
    public BasicJMetadataPanel(MetadataSwingManager uiManager,
60
            Metadata metadata, boolean editable) {
61
        super(uiManager, metadata, editable);
62
    }
63

    
64
    protected void initManagers() {
65
        manager = MetadataLocator.getMetadataManager();
66
        i18nManager = ToolsLocator.getI18nManager();
67
    }
68

    
69
    protected void initData() {
70
        String metadataName = "";
71
        if (!this.hasMetadata()) {
72
            return;
73
        }
74
        try {
75
            metadataName = getMetadata().getMetadataName();
76
            this.lblName.setText(i18nManager.getTranslation("_{0}_metadata", new String[] {i18nManager.getTranslation(metadataName)}));
77
        } catch (MetadataException e) {
78
            logger.warn("Can't init panel data", e);
79
        }
80
    }
81

    
82
    protected void initUI() {
83
        this.setLayout(new BorderLayout());
84
        this.lblName = new JLabel();
85

    
86
        this.add(this.lblName, BorderLayout.NORTH);
87
    }
88

    
89
    public void saveMetadata() throws DynObjectValidateException {
90
        try {
91
            this.dynform.getValues(this.getMetadata());
92
            this.getMetadata().getDynClass().validate(this.getMetadata());
93
            manager.storeMetadata(this.getMetadata());
94
        } catch (MetadataException e) {
95
            logger.warn("Can't save metadata", e);
96
        }
97
    }
98

    
99
    protected AbstractSimpleMetadataPanel createMetadataComponent(Metadata metadata, boolean refresh) {
100
        if (metadata == null) {
101
            metadata = getMetadata();
102
        }
103
        DynFormManager dynformmgr = DynFormLocator.getDynFormManager();
104
        if(dynform == null){
105
            dynform = dynformmgr.createJDynForm(metadata);
106
        } else {
107
            dynform.setValues(metadata);
108
        }
109
        this.add(dynform.asJComponent());
110
        this.updateUI();
111
        return this;
112
    }
113
}