package kr.co.apexsoft.stella.modeler.explorer.core;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.eclipse.core.resources.IProject;
import org.eclipse.emf.facet.infra.browser.uicore.internal.model.ITreeElement;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.papyrus.infra.core.Activator;
import org.eclipse.papyrus.infra.core.resource.uml.UmlModel;
import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.plugin.AbstractUIPlugin;
public class ApexProjectWrapper implements ITreeElement {
private IProject _project;
/**
* key : diPath = file.getLocationURI().getPath()
*/
private Map<String, UmlModel> _umlModelMap;
private Map<String, Boolean> _isDisposedMap;
private Map<String, ServicesRegistry> _servicesRegistryMap;
private Map<String, ApexDIWrapper> _diWrapperMap;
private List<String> _deletedDIWrapperKey;
public ApexProjectWrapper(IProject project) {
_project = project;
_umlModelMap = new HashMap<String, UmlModel>();
_isDisposedMap = new HashMap<String, Boolean>();
_servicesRegistryMap = new HashMap<String, ServicesRegistry>();
_diWrapperMap = new HashMap<String, ApexDIWrapper>();
_deletedDIWrapperKey = new ArrayList<String>();
}
public Map<String, UmlModel> getUmlModelMap() {
return _umlModelMap;
}
public void put(String diPath, UmlModel s) {
_umlModelMap.put(diPath, s);
}
public void removeUmlModel(String diPath) {
_umlModelMap.remove(diPath);
}
public UmlModel getUmlModel(String diPath) {
return _umlModelMap.get(diPath);
}
public Map<String, Boolean> getIsDisposedMap() {
return _isDisposedMap;
}
public void put(String diPath, Boolean isDisposed) {
_isDisposedMap.put(diPath, isDisposed);
}
public void setIsDisposed(String diPath, Boolean isDisposed) {
_isDisposedMap.remove(diPath);
_isDisposedMap.put(diPath, isDisposed);
}
public boolean getIsDisposed(String diPath) {
boolean isDisposed;
if (_isDisposedMap.get(diPath) == null ) {
isDisposed = false;
} else {
isDisposed = _isDisposedMap.get(diPath).booleanValue();
}
return isDisposed;
}
public void removeIsDisposedMap(String diPath) {
_isDisposedMap.remove(diPath);
}
public Map<String, ServicesRegistry> getServicesRegistryMap() {
return _servicesRegistryMap;
}
public void put(String diPath, ServicesRegistry servicesRegistry) {
_servicesRegistryMap.put(diPath, servicesRegistry);
}
public void removeServicesRegistry(String diPath) {
_servicesRegistryMap.remove(diPath);
}
public ServicesRegistry getServicesRegistry(String diPath) {
return _servicesRegistryMap.get(diPath);
}
public void put(String diPath, ApexDIWrapper diWrapper) {
_diWrapperMap.put(diPath, diWrapper);
}
public ApexDIWrapper getDIWrapper(String diPath) {
return _diWrapperMap.get(diPath);
}
public Map<String, ApexDIWrapper> getDIWrapperMap() {
return _diWrapperMap;
}
public void removeDIWrapper(String diPath) {
_diWrapperMap.remove(diPath);
}
public void addDeletedDIWrapperKey(String diPath) {
_deletedDIWrapperKey.add(diPath);
}
public void removeDeletedDIWrapperKey(String diPath) {
_deletedDIWrapperKey.remove(diPath);
}
public List<String> getDeletedDIWrapperKeyList() {
return _deletedDIWrapperKey;
}
public IProject getProject() {
return _project;
}
@Override
public String getText() {
return _project.getName();
}
@Override
public Image getImage() {
ImageDescriptor imgDesc = AbstractUIPlugin.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/windowImage-16.png"); //$NON-NLS-1$
return imgDesc.createImage();
}
@Override
public Color getForeground() {
// TODO Auto-generated method stub
return null;
}
@Override
public Color getBackground() {
// TODO Auto-generated method stub
return null;
}
@Override
public Font getFont() {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean hasChildren() {
// TODO Auto-generated method stub
return (_umlModelMap.size() - _isDisposedMap.size()) > 0;
}
@Override
public List<?> getChildren() {
// TODO Auto-generated method stub
return null;
}
@Override
public ITreeElement getTreeParent() {
// TODO Auto-generated method stub
return null;
}
}