Package bndtools.release.ui

Source Code of bndtools.release.ui.TreeLabelProvider

/*******************************************************************************
* Copyright (c) 2012 Per Kr. Soreide.
* 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:
*     Per Kr. Soreide - initial API and implementation
*******************************************************************************/
package bndtools.release.ui;

import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.swt.graphics.Image;

import aQute.bnd.differ.Baseline;
import aQute.bnd.service.diff.Diff;
import aQute.bnd.service.diff.Tree;
import aQute.bnd.service.diff.Type;

public class TreeLabelProvider extends ColumnLabelProvider {

  @Override
    public String getText(Object element) {
    if (element instanceof Baseline) {
      return ((Baseline) element).getBsn();
    }

    if (element instanceof Diff) {
      Diff diff = (Diff) element;
      switch (diff.getType()) {
      case API:
        return Type.API.toString();
      case MANIFEST:
        return Type.MANIFEST.toString();
      case RESOURCES:
        return Type.RESOURCES.toString();
      case RESOURCE:
          return diff.getName();
      default:
        return diff.getName();
      }
    }
    if (element instanceof Tree) {
      Tree tree = (Tree) element;
      switch (tree.getType()) {
      case API:
        return Type.API.toString();
      case MANIFEST:
        return Type.MANIFEST.toString();
      case RESOURCES:
        return Type.RESOURCES.toString();
      case RESOURCE:
                return tree.getName();
      default:
        return tree.getName();
      }
    }
    return "";
  }

  @Override
    public Image getImage(Object element) {

    if (element instanceof Baseline) {
        return BundleTreeImages.resolveImage("bundle", ((Baseline)element).getDiff().getDelta().toString().toLowerCase(), null, null); //$NON-NLS-1$
    }
    if (element instanceof Diff) {
      Diff tree = (Diff) element;
      String type = tree.getType().toString().toLowerCase();

      String strDelta = getDeltaString(tree);
      String impExp = null;
      if (tree.getType() == Type.PACKAGE) {
        impExp = "export"; //$NON-NLS-1$
      } else if (tree.getType() == Type.RESOURCE) {
          String name = tree.getName();
        int idx = name.lastIndexOf('.');
        if (idx > -1) {
          type = "dot_" + name.substring(idx + 1); //$NON-NLS-1$
        }
      }
      return BundleTreeImages.resolveImage(type, strDelta, impExp, null);
    }
    if (element instanceof Tree) {
      Tree tree = (Tree) element;
      String type = tree.getType().toString().toLowerCase();
      String impExp = null;
      if (tree.getType() == Type.PACKAGE) {
        impExp = "export"; //$NON-NLS-1$
      } else if (tree.getType() == Type.RESOURCE) {
                String name = tree.getName();
        int idx = name.lastIndexOf('.');
        if (idx > 0) {
          type = "dot_" + name.substring(idx + 1); //$NON-NLS-1$
        }
      }
      return BundleTreeImages.resolveImage(type, null, impExp, null);
    }
    return null;
  }

  private static String getDeltaString(Diff diff) {
      return diff.getDelta().toString().toLowerCase();
  }

}
TOP

Related Classes of bndtools.release.ui.TreeLabelProvider

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.