void refreshContent()

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;
                        }
                    }
                    
                }
            }
        }
    }