/** * <p>Copyright: Copyright (c) 2009</p> * <p>Company: �������ӹɷ����޹�˾</p> */ package com.hundsun.ares.studio.internal.core.registry; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.ui.plugin.AbstractUIPlugin; import com.hundsun.ares.studio.core.ARESCore; import com.hundsun.ares.studio.core.IARESResource; import com.hundsun.ares.studio.core.model.converter.IModelConverter; import com.hundsun.ares.studio.core.registry.ICommonExtensionConstants; import com.hundsun.ares.studio.core.registry.IResDescriptor; import com.hundsun.ares.studio.internal.core.ARESResource; /** * ��Դ��չ��Descriptr * @author sundl */ public class ResDescriptor extends OrderableDescriptor implements IResDescriptor { private IModelConverter converter; private String category; private String fileName; private boolean copyable; private boolean deleteable; private boolean moveable; private boolean renameable; public boolean isCopyable() { return copyable; } public boolean isDeleteable() { return deleteable; } public boolean isMoveable() { return moveable; } public ResDescriptor(IConfigurationElement e) { super(e); } /* (non-Javadoc) * @see com.hundsun.ares.devtool.common.core.IResDescriptor#createCommonResource() */ public IARESResource createCommonResource() { return new ARESResource(); } protected ImageDescriptor getDefaultImageDescriptor() { return AbstractUIPlugin.imageDescriptorFromPlugin(ARESCore.PLUGIN_ID, "icons/obj16/p_data.gif"); } /* (non-Javadoc) * @see com.hundsun.ares.devtool.common.core.IResDescriptor#createInfo() */ public Object createInfo() { String info_class = configElement.getAttribute(ICommonExtensionConstants.INFO_CLASS); if(info_class != null) { try { return configElement.createExecutableExtension(ICommonExtensionConstants.INFO_CLASS); } catch (CoreException e) { e.printStackTrace(); } } return null; } /* (non-Javadoc) * @see com.hundsun.ares.studio.internal.core.registry.CommonDescriptor#loadFromExtension() */ @Override protected void loadFromExtension() { super.loadFromExtension(); category = configElement.getAttribute(ICommonExtensionConstants.CATEGORY); fileName = configElement.getAttribute(ICommonExtensionConstants.FILENAME); copyable = readBoolean(ICommonExtensionConstants.COPYABLE, true); deleteable = readBoolean(ICommonExtensionConstants.DELTEABLE, true); moveable = readBoolean(ICommonExtensionConstants.MOVEABLE, true); renameable = readBoolean(ICommonExtensionConstants.RENAMEABLE, true); } /* (non-Javadoc) * @see com.hundsun.ares.devtool.common.core.IResDescriptor#getConverter() */ public IModelConverter getConverter() { if (converter == null) { try { converter = (IModelConverter)configElement.createExecutableExtension(ICommonExtensionConstants.CONVERTER); } catch (CoreException e) { e.printStackTrace(); } } return converter; } /* (non-Javadoc) * @see com.hundsun.ares.studio.core.registry.IResDescriptor#getCategory() */ public String getCategory() { return category; } /* (non-Javadoc) * @see com.hundsun.ares.studio.core.registry.IResDescriptor#getFileName() */ public String getFileName() { return fileName; } /* (non-Javadoc) * @see com.hundsun.ares.studio.core.registry.IResDescriptor#isRenameable() */ public boolean isRenameable() { return renameable; } }