To add this functionality to theDecorator class:
private static ImageDescriptor lock;
private static ImageDescriptor question;
static
{
lock = Activator.getImageDescriptor("icons/lock.jpg");
question = Activator.getImageDescriptor("icons/question_mark.jpg");
}
if( resource is CARMA Container or CARMA Member){
if( Member Info Map Set){
if( Member Info Map Set contains the Key “locked”){
if( value for the key “locked” is not empty string){
decorate CARMA Member/Container with lock decorator
Add “locked” suffix to CARMA Member/Container }
} else {
decorate CARMA Member/Container with question decorator
}
}
}
Use the following example sample code to implement this
functionality.public void decorate(Object resource, IDecoration decoration)
{
if(resource instanceof CARMAContainer || resource instanceof CARMAMember)
{
CARMAResource myResource = (CARMAResource) resource;
if(myResource.isSetMemberInfoMap())
{
try
{
EMap myMap = myResource.getMemberInfoMap();
if(myMap.containsKey("locked"))
{
String value = myMap.get("locked").toString();
if( !value.equals(""))
{
decoration.addOverlay(lock);
if(myResource instanceof CARMAMember)
decoration.addSuffix(" - (Member Locked)");
else
decoration.addSuffix(" - (Container Locked)");
}
}
}
catch(NotSynchronizedException e)
{
//TODO handle exception
}
}
else
{
decoration.addOverlay(question);
decoration.addSuffix(" - (Not Syncronized)");
}
}
}
import com.ibm.carma.plugin.decorators.Activator;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.IDecoration;
import org.eclipse.jface.viewers.ILightweightLabelDecorator;
import org.eclipse.jface.viewers.LabelProvider;
import com.ibm.carma.model.CARMAMember;
import com.ibm.carma.model.CARMAContainer;
import com.ibm.carma.model.CARMAResource;
import com.ibm.carma.transport.NotSynchronizedException;
import org.eclipse.emf.common.util.EMap;