/******************************************************************************* * Copyright (c) 2008 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.smooks.graphical.editors.model.freemarker; import java.util.HashMap; import java.util.List; import java.util.Map; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.Viewer; import org.jboss.tools.smooks.SmooksModelUtils; import org.jboss.tools.smooks.configuration.editors.xml.XMLStructuredDataContentProvider; import org.jboss.tools.smooks.model.freemarker.Freemarker; import org.jboss.tools.smooks.model.freemarker.Template; import org.jboss.tools.smooks.model.smooks.ParamType; import org.jboss.tools.smooks.model.smooks.SmooksFactory; /** * @author Dart * */ public class FreemarkerContentProvider implements ITreeContentProvider { private ITreeContentProvider parentProvider = null; private ITreeContentProvider xmlObjectContentProvider = new XMLStructuredDataContentProvider(); private Map<Object, Object> buffer = new HashMap<Object, Object>(); public FreemarkerContentProvider(ITreeContentProvider parentProvider) { this.parentProvider = parentProvider; } public void cleanBuffer(){ if(buffer != null){ buffer.clear(); } } /* * (non-Javadoc) * * @see * org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang. * Object) */ public Object[] getChildren(Object parentElement) { if (parentElement instanceof Freemarker) { Template template = ((Freemarker) parentElement).getTemplate(); if (template != null) { Object obj = buffer.get(template); String comments = SmooksModelUtils.getAnyTypeComment(template); List<ParamType> params = SmooksModelUtils.getParams(template); ParamType param = SmooksFactory.eINSTANCE.createParamType(); param.setName("name"); //$NON-NLS-1$ param.setStringValue("value"); //$NON-NLS-1$ } return new Object[] {}; } return xmlObjectContentProvider.getChildren(parentElement); } /* * (non-Javadoc) * * @see * org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object * ) */ public Object getParent(Object element) { return xmlObjectContentProvider.getParent(element); } /* * (non-Javadoc) * * @see * org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang. * Object) */ public boolean hasChildren(Object element) { if (element instanceof Freemarker) { return true; } // if(element instanceof AbstractXMLObject && XSLModelAnalyzer.isXSLTagObject((AbstractXMLObject)element)){ // return !((AbstractXMLObject)element).getXMLNodeChildren().isEmpty(); // } return xmlObjectContentProvider.hasChildren(element); } /* * (non-Javadoc) * * @see * org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java * .lang.Object) */ public Object[] getElements(Object inputElement) { return parentProvider.getElements(inputElement); } /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.IContentProvider#dispose() */ public void dispose() { parentProvider.dispose(); xmlObjectContentProvider.dispose(); } /* * (non-Javadoc) * * @see * org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface * .viewers.Viewer, java.lang.Object, java.lang.Object) */ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { parentProvider.inputChanged(viewer, oldInput, newInput); } }