/
ViewActivity.java
110 lines (90 loc) · 2.71 KB
/
ViewActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
package com.matburt.mobileorg.Gui;
import android.content.ContentResolver;
import android.content.Intent;
import android.os.Bundle;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.view.SubMenu;
import com.matburt.mobileorg.R;
import com.matburt.mobileorg.OrgData.OrgNode;
import com.matburt.mobileorg.util.OrgNodeNotFoundException;
import com.matburt.mobileorg.util.OrgUtils;
public class ViewActivity extends SherlockFragmentActivity {
public static String NODE_ID = "node_id";
private ContentResolver resolver;
private ViewFragment nodeViewFragment;
private long nodeId;
private OrgNode node;
@Override
protected void onCreate(Bundle savedInstanceState) {
OrgUtils.setTheme(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.view);
this.resolver = getContentResolver();
Intent intent = getIntent();
this.nodeId = intent.getLongExtra(NODE_ID, -1);
}
@Override
protected void onStart() {
super.onStart();
this.nodeViewFragment = ((ViewFragment) getSupportFragmentManager()
.findFragmentById(R.id.view_fragment));
try {
this.node = new OrgNode(nodeId, resolver);
viewNode(OrgUtils.getLevelOfRecursion(this));
} catch (OrgNodeNotFoundException e) {
nodeViewFragment.displayError();
}
}
public void viewNode(int levelOfRecursion) {
if(node != null) {
nodeViewFragment.display(node, levelOfRecursion, resolver);
String path = node.getOlpId(resolver);
if(path.startsWith("olp:"))
path = path.substring("olp:".length());
getSupportActionBar().setTitle(path);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
SubMenu subMenu = menu.addSubMenu(R.string.menu_advanced);
MenuItem subMenuItem = subMenu.getItem();
subMenuItem.setIcon(R.drawable.ic_menu_view);
subMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
setupRecursionSubmenu(subMenu);
return true;
}
private void setupRecursionSubmenu(SubMenu subMenu) {
String[] recursionStrings = getResources().getStringArray(R.array.viewRecursionLevels);
for (int i = 0; i < recursionStrings.length; i++) {
MenuItem item = subMenu.add(R.string.menu_advanced,
R.string.contextmenu_view, i, recursionStrings[i]);
item.setIcon(R.drawable.ic_menu_view);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getOrder()) {
case 0:
viewNode(0);
break;
case 1:
viewNode(1);
break;
case 2:
viewNode(2);
break;
case 3:
viewNode(3);
break;
case 4:
viewNode(4);
break;
default:
return super.onOptionsItemSelected(item);
}
return true;
}
}