GVKun编程网logo

java.beans.PropertyChangeListener的实例源码(java.beans.introspection)

16

关于java.beans.PropertyChangeListener的实例源码和java.beans.introspection的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于andro

关于java.beans.PropertyChangeListener的实例源码java.beans.introspection的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于android.view.View.OnSystemUiVisibilityChangeListener的实例源码、c++ PropertyChangeListener 的实现、com.intellij.lang.properties.psi.PropertyCreationHandler的实例源码、Java PropertyChangeListener等相关知识的信息别忘了在本站进行查找喔。

本文目录一览:

java.beans.PropertyChangeListener的实例源码(java.beans.introspection)

java.beans.PropertyChangeListener的实例源码(java.beans.introspection)

项目:incubator-netbeans    文件:FormCustomEditor.java   
/**
 * Used by PropertyAction to mimic property sheet behavior - trying to invoke
 * PropertyEnv listener of the current property editor (we can't create our
 * own PropertyEnv instance).
 * 
 * @return current value
 * @throws java.beans.PropertyVetoException if someone vetoes this change.
 */
public Object commitChanges() throws PropertyVetoException {
    int currentIndex = editorsCombo.getSelectedindex();
    propertyeditor currentEditor = currentIndex > -1 ? allEditors[currentIndex] : null;
    if (currentEditor instanceof Expropertyeditor) {
        // we can only guess - according to the typical pattern the propetry
        // editor itself or the custom editor usually implement the listener
        // registered in PropertyEnv
        PropertyChangeEvent evt = new PropertyChangeEvent(
                this,PropertyEnv.PROP_STATE,null,PropertyEnv.STATE_VALID);
        if (currentEditor instanceof Vetoablechangelistener) {
            ((Vetoablechangelistener)currentEditor).vetoableChange(evt);
        }
        Component currentCustEd = currentIndex > -1 ? allCustomEditors[currentIndex] : null;
        if (currentCustEd instanceof Vetoablechangelistener) {
            ((Vetoablechangelistener)currentCustEd).vetoableChange(evt);
        }
        if (currentEditor instanceof Propertychangelistener) {
            ((Propertychangelistener)currentEditor).propertyChange(evt);
        }
        if (currentCustEd instanceof Propertychangelistener) {
            ((Propertychangelistener)currentCustEd).propertyChange(evt);
        }
    }
    return commitChanges0();
}
项目:incubator-netbeans    文件:EditorMimeTypes.java   
private EditorMimeTypes() {
    impl = Lookup.getDefault().lookup(EditorMimeTypesImplementation.class);
    if (impl == null) {
        throw new IllegalStateException(String.format(
            "No %s instance in the default Lookup.",//NOI18N
            EditorMimeTypesImplementation.class));
    }
    listeners = new PropertyChangeSupport(this);
    listener = new Propertychangelistener() {
        @Override
        public void propertyChange(PropertyChangeEvent evt) {
            if (EditorMimeTypesImplementation.PROP_SUPPORTED_MIME_TYPES.equals(evt.getPropertyName())) {
                listeners.firePropertyChange(PROP_SUPPORTED_MIME_TYPES,null);
            }
        }
    };
    impl.addPropertychangelistener(WeakListeners.propertyChange(listener,impl));
}
项目:Openjsharp    文件:WToolkit.java   
@Override
public synchronized void addPropertychangelistener(String name,Propertychangelistener pcl) {
    if (name == null) {
        // See JavaDoc for the Toolkit.addPropertychangelistener() method
        return;
    }
    if ( WDesktopProperties.isWindowsProperty(name)
         || name.startsWith(awtPrefix)
         || name.startsWith(dndPrefix))
    {
        // someone is interested in Windows-specific desktop properties
        // we should initialize wprops
        lazilyInitWProps();
    }
    super.addPropertychangelistener(name,pcl);
}
项目:incubator-netbeans    文件:MenuFakeSupport.java   
@Override
public void addComponentsToContainer(Container container,Container containerDelegate,Component[] components,int index)
{
    for (int i=0; i < components.length; i++) {
        containerDelegate.add(components[i],i + index);
        // Issue 110587 - the default background of menu depends (on some l&f)
        // on the location of the menu (if it is top-level menu or not).
        // The background is changed when "ancestor" property change event
        // is fired. This usually happens when addNotify() is called.
        // Unfortunately,addNotify() is not called if the parent doesn't
        // have peer - this happens for model instances. The following
        // code fires the property change event explicitly to force
        // update of the background.
        PropertyChangeEvent event = new PropertyChangeEvent(components[i],"ancestor",container); // NOI18N
        for (Propertychangelistener listener : components[i].getPropertychangelisteners()) {
            listener.propertyChange(event);
        }
    }
}
项目:incubator-netbeans    文件:CompletionLayout.java   
public CompletionLayout(Propertychangelistener listener) {
    this.listener = listener;
    completionPopup = new CompletionPopup();
    completionPopup.setLayout(this);
    completionPopup.setPreferdisplayAboveCaret(false);
    docPopup = new DocPopup();
    docPopup.setLayout(this);
    docPopup.setPreferdisplayAboveCaret(false);
    visiblePopups = new LinkedList<CompletionLayoutPopup>();
}
项目:incubator-netbeans    文件:ProjectUtilsTest.java   
@Override
public Projectinformation getProjectinformation(final Project project) {
    Projectinformation info =  project.getLookup().lookup(Projectinformation.class);
    if (info == null) {
        info = new Projectinformation() {
            @Override
            public String getName() {
                return project.getProjectDirectory().getName();
            }

            @Override
            public String getdisplayName() {
                return getName();
            }

            @Override
            public Icon getIcon() {
                return null;
            }

            @Override
            public Project getProject() {
                return project;
            }

            @Override
            public void addPropertychangelistener(Propertychangelistener listener) {
            }

            @Override
            public void removePropertychangelistener(Propertychangelistener listener) {
            }
        };
    }
    return info;
}
项目:incubator-netbeans    文件:NbModuleProject.java   
private void registerListener(Object qimpl,ExtraSJQEvaluator eJSQEval) {
    try {
        // XXX #66275: ugly hack until proper API change;
        // we need ESJQI to work when project is loaded - not opened - to resolve deps on lib wrapper modules correctly
        Field listenerF = qimpl.getClass().getDeclaredField("listener"); // NOI18N
        listenerF.setAccessible(true);
        eJSQEval.addPropertychangelistener((Propertychangelistener) listenerF.get(qimpl));
    } catch (Exception ex) {
        Logger.getLogger(NbModuleProject.class.getName()).log(Level.FINE,"Turning off source query support for loaded project '" + ProjectUtils.getinformation(this).getdisplayName() + "'",ex);
    }
}
项目:incubator-netbeans    文件:VersioningSystem.java   
/**
 * Backdoor for DelegatingVCS
 * 
 * @return 
 */
void movechangelisteners(VersioningSystem system) {
    synchronized(support) {
        Propertychangelistener[] listeners = support.getPropertychangelisteners();
        for (Propertychangelistener l : listeners) {
            system.addPropertychangelistener(l);
            this.removePropertychangelistener(l);
        }
    }
}
项目:incubator-netbeans    文件:CodeEvaluatorUI.java   
public static void addResultListener(final Propertychangelistener listener) {
    rp.post(new Runnable() {
        @Override
        public void run() {
            CodeEvaluatorUI defaultInstance = getDefaultInstance();
            if (defaultInstance != null) {
                synchronized(defaultInstance.pcs) {
                    defaultInstance.pcs.addPropertychangelistener(listener);
                }
            }
        }
    });
}
项目:incubator-netbeans    文件:MavenoptionController.java   
void firePropChange(String property,Object oldVal,Object newVal) {
    ArrayList<Propertychangelistener> lst;
    synchronized (listeners) {
        lst = new ArrayList<Propertychangelistener>(listeners);
    }
    PropertyChangeEvent evnt = new PropertyChangeEvent(this,property,oldVal,newVal);
    for (Propertychangelistener prop : lst) {
        if (prop == null) {
            //#180218
            continue;
        }
        prop.propertyChange(evnt);
    }
}
项目:jdk8u-jdk    文件:ProxyClient.java   
public void removePropertychangelistener(Propertychangelistener listener) {
    if (!(listener instanceof WeakPCL)) {
        // Search for the WeakPCL holding this listener (if any)
        for (Propertychangelistener pcl : propertyChangeSupport.getPropertychangelisteners()) {
            if (pcl instanceof WeakPCL && ((WeakPCL)pcl).get() == listener) {
                listener = pcl;
                break;
            }
        }
    }
    propertyChangeSupport.removePropertychangelistener(listener);
}
项目:incubator-netbeans    文件:DelegatingVCS.java   
@Override
public final void addPropertyCL(Propertychangelistener listener) {
    synchronized(DELEGATE_LOCK) {
        if(delegate == null) {
            support.addPropertychangelistener(listener);
        } else {
            delegate.addPropertychangelistener(listener);
        }
    }
}
项目:jtk    文件:ModetoggleButton.java   
/**
 * Constructs a mode toggle button for the specified mode.
 * @param mode the mode.
 */
public ModetoggleButton(Mode mode) {
  super(mode);
  setText(null); // ignore mode text (is for menus)
  setMnemonic(0); // ignore mnemonic (is for menus)
  mode.addPropertychangelistener(new Propertychangelistener() {
    public void propertyChange(PropertyChangeEvent e) {
      if (e.getPropertyName().equals("active"))
        setSelected((Boolean)e.getNewValue());
    }
  });
}
项目:incubator-netbeans    文件:PaletteUtils.java   
public static synchronized void removePaletteListener(Propertychangelistener listener,FileObject context)
{
    Project project = FileOwnerQuery.getowner(context);
    ProjectPaletteInfo pInfo = palettes.get(project);
    if (pInfo != null && pInfo.paletteListeners != null) {
        pInfo.paletteListeners.remove(listener);
        pInfo.getPalette().removePropertychangelistener(listener);
    }
}
项目:incubator-netbeans    文件:FilterNode.java   
/** Getter for property change listener.
*/
Propertychangelistener getPropertychangelistener() {
    synchronized (LISTENER_LOCK) {
        if (propL == null) {
            propL = createPropertychangelistener();
        }

        return propL;
    }
}
项目:Openjsharp    文件:Container.java   
/**
 * Adds a Propertychangelistener to the listener list.
 *
 * @param listener  the Propertychangelistener to be added
 */
public void addPropertychangelistener(Propertychangelistener listener) {
    if (accessibleContainerHandler == null) {
        accessibleContainerHandler = new AccessibleContainerHandler();
    }
    if (propertyListenersCount++ == 0) {
        Container.this.addContainerListener(accessibleContainerHandler);
    }
    super.addPropertychangelistener(listener);
}
项目:incubator-netbeans    文件:Localepropertyeditor.java   
/** Gets custom editor. Overrides superclass method. */
public Component getCustomEditor() {
    final LocalePanel localePanel = new LocalePanel(locale);

    localePanel.addPropertychangelistener(new Propertychangelistener() {
        public void propertyChange(PropertyChangeEvent evt) {
            if(LocalePanel.PROP_CUSTOMIZED_LOCALE.equals(evt.getPropertyName()))
                setValue(localePanel.getLocale());
        }
    });

    return localePanel;
}
项目:incubator-netbeans    文件:VersioningSystem.java   
/**
 * Adds a listener for change events.
 * 
 * @param listener a Propertychangelistener 
 */ 
public final void addPropertychangelistener(Propertychangelistener listener) {
    synchronized(support) {
        support.addPropertychangelistener(listener);
    }
}
项目:incubator-netbeans    文件:MuxClasspathImplementationTest.java   
@Override
public void addPropertychangelistener(Propertychangelistener listener) {
    cs.addPropertychangelistener(listener);
}
项目:incubator-netbeans    文件:SourcePathImplementation.java   
public void addPropertychangelistener(Propertychangelistener listener) {
    support.addPropertychangelistener (listener);
}
项目:openjdk-jdk10    文件:Test4353056.java   
public void addPropertychangelistener(Propertychangelistener listener) {
    this.pcs.addPropertychangelistener(listener);
}
项目:incubator-netbeans    文件:JavaTypeProviderTest.java   
public void removePropertychangelistener(final Propertychangelistener listener) {
    assert listener != null;
    this.support.removePropertychangelistener(listener);
}
项目:incubator-netbeans    文件:ScanningScopeList.java   
public void removePropertychangelistener( Propertychangelistener pcl ) {
    propertySupport.removePropertychangelistener( pcl );
}
项目:incubator-netbeans    文件:SpellcheckerOptionsPanelController.java   
public void removePropertychangelistener(Propertychangelistener l) {
    pcs.removePropertychangelistener(l);
}
项目:jdk8u-jdk    文件:Test7192955.java   
public void removePropertychangelistener(Propertychangelistener listener) {
}
项目:NBANDROID-V2    文件:LogReader.java   
public void addPropertychangelistener(Propertychangelistener listener) {
    this.changeSupport.addPropertychangelistener(listener);
}
项目:incubator-netbeans    文件:SourceGroupsTest.java   
public void removePropertychangelistener(Propertychangelistener listener) {
    throw new UnsupportedOperationException("Not supported yet.");
}
项目:VASSAL-src    文件:SetGlobalProperty.java   
public Ed(final SetGlobalProperty m) {
  keyCommandListConfig = new ListConfigurer(null,"Key Commands") {
    protected Configurer buildChildConfigurer() {
      return new DynamicKeyCommandConfigurer(m);
    }
  };
  keyCommandListConfig.setValue(
    new ArrayList<DynamicKeyCommand>(Arrays.asList(m.keyCommands)));
  Propertychangelistener l = new Propertychangelistener() {
    public void propertyChange(PropertyChangeEvent evt) {
      boolean isNumeric = numericConfig.booleanValue().booleanValue();
      minConfig.getControls().setVisible(isNumeric);
      maxConfig.getControls().setVisible(isNumeric);
      wrapConfig.getControls().setVisible(isNumeric);
      keyCommandListConfig.repack();
    }
  };
  controls = Box.createVerticalBox();
  descConfig = new StringConfigurer(null,"Description:  ",m.description);
  controls.add(descConfig.getControls());
  nameConfig = new PropertyNameExpressionConfigurer(null,"Global Property Name:  ",m.getKey(),(EditablePiece) m);
  controls.add(nameConfig.getControls());
  levelConfig = new StringEnumConfigurer(null,"",new String[]{CURRENT_ZONE,NAMED_ZONE,NAMED_MAP});
  levelConfig.setValue(m.propertyLevel);
  levelConfig.addPropertychangelistener(new Propertychangelistener() {
    public void propertyChange(PropertyChangeEvent e) {
      updateVisibility();
    }
  });
  Box Box = Box.createHorizontalBox();
  Box.add(new JLabel("Locate Property starting in the:   "));
  Box.add(levelConfig.getControls());
  controls.add(Box);
  nameBox = Box.createHorizontalBox();
  nameBox.add(new JLabel("Name of "));
  nameBox.add(mapLabel);
  nameBox.add(zoneLabel);
  nameBox.add(new JLabel(" containing property:  "));
  searchNameConfig = new FormattedExpressionConfigurer(null,m.searchName,(EditablePiece) m);
  nameBox.add(searchNameConfig.getControls());
  controls.add(nameBox);
  numericConfig = new BooleanConfigurer(null,"Is numeric?",m.isNumeric());
  controls.add(numericConfig.getControls());
  minConfig =
    new IntConfigurer(null,"Minimum value:  ",m.getMinimumValue());
  controls.add(minConfig.getControls());
  maxConfig =
    new IntConfigurer(null,"Maximum value:  ",m.getMaximumValue());
  controls.add(maxConfig.getControls());
  wrapConfig = new BooleanConfigurer(null,"Wrap?",m.isWrap());
  controls.add(wrapConfig.getControls());
  controls.add(keyCommandListConfig.getControls());
  numericConfig.addPropertychangelistener(l);
  numericConfig.fireUpdate();
  updateVisibility();
}
项目:incubator-netbeans    文件:WellKNownSchemaCatalog.java   
@Override
public void addPropertychangelistener(Propertychangelistener l) {}
项目:incubator-netbeans    文件:LibrariesCustomizer.java   
@Override public void addPropertychangelistener(Propertychangelistener l) {
    getLibraryImplementation().addPropertychangelistener(l);
}
项目:incubator-netbeans    文件:ClasspathProviderImpl.java   
@Override
public void addPropertychangelistener(Propertychangelistener listener) {
    support.addPropertychangelistener(listener);
}
项目:incubator-netbeans    文件:Network.java   
public void addPropertychangelistener(Propertychangelistener l) {
    support.addPropertychangelistener(l);
}
项目:Logisim    文件:PropertyChangeWeakSupport.java   
ListenerData(String property,Propertychangelistener listener) {
    this.property = property;
    this.listener = new WeakReference<Propertychangelistener>(listener);
}
项目:incubator-netbeans    文件:ForeignClassBundlerImpl.java   
@Override
public void removePropertychangelistener(Propertychangelistener listener) {
    pchs.removePropertychangelistener(listener);
}
项目:incubator-netbeans    文件:OpenProjectList.java   
/** As this class is singletnon,which is not GCed it is good idea to 
 *add WeakListeners or remove the listeners properly.
 */

public void addPropertychangelistener( Propertychangelistener l ) {
    pchSupport.addPropertychangelistener( l );        
}
项目:incubator-netbeans    文件:PathRegistryTest.java   
public void addPropertychangelistener(Propertychangelistener listener) {
    this.support.addPropertychangelistener(listener);
}
项目:incubator-netbeans    文件:WinSysOptionsPanelController.java   
@Override
public void removePropertychangelistener(Propertychangelistener l) {
    pcs.removePropertychangelistener(l);
}
项目:incubator-netbeans    文件:DiffResultsView.java   
@Override
public void perform () {
    showDiffError(NbBundle.getMessage(DiffResultsView.class,"MSG_DiffPanel_LoadingDiff")); //NOI18N
    if (revision1 == null) {
        try {
            revision1 = event2.getLogInfoHeader().getAncestorCommit(event2.getoriginalFile(),getClient(),GitUtils.NULL_PROGRESS_MONITOR);
            file1 = event2.getoriginalFile();
            baseFile1 = event2.getFile();
        } catch (GitException ex) {
            LOG.log(Level.INFO,ex);
            showDiffError(NbBundle.getMessage(DiffResultsView.class,"MSG_DiffPanel_LoadingDiff")); //NOI18N
            return;
        }
    }
    if (isCanceled()) {
        return;
    }
    String title1,title2;
    title1 = revision1 == null ? null : revision1.substring(0,7);
    title2 = event2.getLogInfoHeader().getLog().getRevision() == null ? null : event2.getLogInfoHeader().getLog().getRevision().substring(0,7);
    s1 = new DiffStreamSource(file1,baseFile1,revision1,file1.getName() + (title1 == null ? "" : (" (" + title1 + ")"))); //NOI18N
    s2 = new DiffStreamSource(event2.getFile(),event2.getFile(),event2.getLogInfoHeader().getLog().getRevision(),event2.getFile().getName() + (title2 == null ? "" : (" (" + title2 + ")"))); //NOI18N

    // it's enqueued at ClientRuntime queue and does not return until prevIoUs request handled
    s1.getMIMEType();  // triggers s1.init()
    if (isCanceled()) {
        showDiffError(NbBundle.getMessage(DiffResultsView.class,"MSG_DiffPanel_norevisions")); // NOI18N
        return;
    }

    s2.getMIMEType();  // triggers s2.init()
    if (isCanceled()) {
        showDiffError(NbBundle.getMessage(DiffResultsView.class,"MSG_DiffPanel_norevisions")); // NOI18N
        return;
    }

    if (currentTask != this) return;

    EventQueue.invokelater(new Runnable() {
        @Override
        public void run() {
            try {
                if (isCanceled()) {
                    showDiffError(NbBundle.getMessage(DiffResultsView.class,"MSG_DiffPanel_norevisions")); // NOI18N
                    return;
                }
                final DiffController view = DiffController.createEnhanced(s1,s2);
                if (currentTask == ShowDiffTask.this) {
                    currentDiff = view;
                    setBottomComponent(currentDiff.getJComponent());
                    final int dl = diffView.getDividerLocation();
                    if (!setLocation(view)) {
                        view.addPropertychangelistener(new Propertychangelistener() {
                            @Override
                            public void propertyChange(PropertyChangeEvent evt) {
                                view.removePropertychangelistener(this);
                                setLocation(view);
                                parent.updateActions();
                            }
                        });
                    }
                    parent.refreshComponents(false);
                    EventQueue.invokelater(new Runnable () {
                        @Override
                        public void run() {
                            diffView.setDividerLocation(dl);
                        }
                    });
                }
            } catch (IOException e) {
                ErrorManager.getDefault().notify(ErrorManager.informatIONAL,e);
            }
        }
    });
}
项目:incubator-netbeans    文件:ConnectionCustomEditor.java   
private void methodDetailsButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FirsT:event_methodDetailsButtonActionPerformed
    MethodPicker picker = new MethodPicker(formModel,valueType);
    picker.setSelectedComponent(selectedComponent);
    picker.setSelectedMethod(selectedMethod);

    String title = FormUtils.getFormattedBundleString(
        "CTL_FMT_CW_SelectMethod",// NOI18N
        new Object[] { valueType.getSimpleName() });

    final DialogDescriptor dd = new DialogDescriptor(picker,title);
    dd.setValid(picker.isPickerValid());
    picker.addPropertychangelistener("pickerValid",new Propertychangelistener() { // NOI18N
        @Override
        public void propertyChange(PropertyChangeEvent evt2) {
            dd.setValid(((Boolean)evt2.getNewValue()).booleanValue());
        }
    });
    Dialog dialog = Dialogdisplayer.getDefault().createDialog(dd);
    dialog.setVisible(true);

    if (dd.getValue() == DialogDescriptor.OK_OPTION) {
        selectedComponent = picker.getSelectedComponent();

 MethodPicker.MethodPickerItem selectedItem = picker.getSelectedMethod();       
 selectedMethod = selectedItem.getmethodDescriptor();

        methodField.setEnabled(true);
        if (selectedComponent == formModel.getTopRADComponent()) {
            methodField.setText(selectedItem.getmethodName());
        } else {
            methodField.setText(selectedComponent.getName() + "." + selectedMethod.getName()); // NOI18N
        }

        if (selectedComponent != null && selectedMethod != null) {
            propertyeditor.setValue(new RADConnectionpropertyeditor.RADConnectionDesignValue(selectedComponent,selectedMethod));
        } else if (selectedItem.getmethodName() != null) {
            propertyeditor.setValue(new RADConnectionpropertyeditor.RADConnectionDesignValue(selectedItem.getmethodName()));
        } else {
            propertyeditor.setValue(BeanSupport.NO_VALUE);
        }
    }
}
项目:incubator-netbeans    文件:SearchHistory.java   
/** Removes a property change listener.
 * @param pcl the listener to remove
 */
public void removePropertychangelistener(Propertychangelistener pcl){
    if (pcs != null){
        pcs.removePropertychangelistener(pcl);
    }
}

android.view.View.OnSystemUiVisibilityChangeListener的实例源码

android.view.View.OnSystemUiVisibilityChangeListener的实例源码

项目:FMTech    文件:PhotoViewController.java   
public PhotoViewController(ActivityInterface paramActivityInterface)
{
  this.mActivity = paramActivityInterface;
  if (Build.VERSION.SDK_INT < 11) {}
  for (this.msystemUIVisibilitychangelistener = null;; this.msystemUIVisibilitychangelistener = new View.OnsystemUIVisibilitychangelistener()
      {
        public final void onsystemUIVisibilityChange(int paramAnonymousInt)
        {
          if ((Build.VERSION.SDK_INT >= 19) && (paramAnonymousInt == 0) && (PhotoViewController.this.mLastFlags == 3846)) {
            PhotoViewController.this.setFullScreen(false,true);
          }
        }
      })
  {
    this.mAccessibilityManager = ((AccessibilityManager)paramActivityInterface.getContext().getSystemService("accessibility"));
    return;
  }
}
项目:NoticeDog    文件:InBoxViewManager.java   
private void createListenerView() {
    this.listenerView = new View(this.context) {
        protected boolean fitSystemWindows(Rect insets) {
            if (insets.top == 0) {
                InBoxViewManager.this.logger.info("fitSystemWindows : 0");
                InBoxViewManager.this.setTabVisibility(Boolean.valueOf(false),eVisibilityReason.FullScreenMode);
            } else {
                InBoxViewManager.this.logger.info("fitSystemWindows : != 0");
                InBoxViewManager.this.setTabVisibility(Boolean.valueOf(true),eVisibilityReason.FullScreenMode);
            }
            return super.fitSystemWindows(insets);
        }

        public boolean dispatchKeyEvent(KeyEvent event) {
            if (event.getKeyCode() == 4) {
            }
            return super.dispatchKeyEvent(event);
        }
    };
    this.listenerView.setonsystemUIVisibilitychangelistener(new OnsystemUIVisibilitychangelistener() {
        public void onsystemUIVisibilityChange(int visibility) {
            if ((visibility & 4) == 0) {
                InBoxViewManager.this.setTabVisibility(Boolean.valueOf(true),eVisibilityReason.FullScreenMode);
            } else {
                InBoxViewManager.this.setTabVisibility(Boolean.valueOf(false),eVisibilityReason.FullScreenMode);
            }
        }
    });
    WindowManager.LayoutParams params = new WindowManager.LayoutParams(-2,-2,2002,65816,-3);
    params.width = 1;
    params.height = 1;
    params.gravity = 51;
    getwindowManager().addView(this.listenerView,params);
}
项目:Common-Android    文件:FullscreenFragment.java   
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void registersystemUIVisibility() {
    final View decorView = getActivity().getwindow().getDecorView();
    decorView.setonsystemUIVisibilitychangelistener(new OnsystemUIVisibilitychangelistener() {

        @Override
        public void onsystemUIVisibilityChange(int visibility) {
            if ((visibility & View.SYstem_UI_FLAG_FULLSCREEN) == 0) {
                setFullscreen();
            }
        }
    });
}
项目:365browser    文件:WebappActivity.java   
/**
 * Sets activity's decor view into an immersive mode.
 * If immersive mode is not supported,this method no-ops.
 */
private void enterImmersiveMode() {
    // Immersive mode is only supported in API 19+.
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) return;

    if (mSetImmersiveRunnable == null) {

        final View decor = getwindow().getDecorView();

        mSetImmersiveRunnable = new Runnable() {
            @Override
            public void run() {
                int currentFlags = decor.getsystemUIVisibility();
                int desiredFlags = currentFlags | IMMERSIVE_MODE_UI_FLAGS;
                if (currentFlags != desiredFlags) {
                    decor.setsystemUIVisibility(desiredFlags);
                }
            }
        };

        // When we enter immersive mode for the first time,register a
        // systemUIVisibilitychangelistener that restores immersive mode. This is necessary
        // because user actions like focusing a keyboard will break out of immersive mode.
        decor.setonsystemUIVisibilitychangelistener(new OnsystemUIVisibilitychangelistener() {
            @Override
            public void onsystemUIVisibilityChange(int newFlags) {
                if ((newFlags & View.SYstem_UI_FLAG_FULLSCREEN) == 0) {
                    asyncSetImmersive(RESTORE_IMMERSIVE_MODE_DELAY_MILLIS);
                }
            }
        });
    }

    asyncSetImmersive(0);
}
项目:Cardboard    文件:CardboardActivity.java   
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    requestwindowFeature(1);

    getwindow().addFlags(128);

    this.mMagnetSensor = new MagnetSensor(this);
    this.mMagnetSensor.setonCardboardTriggerListener(this);

    this.mNfcSensor = NfcSensor.getInstance(this);
    this.mNfcSensor.addOnCardboardNfcListener(this);

    onNfcIntent(getIntent());

    setVolumeKeysMode(2);
    if (Build.VERSION.SDK_INT < 19) {
        final Handler handler = new Handler();
        getwindow().getDecorView().setonsystemUIVisibilitychangelistener(
                new View.OnsystemUIVisibilitychangelistener() {
                    public void onsystemUIVisibilityChange(int visibility) {
                        if ((visibility & 0x2) == 0) {
                            handler.postDelayed(new Runnable() {
                                public void run() {
                                    CardboardActivity.this
                                            .setFullscreenMode();
                                }
                            },2000L);
                        }
                    }
                });
    }
}
项目:RedditInPictures    文件:ImageViewerActivity.java   
public OnsystemUIVisibilitychangelistener getonsystemUIVisibilitychangelistener() {
    return new OnsystemUIVisibilitychangelistener() {

        @Override
        public void onsystemUIVisibilityChange(int visibility) {
            if ((visibility & View.SYstem_UI_FLAG_LOW_PROFILE) != 0) {
                getActionBar().hide();
            } else {
                getActionBar().show();
            }
        }
    };
}
项目:AndroidViewHelper    文件:ViewWrapper.java   
/**
* @see View#setonsystemUIVisibilitychangelistener(OnsystemUIVisibilitychangelistener)
*/
 public W setonsystemUIVisibilitychangelistener(OnsystemUIVisibilitychangelistener l) {
     mView.setonsystemUIVisibilitychangelistener(l);
     return (W)this;
 }
项目:Mizuu    文件:ImageViewer.java   
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (MizLib.hasKitKat()) {
        setTheme(R.style.Mizuu_Theme_Translucent_FullScreen);
    } else {
        setTheme(R.style.Mizuu_Theme_Transparent_FullScreen);
    }

    ViewUtils.setupWindowFlagsForStatusbarOverlay(getwindow(),true);

    mToolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(mToolbar);

    ViewUtils.setProperToolbarSize(this,mToolbar);

    getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.transparent_actionbar));

    mBus = MizuuApplication.getBus();

    mPortraitPhotos = getIntent().getBooleanExtra("portraitPhotos",true);
    mPhotos = getIntent().getStringArrayExtra("photos");

    getSupportActionBar().setTitle((getIntent().getIntExtra("selectedindex",0) + 1) + " " + getString(R.string.of) + " " + mPhotos.length);

    mViewPager = (ViewPager) findViewById(R.id.awesomepager);
    mViewPager.setPageMargin(MizLib.convertDpToPixels(getApplicationContext(),16));
    mViewPager.setAdapter(new ActorPhotosAdapter(getSupportFragmentManager()));
    mViewPager.setonPagechangelistener(new SimpleOnPagechangelistener() {
        @Override
        public void onPageSelected(int arg0) {
            getSupportActionBar().setTitle((arg0 + 1) + " " + getString(R.string.of) + " " + mPhotos.length);
        }

    });
    mViewPager.setCurrentItem(getIntent().getIntExtra("selectedindex",0));

    View decorView = getwindow().getDecorView();
    decorView.setonsystemUIVisibilitychangelistener(new OnsystemUIVisibilitychangelistener() {
        @Override
        public void onsystemUIVisibilityChange(int visibility) {
            if (visibility == 0) {
                // The UI is visible due to user interaction - let's hide it again after three seconds
                mHandler.postDelayed(mHidesystemUIRunnable,3000);
            }
        }
    });
}

c++ PropertyChangeListener 的实现

c++ PropertyChangeListener 的实现

前言

    开发中经常有一个需求就是当某个对象甚至是某个模块的属性变化,或者是某个操作发生的时候需要设置一个监听器以通知出去,本身就是实现一个最简单够用的机制.

 

代码

PropertyChangeSupport.h



#pragma once

#include <boost/function.hpp>
#include <boost/any.hpp>
#include <vector>
#include <map>


typedef boost::function<void(std::string, boost::any, boost::any)> PropertyChangeListener;

class PropertyChangeSupport {
public:
    PropertyChangeSupport();

    ~PropertyChangeSupport();

    void addPropertyChangeListener(std::string name, PropertyChangeListener propertyChangeListener);

    void addPropertyChangeListener(PropertyChangeListener propertyChangeListener);

    virtual void
    firePropertyChange(std::string name, boost::any oldValue = nullptr, boost::any newValue = nullptr);

private:
    std::map<std::string, std::vector<PropertyChangeListener>> _pairListeners;
    std::vector<PropertyChangeListener> _listeners;
};

PropertyChangeSupport.cpp

PropertyChangeSupport::PropertyChangeSupport() {

}

PropertyChangeSupport::~PropertyChangeSupport() {

}

void PropertyChangeSupport::addPropertyChangeListener(std::string name, PropertyChangeListener propertyChangeListener) {
    auto pair = _pairListeners.find(name);
    if (pair != _pairListeners.end()) {
        pair->second.push_back(propertyChangeListener);
    } else {
        _pairListeners.insert({name, {propertyChangeListener}});
    }
}

void PropertyChangeSupport::addPropertyChangeListener(PropertyChangeListener propertyChangeListener) {
    _listeners.push_back(propertyChangeListener);
}

void PropertyChangeSupport::firePropertyChange(std::string name, boost::any oldValue, boost::any newValue) {
    for (int i = 0; i < _listeners.size(); ++i) {
        _listeners[i](name, oldValue, newValue);
    }
    auto pair = _pairListeners.find(name);
    if (pair != _pairListeners.end()) {
        auto v = pair->second;
        for (int i = 0; i < v.size(); ++i) {
            v[i](name, oldValue, newValue);
        }
    }
}

实现原理非常简单,设置一个回调函数,根据不同的 propertyname 调用对应的函数对象,使用 boost::any 来做值的包装。由于监听的方法是在同一个线程执行,所以如果监听方法代码不当就会导致失败.

测试代码

class Bean : public PropertyChangeSupport {

public:
    Bean() {

    }

    void setA(int v) {
        auto old = a;
        a = v;
        firePropertyChange("a", old, v);
    }

    void setB(std::string v) {
        auto old = b;
        b = v;
        firePropertyChange("b", old, b);
    }

    int a;
    std::string b;
};

int main() {
    Bean b;
    b.addPropertyChangeListener("b", [](std::string name, boost::any oldV, boost::any newV) {
        LOG_INFO << name <<  boost::any_cast<std::string>(oldV) <<  boost::any_cast<std::string>(newV);
    });
    b.addPropertyChangeListener("a", [](std::string name, boost::any oldV, boost::any newV) {
        LOG_INFO << name <<  boost::any_cast<int>(oldV) <<  boost::any_cast<int>(newV);
    });
    b.addPropertyChangeListener([](std::string name, boost::any oldV, boost::any newV) {
        LOG_INFO << name;
    });
    b.setB("sss");
    b.setA(111);
    b.setA(222);
}

 

com.intellij.lang.properties.psi.PropertyCreationHandler的实例源码

com.intellij.lang.properties.psi.PropertyCreationHandler的实例源码

项目:intellij-ce-playground    文件:I18nizeQuickFix.java   
@Override
public void performI18nization(final PsiFile psiFile,final Editor editor,PsiLiteralExpression literalExpression,Collection<PropertiesFile> propertiesFiles,String key,String value,String i18nizedText,PsiExpression[] parameters,final PropertyCreationHandler propertyCreationHandler) throws IncorrectOperationException {
  Project project = psiFile.getProject();
  propertyCreationHandler.createProperty(project,propertiesFiles,key,value,parameters);
  try {
    final PsiElement newExpression = doReplacementInJava(psiFile,editor,literalExpression,i18nizedText);
    reformatandCorrectReferences(newExpression);
  }
  catch (IncorrectOperationException e) {
    Messages.showErrorDialog(project,CodeInsightBundle.message("inspection.i18n.expression.is.invalid.error.message"),CodeInsightBundle.message("inspection.error.dialog.title"));
  }
}
项目:tools-idea    文件:I18nizeQuickFix.java   
@Override
public void performI18nization(final PsiFile psiFile,CodeInsightBundle.message("inspection.error.dialog.title"));
  }
}
项目:consulo-java    文件:I18nizeQuickFix.java   
@Override
public void performI18nization(final PsiFile psiFile,CodeInsightBundle.message("inspection.error.dialog.title"));
  }
}
项目:intellij-ce-playground    文件:I18nQuickFixHandler.java   
void performI18nization(final PsiFile psiFile,PropertyCreationHandler propertyCreationHandler) throws IncorrectOperationException;
项目:intellij-ce-playground    文件:I18nizeJspHandlerProvider.java   
@Override
public void performI18nization(final PsiFile psiFile,final PropertyCreationHandler propertyCreationHandler) throws IncorrectOperationException {
  Project project = psiFile.getProject();
  TextRange selectedText = JavaI18nUtil.getSelectedRange(editor,psiFile);
  if (selectedText == null) return;
  propertyCreationHandler.createProperty(project,parameters);
  editor.getDocument().replaceString(selectedText.getStartOffset(),selectedText.getEndOffset(),i18nizedText);
}
项目:tools-idea    文件:I18nQuickFixHandler.java   
void performI18nization(final PsiFile psiFile,PropertyCreationHandler propertyCreationHandler) throws IncorrectOperationException;
项目:tools-idea    文件:I18nizeJspHandlerProvider.java   
@Override
public void performI18nization(final PsiFile psiFile,i18nizedText);
}
项目:consulo-java    文件:I18nQuickFixHandler.java   
void performI18nization(final PsiFile psiFile,PropertyCreationHandler propertyCreationHandler) throws IncorrectOperationException;
项目:intellij-ce-playground    文件:JavaI18nizeQuickFixDialog.java   
public PropertyCreationHandler getPropertyCreationHandler() {
  PropertyCreationHandler handler = myResourceBundleManager.getPropertyCreationHandler();
  return handler != null ? handler : JavaI18nUtil.DEFAULT_PROPERTY_CREATION_HANDLER;
}
项目:tools-idea    文件:JavaI18nizeQuickFixDialog.java   
public PropertyCreationHandler getPropertyCreationHandler() {
  PropertyCreationHandler handler = myResourceBundleManager.getPropertyCreationHandler();
  return handler != null ? handler : JavaI18nUtil.DEFAULT_PROPERTY_CREATION_HANDLER;
}
项目:consulo-java    文件:JavaI18nizeQuickFixDialog.java   
public PropertyCreationHandler getPropertyCreationHandler() {
  PropertyCreationHandler handler = myResourceBundleManager.getPropertyCreationHandler();
  return handler != null ? handler : JavaI18nUtil.DEFAULT_PROPERTY_CREATION_HANDLER;
}

Java PropertyChangeListener

Java PropertyChangeListener

我试图弄清楚如何在另一个类中侦听属性更改。下面是我的代码:

ClassWithProperty具有我想听的属性:

public class ClassWithProperty {    private PropertyChangeSupport changes = new PropertyChangeSupport(this);     private int usersOnline;    public int getUsersOnline() {        return usersOnline;    }    public ClassWithProperty() {        usersOnline = 0;        while (usersOnline<10) {            changes.firePropertyChange("usersOnline", usersOnline, usersOnline++);        }    }    public void addPropertyChangeListener(        PropertyChangeListener l) {        changes.addPropertyChangeListener(l);    }    public void removePropertyChangeListener(        PropertyChangeListener l) {        changes.removePropertyChangeListener(l);    }}

主要是我需要了解属性更改的地方:

public class Main {    private static ClassWithProperty test;    public static void main(String[] args) {        test = new ClassWithProperty();        test.addPropertyChangeListener(listen());    }    private static PropertyChangeListener listen() {        System.out.println(test.getUsersOnline());        return null;    }}

我只有最后一次触发该事件(usersOnline = 10)。我是Java新手,并试图找到解决方案,但无济于事。

答案1

小编典典

代码:

private static PropertyChangeListener listen() {    System.out.println(test.getUsersOnline());    return null;}

返回null表示“无对象”,这反过来意味着test.addPropertyChangeListener(listen())有效
test.addPropertyChangeListener(null),不会注册任何内容。

您必须将有效的a实例传递PropertyChangeListeneraddPropertyChangeListener()方法。

编辑

我建议您阅读有关PropertyChangeListener的Java教程章节:http
//download.oracle.com/javase/tutorial/uiswing/events/propertychangelistener.html

代码的另一个问题是您调用firePropertyChange()的构造函数ClassWithProperty。但是那时,可能没有注册侦听器,因此它没有任何作用。触发事件
后,* 任何调用都会addPropertyChangeListener()发生。 *

这是对您的代码进行了修改,使其可以正常工作(虽然尚未测试过……):

public class ClassWithProperty {    private PropertyChangeSupport changes = new PropertyChangeSupport(this);    private int usersOnline = 0;    public ClassWithProperty() {    }    public void setupOnlineUsers()     {        while (usersOnline < 10) {            changes.firePropertyChange("usersOnline", usersOnline, ++usersOnline);        }    }    public int getUsersOnline() {        return usersOnline;    }    public void addPropertyChangeListener(PropertyChangeListener l) {        changes.addPropertyChangeListener(l);    }    public void removePropertyChangeListener(PropertyChangeListener l) {        changes.removePropertyChangeListener(l);    }}public class MainListener implements PropertyChangeListener {    private ClassWithProperty test;    public MainListener() {        test = new ClassWithProperty();        test.addPropertyChangeListener(this);        test.setupOnlineUsers();    }    public void propertyChange(PropertyChangeEvent evt) {        System.out.println(test.getUsersOnline());    }    public static void main(String[] args) {        new MainListener(); // do everything in the constructor    }}

我们今天的关于java.beans.PropertyChangeListener的实例源码java.beans.introspection的分享就到这里,谢谢您的阅读,如果想了解更多关于android.view.View.OnSystemUiVisibilityChangeListener的实例源码、c++ PropertyChangeListener 的实现、com.intellij.lang.properties.psi.PropertyCreationHandler的实例源码、Java PropertyChangeListener的相关信息,可以在本站进行搜索。

本文标签: