summaryrefslogtreecommitdiff
path: root/data/iphone-java/HelloJava.app/HelloJava.java
diff options
context:
space:
mode:
Diffstat (limited to 'data/iphone-java/HelloJava.app/HelloJava.java')
-rw-r--r--data/iphone-java/HelloJava.app/HelloJava.java149
1 files changed, 149 insertions, 0 deletions
diff --git a/data/iphone-java/HelloJava.app/HelloJava.java b/data/iphone-java/HelloJava.app/HelloJava.java
new file mode 100644
index 000000000..8b8f7ce37
--- /dev/null
+++ b/data/iphone-java/HelloJava.app/HelloJava.java
@@ -0,0 +1,149 @@
+import obc.*;
+import joc.*;
+
+import joc.Message;
+
+import static joc.Pointer.*;
+import static joc.Static.*;
+
+import java.util.ArrayList;
+import java.util.Date;
+
+public class HelloJava
+ extends UIApplication
+{
+
+private UIWindow window;
+
+private static class Contact {
+ public String first;
+ public String last;
+ public UITableCell cell;
+
+ public Contact(String first, String last) {
+ this.first = first;
+ this.last = last;
+ this.cell = null;
+ }
+
+ public String getName() {
+ String name = first;
+ if (last != null)
+ name += " " + last;
+ return name;
+ }
+}
+
+public static class Section {
+ public int row;
+ public String title;
+
+ public Section(int row, String title) {
+ this.row = row;
+ this.title = title;
+ }
+}
+
+private ArrayList<Contact> contacts_ = new ArrayList<Contact>();
+private ArrayList<Section> sections_ = new ArrayList<Section>();
+
+@Message public void applicationDidFinishLaunching$(Object unused)
+ throws Exception
+{
+ SQLite.Database ab = new SQLite.Database();
+ ab.open("/var/root/Library/AddressBook/AddressBook.sqlitedb", 0666); try {
+ SQLite.Stmt st = ab.prepare("select first, last from ABPerson where first is not null order by first"); try {
+ while (st.step())
+ contacts_.add(new Contact(st.column_string(0), st.column_string(1)));
+ } finally { st.close(); }
+ } finally { ab.close(); }
+
+ CGRect outer = UIHardware.fullScreenApplicationContentRect();
+ CGRect inner = outer.clone();
+ inner.origin.x = inner.origin.y = 0;
+
+ window = new UIWindow().initWithContentRect$(inner);
+ window.orderFront$(this);
+ window.makeKey$(this);
+ window._setHidden$(NO);
+
+ CGSize navsize = UINavigationBar.defaultSize();
+ UINavigationBar navbar = new UINavigationBar().initWithFrame$(new CGRect(0, 0, inner.size.width, navsize.height));
+ navbar.setBarStyle$(1);
+ navbar.showButtonsWithLeftTitle$rightTitle$leftBack$("Run GC", null, YES);
+
+ navbar.setDelegate$(new NSObject() {
+ @Message void navigationBar$buttonClicked$(UINavigationBar navbar, int button) {
+ java.lang.Runtime.getRuntime().gc();
+ }
+ }.init());
+
+ UINavigationItem navitem = new UINavigationItem().initWithTitle$("Contact List");
+ navbar.pushNavigationItem$(navitem);
+
+ char letter = 0;
+ for (int i = 0; i != contacts_.size(); ++i) {
+ String name = contacts_.get(i).getName();
+ char now = name.charAt(0);
+ if (letter != now) {
+ letter = now;
+ sections_.add(new Section(
+ i, new String(new char[] {now})
+ ));
+ }
+ }
+
+ UISectionList seclist = new UISectionList().initWithFrame$(new CGRect(0, navsize.height, inner.size.width, inner.size.height - navsize.height));
+
+ seclist.setDataSource$(new NSObject() {
+ @Message int numberOfSectionsInSectionList$(UISectionList list) {
+ return sections_.size();
+ }
+
+ @Message String sectionList$titleForSection$(UISectionList list, int section) {
+ return sections_.get(section).title;
+ }
+
+ @Message int sectionList$rowForSection$(UISectionList list, int section) {
+ return sections_.get(section).row;
+ }
+
+ @Message int numberOfRowsInTable$(UITable table) {
+ return contacts_.size();
+ }
+
+ @Message UITableCell table$cellForRow$column$(UITable table, int row, UITableColumn col) {
+ Contact contact = contacts_.get(row);
+ if (contact.cell != null)
+ return contact.cell;
+ UIImageAndTextTableCell cell = (UIImageAndTextTableCell) new UIImageAndTextTableCell().init();
+ cell.setTitle$(contact.getName());
+ contact.cell = cell;
+ return cell;
+ }
+ }.init());
+
+ seclist.reloadData();
+
+ UITableColumn col = new UITableColumn().initWithTitle$identifier$width$("Name", "name", 320.0f);
+
+ UITable table = (UITable) seclist.table();
+ table.setSeparatorStyle$(1);
+ table.addTableColumn$(col);
+
+ UIView view = new UIView().initWithFrame$(inner);
+ view.addSubview$(navbar);
+ view.addSubview$(seclist);
+
+ window.setContentView$(view);
+
+ AVController controller = new AVController().init();
+ CharSequence wavfile = (CharSequence) ((NSBundle) NSBundle.mainBundle()).pathForResource$ofType$("start", "wav");
+ AVItem wavitem = new AVItem().initWithPath$error$(wavfile, null);
+ wavitem.setVolume$(100);
+ controller.setCurrentItem$(wavitem);
+ controller.setCurrentTime$(0);
+ controller.play$(null);
+}
+
+}