/* * Generates the top level panel for all Data Mappings of the Activity. */ @SuppressWarnings("unchecked") public void generateForm() { List<Object> allOutMappings = getApplicationContext().getAllOutDataMappings(); List<Object> allInMappings = getApplicationContext().getAllInDataMappings(); // Process OUT Mappings first List<Object> allMappings = new ArrayList<Object>(); allMappings.addAll(allOutMappings); allMappings.addAll(allInMappings); // Process All IN/OUT Mappings and collect all of them in ManualActivityPath Path path = null; ManualActivityPath manualActivityPath = new ManualActivityPath("MA" + activityInstance.getOID(), false); Map<Path, DataMapping> pathDataMappingMap = new HashMap<Path, DataMapping>(); Map<String, DataMapping> dataMappingMap = new HashMap<String, DataMapping>(); for (Object object : allMappings) { DataMapping dataMapping = (DataMapping) object; if (dataMappingMap.containsKey(dataMapping.getId())) { continue; } dataMappingMap.put(dataMapping.getId(), dataMapping); if (trace.isDebugEnabled()) { trace.debug( "Processing Data Mapping - " + dataMapping.getId() + ":" + dataMapping.getName()); } // Handle Data Mapping as per Type if (ModelUtils.isSystemDefinedData(dataMapping)) { path = createSystemDataMapping(dataMapping, manualActivityPath); } else if (ModelUtils.isDMSType(getModel(), dataMapping)) { path = createDMSDataMapping(dataMapping, allInMappings, manualActivityPath); } else if (ModelUtils.isEnumerationType(getModel(), dataMapping)) { path = createStructureDataMapping(dataMapping, manualActivityPath); } else if (ModelUtils.isPrimitiveType(getModel(), dataMapping)) { path = createPrimitiveDataMapping(dataMapping, manualActivityPath); } else if (ModelUtils.isStructuredType(getModel(), dataMapping)) { path = createStructureDataMapping(dataMapping, manualActivityPath); } if (null != path) { manualActivityPath.getChildPaths().add(path); pathDataMappingMap.put(path, dataMapping); } else { trace.warn( "Skipping Data Mapping - Not supported - " + dataMapping.getId() + ":" + dataMapping.getName()); } } // Set Label Provider along with required data for I18N formGenerator.setLabelProvider(new ManualActivityLabelProvider(getModel(), pathDataMappingMap)); setRootContainer(formGenerator.createRootComponent()); // Process ManualActivityPath and generate form processManualActivityPath(manualActivityPath, pathDataMappingMap); // Debug Information if (trace.isDebugEnabled()) { trace.debug("Full Path Map = " + getFullPathInputControllerMap()); trace.debug("Top Level Map = " + getTopLevelInputControllerMap()); trace.debug("Markup:\n" + generateMarkup()); } }