diff options
Diffstat (limited to 'src/org/madore')
3 files changed, 88 insertions, 3 deletions
diff --git a/src/org/madore/android/unicodeMap/UnicodeCharacter.java b/src/org/madore/android/unicodeMap/UnicodeCharacter.java index 11d8d3e..7fad75d 100644 --- a/src/org/madore/android/unicodeMap/UnicodeCharacter.java +++ b/src/org/madore/android/unicodeMap/UnicodeCharacter.java @@ -1,13 +1,14 @@ package org.madore.android.unicodeMap; import java.util.Arrays; +import java.util.Collection; import java.util.Set; import java.util.Map; import java.util.EnumSet; import java.util.HashMap; import java.util.Formatter; -public class UnicodeCharacter { +public class UnicodeCharacter implements Map<String,String> { enum Category { UPPERCASE_LETTER("Lu", Character.UPPERCASE_LETTER), @@ -97,6 +98,20 @@ public class UnicodeCharacter { return name; } + public String getChar() { + return new String(Character.toChars(codePoint)); + } + + public String getLabel() { + StringBuilder s = new StringBuilder(); + Formatter fmt = new Formatter(s); + if ( codePoint < 0x10000 ) + fmt.format("U+%04X %s", codePoint, name); + else + fmt.format("U+%X %s", codePoint, name); + return new String(s); + } + public boolean isPrintable() { return printable.contains(this.category); } @@ -116,4 +131,72 @@ public class UnicodeCharacter { return new String(s); } + public final static String KEY_CHAR = "char"; + public final static String KEY_LABEL = "label"; + + public void clear() { + throw new UnsupportedOperationException(); + } + + public boolean containsKey(Object key) { + throw new UnsupportedOperationException(); + } + + public boolean containsValue(Object value) { + throw new UnsupportedOperationException(); + } + + public Set<Map.Entry<String,String>> entrySet() { + throw new UnsupportedOperationException(); + } + + public boolean equals(Object o) { + throw new UnsupportedOperationException(); + } + + public String get(Object key) { + if ( key == null ) + throw new NullPointerException(); + else if ( key instanceof String && key.equals(KEY_CHAR) ) + return getChar(); + else if ( key instanceof String && key.equals(KEY_LABEL) ) + return getLabel(); + else if ( key instanceof String ) + return null; + else + throw new ClassCastException(); + } + + public int hashCode() { + throw new UnsupportedOperationException(); + } + + public boolean isEmpty() { + throw new UnsupportedOperationException(); + } + + public Set<String> keySet() { + throw new UnsupportedOperationException(); + } + + public String put(String key, String value) { + throw new UnsupportedOperationException(); + } + + public void putAll(Map<? extends String,? extends String> t) { + throw new UnsupportedOperationException(); + } + + public String remove(Object key) { + throw new UnsupportedOperationException(); + } + + public int size() { + throw new UnsupportedOperationException(); + } + + public Collection<String> values() { + throw new UnsupportedOperationException(); + } + } diff --git a/src/org/madore/android/unicodeMap/UnicodeListActivity.java b/src/org/madore/android/unicodeMap/UnicodeListActivity.java index a08dbe2..2e37d6f 100644 --- a/src/org/madore/android/unicodeMap/UnicodeListActivity.java +++ b/src/org/madore/android/unicodeMap/UnicodeListActivity.java @@ -35,7 +35,9 @@ public final class UnicodeListActivity extends ListActivity { list.add(ch); final ClipboardManager cmgr = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE); - setListAdapter(new ArrayAdapter<UnicodeCharacter>(this, R.layout.list_item, list)); + setListAdapter(new SimpleAdapter(this, list, R.layout.list_item, + new String[] { "char", "label" }, + new int[] { R.id.charText, R.id.labelText })); final Button btn = (Button) findViewById(R.id.button); final EditText txt = (EditText) findViewById(R.id.edit); btn.setOnClickListener(new View.OnClickListener() { diff --git a/src/org/madore/android/unicodeMap/UnicodeMapActivity.java b/src/org/madore/android/unicodeMap/UnicodeMapActivity.java index de026de..7ef9b68 100644 --- a/src/org/madore/android/unicodeMap/UnicodeMapActivity.java +++ b/src/org/madore/android/unicodeMap/UnicodeMapActivity.java @@ -237,7 +237,7 @@ public final class UnicodeMapActivity extends ListActivity { }; thr.start(); } - setListAdapter(new ArrayAdapter<UnicodeRange>(this, R.layout.list_item, list)); + setListAdapter(new ArrayAdapter<UnicodeRange>(this, R.layout.map_item, list)); ListView lv = getListView(); lv.setTextFilterEnabled(true); lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { |