libjava/classpath/ChangeLog.gcj:
2007-05-31 Matthias Klose <doko@ubuntu.com> * javax/management/NotificationBroadcasterSupport.java (getNotificationInfo): Add cast. * native/jni/qt-peer/Makefile.am (AM_CXXFLAGS): Add libstdc++ include directories. * native/jni/qt-peer/Makefile.in: Regenerate. libjava/ChangeLog: 2007-06-03 Matthias Klose <doko@ubuntu.com> * java/io/natFileWin32.cc (setFilePermissions): New (stub only). _access: Handle EXEC query, stub only. 2007-06-03 Matthias Klose <doko@ubuntu.com> Merged from classpath: * gnu/java/nio/SelectorProviderImpl.java: Whitespace merge. * java/lang/System.java(inheritedChannel): New. * java/lang/Character.java: Remove stray`;'. * java/net/MulticastSocket.java: Merged. * java/text/DateFormatSymbols.java(getInstance): New, comment updates. * java/text/Collator.java(getInstance): Merged. * java/util/Calendar.java: New attributes ALL_STYLES, SHORT, LONG. getDisplayName, getDisplayNames: New. * java/util/logging/Logger.java: Merged. * Regenerate .class and .h files. 2007-06-03 Matthias Klose <doko@ubuntu.com> * java/io/File.java: Merge with classpath-0.95, new method setFilePermissions, new attribute EXEC. * java/io/natFilePosix.cc (setFilePermissions): New. _access: Handle EXEC query. * classpath/lib/java/io/File.class, java/io/File.h: Regenerate. 2007-06-03 Matthias Klose <doko@ubuntu.com> Imported GNU Classpath 0.95. * classpath/Makefile.in, classpath/native/jni/midi-dssi/Makefile.in, classpath/native/jni/classpath/Makefile.in, classpath/native/jni/Makefile.in, classpath/native/jni/gconf-peer/Makefile.in, classpath/native/jni/java-io/Makefile.in, classpath/native/jni/native-lib/Makefile.in, classpath/native/jni/java-util/Makefile.in, classpath/native/jni/midi-alsa/Makefile.in, classpath/native/jni/java-lang/Makefile.in, classpath/native/jni/java-nio/Makefile.in, classpath/native/jni/java-net/Makefile.in, classpath/native/jni/xmlj/Makefile.in, classpath/native/jni/qt-peer/Makefile.in, classpath/native/jni/gtk-peer/Makefile.in, classpath/native/Makefile.in, classpath/native/jawt/Makefile.in, classpath/native/fdlibm/Makefile.in, classpath/native/plugin/Makefile.in, classpath/resource/Makefile.in, classpath/scripts/Makefile.in, classpath/tools/Makefile.in, classpath/doc/Makefile.in, classpath/doc/api/Makefile.in, classpath/lib/Makefile.in, classpath/external/Makefile.in, classpath/external/jsr166/Makefile.in, classpath/external/sax/Makefile.in, classpath/external/w3c_dom/Makefile.in, classpath/external/relaxngDatatype/Makefile.in, classpath/include/Makefile.in, classpath/examples/Makefile.in: Regenerate. * classpath/config.guess, classpath/config.sub, classpath/ltmain.sh : Update. * classpath/configure, classpath/depcomp, classpath/missing, classpath/aclocal.m4, classpath/install-sh: Regenerate. * gnu/classpath/Configuration.java (CLASSPATH_VERSION): Now 0.95. * sources.am: Regenerate. * Makefile.in: Regenerate. * Update the .class files and generated CNI header files, add new .class and generated CNI header files. * Remove generated files for removed java source files: classpath/gnu/java/net/BASE64.java, classpath/gnu/java/security/util/Base64.java, classpath/gnu/java/awt/peer/gtk/GThreadMutex.java, classpath/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java, classpath/gnu/java/awt/font/autofit/Scaler.java, classpath/gnu/classpath/jdwp/util/Value.java, classpath/gnu/javax/net/ssl/Base64.java. * Remove empty directories. * Makefile.am(nat_source_files): Add natVMOperatingSystemMXBeanImpl.cc. * java/lang/Class.java(setAccessible): Merge from classpath. * java/util/Locale.java: Remove. * gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java, gnu/java/lang/management/natVMOperatingSystemMXBeanImpl.cc: New. * gcj/javaprims.h: Update class declarations. * scripts/classes.pl: Update usage. * HACKING: Mention to build all peers. From-SVN: r125302
This commit is contained in:
parent
af333b9a7f
commit
e1bea0c068
2951 changed files with 80982 additions and 68583 deletions
|
@ -38,12 +38,21 @@ exception statement from your version. */
|
|||
|
||||
package java.awt.datatransfer;
|
||||
|
||||
import gnu.classpath.NotImplementedException;
|
||||
|
||||
import java.awt.Toolkit;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.URL;
|
||||
import java.security.AccessController;
|
||||
import java.security.PrivilegedAction;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import java.util.WeakHashMap;
|
||||
|
||||
/**
|
||||
|
@ -72,19 +81,102 @@ public final class SystemFlavorMap implements FlavorMap, FlavorTable
|
|||
* This map maps native <code>String</code>s to lists of
|
||||
* <code>DataFlavor</code>s
|
||||
*/
|
||||
private HashMap nativeToFlavorMap = new HashMap();
|
||||
private HashMap<String,List<DataFlavor>> nativeToFlavorMap =
|
||||
new HashMap<String,List<DataFlavor>>();
|
||||
|
||||
/**
|
||||
* This map maps <code>DataFlavor</code>s to lists of native
|
||||
* <code>String</code>s
|
||||
*/
|
||||
private HashMap flavorToNativeMap = new HashMap();
|
||||
private HashMap<DataFlavor, List<String>> flavorToNativeMap =
|
||||
new HashMap<DataFlavor, List<String>>();
|
||||
|
||||
/**
|
||||
* Private constructor.
|
||||
*/
|
||||
private SystemFlavorMap ()
|
||||
{
|
||||
AccessController.doPrivileged
|
||||
(new PrivilegedAction<Object>()
|
||||
{
|
||||
public Object run()
|
||||
{
|
||||
try
|
||||
{
|
||||
// Load installed flavormap.properties first.
|
||||
String sep = File.separator;
|
||||
File propsFile =
|
||||
new File(System.getProperty("gnu.classpath.home.url")
|
||||
+ sep + "accessibility.properties");
|
||||
InputStream in = new FileInputStream(propsFile);
|
||||
Properties props = new Properties();
|
||||
props.load(in);
|
||||
in.close();
|
||||
|
||||
String augmented = Toolkit.getProperty("AWT.DnD.flavorMapFileURL",
|
||||
null);
|
||||
if (augmented != null)
|
||||
{
|
||||
URL url = new URL(augmented);
|
||||
in = url.openStream();
|
||||
props.load(in);
|
||||
}
|
||||
setupMapping(props);
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
// Can't do anything about it.
|
||||
}
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up the mapping from native to mime types and vice versa as specified
|
||||
* in the flavormap.properties file.
|
||||
*
|
||||
* This is package private to avoid an accessor method.
|
||||
*
|
||||
* @param props the properties file
|
||||
*/
|
||||
void setupMapping(Properties props)
|
||||
{
|
||||
Enumeration propNames = props.propertyNames();
|
||||
while (propNames.hasMoreElements())
|
||||
{
|
||||
try
|
||||
{
|
||||
String nat = (String) propNames.nextElement();
|
||||
String mime = (String) props.getProperty(nat);
|
||||
// Check valid mime type.
|
||||
MimeType type = new MimeType(mime);
|
||||
DataFlavor flav = new DataFlavor(mime);
|
||||
|
||||
List<DataFlavor> flavs = nativeToFlavorMap.get(nat);
|
||||
if (flavs == null)
|
||||
{
|
||||
flavs = new ArrayList<DataFlavor>();
|
||||
nativeToFlavorMap.put(nat, flavs);
|
||||
}
|
||||
List<String> nats = flavorToNativeMap.get(flav);
|
||||
if (nats == null)
|
||||
{
|
||||
nats = new ArrayList<String>();
|
||||
flavorToNativeMap.put(flav, nats);
|
||||
}
|
||||
flavs.add(flav);
|
||||
nats.add(nat);
|
||||
}
|
||||
catch (ClassNotFoundException ex)
|
||||
{
|
||||
// Skip.
|
||||
}
|
||||
catch (MimeTypeParseException ex)
|
||||
{
|
||||
// Skip.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -263,16 +355,52 @@ public final class SystemFlavorMap implements FlavorMap, FlavorTable
|
|||
* specified native and a DataFlavor whose MIME type is a decoded
|
||||
* version of the native.
|
||||
*/
|
||||
public List<DataFlavor> getFlavorsForNative (String nat)
|
||||
throws NotImplementedException
|
||||
public List<DataFlavor> getFlavorsForNative(String nat)
|
||||
{
|
||||
throw new Error ("Not implemented");
|
||||
List<DataFlavor> ret = new ArrayList<DataFlavor>();
|
||||
if (nat == null)
|
||||
{
|
||||
Collection<List<DataFlavor>> all = nativeToFlavorMap.values();
|
||||
for (List<DataFlavor> list : all)
|
||||
{
|
||||
for (DataFlavor flav : list)
|
||||
{
|
||||
if (! ret.contains(flav))
|
||||
ret.add(flav);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
List<DataFlavor> list = nativeToFlavorMap.get(nat);
|
||||
if (list != null)
|
||||
ret.addAll(list);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
public List<String> getNativesForFlavor (DataFlavor flav)
|
||||
throws NotImplementedException
|
||||
{
|
||||
throw new Error ("Not implemented");
|
||||
List<String> ret = new ArrayList<String>();
|
||||
if (flav == null)
|
||||
{
|
||||
Collection<List<String>> all = flavorToNativeMap.values();
|
||||
for (List<String> list : all)
|
||||
{
|
||||
for (String nat : list)
|
||||
{
|
||||
if (! ret.contains(nat))
|
||||
ret.add(nat);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
List<String> list = flavorToNativeMap.get(flav);
|
||||
if (list != null)
|
||||
ret.addAll(list);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -298,10 +426,10 @@ public final class SystemFlavorMap implements FlavorMap, FlavorTable
|
|||
{
|
||||
if ((nativeStr == null) || (flavor == null))
|
||||
throw new NullPointerException();
|
||||
List flavors = (List) nativeToFlavorMap.get(nativeStr);
|
||||
List<DataFlavor> flavors = nativeToFlavorMap.get(nativeStr);
|
||||
if (flavors == null)
|
||||
{
|
||||
flavors = new ArrayList();
|
||||
flavors = new ArrayList<DataFlavor>();
|
||||
nativeToFlavorMap.put(nativeStr, flavors);
|
||||
}
|
||||
else
|
||||
|
@ -336,10 +464,10 @@ public final class SystemFlavorMap implements FlavorMap, FlavorTable
|
|||
{
|
||||
if ((nativeStr == null) || (flavor == null))
|
||||
throw new NullPointerException();
|
||||
List natives = (List) flavorToNativeMap.get(flavor);
|
||||
List<String> natives = flavorToNativeMap.get(flavor);
|
||||
if (natives == null)
|
||||
{
|
||||
natives = new ArrayList();
|
||||
natives = new ArrayList<String>();
|
||||
flavorToNativeMap.put(flavor, natives);
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue