in eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/views/JcrPropertiesView.java [538:593]
void refreshContent() {
final Object input = viewer.getInput();
if (input!=null && input instanceof JcrNode) {
JcrNode jcrnode = (JcrNode)input;
SyncDir syncDir = jcrnode.getSyncDir();
JcrNode newnode = syncDir.getNode(jcrnode.getJcrPath());
if (newnode!=null) {
viewer.setInput(newnode);
if (lastEditedNewPropertyName!=null) {
// set the selection/focus accordingly
for(int i=0;;i++) {
Object element = viewer.getElementAt(i);
if (element==null) {
break;
}
final IPropertyDescriptor pd = (IPropertyDescriptor) element;
Map.Entry<String,Object> me = (Entry<String, Object>) pd.getId();
String key = me.getKey();
if (lastEditedNewPropertyName.equals(key)) {
// set the selection to this one
final int column;
if (lastEditedColumnId==ColumnId.NAME) {
column = 0;
} else if (lastEditedColumnId==ColumnId.TYPE) {
column = 1;
} else if (lastEditedColumnId==ColumnId.VALUE) {
column = 2;
} else if (lastEditedColumnId==ColumnId.MULTIPLE) {
column = 5;
} else {
throw new IllegalStateException("Unknown columnId="+lastEditedColumnId);
}
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
try{
// edit
viewer.editElement(pd, column);
// and cancel immediately - to get the selection right
viewer.cancelEditing();
} catch(Exception e) {
Activator.getDefault().getPluginLogger().error("Exception occured on edit/cancel: "+e, e);
}
}
});
break;
}
}
}
}
}
}