Revision 3603 org.gvsig.vcsgis/trunk/org.gvsig.vcsgis/org.gvsig.vcsgis.swing/org.gvsig.vcsgis.swing.impl/src/main/java/org/gvsig/vcsgis/swing/impl/VCSGisSwingCommons.java

View differences:

VCSGisSwingCommons.java
26 26
import java.awt.Component;
27 27
import java.awt.Font;
28 28
import java.awt.font.TextAttribute;
29
import java.io.IOException;
30
import java.io.InputStream;
29 31
import java.util.HashMap;
30
import java.util.List;
31 32
import java.util.Map;
33
import java.util.Objects;
34
import java.util.Properties;
32 35
import java.util.Set;
33 36
import javax.swing.JOptionPane;
34 37
import javax.swing.SwingUtilities;
35 38
import org.apache.commons.lang3.StringUtils;
36
import org.gvsig.fmap.dal.AbstractStoresRepository;
37
import org.gvsig.fmap.dal.BaseStoresRepository;
38
import org.gvsig.fmap.dal.DALLocator;
39
import org.gvsig.fmap.dal.DataManager;
40
import org.gvsig.fmap.dal.DataStoreParameters;
41
import org.gvsig.fmap.dal.OpenDataStoreParameters;
42
import org.gvsig.fmap.dal.StoresRepository;
43 39
import org.gvsig.fmap.dal.feature.FeatureStore;
44 40
import org.gvsig.fmap.geom.Geometry;
45 41
import org.gvsig.fmap.geom.GeometryUtils;
46 42
import org.gvsig.fmap.geom.primitive.Envelope;
47 43
import org.gvsig.tools.ToolsLocator;
44
import org.gvsig.tools.dataTypes.Coercion;
45
import org.gvsig.tools.dataTypes.CoercionException;
48 46
import org.gvsig.tools.i18n.I18nManager;
47
import org.gvsig.tools.swing.api.DataTypes;
49 48
import org.gvsig.tools.swing.api.ToolsSwingLocator;
50 49
import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager;
51
import org.gvsig.tools.util.UnmodifiableBasicSet;
52
import org.gvsig.tools.util.UnmodifiableBasicSetAdapter;
53
import org.gvsig.vcsgis.lib.VCSGisEntity;
54 50
import org.gvsig.vcsgis.lib.VCSGisLocator;
55 51
import org.gvsig.vcsgis.lib.VCSGisManager;
56 52
import static org.gvsig.vcsgis.lib.VCSGisManager.ERR_AUTHENTICATION_EXPIRED;
......
66 62
import static org.gvsig.vcsgis.lib.VCSGisManager.STATE_LOCAL_UNMODIFIED;
67 63
import static org.gvsig.vcsgis.lib.VCSGisManager.STATE_REPOSITORY_NEW;
68 64
import org.gvsig.vcsgis.lib.VCSGisRuntimeException;
69
import org.gvsig.vcsgis.lib.workspace.VCSGisWorkspace;
70 65
import org.gvsig.vcsgis.swing.VCSGisSwingLocator;
71 66
import org.gvsig.vcsgis.swing.VCSGisSwingManager;
67
import org.gvsig.vcsgis.swing.impl.checkout.VCSGisJCheckoutImpl;
68
import org.slf4j.LoggerFactory;
72 69

  
73 70
/**
74 71
 *
......
76 73
 */
77 74
public class VCSGisSwingCommons {
78 75

  
79
//    public static final Color COLOR_LOCAL_NEW = Color.GREEN.darker();
80
//    public static final Color COLOR_LOCAL_MODIFIED = Color.BLUE.darker();
81
//    public static final Color COLOR_LOCAL_UNMODIFIED = Color.BLACK;
82
//    * public static final Color COLOR_REPOSITORY_MODIFIED = Color.BLACK; // bold
83
//    * public static final Color COLOR_LOCAL_AND_REPOSITORY_MODIFIED = Color.RED;
84
//    * public static final Color COLOR_CONFLICT = Color.RED;
76
    private static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(VCSGisSwingCommons.class);
77

  
78
    private static final String ID_COLOR_LOCAL_NEW = "COLOR_LOCAL_NEW";
79
    private static final String ID_COLOR_LOCAL_MODIFIED = "COLOR_LOCAL_MODIFIED";
80
    private static final String ID_COLOR_LOCAL_UNMODIFIED = "COLOR_LOCAL_UNMODIFIED";
81
    private static final String ID_COLOR_LOCAL_AND_REPOSITORY_MODIFIED = "COLOR_LOCAL_AND_REPOSITORY_MODIFIED";
82
    private static final String ID_COLOR_REPOSITORY_NEW = "COLOR_REPOSITORY_NEW";
83
    private static final String ID_COLOR_REPOSITORY_MODIFIED = "COLOR_REPOSITORY_MODIFIED";
84
    private static final String ID_COLOR_CONFLICT = "COLOR_CONFLICT";
85
    private static final String ID_COLOR_UNKNOWN_STATE = "COLOR_UNKNOWN_STATE";
85 86
    
86
    public static final Color COLOR_LOCAL_NEW = Color.GREEN.darker();
87
    public static final Color COLOR_LOCAL_MODIFIED = Color.BLUE.darker();
88
    public static final Color COLOR_LOCAL_UNMODIFIED = Color.BLACK;
89
    public static final Color COLOR_LOCAL_AND_REPOSITORY_MODIFIED = Color.RED.brighter();
90
    public static final Color COLOR_REPOSITORY_NEW = Color.MAGENTA.darker();
91
    public static final Color COLOR_REPOSITORY_MODIFIED = Color.DARK_GRAY;
92
    public static final Color COLOR_CONFLICT = Color.RED;
93
    public static final Color COLOR_UNKNOWN_STATE = Color.LIGHT_GRAY;
87
    private static final Color COLOR_LOCAL_NEW = Color.GREEN.darker();
88
    private static final Color COLOR_LOCAL_MODIFIED = Color.BLUE.darker();
89
    private static final Color COLOR_LOCAL_UNMODIFIED = Color.BLACK;
90
    private static final Color COLOR_LOCAL_AND_REPOSITORY_MODIFIED = Color.RED.brighter();
91
    private static final Color COLOR_REPOSITORY_NEW = Color.ORANGE.darker().darker();
92
    private static final Color COLOR_REPOSITORY_MODIFIED = Color.MAGENTA.darker();
93
    private static final Color COLOR_CONFLICT = Color.RED;
94
    private static final Color COLOR_UNKNOWN_STATE = Color.LIGHT_GRAY;
94 95
    
95
    public static final Color COLOR_OUTDATED = COLOR_REPOSITORY_MODIFIED;
96
    public static final Color COLOR_OUTDATED_AND_MODIFIED = COLOR_LOCAL_AND_REPOSITORY_MODIFIED;
96
    private static Map<String, Color> entityColors = null;
97 97
    
98
    static {
99
        loadColors();
100
    }
101
    
98 102
    public static String getHTMLColorTag(Color color, String text) {
99 103
        return getHTMLColorTag(color, false, text);
100 104
    }
......
102 106
    public static String getHTMLColorTag(Color color, boolean bold, String text) {
103 107
        String pattern;
104 108
        if( bold ) {
105
            pattern = "<html><font color='rgb(%s, %s, %s)'><b>%s</b></font></html>";
109
            pattern = "<html><font color='rgb(%s, %s, %s)'><i>%s</i></font></html>";
106 110
        } else {
107 111
            pattern = "<html><font color='rgb(%s, %s, %s)'>%s</font></html>";
108 112
        }
......
118 122
    public static String getHTMLColorTag(int state, String text) {
119 123
        switch (state) {
120 124
            case STATE_LOCAL_UNMODIFIED:
121
                return getHTMLColorTag(COLOR_LOCAL_UNMODIFIED, false, text);
125
                return getHTMLColorTag(entityColors.get(ID_COLOR_LOCAL_UNMODIFIED), false, text);
122 126
            case STATE_LOCAL_NEW:
123
                return getHTMLColorTag(COLOR_LOCAL_NEW, false, text);
127
                return getHTMLColorTag(entityColors.get(ID_COLOR_LOCAL_NEW), false, text);
124 128
            case STATE_LOCAL_MODIFIED:
125
                return getHTMLColorTag(COLOR_LOCAL_MODIFIED, false, text);
129
                return getHTMLColorTag(entityColors.get(ID_COLOR_LOCAL_MODIFIED), false, text);
126 130
            case STATE_LOCAL_OUTDATED:
127
                return getHTMLColorTag(COLOR_REPOSITORY_MODIFIED, false, text);
131
                return getHTMLColorTag(entityColors.get(ID_COLOR_REPOSITORY_MODIFIED), false, text);
128 132
            case STATE_LOCAL_OUTDATED_AND_MODIFIED:
129
                return getHTMLColorTag(COLOR_LOCAL_AND_REPOSITORY_MODIFIED, false, text);
133
                return getHTMLColorTag(entityColors.get(ID_COLOR_LOCAL_AND_REPOSITORY_MODIFIED), false, text);
130 134
            case STATE_CONFLICT:
131
                return getHTMLColorTag(COLOR_CONFLICT, false, text);
135
                return getHTMLColorTag(entityColors.get(ID_COLOR_CONFLICT), false, text);
132 136
            case STATE_REPOSITORY_NEW:
133
                return getHTMLColorTag(COLOR_REPOSITORY_NEW, false, text);
137
                return getHTMLColorTag(entityColors.get(ID_COLOR_REPOSITORY_NEW), false, text);
134 138
            default:
135
                return getHTMLColorTag(COLOR_UNKNOWN_STATE, false, text);
139
                return getHTMLColorTag(entityColors.get(ID_COLOR_UNKNOWN_STATE), false, text);
136 140
        }
137 141
    }
138 142
    
......
149 153
    public static void setColorCompoment(Component c, int state) {
150 154
        switch (state) {
151 155
            case STATE_LOCAL_UNMODIFIED:
152
                setColorCompoment(c, COLOR_LOCAL_UNMODIFIED, false);
156
                setColorCompoment(c, entityColors.get(ID_COLOR_LOCAL_UNMODIFIED), false);
153 157
                break;
154 158
            case STATE_LOCAL_NEW:
155
                setColorCompoment(c, COLOR_LOCAL_NEW, false);
159
                setColorCompoment(c, entityColors.get(ID_COLOR_LOCAL_NEW), false);
156 160
                break;
157 161
            case STATE_LOCAL_MODIFIED:
158
                setColorCompoment(c, COLOR_LOCAL_MODIFIED, false);
162
                setColorCompoment(c, entityColors.get(ID_COLOR_LOCAL_MODIFIED), false);
159 163
                break;
160 164
            case STATE_LOCAL_OUTDATED:
161
                setColorCompoment(c, COLOR_REPOSITORY_MODIFIED, false);
165
                setColorCompoment(c, entityColors.get(ID_COLOR_REPOSITORY_MODIFIED), false);
162 166
                break;
163 167
            case STATE_LOCAL_OUTDATED_AND_MODIFIED:
164
                setColorCompoment(c, COLOR_LOCAL_AND_REPOSITORY_MODIFIED, false);
168
                setColorCompoment(c, entityColors.get(ID_COLOR_LOCAL_AND_REPOSITORY_MODIFIED), false);
165 169
                break;
166 170
            case STATE_CONFLICT:
167
                setColorCompoment(c, COLOR_CONFLICT, false);
171
                setColorCompoment(c, entityColors.get(ID_COLOR_CONFLICT), false);
168 172
                break;
169 173
            case STATE_REPOSITORY_NEW:
170
                setColorCompoment(c, COLOR_REPOSITORY_NEW, false);
174
                setColorCompoment(c, entityColors.get(ID_COLOR_REPOSITORY_NEW), false);
171 175
                break;
172 176
            default:
173
                setColorCompoment(c, COLOR_UNKNOWN_STATE, false);
177
                setColorCompoment(c, entityColors.get(ID_COLOR_UNKNOWN_STATE), false);
174 178
                break;
175 179
        }
176 180
    }
......
255 259
        );
256 260
        return true;
257 261
    }
262
    
263
    private static void loadColors() {
264
        entityColors = new HashMap<>();
265
        entityColors.put(ID_COLOR_LOCAL_NEW,COLOR_LOCAL_NEW);
266
        entityColors.put(ID_COLOR_LOCAL_MODIFIED,COLOR_LOCAL_MODIFIED);
267
        entityColors.put(ID_COLOR_LOCAL_UNMODIFIED,COLOR_LOCAL_UNMODIFIED);
268
        entityColors.put(ID_COLOR_LOCAL_AND_REPOSITORY_MODIFIED,COLOR_LOCAL_AND_REPOSITORY_MODIFIED);
269
        entityColors.put(ID_COLOR_REPOSITORY_NEW,COLOR_REPOSITORY_NEW);
270
        entityColors.put(ID_COLOR_REPOSITORY_MODIFIED,COLOR_REPOSITORY_MODIFIED);
271
        entityColors.put(ID_COLOR_CONFLICT,COLOR_CONFLICT);
272
        entityColors.put(ID_COLOR_UNKNOWN_STATE,COLOR_UNKNOWN_STATE);
273
        InputStream x = VCSGisSwingCommons.class.getClassLoader().getResourceAsStream("/VCSGisEntityColors.properties");
274
        Coercion toColor = ToolsLocator.getDataTypesManager().getCoercion(DataTypes.COLOR);
275
        if(x != null){
276
            try {
277
                Properties prop = new Properties();
278
                prop.load(x);
279
                for (Map.Entry<Object, Object> entry : prop.entrySet()) {
280
                    try {
281
                        entityColors.put((String)entry.getKey(), (Color) toColor.coerce(entry.getValue()));
282
                    } catch (CoercionException ex) {
283
                        LOGGER.trace("Can't parse color "+Objects.toString(entry.getKey()), ex);
284
                        //DO NOTHING
285
                    }
286
                }
287
            } catch (IOException ex) {
288
                LOGGER.trace("Can't load colors.", ex);
289
                //DO NOTHING
290
            }
291
        }
292
        
293
    }
258 294

  
259 295
}

Also available in: Unified diff