Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.installer / org.gvsig.installer.swing / org.gvsig.installer.swing.impl / src / main / java / org / gvsig / installer / swing / impl / creation / panel / DefaultPackageInfoPanel.java @ 41620

History | View | Annotate | Download (6.92 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
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 3
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
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
/*
25
 * AUTHORS (In addition to CIT):
26
 * 2010 {Prodevelop}   {Task}
27
 */
28

    
29
package org.gvsig.installer.swing.impl.creation.panel;
30

    
31
import java.awt.BorderLayout;
32
import java.io.InputStream;
33
import java.net.URL;
34
import java.util.Map;
35

    
36
import org.gvsig.installer.lib.api.PackageInfo;
37
import org.gvsig.installer.lib.api.Version;
38
import org.gvsig.installer.swing.api.SwingInstallerLocator;
39
import org.gvsig.installer.swing.api.creation.JPackageInfoPanel;
40
import org.gvsig.installer.swing.impl.DefaultSwingInstallerManager;
41
import org.gvsig.tools.ToolsLocator;
42
import org.gvsig.tools.dynform.DynFormLocator;
43
import org.gvsig.tools.dynform.DynFormManager;
44
import org.gvsig.tools.dynform.JDynForm;
45
import org.gvsig.tools.dynobject.DynObject;
46
import org.gvsig.tools.dynobject.DynObjectManager;
47
import org.gvsig.tools.dynobject.DynStruct;
48
import org.gvsig.tools.packageutils.impl.PackageInfoTags;
49
import org.slf4j.Logger;
50
import org.slf4j.LoggerFactory;
51

    
52
public class DefaultPackageInfoPanel extends JPackageInfoPanel {
53

    
54
        private static final Logger logger = LoggerFactory.getLogger(DefaultPackageInfoPanel.class);
55
        
56
        private static final long serialVersionUID = 3220127550495628087L;
57

    
58
        protected DefaultSwingInstallerManager swingInstallerManager = null;
59

    
60
        private JDynForm form = null;
61
        private DynObject data = null;
62

    
63
        
64
        public DefaultPackageInfoPanel() {
65
                super();
66
                swingInstallerManager = (DefaultSwingInstallerManager) SwingInstallerLocator
67
                                .getSwingInstallerManager();
68
                initComponents();
69
        }
70

    
71
        private void initComponents() {
72
                DynObjectManager dynObjectManager = ToolsLocator.getDynObjectManager();
73
                InputStream resource = this.getClass().getClassLoader().getResourceAsStream("org/gvsig/installer/swing/impl/creation/panel/formPackageinfo.xml");
74
                try {
75
                        Map definitions = dynObjectManager.importDynClassDefinitions(resource, this.getClass().getClassLoader());
76
                        DynStruct definition = (DynStruct) definitions.get("FormPackageinfo");
77
                        this.data = dynObjectManager.createDynObject(definition);
78
                        
79
                        DynFormManager dynFormManager = DynFormLocator.getDynFormManager();
80
                        this.form = dynFormManager.createJDynForm(data);
81
                } catch (Exception e) {
82
                        // Uf....
83
                        logger.warn("No se puede crear el formulario.", e);
84
                        throw new RuntimeException("No se puede crear el formulario.", e);
85
                }
86
                
87
                this.setLayout(new BorderLayout(4, 4));
88
                this.add(form.asJComponent(),BorderLayout.CENTER);
89
        }
90
        
91
        
92
        protected String findCurrentGvSIGVersion() {
93
                return SwingInstallerLocator.getSwingInstallerManager()
94
                                .getApplicationVersion();
95
        }
96

    
97

    
98
        public String getName() {
99
                return (String) this.form.getValue(PackageInfoTags.NAME);
100
        }
101

    
102
        public void setName(String name) {
103
                this.form.setValue(PackageInfoTags.NAME, name);
104
        }
105

    
106

    
107
        @Override
108
        public boolean validatePanel() {
109
                return this.form.hasValidValues();
110
        }
111

    
112
        @Override
113
        public void panelToPackageInfo(PackageInfo packageInfo) {
114
                
115
                this.form.getValues(data);
116
                packageInfo.setType( (String) data.getDynValue(PackageInfoTags.TYPE));
117
                packageInfo.setCode( (String) data.getDynValue(PackageInfoTags.CODE));
118
                packageInfo.setName((String) data.getDynValue(PackageInfoTags.NAME));
119
                packageInfo.setDescription((String) data.getDynValue(PackageInfoTags.DESCRIPTION));
120
                packageInfo.setVersion((Version) data.getDynValue(PackageInfoTags.VERSION));
121
                packageInfo.setBuild(((Integer) data.getDynValue(PackageInfoTags.BUILD)).intValue());
122
                packageInfo.setState((String) data.getDynValue(PackageInfoTags.STATE));
123
                packageInfo.setOfficial(((Boolean) data.getDynValue(PackageInfoTags.OFFICIAL)).booleanValue());
124
                packageInfo.setOperatingSystem((String) data.getDynValue(PackageInfoTags.OS));
125
                packageInfo.setArchitecture((String) data.getDynValue(PackageInfoTags.ARCHITECTURE));
126
                packageInfo.setJavaVM((String) data.getDynValue(PackageInfoTags.JVM));
127
                packageInfo.setGvSIGVersion((String) data.getDynValue(PackageInfoTags.GVSIG_VERSION));
128
                packageInfo.setSourcesURL((URL) data.getDynValue(PackageInfoTags.SOURCES_URL));
129
                packageInfo.setOwnerURL((URL) data.getDynValue(PackageInfoTags.OWNER_URL));
130
                packageInfo.setOwner((String) data.getDynValue(PackageInfoTags.OWNER));
131
                packageInfo.setDependencies((String) data.getDynValue(PackageInfoTags.DEPENDENCIES));
132
                packageInfo.addCategoriesAsString((String) data.getDynValue(PackageInfoTags.CATEGORIES));
133
        }
134

    
135
        private boolean isEmptyString(String s) {
136
                if( s==null) {
137
                        return true;
138
                }
139
                return s.length() == 0; 
140
        }
141
        
142
        @Override
143
        public void packageInfoToPanel(PackageInfo packageInfo) {
144
                this.data.setDynValue(PackageInfoTags.TYPE, packageInfo.getType());
145
                this.data.setDynValue(PackageInfoTags.CODE, packageInfo.getCode());
146
                this.data.setDynValue(PackageInfoTags.NAME, packageInfo.getName());
147
                this.data.setDynValue(PackageInfoTags.VERSION, packageInfo.getVersion());
148
                this.data.setDynValue(PackageInfoTags.GVSIG_VERSION, findCurrentGvSIGVersion());
149
                this.data.setDynValue(PackageInfoTags.BUILD, packageInfo.getBuild());
150
                this.data.setDynValue(PackageInfoTags.OFFICIAL, packageInfo.isOfficial());
151
                this.data.setDynValue(PackageInfoTags.STATE, packageInfo.getState());
152
                this.data.setDynValue(PackageInfoTags.DESCRIPTION, packageInfo.getDescription());
153
                this.data.setDynValue(PackageInfoTags.OS, packageInfo.getOperatingSystem());
154
                this.data.setDynValue(PackageInfoTags.ARCHITECTURE, packageInfo.getArchitecture());
155
                this.data.setDynValue(PackageInfoTags.JVM, packageInfo.getJavaVM());
156
                this.data.setDynValue(PackageInfoTags.SOURCES_URL, packageInfo.getSourcesURL());
157
                this.data.setDynValue(PackageInfoTags.OWNER, packageInfo.getOwner());
158
                this.data.setDynValue(PackageInfoTags.OWNER_URL, packageInfo.getOwnerURL());
159
                this.data.setDynValue(PackageInfoTags.DEPENDENCIES, packageInfo.getDependencies());
160
                this.data.setDynValue(PackageInfoTags.CATEGORIES, packageInfo.getCategoriesAsString());
161
                //this.data.setDynValue(PackageInfoTags.CODEALIAS, packageInfo.getAllCodes().toString());
162
                this.form.getField(PackageInfoTags.CODEALIAS).setReadOnly(true);
163
                
164
//                if (  !isEmptyString(packageInfo.getCode()) ){
165
//                        this.form.getField(PackageInfoTags.CODE).setReadOnly(true);
166
//                }
167
                this.form.setValues(data);
168

    
169
        }
170
        
171

    
172
}