/** * @param manualActivityPath * @param pathDataMapping */ private void processManualActivityPath( ManualActivityPath manualActivityPath, Map<Path, DataMapping> pathDataMapping) { // Process Children for (Path path : manualActivityPath.getChildPaths()) { if (path instanceof IppSystemPath) { handleSystemPath((IppSystemPath) path); } else if (path instanceof DocumentPath) { handleDocumentPath((DocumentPath) path, pathDataMapping.get(path)); } else if (path.isEnumeration()) { handleEnumerationPath(path); } else if (path.isPrimitive()) { handlePrimitivePath(path); } else if (path.isList()) { handleListDataMapping(path); } else if (path.getChildPaths().size() > 0) { handleStructureDataMapping(path); } } // For Single Document Case IppDocumentInputController docController = getIfSingleDocument(); if (null != docController && null == docController.getValue()) { docController.setOpenDocument(true); docController.setEnableOpenDocument(false); } }
/* * 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()); } }