package com.cari.voip.keyboard.soft.adapter.conf; import org.eclipse.core.runtime.IAdapterFactory; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.ui.model.IWorkbenchAdapter; import com.cari.voip.keyboard.soft.Activator; import com.cari.voip.keyboard.soft.model.Presence; import com.cari.voip.keyboard.soft.model.conf.ContactsEntry; import com.cari.voip.keyboard.soft.model.conf.ContactsGroup; import com.cari.voip.keyboard.soft.model.conf.IADsEntry; import com.cari.voip.keyboard.soft.model.conf.SwitchsEntry; public class ConfAdapterFactory implements IAdapterFactory { private IWorkbenchAdapter groupAdapter = new IWorkbenchAdapter(){ public Object getParent(Object o){ return ((ContactsGroup)o).getParent(); } public String getLabel(Object o){ int entriesNum = ((ContactsGroup)o).getEntries().length; return ((ContactsGroup)o).getName()+"["+Integer.toString(entriesNum)+"]"; } public ImageDescriptor getImageDescriptor(Object object){ return Activator.getImageDescriptor("icons/all_sc_obj.gif"); } public Object[] getChildren(Object o){ return ((ContactsGroup)o).getEntries(); } }; private IWorkbenchAdapter entryAdapter = new IWorkbenchAdapter(){ public Object getParent(Object o){ return ((ContactsEntry)o).getParent(); } public String getLabel(Object o){ return ((ContactsEntry)o).getName()+"("+((ContactsEntry)o).getUrl()+")"; } public ImageDescriptor getImageDescriptor(Object object){ String path = "icons/drive.png"; if(object instanceof SwitchsEntry){ path = "icons/server.png"; if(((SwitchsEntry)object).getPresence() == Presence.ON_LINE){ path = "icons/server.png"; }else if(((SwitchsEntry)object).getPresence() == Presence.OFF_LINE){ path = "icons/server_delete.png"; } return Activator.getImageDescriptor(path); } if(object instanceof IADsEntry){ return Activator.getImageDescriptor("icons/cup.png"); } return Activator.getImageDescriptor("icons/drive.png"); } public Object[] getChildren(Object o){ return new Object[0]; } }; @Override public Object getAdapter(Object adaptableObject, Class adapterType) { if(adapterType == IWorkbenchAdapter.class){ if(adaptableObject instanceof ContactsGroup){ return this.groupAdapter; } if(adaptableObject instanceof ContactsEntry){ return this.entryAdapter; } } return null; } @Override public Class[] getAdapterList() { return new Class[]{IWorkbenchAdapter.class}; } }