private void replaceToReference(MapEntryModel entry) { for (DFPropModel child : entry.getChild()) { if (child instanceof MapModel) { boolean update = false; DFPropModel[] elements = child.getChild(); for (int i = 0; i < elements.length; i++) { DFPropModel element = elements[i]; if (element instanceof NamedModel) { try { IFile refFile = getReferencesFile((NamedModel) element); if (refFile.exists()) { String source = getReferencesSource(refFile); DFPropFileModel propModel = new DFPropModelParser().parse(source); propModel.setFileName(refFile.getName()); propModel.setFilePath(refFile.getProjectRelativePath().toString()); propModel.setReferences(true); elements[i] = new DFPropReferenceModel((NamedModel) element, propModel); update = true; } } catch (CoreException e) { } } } if (update) { ((MapModel) child).replaceChild(elements); } } } }
/** * Create DFMapModel for Document. * * @return Map Property Model Object. */ protected DFPropFileModel createDFModel() { IEditorInput input = getEditorInput(); IDocument document = getDocumentProvider().getDocument(input); String source = document.get(); DFPropFileModel propModel = new DFPropModelParser().parse(source); String name = input.getName(); propModel.setFileName(name); if (input instanceof IFileEditorInput) { IFile file = ((IFileEditorInput) input).getFile(); propModel.setFilePath(file.getProjectRelativePath().toString()); } if (canSplitMapFile()) { loadReferenceModel(propModel); } return propModel; }
protected void loadReferenceModel(DFPropFileModel master) { for (DFPropModel topEntry : master.getChild()) { if (topEntry instanceof MapModel) { for (DFPropModel entry : topEntry.getChild()) { if (entry instanceof MapEntryModel && "$$split$$".equals(((MapEntryModel) entry).getNameText())) { replaceToReference((MapEntryModel) entry); } } } } }