⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adapterfactory.java

📁 eclise rcp 项目,是非常好的学习源码
💻 JAVA
字号:
/*******************************************************************************
 * Copyright (c) 2007 Siemens AG
 * 
 * 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:
 *    Kai T鰀ter - initial API and implementation
 *******************************************************************************/

package com.siemens.ct.mp3m.ui.views;

import org.eclipse.core.runtime.IAdapterFactory;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.model.IWorkbenchAdapter;
import org.eclipse.ui.plugin.AbstractUIPlugin;

import com.siemens.ct.mp3m.model.physical.Mp3Directory;
import com.siemens.ct.mp3m.model.physical.Mp3File;


public class AdapterFactory implements IAdapterFactory {

    private final String ID = "com.siemens.ct.mp3m.ui.views"; //$NON-NLS-1$
    
    private IWorkbenchAdapter directoryAdapter = new IWorkbenchAdapter() {
        public Object getParent(Object o) {
            return ((Mp3Directory) o).getDirectory();
        }

        public String getLabel(Object o) {
            Mp3Directory directory = ((Mp3Directory) o);
            Mp3File[] entries = directory.getMp3Files();
            if(directory.isContentsInitialized()) {
            	return directory.getName() + " (" + entries.length + ")"; //$NON-NLS-1$ //$NON-NLS-2$
            } else {
            	return directory.getName() + " " + Messages.getString("AdapterFactory.FetchingContent"); //$NON-NLS-1$
            }
        }

        public ImageDescriptor getImageDescriptor(Object object) {
            return AbstractUIPlugin.imageDescriptorFromPlugin(ID, IImageKeys.FOLDER);
        }

        public Object[] getChildren(Object o) {
            return ((Mp3Directory) o).getMp3Files();
        }
    };

    private IWorkbenchAdapter entryAdapter = new IWorkbenchAdapter() {
        public Object getParent(Object o) {
            return ((Mp3File) o).getDirectory();
        }

        public String getLabel(Object o) {
            Mp3File entry = ((Mp3File) o);
            return entry.getName();
        }

        public ImageDescriptor getImageDescriptor(Object object) {
            return AbstractUIPlugin.imageDescriptorFromPlugin(ID, IImageKeys.MP3);
        }

        public Object[] getChildren(Object o) {
            return new Object[0];
        }
    };

    @SuppressWarnings("unchecked") //$NON-NLS-1$
	public Object getAdapter(Object adaptableObject, Class adapterType) {
        if (adapterType == IWorkbenchAdapter.class && adaptableObject instanceof Mp3Directory)
            return directoryAdapter;
        if (adapterType == IWorkbenchAdapter.class && adaptableObject instanceof Mp3File)
            return entryAdapter;
        return null;
    }

    @SuppressWarnings("unchecked") //$NON-NLS-1$
	public Class[] getAdapterList() {
        return new Class[] { IWorkbenchAdapter.class };
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -