关于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)
- android.view.View.OnSystemUiVisibilityChangeListener的实例源码
- c++ PropertyChangeListener 的实现
- com.intellij.lang.properties.psi.PropertyCreationHandler的实例源码
- Java PropertyChangeListener
java.beans.PropertyChangeListener的实例源码(java.beans.introspection)
/** * 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(); }
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)); }
@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); }
@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); } } }
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>(); }
@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; }
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); } }
/** * Backdoor for DelegatingVCS * * @return */ void movechangelisteners(VersioningSystem system) { synchronized(support) { Propertychangelistener[] listeners = support.getPropertychangelisteners(); for (Propertychangelistener l : listeners) { system.addPropertychangelistener(l); this.removePropertychangelistener(l); } } }
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); } } } }); }
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); } }
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); }
@Override public final void addPropertyCL(Propertychangelistener listener) { synchronized(DELEGATE_LOCK) { if(delegate == null) { support.addPropertychangelistener(listener); } else { delegate.addPropertychangelistener(listener); } } }
/** * 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()); } }); }
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); } }
/** Getter for property change listener. */ Propertychangelistener getPropertychangelistener() { synchronized (LISTENER_LOCK) { if (propL == null) { propL = createPropertychangelistener(); } return propL; } }
/** * 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); }
/** 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; }
/** * Adds a listener for change events. * * @param listener a Propertychangelistener */ public final void addPropertychangelistener(Propertychangelistener listener) { synchronized(support) { support.addPropertychangelistener(listener); } }
@Override public void addPropertychangelistener(Propertychangelistener listener) { cs.addPropertychangelistener(listener); }
public void addPropertychangelistener(Propertychangelistener listener) { support.addPropertychangelistener (listener); }
public void addPropertychangelistener(Propertychangelistener listener) { this.pcs.addPropertychangelistener(listener); }
public void removePropertychangelistener(final Propertychangelistener listener) { assert listener != null; this.support.removePropertychangelistener(listener); }
public void removePropertychangelistener( Propertychangelistener pcl ) { propertySupport.removePropertychangelistener( pcl ); }
public void removePropertychangelistener(Propertychangelistener l) { pcs.removePropertychangelistener(l); }
public void removePropertychangelistener(Propertychangelistener listener) { }
public void addPropertychangelistener(Propertychangelistener listener) { this.changeSupport.addPropertychangelistener(listener); }
public void removePropertychangelistener(Propertychangelistener listener) { throw new UnsupportedOperationException("Not supported yet."); }
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(); }
@Override public void addPropertychangelistener(Propertychangelistener l) {}
@Override public void addPropertychangelistener(Propertychangelistener l) { getLibraryImplementation().addPropertychangelistener(l); }
@Override public void addPropertychangelistener(Propertychangelistener listener) { support.addPropertychangelistener(listener); }
public void addPropertychangelistener(Propertychangelistener l) { support.addPropertychangelistener(l); }
ListenerData(String property,Propertychangelistener listener) { this.property = property; this.listener = new WeakReference<Propertychangelistener>(listener); }
@Override public void removePropertychangelistener(Propertychangelistener listener) { pchs.removePropertychangelistener(listener); }
/** 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 ); }
public void addPropertychangelistener(Propertychangelistener listener) { this.support.addPropertychangelistener(listener); }
@Override public void removePropertychangelistener(Propertychangelistener l) { pcs.removePropertychangelistener(l); }
@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); } } }); }
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); } } }
/** 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的实例源码
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; } }
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); }
@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(); } } }); }
/** * 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); }
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); } } }); } }
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(); } } }; }
/** * @see View#setonsystemUIVisibilitychangelistener(OnsystemUIVisibilitychangelistener) */ public W setonsystemUIVisibilitychangelistener(OnsystemUIVisibilitychangelistener l) { mView.setonsystemUIVisibilitychangelistener(l); return (W)this; }
@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 的实现
前言
开发中经常有一个需求就是当某个对象甚至是某个模块的属性变化,或者是某个操作发生的时候需要设置一个监听器以通知出去,本身就是实现一个最简单够用的机制.
代码
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的实例源码
@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")); } }
@Override public void performI18nization(final PsiFile psiFile,CodeInsightBundle.message("inspection.error.dialog.title")); } }
@Override public void performI18nization(final PsiFile psiFile,CodeInsightBundle.message("inspection.error.dialog.title")); } }
void performI18nization(final PsiFile psiFile,PropertyCreationHandler propertyCreationHandler) throws IncorrectOperationException;
@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); }
void performI18nization(final PsiFile psiFile,PropertyCreationHandler propertyCreationHandler) throws IncorrectOperationException;
@Override public void performI18nization(final PsiFile psiFile,i18nizedText); }
void performI18nization(final PsiFile psiFile,PropertyCreationHandler propertyCreationHandler) throws IncorrectOperationException;
public PropertyCreationHandler getPropertyCreationHandler() { PropertyCreationHandler handler = myResourceBundleManager.getPropertyCreationHandler(); return handler != null ? handler : JavaI18nUtil.DEFAULT_PROPERTY_CREATION_HANDLER; }
public PropertyCreationHandler getPropertyCreationHandler() { PropertyCreationHandler handler = myResourceBundleManager.getPropertyCreationHandler(); return handler != null ? handler : JavaI18nUtil.DEFAULT_PROPERTY_CREATION_HANDLER; }
public PropertyCreationHandler getPropertyCreationHandler() { PropertyCreationHandler handler = myResourceBundleManager.getPropertyCreationHandler(); return handler != null ? handler : JavaI18nUtil.DEFAULT_PROPERTY_CREATION_HANDLER; }
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实例传递PropertyChangeListener
给addPropertyChangeListener()
方法。
编辑
- 我建议您阅读有关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的相关信息,可以在本站进行搜索。
本文标签: