Eclipse 3.1 bedolgozó átállítási GYIK

  1. Az IPreferenceStore specifikusabb API-val rendelkezik
  2. IWorkbenchWindow#getShell() specifikusabb alkalmazás programozási felülettel rendelkezik

Az IPreferenceStore specifikusabb API-val rendelkezik

Bár az AbstractUIPlugin#getPreferenceStore() által biztosított IPreferenceStore viselkedése nem változott, frissítettük az IPreferenceStore meghatározását azzal, hogy kifejezetten megadtuk a biztosított viselkedést.

PropertyChangeEvents típusossága

Egy IPreferenceStore felületből származó tulajdonságváltozási eseménynek ugyanazon típus régi és új értékével kell rendelkeznie, amely összefügg azzal a setValue hívással, amely előállította.

Például, ha az IPreferenceStore#setValue(String name, long value) hívást végzi el, akkor az ezen metódusból előállított PropertyChangeEvent elemben lévő mindkét érték típusa java.lang.Long lesz.

putValue

A #putValue hívások nem állítanak elő PropertyChangedEvent eseményt. A különféle #setValue metódusok hívásai előállítanak ilyen eseményt.

Az OSGI beállítás és egy IPreferenceStore közti viszony

Az AbstractUIPlugin#getPreferenceStore() által biztosított IPreferenceStore felület a ScopedPreferenceStore egy példánya, amely az org.osgi.service.prefs.Preferences elemet használja háttérként. Az org.osgi.service.prefs.Preferences a változási eseményeket csak karaktersorozatként továbbítja.

A ScopedPreferenceStore átalakítja az IPreferenceStore#setValue(String name, String value) hívás által előállított OSGI eseményeket és a saját PropertyChangeEvents eseményeinek egyikét, majd továbbítja ezt az eseményt a figyelőjének. Az IPreferenceStore#setValue többi megvalósítása esetén a ScopedPreferenceStore a helyes típusú saját eseményeit fogja létrehozni és nem továbbítja az OSGI beállításokból származó eseményeket.

Egy ScopedPreferenceStore figyelőit fel kell készíteni a típusos és a karaktersorozatos értékekre is a változási eseményeikben, mert továbbra is kaphatnak az OSGI beállításokon keresztül eseményt (például egy figyelőimportálás közben). Az OSGI események minden esetben java.lang.String típusúak.

IWorkbenchWindow#getShell() specifikusabb alkalmazás programozási felülettel rendelkezik

Egy nullértékű org.eclipse.swt.widgets.Shell mindig lekérhető a meglévő IWorkbenchWindows elemről az Eclipse SDK-ban. Mi most explicit módon megadjuk a feltételeket, amelyeknél előfordul, azaz amikor a parancsértelmező nem kerül létrehozásra vagy ha az IWorkbenchWindow bezárásra kerül.