Revision 168 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.impl/src/main/java/org/gvsig/tools/swing/impl/dynobject/DefaultDynObjectSwingManager.java

View differences:

DefaultDynObjectSwingManager.java
26 26
 */
27 27
package org.gvsig.tools.swing.impl.dynobject;
28 28

  
29
import java.util.HashMap;
30
import java.util.Map;
31

  
29
import org.gvsig.tools.dynobject.DynClass;
32 30
import org.gvsig.tools.dynobject.DynField;
33 31
import org.gvsig.tools.dynobject.DynObject;
32
import org.gvsig.tools.service.AbstractMultiServiceImplManager;
33
import org.gvsig.tools.service.Service;
34
import org.gvsig.tools.service.ServiceException;
35
import org.gvsig.tools.swing.api.dynobject.DynObjectModel;
34 36
import org.gvsig.tools.swing.api.dynobject.DynObjectSwingManager;
35 37
import org.gvsig.tools.swing.api.dynobject.JDynObjectComponent;
36
import org.gvsig.tools.swing.api.dynobject.dynfield.DynFieldComponentFactory;
37 38
import org.gvsig.tools.swing.api.dynobject.dynfield.JDynFieldComponent;
39
import org.gvsig.tools.swing.api.dynobject.dynfield.ValueField;
40
import org.gvsig.tools.swing.spi.DynObjectSwingServiceManager;
41
import org.gvsig.tools.swing.spi.ToolsSwingServiceLocator;
38 42

  
39 43
/**
40 44
 * Default {@link DynObjectSwingManager} implementation.
......
45 49
 * 
46 50
 * @author 2010- C?sar Ordi?ana - gvSIG team
47 51
 */
48
public class DefaultDynObjectSwingManager implements DynObjectSwingManager {
52
public class DefaultDynObjectSwingManager extends
53
	AbstractMultiServiceImplManager implements DynObjectSwingManager {
49 54

  
50
	private Map<Integer, DynFieldComponentFactory> fieldFactories = new HashMap<Integer, DynFieldComponentFactory>(
51
			10);
52 55

  
53
	public JDynObjectComponent createJDynObjectComponent(DynObject dynObject) {
54
		return createJDynObjectComponent(dynObject, MODE_FORM);
55
	}
56
    //
57
    // private Map<Integer, DynFieldComponentFactory> fieldFactories = new
58
    // HashMap<Integer, DynFieldComponentFactory>(
59
    // 10);
56 60

  
57
	public JDynObjectComponent createJDynObjectComponent(DynObject dynObject,
58
			String mode) {
59
		return new DefaultJDynObjectComponent(dynObject);
60
	}
61
    /**
62
     * @param serviceManager
63
     */
64
    public DefaultDynObjectSwingManager() {
65
	super(ToolsSwingServiceLocator.getServiceManager());
66
    }
61 67

  
62
	public JDynFieldComponent createJDynFieldComponent(DynField field,
63
			DynObject dynObject) {
64
		DynFieldComponentFactory factory = getFactoryFor(field.getType());
65
		return (factory == null) ? null : factory.createJDynFieldComponent(
66
				field, dynObject);
67
	}
68
    /* (non-Javadoc)
69
     * @see org.gvsig.tools.swing.api.dynobject.DynObjectSwingManager#createJDynObjectModel(org.gvsig.tools.dynobject.DynClass)
70
     */
71
    public DynObjectModel createDynObjectModel(DynClass dynClass)
72
	    throws ServiceException {
73
	return new DefaultDynObjectModel(dynClass, true);
74
    }
68 75

  
69
	public void registerDynFieldComponentFactory(
70
			DynFieldComponentFactory factory, int dataType) {
71
		fieldFactories.put(dataType, factory);
72
	}
76
    /* (non-Javadoc)
77
     * @see org.gvsig.tools.swing.api.dynobject.DynObjectSwingManager#createEmptyDynObjectModel(org.gvsig.tools.dynobject.DynClass)
78
     */
79
    public DynObjectModel createEmptyDynObjectModel(DynClass dynClass)
80
	    throws ServiceException {
81
	return new DefaultDynObjectModel(dynClass, false);
82
    }
73 83

  
74
	private DynFieldComponentFactory getFactoryFor(int dataType) {
75
		return fieldFactories.get(dataType);
76
	}
84
    /* (non-Javadoc)
85
     * @see org.gvsig.tools.swing.api.dynobject.DynObjectSwingManager#createJDynFieldComponent(org.gvsig.tools.dynobject.DynField, org.gvsig.tools.dynobject.DynObject)
86
     */
87
    public JDynFieldComponent createJDynFieldComponent(ValueField parent, DynField field) throws ServiceException {
88
	JDynFieldComponent component;
89
	if (field.getElementsType()!=null)
90
	    component = ((DynObjectSwingServiceManager) this.getServiceManager()).getJDynFieldComponent(parent,field, true);
91
	else
92
	    component = ((DynObjectSwingServiceManager) this.getServiceManager()).getJDynFieldComponent(parent,field, false);
93
	return component;
94
    }
77 95

  
96
    public JDynObjectComponent createJDynObjectComponent(DynObject dynObject) throws ServiceException {
97
	return createJDynObjectComponent(dynObject, createDynObjectModel(dynObject.getDynClass()));
98
    }
99

  
100
    public JDynObjectComponent createJDynObjectComponent(DynObject dynObject,
101
	    DynObjectModel model) throws ServiceException {
102
	return createJDynObjectComponent(dynObject, model, MODE_FORM);
103
    }
104

  
105

  
106

  
107
//    /*
108
//     * (non-Javadoc)
109
//     * 
110
//     * @see
111
//     * org.gvsig.tools.service.Manager#createServiceParameters(java.lang.String)
112
//     */
113
//    public DynObject createServiceParameters(String serviceName)
114
//	    throws ServiceException {
115
//
116
//	return ToolsLocator.getDynObjectManager().createDynObject(serviceName);
117
//    }
118

  
119
    public JDynObjectComponent createJDynObjectComponent(DynObject dynObject,
120
	    DynObjectModel model, String mode) throws ServiceException {
121
	DynObject serviceParams = this.createServiceParameters(getServiceName(dynObject,mode));
122
	
123
	serviceParams
124
		.setDynValue(JDynObjectComponent.PARAMETERS.DYNMODEL, model);
125
	serviceParams.setDynValue(JDynObjectComponent.PARAMETERS.DYNOBJECT,
126
		dynObject);
127

  
128
	return (JDynObjectComponent) this.getService(serviceParams);
129

  
130
    }
131
    
132
    public JDynObjectComponent createJDynObjectComponent(DynObject dynObject,
133
	    String mode) throws ServiceException {
134
	return createJDynObjectComponent(dynObject, createDynObjectModel(dynObject.getDynClass()));
135
    }
136

  
137
    /* (non-Javadoc)
138
     * @see org.gvsig.tools.service.Manager#getService(org.gvsig.tools.dynobject.DynObject)
139
     */
140
    public Service getService(DynObject serviceParams) throws ServiceException {
141
	return this.getServiceManager().createService(serviceParams);
142
    }
143

  
144
    /**
145
     * @param dynObject
146
     * @param mode
147
     * @return
148
     */
149
    private String getServiceName(DynObject dynObject, String mode) {
150
	return mode;
151
    }
78 152
}

Also available in: Unified diff