Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.projection / org.gvsig.projection.cresques / org.gvsig.projection.cresques.ui / src / main / java / org / gvsig / app / gui / panels / CRSSelectPanelFactory.java @ 40455

History | View | Annotate | Download (1.9 KB)

1
package org.gvsig.app.gui.panels;
2

    
3
import java.lang.reflect.InvocationTargetException;
4

    
5
import org.cresques.cts.IProjection;
6
import org.gvsig.app.gui.panels.crs.ICrsUIFactory;
7
import org.slf4j.Logger;
8
import org.slf4j.LoggerFactory;
9

    
10
public abstract class CRSSelectPanelFactory  {
11
        private static Logger logger = LoggerFactory.getLogger(CRSSelectPanelFactory.class);
12
        
13
        private static Class panelClass = null;
14
        private static Class uiFactory = null;
15

    
16
        public static void registerPanelClass(Class panelClass) {
17
                CRSSelectPanelFactory.panelClass = panelClass;
18
        }
19

    
20
        public static void registerUIFactory(Class uiFactory) {
21
                CRSSelectPanelFactory.uiFactory = uiFactory;
22
        }
23
        
24
        public static CRSSelectPanel getPanel(IProjection proj) {
25
                CRSSelectPanel panel = null;
26
                Class [] args = {IProjection.class};
27
                Object [] params = {proj};
28
                try {
29
                        panel = (CRSSelectPanel) panelClass.getConstructor(args).newInstance(params);
30
                } catch (IllegalArgumentException e) {
31
                        logger.error("Error creating CRS selection button", e);
32
                } catch (SecurityException e) {
33
                        logger.error("Error creating CRS selection button", e);
34
                } catch (InstantiationException e) {
35
                        logger.error("Error creating CRS selection button", e);
36
                } catch (IllegalAccessException e) {
37
                        logger.error("Error creating CRS selection button", e);
38
                } catch (InvocationTargetException e) {
39
                        logger.error("Error creating CRS selection button", e);
40
                } catch (NoSuchMethodException e) {
41
                        logger.error("Error creating CRS selection button", e);
42
                }
43
                return panel;
44
        }
45
                
46
        public static ICrsUIFactory getUIFactory() {
47
                ICrsUIFactory factory = null;
48
                try {
49
                        factory = (ICrsUIFactory) uiFactory.newInstance();
50
                } catch (InstantiationException e) {
51
                        logger.error("Error creating CRS UI factory. Switching to default factory", e);
52
                } catch (IllegalAccessException e) {
53
                        logger.error("Error creating CRS UI factory. Switching to default factory", e);
54
                }
55
                return factory;
56
        }
57
        
58
}