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 / impl / DefaultDynFormLibrary.java @ 2537

History | View | Annotate | Download (7.46 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.impl;
25

    
26

    
27
import java.net.URL;
28
import org.gvsig.tools.ToolsLocator;
29
import org.gvsig.tools.dynform.DynFormLibrary;
30
import org.gvsig.tools.dynform.DynFormLocator;
31
import org.gvsig.tools.dynform.spi.DynFormSPILocator;
32
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.TAG_DYNFORM_ACTION_CLOSE;
33
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.TAG_DYNFORM_ACTION_DELETE;
34
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.TAG_DYNFORM_ACTION_NEW;
35
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.TAG_DYNFORM_ACTION_SEARCH;
36
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.TAG_DYNFORM_ACTION_UPDATE;
37
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.TAG_DYNFORM_AUTOSAVE;
38
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.TAG_DYNFORM_BORDER;
39
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.TAG_DYNFORM_DROPDOWN;
40
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.TAG_DYNFORM_HEIGHT;
41
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.TAG_DYNFORM_LABEL_EMPTY;
42
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.TAG_DYNFORM_READONLY;
43
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.TAG_DYNFORM_RESIZEWEIGHT;
44
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.TAG_DYNFORM_ROWS;
45
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.TAG_DYNFORM_SEPARATOR;
46
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.TAG_DYNFORM_TRANSLATE_EMPTY_TO_NULL;
47
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.TAG_DYNFORM_USESCROLLBARS;
48
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.TAG_DYNFORM_VIEWMODE;
49
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.TAG_DYNFORM_WIDTH;
50
import org.gvsig.tools.dynobject.DynObjectManager;
51
import org.gvsig.tools.library.AbstractLibrary;
52
import org.gvsig.tools.library.LibraryException;
53
import org.gvsig.tools.swing.api.ToolsSwingLocator;
54
import org.gvsig.tools.swing.icontheme.IconTheme;
55

    
56
public class DefaultDynFormLibrary extends AbstractLibrary {
57
        public static final String ICON_PROVIDER_NAME = "DynForm";
58

    
59
        public static final String ICON_COMMON_GROUP_NAME = "Common";
60

    
61
        @Override
62
        public void doRegistration() {
63
                super.doRegistration();
64
                registerAsImplementationOf(DynFormLibrary.class);
65
        }
66
        
67
        @Override
68
        protected void doInitialize() throws LibraryException {
69
                DynFormLocator.registerDefaultDynFormManager(DefaultDynFormManager.class);
70
                DynFormSPILocator.registerDefaultDynFormSPIManager(DefaultDynFormSPIManager.class);
71
                
72
            DynObjectManager dynObjectManager = ToolsLocator.getDynObjectManager();
73
            dynObjectManager.registerTag(TAG_DYNFORM_AUTOSAVE, "Boolean value to activate/deactivate the autosave mode in the form.");
74
            dynObjectManager.registerTag(TAG_DYNFORM_BORDER, null);
75
            dynObjectManager.registerTag(TAG_DYNFORM_VIEWMODE, null);
76
            dynObjectManager.registerTag(TAG_DYNFORM_HEIGHT, "Integer value to set the height of field or form to this value.");
77
            dynObjectManager.registerTag(TAG_DYNFORM_WIDTH, "Integer value to set the width of form to this value.");
78
            dynObjectManager.registerTag(TAG_DYNFORM_LABEL_EMPTY, "Boolean value to force the label of field to empty, the label can't be show.");
79
            dynObjectManager.registerTag(TAG_DYNFORM_ACTION_NEW, "Boolean value to show/hide the action button new in form.");
80
            dynObjectManager.registerTag(TAG_DYNFORM_ACTION_UPDATE, "Boolean value to show/hide the action button save in form.");
81
            dynObjectManager.registerTag(TAG_DYNFORM_ACTION_DELETE, "Boolean value to show/hide the action button delete in form.");
82
            dynObjectManager.registerTag(TAG_DYNFORM_ACTION_SEARCH, "Boolean value to show/hide the action button search in form.");
83
            dynObjectManager.registerTag(TAG_DYNFORM_ACTION_CLOSE, "Boolean value to show/hide the action button close in form.");
84
            dynObjectManager.registerTag(TAG_DYNFORM_ROWS, "Integer value to set the number of rows for text fields.");
85
            dynObjectManager.registerTag(TAG_DYNFORM_USESCROLLBARS, "Boolean value to show/hide scrollbars in the form (default value true).");
86
            dynObjectManager.registerTag(TAG_DYNFORM_READONLY, "Boolean value to force the field or form to be in read-only mode.");
87
            dynObjectManager.registerTag(TAG_DYNFORM_TRANSLATE_EMPTY_TO_NULL, null);
88
            dynObjectManager.registerTag(TAG_DYNFORM_SEPARATOR, "String value to add a separator previos this field with this.");
89
            dynObjectManager.registerTag(TAG_DYNFORM_DROPDOWN, "String value to force the type of dropdown to use, must be 'label' or 'combo'.");
90
            dynObjectManager.registerTag(TAG_DYNFORM_RESIZEWEIGHT, "Integer value between 0 and 100 indicating what the field should expand. A value of 0 indicates that it should not be expanded.");
91

    
92
        }
93
        
94
        
95
        @Override
96
        protected void doPostInitialize() throws LibraryException {
97
            String[][] iconsInfo = new String[][]{
98
                new String[]{ICON_PROVIDER_NAME, ICON_COMMON_GROUP_NAME, "form-buttonbar-cancelnew"},
99
                new String[]{ICON_PROVIDER_NAME, ICON_COMMON_GROUP_NAME, "form-buttonbar-close"},
100
                new String[]{ICON_PROVIDER_NAME, ICON_COMMON_GROUP_NAME, "form-buttonbar-delete"},
101
                new String[]{ICON_PROVIDER_NAME, ICON_COMMON_GROUP_NAME, "form-buttonbar-first"},
102
                new String[]{ICON_PROVIDER_NAME, ICON_COMMON_GROUP_NAME, "form-buttonbar-last"},
103
                new String[]{ICON_PROVIDER_NAME, ICON_COMMON_GROUP_NAME, "form-buttonbar-new"},
104
                new String[]{ICON_PROVIDER_NAME, ICON_COMMON_GROUP_NAME, "form-buttonbar-next"},
105
                new String[]{ICON_PROVIDER_NAME, ICON_COMMON_GROUP_NAME, "form-buttonbar-previous"},
106
                new String[]{ICON_PROVIDER_NAME, ICON_COMMON_GROUP_NAME, "form-buttonbar-save"},
107
                new String[]{ICON_PROVIDER_NAME, ICON_COMMON_GROUP_NAME, "form-problem-indicator"},
108
                new String[]{ICON_PROVIDER_NAME, ICON_COMMON_GROUP_NAME, "form-buttonbar-search"}
109
            };
110
            registerIcons(iconsInfo);
111
        }
112

    
113
    public static void registerIcons(String[][] iconsInfo) {
114
        IconTheme theme = ToolsSwingLocator.getIconThemeManager().getCurrent();
115
        for (String[] icon : iconsInfo) {
116
            // 0 - Provider, 1 - Group, 2 - Name
117
            URL url = DefaultDynFormLibrary.class.getResource("images/"+ icon[2] + ".png");
118
            theme.registerDefault(icon[0], icon[1], icon[2], null, url);
119
        }
120
    }        
121
}