}
@Override
protected Object run( final Presentation context )
{
final FormComponentPresentation p = (FormComponentPresentation) context;
final SapphirePart part = (SapphirePart) getPart();
final Set<Property> properties = new LinkedHashSet<Property>();
collectProperties( part, properties );
for( Iterator<Property> itr = properties.iterator(); itr.hasNext(); )
{
if( itr.next().empty() )
{
itr.remove();
}
}
if( properties.isEmpty() )
{
MessageDialog.openInformation( p.shell(), dialogTitle.text(), nothingToDoMessage.text() );
}
else
{
final Set<Property> selectedProperties = PromptDialog.open( p.shell(), properties );
for( Property property : selectedProperties )
{
property.clear();
}