package com.cari.voip.keyboard.soft.adapter.switchUsers; 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.switchUsers.SwitchUser; import com.cari.voip.keyboard.soft.model.switchUsers.SwitchUsersGroup; import com.cari.voip.keyboard.soft.model.switchUsers.SwitchUsersManager; import com.cari.voip.keyboard.soft.model.switchUsers.SwitchUsersSession; public class SwitchUsersAdapterFactory implements IAdapterFactory { private IWorkbenchAdapter rootAdapter = new IWorkbenchAdapter(){ public Object getParent(Object o){ return null; } public String getLabel(Object o){ //int entriesNum = ((SwitchUsersManager)o).groupSize() + 1; //return "����["+Integer.toString(entriesNum)+"]"; return null; } public ImageDescriptor getImageDescriptor(Object object){ //return Activator.getImageDescriptor("icons/all_sc_obj.gif"); return null; } public Object[] getChildren(Object o){ return ((SwitchUsersSession)o).toGroupsArray(); } }; private ImageDescriptor groupImageDescriptor = Activator.getImageDescriptor("icons/all_sc_obj.gif"); private IWorkbenchAdapter managerAdapter = new IWorkbenchAdapter(){ public Object getParent(Object o){ return null; } public String getLabel(Object o){ return ((SwitchUsersManager)o).getName(); } public ImageDescriptor getImageDescriptor(Object object){ //return Activator.getImageDescriptor("icons/all_sc_obj.gif"); return groupImageDescriptor; } public Object[] getChildren(Object o){ return ((SwitchUsersManager)o).toGroupsArray(); } }; private IWorkbenchAdapter groupAdapter = new IWorkbenchAdapter(){ public Object getParent(Object o){ return ((SwitchUsersGroup)o).getParent(); } public String getLabel(Object o){ /* int entriesNum = ((SwitchUsersGroup)o).size(); return ((SwitchUsersGroup)o).getName()+"["+Integer.toString(entriesNum)+"]"; */ String label = ((SwitchUsersGroup)o).getName(); if(label.length() > 8){ label = label.substring(0, 7); label = label.concat(".."); } return label; } public ImageDescriptor getImageDescriptor(Object object){ return groupImageDescriptor; } public Object[] getChildren(Object o){ return ((SwitchUsersGroup)o).getSwitchUsersArray(); } }; private ImageDescriptor entryImageDescriptor = Activator.getImageDescriptor("icons/telephone16.png"); private IWorkbenchAdapter entryAdapter = new IWorkbenchAdapter(){ public Object getParent(Object o){ return null; } public String getLabel(Object o){ String label = ((SwitchUser)o).getName(); if(label.length() > 8){ label = label.substring(0, 7); label = label.concat(".."); } return label; } public ImageDescriptor getImageDescriptor(Object object){ return entryImageDescriptor; } public Object[] getChildren(Object o){ return new Object[0]; } }; @Override public Object getAdapter(Object adaptableObject, Class adapterType) { if(adapterType == IWorkbenchAdapter.class){ if(adaptableObject instanceof SwitchUsersSession){ return this.rootAdapter; } if(adaptableObject instanceof SwitchUsersManager ){ return this.managerAdapter; } if(adaptableObject instanceof SwitchUsersGroup){ return this.groupAdapter; } if(adaptableObject instanceof SwitchUser){ return this.entryAdapter; } } return null; } @Override public Class[] getAdapterList() { return new Class[]{IWorkbenchAdapter.class}; } }