Package org.dyno.visual.swing.base

Source Code of org.dyno.visual.swing.base.ResourceIcon

/************************************************************************************
* Copyright (c) 2008 William Chen.                                                 *
*                                                                                  *
* 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 *
*                                                                                  *
* Use is subject to the terms of Eclipse Public License v1.0.                      *
*                                                                                  *
* Contributors:                                                                    *
*     William Chen - initial API and implementation.                               *
************************************************************************************/

package org.dyno.visual.swing.base;

import java.awt.Component;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;

import javax.swing.Icon;
import javax.swing.ImageIcon;

import org.dyno.visual.swing.VisualSwingPlugin;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IPackageFragmentRoot;
import org.eclipse.jdt.core.JavaModelException;

public class ResourceIcon implements Icon {
  private String path;
  private Icon icon;
  public ResourceIcon(Icon icon, String path){
    this.path = path;
    this.icon = icon;   
  }
  public ResourceIcon(String p) {
    this.path = p;
    IJavaProject prj = VisualSwingPlugin.getCurrentProject();
    IProject project = prj.getProject();
    IResource resource = project.findMember(new Path(p));
    if (resource == null) {
      IPackageFragmentRoot[] roots;
      try {
        roots = prj.getPackageFragmentRoots();
        for (IPackageFragmentRoot root : roots) {
          if (!root.isArchive()) {
            String src = root.getElementName();
            src = "/" + src + p;
            resource = project.findMember(new Path(src));
            if (resource != null) {
              String ext = resource.getFileExtension();
              if (ext.equals("gif") || ext.equals("png") || ext.equals("jpg")) {
                IPath fullPath = project.getWorkspace().getRoot().getRawLocation().append(resource.getFullPath());
                String fullpath = fullPath.toString();
                Image image = Toolkit.getDefaultToolkit().getImage(fullpath);
                icon = new ImageIcon(image);
              } else {
                break;
              }
            }
          }
        }
      } catch (JavaModelException e) {
        VisualSwingPlugin.getLogger().error(e);
      }
    }
  }

 
  public int getIconHeight() {
    return icon == null ? 0 : icon.getIconHeight();
  }

 
  public int getIconWidth() {
    return icon == null ? 0 : icon.getIconWidth();
  }

 
  public void paintIcon(Component c, Graphics g, int x, int y) {
    if (icon == null) {
    } else {
      icon.paintIcon(c, g, x, y);
    }
  }

  public String toString() {
    return path;
  }
}

TOP

Related Classes of org.dyno.visual.swing.base.ResourceIcon

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.