at.spardat.xma.gui.mapper.BDTreeProvider.java Source code

Java tutorial

Introduction

Here is the source code for at.spardat.xma.gui.mapper.BDTreeProvider.java

Source

/*******************************************************************************
 * 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 "";
    }

}