it.eng.spagobi.studio.core.util.SdkFunctionalityTreeGenerator.java Source code

Java tutorial

Introduction

Here is the source code for it.eng.spagobi.studio.core.util.SdkFunctionalityTreeGenerator.java

Source

/**
 SpagoBI, the Open Source Business Intelligence suite
    
 Copyright (C) 2012 Engineering Ingegneria Informatica S.p.A. - SpagoBI Competency Center
 This Source Code Form is subject to the terms of the Mozilla Public
 License, v. 2.0. If a copy of the MPL was not distributed with this file,
 You can obtain one at http://mozilla.org/MPL/2.0/.
     
**/
package it.eng.spagobi.studio.core.util;

import it.eng.spagobi.studio.core.Activator;
import it.eng.spagobi.studio.utils.bo.Document;
import it.eng.spagobi.studio.utils.bo.Functionality;
import it.eng.spagobi.studio.utils.util.ImageDescriptorGatherer;

import java.util.HashMap;

import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;

public class SdkFunctionalityTreeGenerator {

    Tree tree = null;
    Display display = null;
    Composite container = null;
    ImageDescriptor folderDescriptor = null;
    ImageDescriptor treeBaseDescriptor = null;

    HashMap<String, ImageDescriptor> imageDescriptors = null;

    public Tree generateTree(Composite parent, Functionality func) {
        container = parent;
        folderDescriptor = ImageDescriptorGatherer.getImageDesc("folder.gif", Activator.PLUGIN_ID);
        treeBaseDescriptor = ImageDescriptorGatherer.getImageDesc("treebase.gif", Activator.PLUGIN_ID);
        initializeField();

        tree = new Tree(parent, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
        TreeItem root = new TreeItem(tree, SWT.SINGLE);
        root.setText("Functionalities");
        root.setImage(treeBaseDescriptor.createImage());
        createItemsList(root, func);

        return tree;
    }

    // Private recursive method that adds documents in tree
    // builds the tree with TreeItem named parent as root
    private void createItemsList(TreeItem parent, Functionality func) {

        Functionality[] sdkFuncArray = func.getContainedFunctionalities();

        if (sdkFuncArray != null) {
            for (Functionality functionality : sdkFuncArray) {
                TreeItem currItem = new TreeItem(parent, SWT.SINGLE);
                currItem.setText(functionality.getName());
                currItem.setData(functionality);

                currItem.setImage(folderDescriptor.createImage());
                createItemsList(currItem, functionality);

                Document[] sdkDocuments = functionality.getContainedDocuments();
                if (sdkDocuments != null) {
                    for (Document document : sdkDocuments) {
                        createDocumentsList(currItem, document);
                    }
                }
            }
        }

    }

    private void createDocumentsList(TreeItem parent, Document doc) {
        TreeItem currDoc = new TreeItem(parent, SWT.CHECK);
        currDoc.setText(doc.getName());
        currDoc.setData(doc);
        if (doc.getType() != null) {
            ImageDescriptor descriptor = imageDescriptors.get(doc.getType().toUpperCase());
            if (descriptor != null) {
                currDoc.setImage(descriptor.createImage());
            }
        }
    }

    private void initializeField() {
        imageDescriptors = new HashMap<String, ImageDescriptor>();
        ImageDescriptor reportDescriptor = ImageDescriptorGatherer.getImageDesc("objecticon_REPORT.png",
                Activator.PLUGIN_ID);
        ImageDescriptor olapDescriptor = ImageDescriptorGatherer.getImageDesc("objecticon_OLAP.png",
                Activator.PLUGIN_ID);
        ImageDescriptor dashDescriptor = ImageDescriptorGatherer.getImageDesc("objecticon_DASH.png",
                Activator.PLUGIN_ID);
        ImageDescriptor geoDescriptor = ImageDescriptorGatherer.getImageDesc("objecticon_MAP.png",
                Activator.PLUGIN_ID);
        ImageDescriptor officeDocumentDescriptor = ImageDescriptorGatherer.getImageDesc("objecticon_OFFICE_DOC.png",
                Activator.PLUGIN_ID);
        ImageDescriptor etlDescriptor = ImageDescriptorGatherer.getImageDesc("objecticon_ETL.png",
                Activator.PLUGIN_ID);
        ImageDescriptor qbeDescriptor = ImageDescriptorGatherer.getImageDesc("objecticon_DATAMART.png",
                Activator.PLUGIN_ID);
        ImageDescriptor dossierDescriptor = ImageDescriptorGatherer.getImageDesc("objecticon_DOSSIER.png",
                Activator.PLUGIN_ID);
        ImageDescriptor compositeDescriptor = ImageDescriptorGatherer
                .getImageDesc("objecticon_COMPOSITE_DOCUMENT.png", Activator.PLUGIN_ID);
        ImageDescriptor kpiDescriptor = ImageDescriptorGatherer.getImageDesc("objecticon_KPI.png",
                Activator.PLUGIN_ID);
        ImageDescriptor dataMiningDescriptor = ImageDescriptorGatherer.getImageDesc("objecticon_DATA_MINING.png",
                Activator.PLUGIN_ID);

        imageDescriptors.put("REPORT", reportDescriptor);
        imageDescriptors.put("OLAP", olapDescriptor);
        imageDescriptors.put("DASH", dashDescriptor);
        imageDescriptors.put("MAP", geoDescriptor);
        imageDescriptors.put("OFFICE_DOC", officeDocumentDescriptor);
        imageDescriptors.put("ETL", etlDescriptor);
        imageDescriptors.put("DOSSIER", dossierDescriptor);
        imageDescriptors.put("DOCUMENT_COMPOSITE", compositeDescriptor);
        imageDescriptors.put("DATAMART", qbeDescriptor);
        imageDescriptors.put("KPI", kpiDescriptor);
        imageDescriptors.put("DATA_MINING", kpiDescriptor);

    }

}