#103296 Refining the refreshing of lookup, providing initial non-null merged_model_j2ee_root
authorpzavadsky@netbeans.org
Fri, 04 May 2007 08:33:49 +0000
changeset 7276df12a1b84d1
parent 726 26e4408c814d
child 728 cfd8382dd1f1
#103296 Refining the refreshing of lookup, providing initial non-null
array of activated nodes, and also fixing possible call from non-AWT thread
of window sys API. This is not a fix.
visualweb.designer.jsf/src/org/netbeans/modules/visualweb/designer/jsf/JsfForm.java
visualweb.designer.jsf/src/org/netbeans/modules/visualweb/designer/jsf/ui/JsfTopComponent.java
     1.1 --- a/visualweb.designer.jsf/src/org/netbeans/modules/visualweb/designer/jsf/JsfForm.java	Fri May 04 00:15:11 2007 +0000
     1.2 +++ b/visualweb.designer.jsf/src/org/netbeans/modules/visualweb/designer/jsf/JsfForm.java	Fri May 04 08:33:49 2007 +0000
     1.3 @@ -2678,7 +2678,7 @@
     1.4          return getFacesModel() != null;
     1.5      }
     1.6  
     1.7 -    private void loadFacesModel(DataObject dataObject) {
     1.8 +    private void loadFacesModel(final DataObject dataObject) {
     1.9          FacesModel facesModel;
    1.10          try {
    1.11              facesModel = getFacesModel(dataObject);
    1.12 @@ -2693,10 +2693,10 @@
    1.13          }
    1.14          
    1.15          setFacesModel(facesModel);
    1.16 -        init(dataObject);
    1.17          
    1.18          EventQueue.invokeLater(new Runnable() {
    1.19              public void run() {
    1.20 +                init(dataObject);
    1.21                  notifyViewsModelLoaded();
    1.22              }
    1.23          });
     2.1 --- a/visualweb.designer.jsf/src/org/netbeans/modules/visualweb/designer/jsf/ui/JsfTopComponent.java	Fri May 04 00:15:11 2007 +0000
     2.2 +++ b/visualweb.designer.jsf/src/org/netbeans/modules/visualweb/designer/jsf/ui/JsfTopComponent.java	Fri May 04 08:33:49 2007 +0000
     2.3 @@ -198,6 +198,8 @@
     2.4          setDisplayName(NbBundle.getMessage(JsfTopComponent.class, "LBL_JsfDisplayName")); // NOI18N
     2.5          getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(JsfTopComponent.class, "ACSD_DesignerTopComp"));
     2.6  
     2.7 +        initActivatedNodes();
     2.8 +
     2.9          if (jsfForm.isValid()) {
    2.10              initDesigner();
    2.11          } else {
    2.12 @@ -215,6 +217,12 @@
    2.13          return designer;
    2.14      }
    2.15  
    2.16 +    
    2.17 +    private void initActivatedNodes() {
    2.18 +        // There needs to be non-null array to indicate this component can be activated.
    2.19 +        setActivatedNodes(new Node[0]);
    2.20 +    }
    2.21 +    
    2.22      private void initDesigner() {
    2.23          initDesignerComponent();
    2.24          initDesignerListeners();
    2.25 @@ -2498,12 +2506,20 @@
    2.26          if (isActivated()) {
    2.27              designerActivated();
    2.28          }
    2.29 -        jsfLookupProvider.refreshLookup();
    2.30 +        refreshLookup();
    2.31          
    2.32          revalidate();
    2.33          repaint();
    2.34      }
    2.35      
    2.36 +    private void refreshLookup() {
    2.37 +        jsfLookupProvider.clearLookup();
    2.38 +        
    2.39 +        // XXX #103300 Ugly API which even doesn't work as described (the commented out line).
    2.40 +//        getLookup().lookup(Object.class);
    2.41 +        getLookup().lookupResult(Object.class).allInstances();
    2.42 +    }    
    2.43 +    
    2.44      
    2.45      private static class JsfLookupProvider implements Lookup.Provider {
    2.46          private final JsfTopComponent jsfTopComponent;
    2.47 @@ -2542,7 +2558,7 @@
    2.48              return Lookups.fixed(objects.toArray());
    2.49          }
    2.50          
    2.51 -        public synchronized void refreshLookup() {
    2.52 +        public synchronized void clearLookup() {
    2.53              lookup = null;
    2.54          }
    2.55      } // End of JsfLookupProvider.