extcache.java
来自「eclipse开发笔记」· Java 代码 · 共 48 行
JAVA
48 行
package com.plugindev.addressbook.cache;
import java.util.HashSet;
import org.eclipse.core.runtime.IExtension;
import org.eclipse.core.runtime.IExtensionDelta;
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.IRegistryChangeEvent;
import org.eclipse.core.runtime.IRegistryChangeListener;
import org.eclipse.core.runtime.Platform;
public class ExtCache implements IRegistryChangeListener {
private static final String PID = "com.plugindev.addressbook";
private static final String PT_ID = PID + "." + "messages";
private final HashSet extensions = new HashSet();
public void startup() {
IExtensionRegistry reg = Platform.getExtensionRegistry();
IExtensionPoint pt = reg.getExtensionPoint(PT_ID);
IExtension[] ext = pt.getExtensions();
for (int i = 0; i < ext.length; i++)
extensions.add(ext[i]);
reg.addRegistryChangeListener(this);
}
public void registryChanged(IRegistryChangeEvent event) {
IExtensionDelta[] deltas = event.getExtensionDeltas(PID, PT_ID);
for (int i = 0; i < deltas.length; i++) {
if (deltas[i].getKind() == IExtensionDelta.ADDED)
extensions.add(deltas[i].getExtension());
else
extensions.remove(deltas[i].getExtension());
}
}
public void shutdown() {
extensions.clear();
IExtensionRegistry reg = Platform.getExtensionRegistry();
reg.removeRegistryChangeListener(this);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?