X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=rcp%2Forg.argeo.swt.specific.rcp%2Fsrc%2Forg%2Fargeo%2Feclipse%2Fui%2Frcp%2Finternal%2Frwt%2FRcpResourceManager.java;fp=rcp%2Forg.argeo.swt.specific.rcp%2Fsrc%2Forg%2Fargeo%2Feclipse%2Fui%2Frcp%2Finternal%2Frwt%2FRcpResourceManager.java;h=91109a9de436d38789ce52fd6ad3a4cf9806df0c;hb=6e9508a68a3f907ff6bbdc622bbff522b28fe4b4;hp=0000000000000000000000000000000000000000;hpb=bc1ce20c0e437a7bb0b318e76bbf721bf948bbfd;p=lgpl%2Fargeo-commons.git diff --git a/rcp/org.argeo.swt.specific.rcp/src/org/argeo/eclipse/ui/rcp/internal/rwt/RcpResourceManager.java b/rcp/org.argeo.swt.specific.rcp/src/org/argeo/eclipse/ui/rcp/internal/rwt/RcpResourceManager.java new file mode 100644 index 000000000..91109a9de --- /dev/null +++ b/rcp/org.argeo.swt.specific.rcp/src/org/argeo/eclipse/ui/rcp/internal/rwt/RcpResourceManager.java @@ -0,0 +1,46 @@ +package org.argeo.eclipse.ui.rcp.internal.rwt; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.Collections; +import java.util.Map; +import java.util.TreeMap; + +import org.apache.commons.io.IOUtils; +import org.eclipse.rap.rwt.service.ResourceManager; + +public class RcpResourceManager implements ResourceManager { + private Map register = Collections + .synchronizedMap(new TreeMap()); + + @Override + public void register(String name, InputStream in) { + try { + register.put(name, IOUtils.toByteArray(in)); + } catch (IOException e) { + throw new RuntimeException("Cannot register " + name, e); + } + } + + @Override + public boolean unregister(String name) { + return register.remove(name) != null; + } + + @Override + public InputStream getRegisteredContent(String name) { + return new ByteArrayInputStream(register.get(name)); + } + + @Override + public String getLocation(String name) { + return name; + } + + @Override + public boolean isRegistered(String name) { + return register.containsKey(name); + } + +}