Statistics
| Revision:

gvsig-tools / org.gvsig.tools / library / trunk / org.gvsig.tools / org.gvsig.tools.dynform / org.gvsig.tools.dynform.impl / src / main / java / org / gvsig / tools / dynform / main / Test.java @ 1225

History | View | Annotate | Download (9.25 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
package org.gvsig.tools.dynform.main;
25

    
26
import java.awt.event.ActionEvent;
27
import java.io.File;
28
import java.io.InputStream;
29
import java.net.URL;
30
import java.util.ArrayList;
31
import java.util.List;
32
import java.util.Map;
33

    
34
import javax.swing.AbstractAction;
35
import javax.swing.Action;
36
import javax.swing.JFrame;
37
import javax.swing.JOptionPane;
38
import javax.swing.UIManager;
39

    
40
import org.apache.log4j.PropertyConfigurator;
41
import org.gvsig.tools.ToolsLibrary;
42
import org.gvsig.tools.ToolsLocator;
43
import org.gvsig.tools.dataTypes.DataType;
44
import org.gvsig.tools.dataTypes.DataTypes;
45
import org.gvsig.tools.dataTypes.DataTypesManager;
46
import org.gvsig.tools.dynform.AbortActionException;
47
import org.gvsig.tools.dynform.DynFormLibrary;
48
import org.gvsig.tools.dynform.DynFormLocator;
49
import org.gvsig.tools.dynform.DynFormManager;
50
import org.gvsig.tools.dynform.JDynForm;
51
import org.gvsig.tools.dynform.JDynFormSet;
52
import org.gvsig.tools.dynform.JDynFormSet.JDynFormSetListener;
53
import org.gvsig.tools.dynform.impl.DefaultDynFormLibrary;
54
import org.gvsig.tools.dynform.services.BasicDynFormFieldsLibrary;
55
import org.gvsig.tools.dynform.spi.DynFormSPILibrary;
56
import org.gvsig.tools.dynobject.DynObject;
57
import org.gvsig.tools.dynobject.DynObjectManager;
58
import org.gvsig.tools.dynobject.DynStruct;
59
import org.gvsig.tools.service.ServiceException;
60

    
61
import com.jgoodies.looks.plastic.PlasticLookAndFeel;
62
import com.jgoodies.looks.plastic.PlasticXPLookAndFeel;
63

    
64
@SuppressWarnings("rawtypes")
65
public class Test {
66

    
67
        Map definitions = null;
68
        DynFormManager manager = null;
69
        DynObjectManager dynObjectManager = null;
70
        
71
        public int contador = 1;
72
        private JDynFormSet form;
73
        
74
        public static void main(String[] args) throws Exception {
75
                URL config = Test.class.getClassLoader().getResource("org/gvsig/tools/dynform/main/log4j.properties");
76
                PropertyConfigurator.configure(config);
77
                Test t = new Test();
78
                t.doMain(args);
79
        }
80

    
81
        private DynStruct loadStruct() throws Exception {
82
                dynObjectManager = ToolsLocator.getDynObjectManager();
83
                InputStream resource = this.getClass().getClassLoader().getResourceAsStream("org/gvsig/tools/dynform/main/MapserverLayerPropertiesForm2.xml");
84
                definitions = dynObjectManager.importDynClassDefinitions(resource, this.getClass().getClassLoader());
85
                return (DynStruct) definitions.get("MapserverLayerPropertiesForm");
86
        }
87
        
88
        public void doMain(String[] args) throws Exception {
89
                PlasticLookAndFeel laf = new PlasticXPLookAndFeel();
90
                UIManager.setLookAndFeel(laf);
91
                
92
                new ToolsLibrary().initialize();
93
                new DynFormLibrary().initialize();
94
                new DefaultDynFormLibrary().initialize();
95
                new DynFormSPILibrary().initialize();
96
                new BasicDynFormFieldsLibrary().initialize();
97
                
98
                new ToolsLibrary().postInitialize();
99
                new DynFormLibrary().postInitialize();
100
                new DefaultDynFormLibrary().postInitialize();
101
                new DynFormSPILibrary().postInitialize();
102
                new BasicDynFormFieldsLibrary().postInitialize();
103
                
104
                DynStruct struct = loadStruct();
105
                manager = DynFormLocator.getDynFormManager();
106

    
107
                List data = this.createSet(struct);
108
                //showForm("DynForms1", data, false, JDynForm.USE_TABS);
109
                showForm("DynForms2", data, false, JDynForm.USE_TABS);
110
                //showForm("DynForms2-readonly", data, true, JDynForm.USE_SEPARATORS);
111
                //showFormPackageInfo();
112

    
113
        }
114
        
115
        private void showForm(String title, List data, boolean readonly, int layoutMode) throws ServiceException {
116
                final JFrame frame = new JFrame(title);
117
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
118

    
119
                form = manager.createJDynFormSet(data);
120
                
121

    
122
                Action helloWorld = new AbstractAction("Hi World!") {
123
                        public void actionPerformed(ActionEvent e) {
124
                                JOptionPane.showMessageDialog(null, "Hola mundo!");
125
                        }
126
                };
127
                Action byeWorld = new AbstractAction("Bye World!") {
128
                        public void actionPerformed(ActionEvent e) {
129
                                JOptionPane.showMessageDialog(null, "Adeu mundo!");
130
                        }
131
                };
132
                form.addSeparatorToPopupMenu(ToolsLocator.getDataTypesManager().getDataType(String.class));
133
                form.addActionToPopupMenu(
134
                                ToolsLocator.getDataTypesManager().getDataType(String.class), 
135
                                "Hola Mundo!", 
136
                                helloWorld);
137
                form.addActionToPopupMenu(
138
                                ToolsLocator.getDataTypesManager().getDataType(String.class), 
139
                                "Adi?s Mundo!", 
140
                                byeWorld);
141
        
142
                
143
                form.setAllowClose(true);
144
                
145
                form.setLayoutMode(layoutMode);
146
                form.setReadOnly(readonly);
147
                form.addListener(new JDynFormSetListener() {
148
                        public void formMessage(String message) {
149
                                System.out.println("formMessage "+message);
150
                        }
151
                        public void formClose(){
152
                                frame.setVisible(false);
153
                                System.out.println("Closing form...");
154
                                List values = form.getValues();
155
                                DynObject data = (DynObject) values.get(form.getCurrentIndex());
156
                                List metadata2s = (List) data.getDynValue("Metadata2");
157
                                if( metadata2s.isEmpty() ) {
158
                                    System.out.println("metadatas is empty");
159
                                } else {
160
                                    DynObject matadata = (DynObject) metadata2s.get(0);
161
                                    System.out.println("key="+matadata.getDynValue("key"));
162
                                    System.out.println("value="+matadata.getDynValue("value"));
163
                                }
164
                                System.out.println("formClose");
165
                        }
166
                        public void formMovedTo(int currentPosition){
167
                                System.out.println("formMovedTo "+currentPosition);
168
                        }
169
                        public void formBeforeSave(JDynFormSet dynformSet) throws AbortActionException {
170
                                System.out.println("formBeforeSave");
171
                        }
172
                        public void formBeforeNew(JDynFormSet dynformSet) throws AbortActionException {
173
                                System.out.println("formBeforeNew");
174
                        }
175
                        public void formBeforeDelete(JDynFormSet dynformSet) throws AbortActionException {
176
                                System.out.println("formBeforeDelete");
177
                        }
178
                        public void formAfterSave(JDynFormSet dynformSet) {
179
                                System.out.println("formAfterSave");
180
                        }
181
                        public void formAfterNew(JDynFormSet dynformSet) {
182
                                System.out.println("formAfterNew");
183
                        }
184
                        public void formAfterDelete(JDynFormSet dynformSet) {
185
                                System.out.println("formAfterDelete");
186
                        }
187
                        public void formBeforeSearch(JDynFormSet dynformSet) throws AbortActionException {
188
                                System.out.println("formBeforeSearch");
189
                        }
190
                        public void formAfterSearch(JDynFormSet dynformSet) {
191
                                System.out.println("forformAfterSearchmClose");
192
                        }
193
                });
194
                form.setAllowDelete(true);
195
                form.setAllowNew(true);
196
                form.setAllowSearch(false);
197
                form.setAllowUpdate(true);
198

    
199
                frame.setContentPane(form.asJComponent());
200
                
201
                
202
                form.addSeparatorToPopupMenu(ToolsLocator.getDataTypesManager().getDataType(String.class));
203
                Action addMore = new AbstractAction("add_more") {
204
                        public void actionPerformed(ActionEvent e) {
205
                                JOptionPane.showMessageDialog(null, "Una entrada m?s a?adida satisfactoriamente!");
206
                                if(form!=null){
207
                                        Action customAction = new AbstractAction("custom_action") {
208
                                                public void actionPerformed(ActionEvent e) {
209
                                                        JOptionPane.showMessageDialog(null, "Hola! Soy la entrada n?" + contador);
210
                                                        contador++;
211
                                                }
212
                                        };
213
                                        
214
                                        form.addActionToPopupMenu(
215
                                                        ToolsLocator.getDataTypesManager().getDataType(String.class), 
216
                                                        "Entrada din?mica n?" + contador, 
217
                                                        customAction);
218
                                }
219
                        }
220
                };
221
                form.addActionToPopupMenu(
222
                                ToolsLocator.getDataTypesManager().getDataType(String.class), 
223
                                "A?adir m?s...", 
224
                                addMore);
225
                form.addSeparatorToPopupMenu(ToolsLocator.getDataTypesManager().getDataType(String.class));
226

    
227
                form.setFormSize(600, 300);
228
                
229
                form.setCurrentIndex(1);
230
                
231
                frame.pack();
232
                frame.setVisible(true);
233
        }
234
        
235
        private void showFormPackageInfo() throws ServiceException {
236
                final JFrame frame = new JFrame("Package info");
237
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
238

    
239
                JDynForm form = manager.createJDynForm((DynStruct)definitions.get("FormPackageinfo"));
240
                form.setLayoutMode(JDynForm.USE_SEPARATORS);
241
                form.setReadOnly(false);
242
                frame.setContentPane(form.asJComponent());
243

    
244
                form.setFormSize(600, 300);
245
                
246
                frame.pack();
247
                frame.setVisible(true);
248
        }
249
        
250
        public List createSet(DynStruct struct) {
251
                List values = new ArrayList();
252
                for( int i=1; i<4; i++ ) {
253
                        DynObject value = dynObjectManager.createDynObject(struct);
254
//                        value.setDynValue("ProviderName", "proveedor-" + i);
255
//                        value.setDynValue("Entero", i*10);
256
//                        value.setDynValue("Encoding", "UTF-8");
257
                        values.add(value);
258
                }
259
                return values;
260
        }
261
}