Java tutorial
/******************************************************************************* * Copyright (c) 2003, 2007 s IT Solutions AT Spardat GmbH . * All rights reserved. This program and the accompanying materials * are 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: * s IT Solutions AT Spardat GmbH - initial API and implementation *******************************************************************************/ // @(#) $Id: BDTreeProvider.java 2106 2007-11-28 16:57:42Z s3460 $ package at.spardat.xma.gui.mapper; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.graphics.Image; /** * Label- and ContentProvider for the TreeViewer in the <tt>MapperDialog</tt> showing * the BusinessDatas. * * TODO Prio 1: change this class to a provider which updates the corresponding viewer * dependend of model changes. use a notification pattern to be informed about changes * @author YSD, 13.07.2003 09:35:22 */ public class BDTreeProvider extends LabelProvider implements ITreeContentProvider { /** * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) */ public Object[] getElements(Object inputElement) { return getChildren(inputElement); } /** * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object) */ public Object[] getChildren(Object parentElement) { if (parentElement instanceof MdlBDCollection) { return ((MdlBDCollection) parentElement).getBusinessDatas(); } else if (parentElement instanceof MdlBusinessObject) { return ((MdlBusinessObject) parentElement).getAttributes(); } else { return new Object[0]; } } /** * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object) */ public Object getParent(Object element) { if (element instanceof MdlBDCollection) { return null; } else if (element instanceof MdlBusinessObject) { return ((MdlBusinessObject) element).getBdColl(); } else if (element instanceof MdlAttribute) { return ((MdlAttribute) element).getBusinessData(); } else { throw new RuntimeException("unknown element " + element); } } /** * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object) */ public boolean hasChildren(Object element) { return getChildren(element).length > 0; } /** * @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) { } /** * @see org.eclipse.jface.viewers.IContentProvider#dispose() */ public void dispose() { } /** * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object) */ public Image getImage(Object element) { if (element instanceof MdlBusinessObject) { MdlBusinessObject bd = ((MdlBusinessObject) element); if (bd.isLoaded()) return MapperPlugin.getImage("class.gif"); else return MapperPlugin.getImage("classError.gif"); } else if (element instanceof MdlAttribute) { MdlAttribute attr = (MdlAttribute) element; if (attr.isLoaded()) return MapperPlugin.getImage("method.gif"); else return MapperPlugin.getImage("methodError.gif"); } return null; } /** * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object) */ public String getText(Object element) { if (element instanceof MdlBusinessObject) { MdlBusinessObject bd = ((MdlBusinessObject) element); return bd.getName() + " : " + bd.getClassName(); } else if (element instanceof MdlAttribute) { MdlAttribute attr = (MdlAttribute) element; return attr.getGUIString(); } return ""; } }