import com.yuji.ef.dao.Node;
import com.yuji.ef.dao.Node.Status;
import com.yuji.ef.dao.NodeDao;
+import com.yuji.ef.dao.RootNode;
import com.yuji.ef.utility.BaseActivity;
import com.yuji.ef.utility.EvernoteIntentUtil;
+import com.yuji.ef.utility.FolderUtil;
public class EverFolderActivity extends BaseActivity {
private IconFrameLayout layout;
private IconScrollView scrollView;
private Button leftButton;
private Button rightButton;
+ private Button addButton;
+ private Button deleteButton;
private Node top = null;
private int indent = 0;
leftButton = (Button) findViewById(R.id.leftButton);
rightButton = (Button) findViewById(R.id.rightButton);
+ addButton = (Button) findViewById(R.id.addButton);
+ deleteButton = (Button) findViewById(R.id.deleteButton);
leftButton.setOnClickListener(new OnClickListener() {
@Override
rightButtonOnClick();
}
});
+ addButton.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ addButtonOnClick();
+ }
+ });
+ deleteButton.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ deleteButtonOnClick();
+ }
+ });
updateList();
+ setStatus();
} catch (Exception e) {
// TODO
e.printStackTrace();
private void updateList() {
NodeDao dao = (NodeDao) NodeDao.getInstance();
top = dao.searchRoot();
- if (top == null){
+ if (top == null) {
// TODO
}
-
+
updateList(top);
}
-
+
private void updateList(Node parent) {
viewY = 30;
if (list == null) {
return;
}
-
+
NodeDao dao = (NodeDao) NodeDao.getInstance();
for (Long id : list) {
Node n = dao.searchById(id);
private void leftButtonOnClick() {
moveButtonOnClick(-1);
+ setStatus();
}
private void rightButtonOnClick() {
- moveButtonOnClick(1);
+ moveButtonOnClick(1);
+ setStatus();
}
private void moveButtonOnClick(int dx) {
}
}
+ private void addButtonOnClick() {
+ FolderUtil util = FolderUtil.getInstance();
+ LabelIconView target = layout.getSelectedTarget();
+ long id = target.getNodeId();
+ NodeDao dao = (NodeDao) NodeDao.getInstance();
+ Node parent = dao.searchById(id);
+ if (parent != null) {
+ DirNode node = new DirNode("XXX", null); // TODO
+ util.addDirNode(parent, node);
+ updateList();
+ setStatus();
+ }
+ }
+
+ private void deleteButtonOnClick() {
+ FolderUtil util = FolderUtil.getInstance();
+ LabelIconView target = layout.getSelectedTarget();
+ long id = target.getNodeId();
+ NodeDao dao = (NodeDao) NodeDao.getInstance();
+ Node node = dao.searchById(id);
+ if (node != null) {
+ util.deleteNode(node);
+ // TODO 三角マークも消さないといけないのでは
+ layout.removeView(target);
+ updateList();
+ setStatus();
+ }
+ }
+
public void execute(long srcId, long dstId) {
removeAllNodeView();
// TODO
-// if (dst instanceof DirNode) {
-// src.getParent().remove(src);
-// dst.add(src);
-// } else if (dst instanceof FileNode) {
-// src.getParent().remove(src);
-// dst.getParent().add(src);
-// }
+ // if (dst instanceof DirNode) {
+ // src.getParent().remove(src);
+ // dst.add(src);
+ // } else if (dst instanceof FileNode) {
+ // src.getParent().remove(src);
+ // dst.getParent().add(src);
+ // }
NodeDao dao = (NodeDao) NodeDao.getInstance();
- if (srcId < 0){
+ if (srcId < 0) {
// TODO
}
- if (dstId < 0){
+ if (dstId < 0) {
// TODO
}
Node src = dao.searchById(srcId);
Node dst = null;
- if (srcId == dstId){
+ if (srcId == dstId) {
dst = src;
- }
- else {
+ } else {
dst = dao.searchById(dstId);
}
-
+
Node sp = dao.searchById(src.getParent());
- if (sp == null){
+ if (sp == null) {
// TODO
}
Node dp = null;
- if (src.getParent() == dst.getParent()){
+ if (src.getParent() == dst.getParent()) {
dp = sp;
- }
- else {
+ } else {
dp = dao.searchById(dst.getParent());
}
- if (dp == null){
+ if (dp == null) {
// TODO
}
-
+
// TODO DBへのアクセス
- //sp.remove(src.getId());
+ // sp.remove(src.getId());
dao.remoteChildrenId(sp, src.getId());
if (dst instanceof DirNode) {
- //dst.add(src.getId());
+ // dst.add(src.getId());
dao.addChildrenId(dst, src.getId());
} else if (dst instanceof FileNode) {
- //dp.add(src.getId());
+ // dp.add(src.getId());
dao.addChildrenId(dp, src.getId());
}
Status status = node.getStatus();
dao.updateStatus(node, status);
-
+
removeAllNodeView();
updateList();
}
Node node = dao.searchById(id);
String guid = node.getGuid();
-
+
EvernoteIntentUtil util = EvernoteIntentUtil.getInstance();
util.viewNote(this, guid);
}
+ public void targetSelectedChanged(boolean status) {
+ setStatus();
+ }
+
public void removeAllNodeView() {
layout.removeAllViews();
}
+
+ private void setStatus() {
+ boolean leftButtonFlag = true;
+ boolean rightButtonFlag = true;
+ boolean addButtonFlag = true;
+ boolean deleteButtonFlag = true;
+
+ if (indent <= 0) {
+ leftButtonFlag = false;
+ }
+
+ LabelIconView target = layout.getSelectedTarget();
+ NodeDao dao = (NodeDao) NodeDao.getInstance();
+ long id = -1;
+ Node node = null;
+ if (target != null) {
+ id = target.getNodeId();
+ node = dao.searchById(id);
+ }
+ if (target == null || node == null || !(node instanceof DirNode)) {
+ addButtonFlag = false;
+ }
+ if (target == null || (node != null && node instanceof RootNode)) {
+ deleteButtonFlag = false;
+ }
+
+ leftButton.setEnabled(leftButtonFlag);
+ rightButton.setEnabled(rightButtonFlag);
+ addButton.setEnabled(addButtonFlag);
+ deleteButton.setEnabled(deleteButtonFlag);
+ }
}
\ No newline at end of file